{"version":3,"sources":["store/actions/commonActions.ts","store/operations/commonOperations.ts","api/axios/api.ts","utils/auxiliary.ts","utils/encryption.ts","utils/storage.ts","i18n/index.ts","utils/slideAddOrUpdt.ts","utils/bacDownloadsAndUpgrades.ts","utils/openOrDownload.ts","utils/inputLimit.ts","constants/api.ts","constants/links.ts","constants/storage.ts","constants/styles.ts","views/home/other/dashboard/styles.ts","components/F3MAddUpdt/styles.ts","components/F3MAddUpdt/F3MAddUpdt.tsx","components/F3MAppBar/Login/styles.ts","components/F3MAppBar/Login/index.tsx","store/actions/loginActions.ts","store/operations/loginOperations.ts","components/F3MAppBar/Home/styles.ts","components/F3MAppBar/Home/index.tsx","components/F3MAppBar/AppBar.tsx","components/F3MAutocompleteAsync/F3MAutocompleteAsync.tsx","components/F3MBreadcrumbs/styles.ts","components/F3MBreadcrumbs/F3MBreadcrumbs.tsx","components/F3MButton/styles.ts","components/F3MButton/F3MButton.tsx","components/F3MCard/styles.ts","components/F3MCard/F3MCard.tsx","components/F3MCarousel/styles.ts","components/F3MCarousel/F3MCarouselButton/styles.ts","components/F3MCarousel/F3MCarouselButton/F3MCarouselButton.tsx","components/F3MCarousel/F3MCarousel.tsx","components/F3MDatePicker/F3MDatePicker.tsx","components/F3MDialog/styles.ts","components/F3MDialog/F3MDialog.tsx","components/F3MDownload/styles.ts","components/F3MDownload/F3MDownload.tsx","assets/theme/index.ts","components/F3MEmptyState/F3MEmptyState.tsx","components/F3MIcons/styles.ts","components/F3MIcons/F3MIcons.tsx","components/F3MModalSections/F3MDropzoneSection/styles.ts","components/F3MModalSections/F3MDropzoneSection/F3MDropzoneSection.tsx","components/F3MModalSections/F3MCarousel/F3MStateSection/styles.ts","components/F3MModalSections/F3MCarousel/F3MStateSection/F3MStateSection.tsx","components/F3MModalSections/F3MCarousel/F3MInfoFields/styles.ts","components/F3MModalSections/F3MCarousel/F3MInfoFields/F3MInfoFields.tsx","components/F3MModalSections/F3MCarousel/F3MButtonFields/styles.ts","components/F3MModalSections/F3MCarousel/F3MButtonFields/F3MButtonFields.tsx","components/F3MModalSections/F3MDownloadCategory/F3MBusinessArea/styles.ts","components/F3MModalSections/F3MDownloadCategory/F3MBusinessArea/F3MBusinessArea.tsx","components/F3MModalSections/F3MDownloadCategory/F3MCategoryInfo/styles.ts","components/F3MModalSections/F3MDownloadCategory/F3MCategoryInfo/F3MCategoryInfo.tsx","components/F3MModalSections/F3MDownloadType/styles.ts","components/F3MModalSections/F3MDownloadType/F3MDownloadType.tsx","components/F3MModalSections/F3MDownloadCategory/F3MCardType/styles.ts","components/F3MModalSections/F3MDownloadCategory/F3MCardType/F3MCardType.tsx","components/F3MModalSections/F3MIsActive/styles.ts","components/F3MModalSections/F3MIsActive/F3MIsActive.tsx","components/F3MModalSections/F3MDownloadCategoryDownloads/F3MStateSection/styles.ts","components/F3MModalSections/F3MDownloadCategoryDownloads/F3MStateSection/F3MStateSection.tsx","components/F3MModalSections/F3MDownloadCategoryDownloads/F3MBusAreaAndCategory/styles.ts","components/F3MSelect/styles.ts","components/F3MSelect/F3MSelect.tsx","api/services/downloadCategoryDownloadsService.ts","components/F3MModalSections/F3MDownloadCategoryDownloads/F3MBusAreaAndCategory/F3MBusAreaAndCategory.tsx","components/F3MModalSections/F3MDownloadCategoryDownloads/F3MUploadFiles/styles.ts","components/F3MModalSections/F3MDownloadCategoryDownloads/F3MUploadFiles/F3MUploadFiles.tsx","components/F3MModalSections/F3MApplicationDownload/F3MAppDownFilesInd/styles.ts","components/F3MModalSections/F3MApplicationDownload/F3MAppDownFilesInd/F3MAppDownFilesInd.tsx","components/F3MModalSections/F3MApplicationDownload/F3MAppDownFilesMulti/styles.ts","components/F3MModalSections/F3MApplicationDownload/F3MAppDownFilesMulti/F3MAppDownFilesMulti.tsx","components/F3MModalSections/F3MApplicationDownload/F3MApplicationChoice/styles.ts","components/F3MModalSections/F3MApplicationDownload/F3MApplicationChoice/F3MApplicationChoice.tsx","components/F3MModalSections/F3MApplicationDownload/F3MAvailableFor/styles.ts","components/F3MModalSections/F3MDownloadManager/F3MClientChoice/styles.ts","components/F3MModalSections/F3MDownloadManager/F3MClientChoice/F3MClientChoice.tsx","components/F3MModalSections/F3MDownloadManager/F3MDownManDescp/styles.ts","components/F3MModalSections/F3MDownloadManager/F3MDownManDescp/F3MDownManDescp.tsx","hooks/useWindowSize.ts","components/F3MFooter/styles.ts","components/F3MFooter/F3MFooter.tsx","components/F3MPopover/styles.ts","components/F3MPopover/F3MPopover.tsx","assets/icons/Services.tsx","assets/icons/Software.tsx","assets/icons/Training.tsx","assets/icons/Backoffice.tsx","components/F3MSidebar/Content/styles.ts","components/F3MSidebar/Content/index.tsx","components/F3MSidebar/Desktop/styles.ts","components/F3MSidebar/Desktop/index.tsx","components/F3MSidebar/Mobile/styles.ts","components/F3MSidebar/Mobile/index.tsx","components/F3MSidebar/F3MSidebar.tsx","components/F3MSnackbar/styles.ts","components/F3MSnackbar/F3MSnackbar.tsx","components/F3MDataGrid/functions.ts","components/F3MDataGrid/F3MDataGrid.tsx","components/F3MTextField/styles.ts","components/F3MTextField/F3MTextField.tsx","components/F3MFiltersBacDownUpgr/F3MFiltersBacDownUpgr.tsx","components/F3MFilterSearch/styles.ts","components/F3MFilterSearch/F3MFilterSearch.tsx","components/F3MCategoryTable/styles.ts","components/F3MCategoryTable/F3MCategoryTable.tsx","components/F3MChart/F3MChart.tsx","views/home/software/licensing/styles.ts","views/home/software/licensing/TableProducts.tsx","views/home/other/dashboard/QuickAccessBtns.tsx","views/home/other/dashboard/Plans.tsx","views/home/other/dashboard/index.tsx","views/home/services/contracts/styles.ts","views/home/services/contracts/index.tsx","api/services/incidentsService.ts","views/home/services/incidents/styles.ts","utils/tableAsExcel.ts","views/home/services/incidents/index.tsx","views/home/services/reports/styles.ts","api/services/ticketsService.ts","views/home/services/reports/index.tsx","views/home/software/downloads/index.tsx","views/home/styles.ts","views/home/software/installation/index.tsx","views/home/software/licensing/index.tsx","views/home/software/updates/index.tsx","views/home/backoffice/carousel/styles.ts","api/services/carouselService.ts","views/home/backoffice/carousel/index.tsx","views/home/backoffice/applications/Cards/ApplicationDownload/Table.tsx","views/home/backoffice/applications/Cards/ApplicationDownload/index.tsx","views/home/backoffice/applications/Cards/DownloadCategories/Table.tsx","api/services/downloadCategoriesService.ts","views/home/backoffice/applications/Cards/DownloadCategories/index.tsx","views/home/backoffice/applications/Cards/DownloadCategoryDownloads/Table.tsx","views/home/backoffice/applications/Cards/DownloadCategoryDownloads/index.tsx","views/home/backoffice/downloads/Table.tsx","constants/routes.ts","views/home/backoffice/applications/index.tsx","views/home/backoffice/downloads/index.tsx","constants/fileSize.ts","api/axios/interceptors.ts","api/axios/requests.ts","api/services/accountService.ts","api/services/applicationService.ts","api/services/applicationDownloadService.ts","api/services/authService.ts","api/services/contractsService.ts","api/services/licenseService.ts","api/services/userDownloadService.ts","api/services/servCatalogService.ts","api/services/backofficeService.ts","api/services/downloadManagerService.ts","api/services/remoteAssistanceService.ts","store/actions/contractActions.ts","store/operations/contractOperations.ts","store/actions/downloadActions.ts","store/operations/downloadOperations.ts","store/actions/incidentActions.ts","store/operations/incidentOperations.ts","store/actions/licensingActions.ts","store/operations/licensingOperations.ts","store/actions/reportActions.ts","store/operations/reportOperations.ts","store/actions/appDownloadActions.ts","store/operations/appDownloadOperations.ts","views/login/LoginForm/styles.ts","views/login/LoginForm/index.tsx","views/login/styles.ts","views/login/index.tsx","views/home/other/404/styles.ts","views/home/other/404/index.tsx","router/Routes.tsx","store/actions/servCatalogActions.ts","store/operations/servCatalogOperations.ts","views/home/index.tsx","App.tsx","serviceWorker.ts","store/reducers/commonReducer.ts","store/reducers/contractReducer.ts","store/reducers/downloadReducer.ts","store/reducers/incidentReducer.ts","store/reducers/licensingReducer.ts","store/reducers/loginReducer.ts","store/reducers/reportReducer.ts","store/reducers/servCatalogReducer.ts","store/reducers/appDownloadReducer.ts","store/index.ts","index.tsx"],"names":["commonActions","toggleSidebar","type","toggleSoftwareSidebar","toggleServiceSidebar","toggleBackofficeSidebar","toggleLogoutConfirmation","commonOperations","event","dispatch","getState","_getState$common","_getState$common2","_getState$common3","preventDefault","common","sidebarSoftwareOpen","sidebarServicesOpen","sidebarBackofficeOpen","_getState$common4","sidebarOpen","_getState$common5","_getState$common6","api","axios","create","headers","isDefined","v","undefined","secretKey","setLocalStorage","n","localStorage","setItem","aes","encrypt","toString","JSON","stringify","getLocalStorage","getItem","parse","decrypt","enc","removeLocalStorage","removeItem","i18n","use","initReactI18next","init","interpolation","escapeValue","lng","fallbackLng","resources","translation","ptPT","isSlideValid","addOrUpdt","image","length","title","buttonText","buttonLink","isSlideButtonDefined","getFileLimitExceedMessage","filesLimit","t","replace","getFileRemovedMessage","fileName","getDropRejectMessage","rejectedFile","acceptedFiles","maxFileSize","message","name","includes","size","filesize","convertBytesToMbsOrKbsOrGb","getAllBusAreasName","businessAreas","map","busArea","join","getAllBusAreasCode","id","isCategoryDownloadValid","businessArea","downloadType","cardType","isDownloadCategoryDownloadValid","categoryId","isNewFile","files","Object","keys","isFileAndDescDefined","isApplicationDownloadValid","file","applicationId","applicationName","version","getFileVersion","nameSplitToVersion","exec","isDownloadValid","clientId","description","agentHas","keyword","navigator","userAgent","toLowerCase","search","openOrDownload","response","filename","blob","isSafari","window","ApplePaySetupFeature","safari","Blob","data","msSaveOrOpenBlob","test","open","URL","createObjectURL","a","document","createElement","href","download","body","appendChild","click","removeChild","InputFields","CONFIG","API_URL","location","hostname","ENDPOINTS","LINKS","STORAGE","WIDTHS","useStyles","makeStyles","theme","createStyles","titlePage","fontFamily","fontSize","color","textDecoration","borderBottom","buttons","width","quickAccess","marginTop","height","quickAccessBtns","backgroundColor","palette","warning","main","borderRadius","boxShadow","icon","marginRight","buttonSeeMore","position","bottom","cardTitleOrange","plansHeaders","plansContent","borderTop","plansContentName","fontWeight","plansContentEnds","padding","backgroundSize","textAlign","root","maxHeight","margin","modalTitle","modalContent","overflowY","modalFooter","required","connector","connect","clearVersion","appDownloadOperations","props","classes","titleVariant","setOpen","sections","setSnackBar","update","setUpdate","resetAddOrUpdt","isValid","callApiToSave","maxWidth","loading","setLoading","useState","_jsx","_Fragment","children","_jsxs","Dialog","disableBackdropClick","disableEscapeKeyDown","fullWidth","scroll","className","DialogTitle","style","zIndex","section","index","DialogContent","Typography","variant","gutterBottom","component","DialogActions","F3MButton","onClick","async","then","severity","catch","error","status","applicationMessages","handleSave","CircularProgress","top","right","logo","verticalAlign","breakpoints","up","down","LoginAppBar","Link","to","src","alt","loginActions","handleChange","value","payload","loginRequest","loginSuccess","loginError","logoutRequest","logoutSuccess","logoutError","refreshTokenRequest","refreshTokenSuccess","refreshTokenError","loadCarouselRequest","loadCarouselSuccess","loadCarouselError","closeExpiredSnackbar","setUser","user","clearData","loginOperations","target","login","username","password","authService","tokenCreate","isSuccess","result","errorMessage","e","refreshToken","_getState$login","request","tokenRefresh","logout","tokenRevoke","store","push","loadCarousel","carouselService","loadCarouselLogin","r","account","accountService","accountInfo","role","sidebarToggleIcon","display","contentContainer","justifyContent","alignItems","avatar","marginLeft","spacing","border","primary","menuExpand","transition","transitions","duration","short","menuExpandClose","transform","menuPaper","minWidth","menuTitle","paddingTop","paddingLeft","paddingRight","divider","marginBottom","item","state","commonState","loginState","menu","setMenu","React","menuOpen","currentTarget","menuClose","IconButton","onTouchEnd","CloseIcon","MenuIcon","Container","Avatar","sizes","clsx","Boolean","ExpandMoreIcon","Menu","keepMounted","anchorEl","onClose","getContentAnchorEl","anchorOrigin","vertical","horizontal","transformOrigin","paper","Divider","MenuItem","logoutToggle","_props$loginState","AppBar","Toolbar","authenticated","HomeAppBar","F3MAutocompleteAsync","parent","textTransform","page","F3MBreadcrumbs","crumbs","path","split","Breadcrumbs","boxSizing","bold","contrastText","dark","light","borderColor","contained","outlined","text","disabled","cursor","buttonProps","disableElevation","disableFocusRipple","endIcon","startIcon","Button","left","alignContent","F3MCard","cardProps","elevation","raised","square","Card","Box","flexDirection","container","fill","white","button","textButton","lineHeight","F3MCarouselButton","buttonColor","rel","F3MCarousel","autoplay","autoPlay","infiniteLoop","interval","showThumbs","showArrows","showIndicators","showStatus","stopOnHover","Carousel","carouselSlides","slide","backgroundImage","imagePath","backgroundRepeat","backgroundPosition","F3MDatePicker","hasError","moment","datePickerProps","disableToolbar","format","helperText","label","inputVariant","onChange","MuiPickersUtilsProvider","utils","DateFnsUtils","KeyboardDatePicker","goBack","action","F3MDialog","isDialog","isConfirmation","dialogProps","DialogTitleProps","disableTypography","DialogContentProps","dividers","DialogActionsProps","fullScreen","newOnClose","PaperComponent","PaperProps","TransitionComponent","transitionDuration","TransitionProps","Grid","justify","xs","isValidElement","DialogContentText","newOnClick","hover","F3MDownload","downloadProps","GetAppIcon","isLoading","handleError","defaultTheme","createMuiTheme","values","sm","md","lg","xl","direction","mixins","toolbar","minHeight","black","secondary","info","success","grey","contrastThreshold","tonalOffset","hint","background","default","active","hoverOpacity","selected","selectedOpacity","disabledBackground","disabledOpacity","focus","focusOpacity","activatedOpacity","MuiTablePagination","labelRowsPerPage","backIconButtonText","nextIconButtonText","labelDisplayedRows","_ref","from","count","concat","MuiCard","MuiAppBar","shadows","typography","htmlFontSize","h1","letterSpacing","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","overline","ontWeight","shape","easing","easeInOut","easeOut","easeIn","sharp","shortest","shorter","standard","complex","enteringScreen","leavingScreen","mobileStepper","speedDial","drawer","appBar","modal","snackbar","tooltip","overrides","MuiTypography","MuiOutlinedInput","notchedOutline","borderWidth","MuiInputAdornment","MuiCheckbox","MuiLink","colorPrimary","MuiDrawer","MuiToolbar","regular","gutters","MuiTableContainer","MuiTable","borderCollapse","MuiTableHead","MuiTableRow","head","borderTopWidth","borderTopRightRadius","borderTopLeftRadius","MuiTableCell","spacer","input","menuItem","MuiTableSortLabel","MuiMenuItem","MuiDialogTitle","MuiDialogContent","borderTopColor","borderBottomColor","MuiDialogActions","MuiSvgIcon","fontSizeLarge","MuiAvatar","rounded","F3MEmptyState","ErrorOutlineIcon","htmlColor","F3MIcons","disableGutters","FontAwesomeIcon","borderStyle","dropzoneRoot","F3MDropzoneSection","handleFileChange","getFileAddedMessage","initialFiles","showPreviews","showPreviewsInDropzone","useChipsForPreview","previewGridProps","previewChipProps","centerInformation","detailsMessage","DropzoneArea","alertSnackbarProps","dropzoneClass","dropzoneText","previewText","formControl","selectEmpty","F3MStateSection","_addOrUpdt$order","setAddOrUpdt","originalOrder","order","isActive","setIsAcive","setOrder","possibleOrder","activeRows","Array","slice","handleChangeIsActive","prevState","newOrder","FormControlLabel","control","Switch","checked","FormControl","InputLabel","shrink","Select","labelId","handleChangeOrder","displayEmpty","F3MInfoFields","setTitle","desc","setDesc","TextField","titleLimit","inputLimit","field","maxChar","handleTitleChange","InputLabelProps","descriptionLimit","handleDescChange","radioButton","float","orange","blue","darkBlue","radioButtonText","F3MButtonFields","setButtonText","isDisabled","setIsDisabled","setButtonLink","setButtonColor","buttonTextLimit","carousel","handleChangeBtnText","htmlFor","Input","handleChangeUrl","RadioGroup","row","handleChangeColor","Radio","F3MBusinessArea","busAreasToPresent","setBusAreasToPresent","busAreasSelected","setBusAreasSelected","isSelected","some","useEffect","backofficeService","loadBusinessAreas","Checkbox","newBusAreas","filter","x","newBusArea","code","labels","innerText","handleChangeBusAreas","F3MCategoryInfo","setName","setDescription","nameLimit","handleChangeName","handleChangeDescrp","F3MDownloadType","setDownloadType","handleChangeDownloadType","F3MCardType","setCardType","handleChangeCardType","F3MIsActive","setIsActive","handleIsActive","paddingBottom","inputRoot","opcacity","inputRootDisabled","select","F3MSelect","_selectProps$items","selectProps","autoWidth","defaultValue","displayAll","hiddenLabel","IconComponent","inputProps","items","labelWidth","MenuProps","multiple","native","onOpen","renderValue","SelectDisplayProps","c","downloadCategoryDownloadsService","method","url","params","formData","FormData","append","downloadCategory","forEach","downCatDownId","F3MBusAreaAndCategory","fetchedCategories","setCategories","categories","categorySelected","setCategorySelected","selectDisabled","setSelectDisabled","loadCategories","FormLabel","newCategoryId","F3MUploadFiles","fileNameAndDesc","isOriginalFileChange","originalFile","setOriginalFile","fileInAddition","setFileInAddition","setFiles","dropAreaReset","setDropAreaReset","onDelete","newFiles","FILESIZE","addNewFile","fileToAddName","elem","newFileToAdd","Chip","uploadArea","setVersion","gainsName","useOriginalVersion","setSelected","fileNameToShow","setFileNameToShow","gainsNameToShow","setGainsNameToShow","originalVersion","setOriginalVersion","getStyle","btnSelected","ButtonGroup","gains","isNewGains","appDownload","_props$appDownload","addedFiles","setAddedFiles","gainsFile","setGainsFile","initInstFile","initUpdtFile","initUpgrFile","initGainsFile","handleFilesChange","key","_props$appDownload2","_props$appDownload3","setAddUpdtModal","versionFromFile","defaultApplication","application","setApplication","applications","setApplications","isManualVersion","setManualVersion","versionToPresent","setVersionToPresent","applicationService","loadApplications","Autocomplete","options","getOptionSelected","option","getOptionLabel","handleChangeApplication","renderInput","InputProps","endAdornment","Fragment","match","handleChangeManualVersion","F3MClientChoice","defaultClient","client","setClient","clients","setClients","clientName","handleChangeClient","filterOptions","noOptionsText","clientCodeName","downloadManagerService","loadClients","F3MDownManDescp","useWindowSize","windowSize","setWindowSize","handleResize","innerWidth","innerHeight","addEventListener","removeEventListener","columnsGrid","footerTitle","footerLink","iconAndImageGrid","servCatalogState","servCatalog","_props$servCatalogSta","servCatalogBlob","SOFTWARE","SERVICES","TRAINING","BACKOFFICE","ROUTES","LICENSING","PATH","INSTALLATION","UPDATES","INCIDENTS","CONTRACTS","REPORTS","DOWNLOADS","REDIRECT","TARGET","CAROUSEL","APPLICATIONS","F3MPopover","Popover","ServicesIcon","SvgIcon","y","d","points","SoftwareIcon","TrainingIcon","BackofficeIcon","listRoot","listItemRoot","borderLeft","listItemSelected","listItemIcon","listItemIconIcon","overflow","listItemExpandIcon","listItemExpandMoreIcon","listItemExpandLessIcon","listItemText","collapseListItem","routerState","router","p","_props$routerState","pathname","isSoftwareSelected","isServicesSelected","isBackofficeSelected","redirect","List","ListItem","ListItemIcon","viewBox","ListItemText","primaryTypographyProps","ChevronRightIcon","Collapse","in","timeout","disablePadding","drawerRoot","flexShrink","whiteSpace","drawerClosed","overflowX","sidebarToggleFab","sidebarToggleFabOpen","sidebarToggleFabClose","ClickAwayListener","onClickAway","Fab","Drawer","SidebarContent","SwipeableDrawer","F3MSidebar","useTheme","DesktopSidebar","MobileSidebar","alertRoot","F3MSnackbar","Close","closeSnackbar","snackbarProps","autoHideDuration","setSnackbar","reason","Snackbar","Alert","alignCell","align","getClassName","isArray","descendingComparator","b","orderBy","F3MDataGrid","tableProps","columns","i","headerName","sortable","cellClassName","headerClassName","headerAlign","hideSortIcons","rows","rowClick","extraRows","sortMode","sortField","sortDirection","sortChange","pagination","paginationMode","rowCount","pageSize","rowsPerPageOptions","onChangePage","onChangeRowsPerPage","ps","setPageSize","setPage","sf","setSortField","sd","setSortDirection","rowData","setRowData","GetRowsData","getComparator","stableSort","array","comparator","stabilizedThis","el","sort","parentElement","TableContainer","Table","TableHead","TableRow","TableCell","TableSortLabel","hideSortIcon","TableBody","trim","utc","formatField","colSpan","TablePagination","rowsPerPage","onPageChange","handleChangePage","onRowsPerPageChange","parseInt","formLabelRoot","opacity","formLabelDisabled","formLabelFocused","inputLabelRoot","inputLabelOutlined","inputLabelStandard","inputLabelFilled","inputLabelDisabled","inputLabelFocused","focused","F3MTextField","textFieldProps","autoComplete","autoFocus","FormHelperTextProps","inputRef","multiline","placeholder","rowsMax","filled","onBlur","onFocus","onKeyDown","onKeyUp","F3MFiltersBacDownUpgr","activeBusAreasFilter","handleSelectorFilterChange","businessAreasFilter","handleTextFilterChange","placeholderSearch","F3MFilterSearch","fade","searchIcon","pointerEvents","inputInput","SearchIcon","InputBase","category","alignSelf","F3MCategoryTable","productColumns","productData","categoriesData","downCatDownDescription","downCatFilename","division","F3MChart","dataset","noMinWidth","Bar","maintainAspectRatio","responsive","scales","yAxes","ticks","beginAtZero","precision","licensingState","licensing","handleProductChangePage","licensingOperations","handleProductChangeRowsPerPage","loadProducts","products","isGettingPDF","setIsGettingPDF","toUpperCase","network","salesDate","hasLicense","licenseService","downloadProductLicense","view","VisibilityIcon","getProductLicensePDF","isHomePage","Build","Cached","GetApp","plans","setPlans","getBackColor","date","actMonth","Date","getMonth","dateMonth","actYear","getFullYear","getColor","responseAssistCont","contractsService","loadAssistanceContracts","assistContParsed","planName","plan","ends","endDate","planCount","responseServContr","loadServiceContracts","loadContracts","statistics","setStatistics","tickets","ticketsService","loadNumberTicketsByMonthLastXMonths","loadStatistics","labelsToPresent","finalDataToPresente","datasets","hoverBackgroundColor","hoverBorderColor","Plans","QuickAccessBtns","TableProducts","tableRow","tableRowIcon","tableRowIconOpen","tableRowIconClose","collapsedTableRow","collapsedTable","borderRight","collapsedTableHead","collapsedTableRowHead","collapsedTableCellHead","collapsedTableRowBody","contractsState","contracts","loadServiceContractsData","contractOperations","loadAssistanceContractsData","updateContracts","assistanceContracts","updatePlansColumns","updatePlansRows","CheckBoxIcon","CheckBoxOutlineBlankIcon","startDate","Row","contractExtensions","KeyboardArrowDownIcon","totalCredited","totalDebited","total","ce","credit","debit","ac","incidentsService","hidden","filterHidden","icons","totals","textButtonSeeMore","tableAsExcel","downloadExcel","link","incidentsState","incidents","handleFilterChange","incidentOperations","handleChangeRowsPerPage","loadIncidents","toggleFilter","initDateFilter","endDateFilter","initContractFilter","contract","initApplicationFilter","contractDescription","contractNumber","consultant","assistanceNumber","numberOfHours","debited","requestedBy","Suspense","fallback","LinearProgress","isFilterOpen","Tooltip","arrow","FilterListIcon","MoreVertIcon","clearFilter","tableCellHead","loadTickets","numberOfMonths","loadTicketsStatistics","year","loadYears","getExcel","reportsState","reports","handleYearChange","reportOperations","_statistics$data","_statistics$data2","_statistics$data3","_statistics$data4","_statistics$data5","_statistics$data6","_statistics$data7","_statistics$data8","_statistics$data9","ticketsSLA","ticketsNotSLA","ticket","requestDate","predictedDate","realDate","slaCompliance","slaComplicance","incident","years","number","slaPercentage","notSLAPercentage","monthWithMoreTickets","monthWithMoreCompliance","monthWithLessCompliance","downloadState","downloads","loadDownloads","downloadOperations","isDownloading","setIsDownloading","userDownloadService","Installation","globalClasses","globalSoftwareStyles","setAnchorEl","installations","setInstallations","downCatDownBusArea","setDownCatDownBusArea","installation","setInstallation","handleClick","_e$currentTarget$pare","_e$currentTarget$pare2","ins","responseInstallations","applicationDownloadService","loadInstallations","responseCatDownlaods","businessAreaDownloads","downloadApplication","hasGains","totalCards","handlePopoverClose","downloadGains","openGains","loadWebProducts","webProducts","setModal","webProductColumns","webProductData","downloadWebProductLicense","handleModal","Updates","setUp","updates","setUpdates","upgrades","setUpgrades","loadingUpdt","setLoadingUpdt","loadingUpgr","setLoadingUpgr","u","responseUpdates","loadUpdates","responseUpgrades","loadUpgrades","loadData","upgradeColumns","upgradeData","updateColumns","updateData","loadCarouselManagement","loadSlideImage","addorUpdtSlide","newImage","setSlideStatus","newStatus","rowOrder","deleteSlide","CarouselManager","fetchedRows","setFetchedRows","setRows","setRowCount","activeRowCount","setActiveRowCount","rowsBlobImg","setRowsBlobImg","compSections","setCompSections","addUpdtModal","addUpdtModalTitle","setAddUpdtModalTitle","addUpdtTitleVariant","setAddUpdtTitleVariant","setFilter","deleteRow","setDeleteRow","emptyAddOrUpdt","handleImageChange","getImageAddedMessage","handleAddUpdtModal","addOrUpdtToComp","F3MCarouselStateSection","F3MCarouselInfoFields","handleSuccess","slides","buildRows","resultRows","Promise","all","rowId","blobImg","rowBlobImg","getImage","stopPropagation","actRowId","handleChangeStatus","handleButtonLink","LinkIcon","deleteButton","handleDeleteBtn","DeleteIcon","newSortDirection","newField","F3MAddUpdt","delSlide","applicationDownloads","applicationDownloadId","delete","fetchedApplicationDownloads","setApplicationDownloads","del","setDel","setCallApiToSave","createApplicationDownload","loadApplicationDownloads","getApplicationDownloads","appDownFilesToPresent","F3MAppDownFilesMulti","rowIndex","applicationDownload","appDownType","updateApplicationDownload","F3MAppDownFilesInd","F3MApplicationChoice","deleteApplicationDownload","handleDelDownCatDown","downloadCategories","downloadCategoryid","downloadCategoriesService","isChangeStatus","IsChangeStatus","DownloadCategories","fetchedDownloadCategories","setDownloadCategories","setBusinessAreasFilter","setActiveBusAreasFilter","loadDownloadCategories","loadDownCatBusAreas","Error","filterBusAreaToApply","downloadCategoryToUpdate","delDownloadCategory","downloadCategoryDownloads","DownloadCategoryDownloads","fetchedDownloadCategoryDownloads","setDownloadCategoryDownloads","loadDownloadCategoryDownloads","downloadCategoryDownload","F3MDownCatDownlsStateSection","downloadCategoryDownloadToUpdate","delDownloadCategoryDownload","fetchedDownloads","downloadId","LOGIN","COMPONENT","Login","HOMEPAGE","Dashboard","BASE","Licensing","Incidents","Contracts","Reports","Downloads","ApplicationsManager","setValue","Tabs","newValue","indicatorColor","textColor","Tab","TransitionGroup","CSSTransition","classNames","appear","enter","exit","ApplicationDownload","DownloadManager","setDownloads","clientNameNumber","createDownload","updateDownload","deleteDownload","handleDelDownload","isRefreshing","failedQueue","interceptors","startsWith","Authorization","config","_retry","resolve","reject","token","err","arguments","prom","processQueue","responseType","loadApplication","loadApplicationVersions","getApplicationDownload","maxPlans","downloadProgress","onDownloadProgress","servCatalogService","remoteAssistanceService","contractActions","loadServiceContractsRequest","loadServiceContractsSuccess","loadServiceContractsError","loadAssistanceContractsRequest","loadAssistanceContractsSuccess","loadAssistanceContractsError","downloadActions","loadDownloadsRequest","loadDownloadsSuccess","loadDownloadsError","incidentActions","handlePageChange","handleRowsPerPageChange","loadIncidentsRequest","loadIncidentsSuccess","loadIncidentsError","_getState$incidents","licensingActions","loadProductsRequest","loadProductsSuccess","loadProductsError","loadWebProductsRequest","loadWebProductsSuccess","loadWebProductsError","handleProductPageChange","handleProductRowsPerPageChange","orderProduct","_getState$licensing","_getState$licensing2","reportActions","loadStatisticsRequest","loadStatisticsSuccess","loadStatisticsError","loadTicketsRequest","loadTicketsSuccess","loadTicketsError","loadYearsRequest","loadYearsSuccess","loadYearsError","_getState$reports","_getState$reports2","_getState$reports3","appDownloadActions","form","LoginForm","handleSubmit","passwordVisible","setPasswordVisibility","noValidate","onSubmit","InputAdornment","togglePassword","VisibilityOffIcon","underline","handleClose","paperRemoteAssist","fetchedCarousel","setFetchedCarousel","setCarousel","expired","fetchData","res","ordFinalCar","F3MAppBar","content","innerContent","firstLine","seccondLine","NotFound","history","useHistory","Routes","useLocation","BrowserRouter","Route","render","exact","servCatalogActions","loadServCatalog","servCatalogResp","servCatalogOperations","loadServCatalogUrl","_props$commonState","IsBackoffice","F3MFooter","logoutConfirmationOpen","Home","isLocalhost","registerValidSW","swUrl","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","console","log","onUpdate","onSuccess","initialState","commonReducer","contractReducer","downloadReducer","incidentReducer","licensingReducer","expiresOn","loginReducer","accessToken","expiration","reportReducer","servCatalogReducer","appDownloadReducer","configureStore","middleware","thunk","routerMiddleware","reducers","rootReducer","combineReducers","connectRouter","enhancers","windowIfDefined","__REDUX_DEVTOOLS_EXTENSION__","createStore","compose","applyMiddleware","createBrowserHistory","library","add","fab","fas","ReactDOM","Provider","ConnectedRouter","ThemeProvider","CssBaseline","App","getElementById","process","origin","fetch","contentType","get","indexOf","ready","unregister","reload","checkValidServiceWorker"],"mappings":"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","file":"static/js/main.47399fa4.chunk.js","sourcesContent":["import {\n ToggleSidebar,\n ToggleSoftwareSidebar,\n ToggleServiceSidebar,\n ToggleLogoutConfirmation,\n ToggleBackofficeSidebar\n} from '../../types/store/common'\n\nconst commonActions = {\n toggleSidebar: (): ToggleSidebar => {\n return {type: 'COMMON_TOGGLE_SIDEBAR'}\n },\n\n toggleSoftwareSidebar: (): ToggleSoftwareSidebar => {\n return {type: 'COMMON_TOGGLE_SOFTWARE_SIDEBAR'}\n },\n\n toggleServiceSidebar: (): ToggleServiceSidebar => {\n return {type: 'COMMON_TOGGLE_SERVICE_SIDEBAR'}\n },\n\n toggleBackofficeSidebar: (): ToggleBackofficeSidebar => {\n return {type: 'COMMON_TOGGLE_BACKOFFICE_SIDEBAR'}\n },\n\n toggleLogoutConfirmation: (): ToggleLogoutConfirmation => {\n return {type: 'COMMON_TOGGLE_LOGOUT_CONFIRMATION'}\n }\n}\n\nexport default commonActions","import { AppThunkAction } from '../../types/store'\nimport { CommonActions } from '../../types/store/common'\nimport commonActions from '../actions/commonActions'\n\nconst { toggleSidebar, toggleSoftwareSidebar, toggleServiceSidebar, toggleBackofficeSidebar, toggleLogoutConfirmation } = commonActions\n\nconst commonOperations = {\n toggleSidebar: (event: React.MouseEvent): AppThunkAction => (dispatch, getState) => {\n event?.preventDefault()\n \n if(getState().common?.sidebarSoftwareOpen) {\n dispatch(toggleSoftwareSidebar())\n }\n\n if(getState().common?.sidebarServicesOpen) {\n dispatch(toggleServiceSidebar())\n }\n\n if(getState().common?.sidebarBackofficeOpen) {\n dispatch(toggleBackofficeSidebar())\n }\n\n dispatch(toggleSidebar())\n },\n\n toggleSoftwareSidebar: (): AppThunkAction => (dispatch, getState) => {\n if (!getState().common?.sidebarOpen) {\n dispatch(toggleSidebar())\n }\n\n dispatch(toggleSoftwareSidebar())\n },\n\n toggleServiceSidebar: (): AppThunkAction => (dispatch, getState) => {\n if (!getState().common?.sidebarOpen) {\n dispatch(toggleSidebar())\n }\n\n dispatch(toggleServiceSidebar())\n },\n\n toggleBackofficeSidebar: (): AppThunkAction => (dispatch, getState) => {\n if (!getState().common?.sidebarOpen) {\n dispatch(toggleSidebar())\n }\n\n dispatch(toggleBackofficeSidebar())\n },\n\n toggleLogoutConfirmation: (): AppThunkAction => (dispatch, getState) => {\n dispatch(toggleLogoutConfirmation())\n }\n}\n\nexport default commonOperations","import axios from 'axios'\n\nconst api = axios.create({\n headers: {\n 'Cache-Control': 'no-store, no-cache, must-revalidate',\n 'Pragma': 'no-cache',\n 'Expires': '0'\n }\n})\n\nexport default api","export const isDefined = (v: any): boolean => \n\tv !== undefined && v !== null\n\nexport const isNumber = (v: any): boolean =>\n\ttypeof v === 'number'\n\nexport const isArray = (v: any) : boolean =>\n\tArray.isArray(v)\n\nexport const isString = (v: any): boolean =>\n\ttypeof v === 'string'\n\nexport const isStringEmpty = (v: string): boolean =>\n\tv.trim() === ''\n\nexport const stringToBool = (v: string): boolean => \n\tv.toUpperCase() === 'TRUE'\n\nexport const clone = (v: any): any => \n\tJSON.parse(JSON.stringify(v))\n\nexport const lastElemOf = (array: any[]): any => \n\tarray[array.length - 1]\n\nexport const isEven = (i: number): boolean =>\n\ti % 2 === 0\n\nexport const isDev = (): boolean =>\n\tprocess.env.NODE_ENV === 'development'\n\nexport const isProd = (): boolean =>\n\tprocess.env.NODE_ENV === 'production'\n\nexport const convertBytesToMbsOrKbsOrGb = (filesize: number) => {\n\tlet size = ''\n\tif(filesize >= 1073741824){\n\t\tsize = filesize / 1073741824 + ' gigabytes'\n\t} else if (filesize >= 1048576) {\n\t\tsize = filesize / 1048576 + ' megabytes'\n\t} else if (filesize >= 1024) {\n\t\tsize = filesize / 1024 + ' kilobytes'\n\t} else {\n\t\tsize = filesize + ' bytes'\n\t}\n\t\n\treturn size\n\t}","import aes from 'crypto-js/aes'\nimport enc from 'crypto-js/enc-utf8'\n\nconst secretKey = 'F3MPortalTopSecretKey'\n\nexport const encrypt = (v: string) => \n\taes.encrypt(v, secretKey).toString()\n\nexport const decrypt = (v: string) => \n\taes.decrypt(v, secretKey).toString(enc)","import { isDefined } from './'\nimport { decrypt, encrypt } from './'\n\nexport const setLocalStorage = (n: string, v: any): void => \n\tlocalStorage.setItem(n, encrypt(JSON.stringify(v)))\n\nexport const getLocalStorage = (n: string): any => \n\tisDefined(localStorage.getItem(n)) ? JSON.parse(decrypt(localStorage.getItem(n)!)) : ''\n\nexport const removeLocalStorage = (n: string): void =>\n\tlocalStorage.removeItem(n)","import i18n from 'i18next'\nimport { initReactI18next } from 'react-i18next'\n\nimport ptPT from './resources/pt-PT.json'\n\ni18n.use(initReactI18next).init({\n interpolation: { \n escapeValue: false \n },\n lng: 'pt-PT',\n fallbackLng: 'pt-PT',\n resources: {\n 'pt-PT': {\n translation: ptPT\n }\n }\n})\n\nexport default i18n","import { convertBytesToMbsOrKbsOrGb } from \".\"\nimport i18n from \"../i18n\"\nimport { AddUpdtSlide } from \"../types/services/carousel\"\n\nconst isSlideImageDefined = (image: (File | string)[] | null) => {\n return image !== null && image.length > 0\n}\n\nconst isSlideTitleDefined = (title: string) => {\n return title.length > 0\n}\n\nconst isSlideButtonDefined = (buttonText: string, buttonLink: string) => {\n return (!buttonText || buttonText.length === 0) || (buttonText.length > 0 && buttonLink.length > 0)\n}\n\nexport const isSlideValid = (addOrUpdt: AddUpdtSlide) => {\n return isSlideImageDefined(addOrUpdt.image) && isSlideTitleDefined(addOrUpdt.title) && isSlideButtonDefined(addOrUpdt.buttonText, addOrUpdt.buttonLink)\n}\n\nexport const getFileLimitExceedMessage = (filesLimit: number) => {\n return i18n.t('dropzone.filesLimitExceed').replace('FILE_LIMIT', filesLimit ? filesLimit.toString() : '')\n}\n\nexport const getFileRemovedMessage = (fileName: string) => {\n return i18n.t('dropzone.fileRemoved').replace('FILE_NAME', fileName)\n}\n\nexport const getDropRejectMessage = (rejectedFile: File, acceptedFiles: string[], maxFileSize: number) => {\n let message = i18n.t('dropzone.fileRejected').replace('FILE_NAME', rejectedFile.name)\n\n if (acceptedFiles.length > 0 && !acceptedFiles.includes(rejectedFile.type))\n message += i18n.t('dropzone.fileNotSupported')\n\n else if (rejectedFile.size > maxFileSize)\n message += i18n.t('dropzone.fileSizeLimit').replace('FILE_SIZE', convertBytesToMbsOrKbsOrGb(maxFileSize))\n\n return message\n}","import i18n from \"../i18n\"\nimport { ApplicationDownloadUpdtCreate, FilesStruct as FilesStructAppDown } from \"../types/services/applicationDownload\"\nimport { BusinessArea } from \"../types/services/backoffice\"\nimport { DownloadCategoryUpdtCreate } from \"../types/services/downloadCategories\"\nimport { DownloadCategoryDownloadsUpdtCreate, FilesStruct as FilesStructDownCat } from \"../types/services/downloadCategoryDownloads\"\nimport { DownloadManagerUpdtCreate } from \"../types/services/downloadsManager\"\n\nconst getAllBusAreasName = (businessAreas: BusinessArea[]) => {\n return businessAreas.map(busArea => i18n.t(busArea.name)).join(' + ')\n}\n\nconst getAllBusAreasCode = (businessAreas: BusinessArea[]) => {\n return businessAreas.map(busArea => busArea.id).join('+')\n}\n\nexport const buildBusAreasItemsToSelect = (businessAreas: [BusinessArea[]]) => {\n return businessAreas.map(busArea => { return { id: getAllBusAreasCode(busArea), label: getAllBusAreasName(busArea) } })\n}\n\nconst isCategoryNameDefined = (name: string | undefined) => {\n return name !== undefined && name.length > 0\n}\n\nconst isBusinessAreaDefined = (businessArea: BusinessArea[] | undefined) => {\n return businessArea !== undefined && businessArea.length > 0\n}\n\nconst isDownloadTypeDefined = (downloadType: number | undefined) => {\n return downloadType !== undefined\n}\n\nconst isCardTypeDefined = (cardType: number | undefined) => {\n return cardType !== undefined\n}\n\nexport const isCategoryDownloadValid = (addOrUpdt: DownloadCategoryUpdtCreate) => {\n return (isCategoryNameDefined(addOrUpdt.name)\n && isBusinessAreaDefined(addOrUpdt.businessAreas)\n && isDownloadTypeDefined(addOrUpdt.downloadType)\n && isCardTypeDefined(addOrUpdt.cardType))\n}\n\nconst isCategoryDefined = (categoryId: number | null) => {\n return categoryId !== null\n}\n\nconst isFileAndDescDefined = (isNewFile: boolean, files: FilesStructDownCat | null) => {\n return isNewFile === false || (files !== null && Object.keys(files).length > 0)\n}\n\nexport const isDownloadCategoryDownloadValid = (addOrUpdt: DownloadCategoryDownloadsUpdtCreate) => {\n return (isCategoryDefined(addOrUpdt.categoryId)\n && isFileAndDescDefined(addOrUpdt.isNewFile, addOrUpdt.files))\n}\n\nconst isFileDefined = (isNewFile: boolean | undefined, file: File | undefined, files: FilesStructAppDown | undefined) => {\n return (isNewFile === false\n || file !== undefined\n || (files !== undefined && Object.keys(files).length > 0))\n}\n\nconst isApplicationDefined = (applicationId: string | undefined, applicationName: string | undefined) => {\n return applicationId !== undefined && applicationName !== undefined\n}\n\nconst isVersionDefined = (version: string | undefined) => {\n return version !== undefined && version !== ''\n}\n\nexport const isApplicationDownloadValid = (addOrUpdt: ApplicationDownloadUpdtCreate) => {\n return (isFileDefined(addOrUpdt.isNewFile, addOrUpdt.file, addOrUpdt.files)\n && isApplicationDefined(addOrUpdt.applicationId, addOrUpdt.applicationName)\n && isVersionDefined(addOrUpdt.version))\n}\n\nexport const getFileVersion = (fileName: string) => {\n const nameSplitToVersion = (/^(\\d+(\\.\\d+)*)_/g).exec(fileName)\n if (nameSplitToVersion === null) {\n return ''\n }\n else {\n return nameSplitToVersion[1]\n }\n}\n\nconst isFileDownloadDefined = (isNewFile: boolean | undefined, file: File | undefined) => {\n return isNewFile === false || file !== undefined\n}\n\nconst isClientDefined = (clientId: string | undefined) => {\n return clientId !== undefined && clientId !== ''\n}\n\nconst isDescriptionDefined = (description: string | undefined) => {\n return description !== undefined && description !== ''\n}\n\nexport const isDownloadValid = (addOrUpdt: DownloadManagerUpdtCreate) => {\n return (isFileDownloadDefined(addOrUpdt.isNewFile, addOrUpdt.file)\n && isClientDefined(addOrUpdt.clientId)\n && isDescriptionDefined(addOrUpdt.description))\n}","import { AxiosResponse } from \"axios\"\n\ndeclare global {\n interface Window {\n ApplePaySetupFeature: any,\n safari: any\n }\n}\n\nconst agentHas = (keyword: string) => {\n return navigator.userAgent.toLowerCase().search(keyword.toLowerCase()) > -1;\n}\n\nconst isIOsMobile = () => {\n return /iPhone|iPad|iPod/i.test(navigator.userAgent)\n}\n\nexport const openOrDownload = (response?: AxiosResponse, filename?: string, blob?: Blob) => {\n\n const isSafari = (!!window.ApplePaySetupFeature || !!window.safari) && agentHas(\"Safari\") && !agentHas(\"Chrome\") && !agentHas(\"CriOS\")\n \n if(response !== undefined){\n blob = new Blob([response.data], { type: response.headers['content-type'] })\n }\n\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n window.navigator.msSaveOrOpenBlob(blob);\n }\n else if (((response !== undefined && response.headers['content-type'].toString().includes('pdf')) && !isSafari && !isIOsMobile()) || (response === undefined)) {\n window.open(URL.createObjectURL(blob))\n }\n else {\n let a = document.createElement('a')\n\n a.href = window.URL.createObjectURL(blob)\n\n a.download = filename!\n\n document.body.appendChild(a)\n\n a.click()\n\n document.body.removeChild(a)\n }\n}","const InputFields = {\n \"common\": {\n \"title\": 50,\n \"description\": 150\n },\n \"carousel\": {\n \"buttonText\": 15\n }\n}\n\nexport default InputFields","import { isDev } from '../utils'\n\nexport const PROD = {\n API_URL: 'https://' + window.location.hostname + '/api'\n}\nexport const DEV = {\n API_URL: 'https://localhost:44380/api'\n}\nexport const CONFIG = isDev() ? DEV : PROD\n\nexport const ENDPOINTS = {\n TOKEN_CREATE : '/Token/Create',\n TOKEN_REFRESH : '/Token/Refresh',\n TOKEN_REVOKE : '/Token/Revoke',\n INCIDENT : '/Incident',\n INCIDENT_PDF : '/Incident/PDF',\n INCIDENT_CONTRACTS : '/Incident/Contracts',\n INCIDENT_APPLICATION : '/Incident/Applications',\n INCIDENT_EXCEL : '/Incident/Excel',\n REPORT : '/Ticket',\n REPORT_STATISTICS : '/Ticket/Stats',\n REPORT_STATS_LAST_X_MONTHS : '/Ticket/Stats/LastMonths',\n REPORT_YEARS : '/Ticket/Years',\n REPORT_EXCEL : '/Ticket/Excel',\n CONTRACT_SERVICE_CONTRACTS : '/Contract/ServiceContracts',\n CONTRACT_ASSISTANCE_CONTRACTS : '/Contract/AssistanceContracts',\n LICENSING_PRODUCTS : '/License/Applications',\n LICENSING_WEB_PRODUCTS : '/License/WebApplications',\n LICENSING_PRODUCT_LICENSE : '/License/Application',\n LICENSING_PRODUCT_LICENSE_PDF : '/License/Application/PDF',\n LICENSING_WEB_PRODUCT_LICENSE : '/License/WebApplication',\n APPLICATION_DOWNLOAD : '/ApplicationDownload',\n APPLICATION_DOWNLOAD_INSTALLATION: '/ApplicationDownload/Installation',\n APPLICATION_DOWNLOAD_UPGRADE : '/ApplicationDownload/Upgrade',\n APPLICATION_DOWNLOAD_UPDATE : '/ApplicationDownload/Update',\n APPLICATION_DOWNLOAD_DOWNLOAD : '/ApplicationDownload/Download',\n APPLICATION_DOWNLOAD_GAINS : '/ApplicationDownload/Gains',\n USER_DOWNLOAD : '/UserDownload',\n USER_DOWNLOAD_DOWNLOAD : '/UserDownload/Download',\n ACCOUNT : '/Account',\n APPLICATIONS : '/Applications',\n APPLICATIONVERSIONS : '/Application/Versions',\n CAROUSELLOGIN : '/Carousel',\n CAROUSELMANAGEMENT : '/Carousel/Management',\n CAROUSELADDORUPDTSLIDE : '/Carousel/Slide',\n SETSLIDESTATUS : '/Carousel/Management/SetSlideStatus',\n DELETESLIDE : '/Carousel/Management/Delete',\n SLIDEIMAGE : '/Carousel/Slide/Image',\n SERVCATALOG : '/ServicesCatalog',\n DOWNLOADCATEGORY : '/DownloadCategory',\n DOWNCATBUSINESSAREAS : '/DownloadCategory/BusinessAreas',\n DOWNCATDOWNS : '/DownloadCategoryDownload',\n DOWNCATDOWNBUSAREA : '/DownloadCategoryDownload/BusinessArea',\n DOWNCATBUSAREASCATEG : '/DownloadCategoryDownload/BusinessAreas/Categories',\n BUSINESSAREAS : '/BusinessAreas',\n DOWNLOADMANAGER : '/DownloadManager',\n CLIENTS : '/Clients',\n REMOTEASSISTANCE : '/RemoteAssistance'\n}\n","export const LINKS = {\n LINKEDIN: 'https://www.linkedin.com/company/f3m-information-systems-s-a-',\n FACEBOOK: 'https://www.facebook.com/F3MSoftware',\n TWITTER: 'https://twitter.com/F3MSA',\n YOUTUBE: 'https://www.youtube.com/user/F3MInformationSystem',\n INSTAGRAM: 'https://www.instagram.com/f3m_tecnologia/'\n}\n","export const STORAGE = {\n ACCESS_TOKEN : '_token',\n REFRESH_TOKEN: '_refreshToken',\n USERNAME : '_username',\n EXPIRES_ON : '_expiresOn'\n}\n\n","export const WIDTHS = {\n DESKTOP_DRAWER : 296,\n DESKTOP_DRAWER_CLOSED: 99,\n TABLET_DRAWER : 296,\n MOBILE_DRAWER : 268,\n SIDEBAR_OPEN_WINDOW : 2560\n}\n","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n titlePage: {\n fontFamily: 'Roboto',\n fontSize: '15px',\n color: '#989898',\n textDecoration: 'none solid rgb(152, 152, 152)',\n borderBottom: '#dadada 1px solid'\n },\n buttons: {\n width: '100%'\n },\n quickAccess: {\n marginTop: '32px',\n height: '350px'\n },\n quickAccessBtns: {\n backgroundColor: 'white',\n width: '100%',\n height: '106px',\n color: theme.palette.warning.main,\n borderRadius: '4px',\n boxShadow: '0px 3px 6px rgb(0 0 0 / 16%)',\n '&:hover': {\n color: 'white',\n backgroundColor: theme.palette.warning.main\n }\n },\n icon: {\n marginRight: '1vmax'\n },\n buttonSeeMore: {\n position: 'absolute',\n bottom: '15px',\n color: theme.palette.warning.main\n },\n cardTitleOrange: {\n color: theme.palette.warning.main\n },\n plansHeaders: {\n fontFamily: 'Roboto',\n fontSize: '14px',\n color: '#666666',\n textDecoration: 'none solid rgb(102, 102, 102)'\n },\n plansContent: {\n borderTop: '1px solid #dadada',\n width: '100%'\n },\n plansContentName: {\n fontFamily: 'Roboto',\n fontSize: '14px',\n fontWeight: 500,\n color: '#666666',\n textDecoration: 'none solid rgb(102, 102, 102)'\n },\n plansContentEnds: {\n padding: '0 !important',\n borderRadius: '4px',\n backgroundSize: 'cover',\n fontWeight: 500,\n fontFamily: 'Roboto',\n height: '25px',\n fontSize: '12px',\n textDecoration: 'none solid rgb(255, 255, 255)',\n textAlign: 'center'\n }\n}))\n\nexport default useStyles","import { Theme, makeStyles } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n maxHeight: '730px',\n margin: 'auto'\n },\n modalTitle: {\n fontWeight: 700,\n borderBottom: 'solid 1px #dadada'\n },\n modalContent: {\n height: 'calc(100vh-50px)',\n overflowY: 'auto'\n },\n modalFooter: {\n height: '50px',\n borderTop: 'solid 1px #dadada'\n },\n required: {\n color: 'red'\n }\n}))\n\nexport default useStyles","import { CircularProgress, Dialog, DialogActions, DialogContent, DialogTitle, Typography } from \"@material-ui/core\"\nimport React, { Dispatch, SetStateAction, useState } from \"react\"\nimport { connect, ConnectedProps } from \"react-redux\"\nimport { F3MButton, F3MSnackbarState } from \"..\"\nimport i18n from \"../../i18n\"\nimport { appDownloadOperations } from \"../../store/operations\"\nimport useStyles from \"./styles\"\n\nimport { AddUpdtVariant, F3MAddUpdtSection } from \"./types\"\n\ninterface ContentProps {\n title: string\n titleVariant: string\n open: boolean\n setOpen: Dispatch>\n sections: Array\n addOrUpdt: AddUpdtVariant\n setSnackBar: Dispatch>\n update: boolean\n setUpdate: Dispatch>\n resetAddOrUpdt: () => void\n isValid: (addOrUpdt: any) => boolean\n callApiToSave: (object: any) => any\n maxWidth?: 'lg'\n}\n\nconst mapDispatchToProps = (dispatch: any) => ({\n clearVersion: () => dispatch(appDownloadOperations.clearVersion())\n})\n\nconst connector = connect(null, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst F3MAddUpdt = (props: ContentProps & Props) => {\n const classes = useStyles()\n\n const {\n title,\n titleVariant,\n open,\n setOpen,\n sections,\n addOrUpdt,\n setSnackBar,\n update,\n setUpdate,\n resetAddOrUpdt,\n isValid,\n callApiToSave,\n maxWidth,\n clearVersion\n } = props\n\n const [loading, setLoading] = useState(false)\n\n const handleSave = async () => {\n setLoading(true)\n if (isValid(addOrUpdt)) {\n await callApiToSave(addOrUpdt).then(() => {\n resetAddOrUpdt()\n setUpdate(!update)\n setOpen(!open)\n if (titleVariant === 'add') {\n setSnackBar({ open: true, severity: 'success', message: i18n.t('snackbar.createSuccess') })\n }\n else {\n setSnackBar({ open: true, severity: 'success', message: i18n.t('snackbar.updateSuccess') })\n }\n clearVersion()\n }).catch((error: any) => {\n let message: string = i18n.t('snackbar.errorOccurred')\n if (error.status === 409) {\n message = i18n.t('snackbar.fileExists') + \" Ficheiro: \" + error.data.applicationMessages[0]\n }\n setSnackBar({ open: true, severity: 'error', message: message })\n })\n }\n else {\n setSnackBar({ open: true, severity: 'error', message: i18n.t('snackbar.mandatoryFields') })\n }\n setLoading(false)\n }\n\n const handleCancel = () => {\n setOpen(!open)\n resetAddOrUpdt()\n clearVersion()\n }\n\n return (\n <>\n \n \n {i18n.t(title)}\n \n
\n {sections.map((section, index) => (\n \n {section.title !== undefined &&\n \n {i18n.t(section.title)}{section.required === true &&  *}\n \n }\n {section.component !== undefined &&\n section.component\n }\n \n ))}\n
\n \n handleCancel()} fullWidth={false} variant='text'>\n {i18n.t('button.cancel')}\n \n await handleSave()} fullWidth={false}>\n {i18n.t('button.save')}\n \n \n {loading &&\n \n }\n \n \n )\n}\n\nexport default connector(F3MAddUpdt)","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n logo: {\n verticalAlign: 'middle',\n [theme.breakpoints.up('sm')]: {\n width: '120px',\n height: '39px'\n },\n [theme.breakpoints.down('xs')]: {\n width: '110px',\n height: '36px'\n }\n }\n}))\n\nexport default useStyles","import React from 'react'\n\nimport { Link } from 'react-router-dom'\nimport useStyles from './styles'\n\nconst LoginAppBar = () => {\n const classes = useStyles()\n \n return (\n \n Logo\n \n )\n}\n\nexport default LoginAppBar","import { AccountResponse } from '../../types/services/account'\nimport { TokenCreateResponse, TokenRefreshResponse } from '../../types/services/auth'\nimport {\n Carousel,\n CloseExpiredSnackbar,\n HandleChange,\n LoadCarouselError,\n LoadCarouselRequest,\n LoadCarouselSuccess,\n LoginError,\n LoginRequest,\n LoginSuccess,\n LogoutError,\n LogoutRequest,\n LogoutSuccess,\n RefreshTokenError,\n RefreshTokenRequest,\n RefreshTokenSuccess,\n SetUser,\n ClearData\n} from '../../types/store/login'\n\nconst loginActions = {\n handleChange: (name: string, value: string): HandleChange => {\n return {type: 'LOGIN_HANDLE_CHANGE', payload: {name, value}}\n },\n\n loginRequest: (): LoginRequest => {\n return {type: 'LOGIN_REQUEST'}\n },\n\n loginSuccess: (response: TokenCreateResponse): LoginSuccess => {\n return {type: 'LOGIN_SUCCESS', payload: response}\n },\n\n loginError: (error: string): LoginError => {\n return {type: 'LOGIN_ERROR', payload: error}\n },\n\n logoutRequest: (): LogoutRequest => {\n return {type: 'LOGIN_LOGOUT_REQUEST'}\n },\n\n logoutSuccess: (): LogoutSuccess => {\n return {type: 'LOGIN_LOGOUT_SUCCESS'}\n },\n\n logoutError: (error: string): LogoutError => {\n return {type: 'LOGIN_LOGOUT_ERROR'}\n },\n\n refreshTokenRequest: (): RefreshTokenRequest => {\n return {type: 'LOGIN_REFRESH_TOKEN_REQUEST'}\n },\n\n refreshTokenSuccess: (response: TokenRefreshResponse): RefreshTokenSuccess => {\n return {type: 'LOGIN_REFRESH_TOKEN_SUCCESS', payload: response}\n },\n\n refreshTokenError: (error: string): RefreshTokenError => {\n return {type: 'LOGIN_REFRESH_TOKEN_ERROR', payload: error}\n },\n\n loadCarouselRequest: (): LoadCarouselRequest => {\n return {type: 'LOGIN_LOAD_CAROUSEL_REQUEST'}\n },\n\n loadCarouselSuccess: (response: Carousel[]): LoadCarouselSuccess => {\n return {type: 'LOGIN_LOAD_CAROUSEL_SUCCESS', payload: response}\n },\n\n loadCarouselError: (error: string): LoadCarouselError => {\n return {type: 'LOGIN_LOAD_CAROUSEL_ERROR', payload: error}\n },\n\n closeExpiredSnackbar: (): CloseExpiredSnackbar => {\n return {type: 'LOGIN_CLOSE_EXPIRED_SNACKBAR'}\n },\n\n setUser: (user: AccountResponse): SetUser => {\n return {type: 'LOGIN_SET_USER', payload: user}\n },\n\n clearData: (): ClearData => {\n return {type: 'LOGIN_CLEAR_DATA'}\n }\n}\n\nexport default loginActions\n","import { push } from 'connected-react-router'\n\nimport { store } from '../..'\nimport { accountService, authService, carouselService } from '../../api'\nimport { AppThunkAction } from '../../types/store'\nimport { LoginActions } from '../../types/store/login'\nimport loginActions from '../actions/loginActions'\n\nconst {\n closeExpiredSnackbar,\n handleChange,\n loadCarouselError,\n loadCarouselRequest,\n loadCarouselSuccess,\n loginError,\n loginRequest,\n loginSuccess,\n logoutError,\n logoutRequest,\n logoutSuccess,\n refreshTokenError,\n refreshTokenRequest,\n refreshTokenSuccess,\n setUser,\n clearData\n} = loginActions\n\nconst loginOperations = {\n handleChange: (event: React.ChangeEvent): AppThunkAction => async (dispatch, getState) => {\n const { name, value } = event.target\n \n dispatch(handleChange(name, value))\n },\n\n login: (event: React.FormEvent): AppThunkAction => async (dispatch, getState) => {\n dispatch(loginRequest())\n\n try {\n event.preventDefault()\n const {username, password} = getState().login!\n const response = await authService.tokenCreate({username, password})\n \n if(response.isSuccess) {\n dispatch(loginSuccess(response.result))\n } else {\n dispatch(loginError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loginError(e.response))\n }\n },\n\n refreshToken: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(refreshTokenRequest())\n\n try {\n const request = { refreshToken: getState().login?.tokenRefresh! }\n const response = await authService.tokenRefresh(request)\n\n if(response.isSuccess) {\n dispatch(refreshTokenSuccess(response.result))\n } else {\n dispatch(refreshTokenError(response.errorMessage))\n }\n } catch(e) {\n dispatch(refreshTokenError(e.response))\n }\n },\n\n logout: (): AppThunkAction => async (dispatch, getState) =>{\n dispatch(logoutRequest())\n \n try {\n const response = await authService.tokenRevoke()\n\n if(response.isSuccess) {\n dispatch(logoutSuccess())\n } else {\n dispatch(logoutError(response.errorMessage))\n }\n store.dispatch(push('/'))\n } catch(e) {\n dispatch(logoutError(e.response))\n store.dispatch(push('/'))\n }\n },\n\n loadCarousel: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadCarouselRequest())\n\n try {\n const response = await carouselService.loadCarouselLogin()\n\n dispatch(loadCarouselSuccess(response.result))\n } catch(e) {\n dispatch(loadCarouselError(e.response))\n }\n \n },\n\n closeExpiredSnackbar: (e?: React.SyntheticEvent, r?: string): AppThunkAction => async (dispatch, getState) => {\n if(r !== 'clickaway') {\n dispatch(closeExpiredSnackbar())\n }\n },\n\n setUser: (): AppThunkAction => async (dispatch, getState) => {\n try {\n const account = await accountService.accountInfo()\n\n if(account.isSuccess) {\n dispatch(setUser(account.result))\n } else {\n dispatch(setUser({name: '', role: ''}))\n }\n } catch(e) {\n dispatch(setUser({name: '', role: ''}))\n }\n \n },\n\n clearData: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(clearData())\n }\n}\n\nexport default loginOperations","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n sidebarToggleIcon: {\n [theme.breakpoints.up('lg')]: {\n display: 'none'\n }\n },\n logo: {\n verticalAlign: 'middle',\n [theme.breakpoints.up('sm')]: {\n width: '120px',\n height: '39px'\n },\n [theme.breakpoints.down('xs')]: {\n width: '110px',\n height: '36px'\n }\n },\n contentContainer: {\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'center',\n padding: 0,\n marginRight: 0,\n width: '100%'\n },\n avatar: {\n marginLeft: theme.spacing(1),\n width: 30,\n height: 30,\n '& > img': {\n border: '1px solid ' + theme.palette.primary.main,\n borderRadius: '50%'\n }\n \n },\n menuExpand: {\n padding: 0,\n transition: theme.transitions.create(['transform'], {\n duration: theme.transitions.duration.short\n })\n },\n menuExpandClose: {\n transform: 'rotate(-180deg)'\n },\n menuPaper: {\n maxWidth: 240,\n width: 240,\n minWidth: 240\n },\n menuTitle: {\n paddingTop: theme.spacing(1),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2)\n },\n divider: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n },\n item: {\n marginTop: '12px',\n marginBottom: '12px'\n }\n}))\n\nexport default useStyles","import React from 'react'\nimport clsx from 'clsx'\n\nimport { connect, ConnectedProps } from 'react-redux'\nimport { Link } from 'react-router-dom'\n\nimport { IconButton, Container, Avatar, Menu, MenuItem, Typography, Divider } from '@material-ui/core'\nimport MenuIcon from '@material-ui/icons/Menu'\nimport CloseIcon from '@material-ui/icons/Close'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\n\nimport i18n from '../../../i18n'\nimport { ApplicationState } from '../../../types/store'\nimport commonOperations from '../../../store/operations/commonOperations'\nimport loginOperations from '../../../store/operations/loginOperations'\n\nimport useStyles from './styles'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n commonState: state.common,\n loginState: state.login\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n toggleSidebar: (e: any) => dispatch(commonOperations.toggleSidebar(e)),\n toggleLogoutConfirmation: () => dispatch(commonOperations.toggleLogoutConfirmation()),\n logout: () => dispatch(loginOperations.logout())\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst HomeAppBar = (props: Props) => {\n const classes = useStyles()\n\n const { sidebarOpen } = props.commonState!\n\n const { user } = props.loginState!\n\n const [menu, setMenu] = React.useState(null)\n\n const menuOpen = (event: React.MouseEvent) => {\n setMenu(event.currentTarget)\n }\n\n const menuClose = () => {\n setMenu(null)\n }\n\n const logoutToggle = () => {\n props.toggleLogoutConfirmation()\n menuClose()\n }\n\n return (\n <>\n \n {sidebarOpen ? : }\n \n \n \n Logo\n \n\n \n \n \n \n \n \n {user?.name}\n \n {/* {i18n.t('common.settings')} */}\n {i18n.t('common.logout')}\n \n \n \n )\n}\n\nexport default connector(HomeAppBar)","import React from 'react'\n\nimport { connect, ConnectedProps } from 'react-redux'\n\nimport { AppBar, Toolbar } from '@material-ui/core'\n\nimport { ApplicationState } from '../../types/store'\n\nimport LoginAppBar from './Login'\nimport HomeAppBar from './Home'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n loginState: state.login\n})\n\nconst connector = connect(mapStateToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst F3MAppBar = (props: Props) => {\n\n return (\n \n \n { props.loginState?.authenticated ? : }\n \n \n )\n}\n\nexport default connector(F3MAppBar)","import React, { ReactNode, useEffect, useState } from 'react'\n\nimport { CircularProgress, TextField } from '@material-ui/core'\n\nimport { Autocomplete, AutocompleteChangeDetails, AutocompleteChangeReason, AutocompleteCloseReason, AutocompleteInputChangeReason, AutocompleteRenderInputParams } from '@material-ui/lab'\n\nimport { F3MAutocompleteAsyncProps, LookupObject } from './types'\n\nconst F3MAutocompleteAsync = (props: F3MAutocompleteAsyncProps) => {\n const [open, setOpen] = useState(false)\n const [options, setOptions] = useState([])\n const loading = open && options.length === 0\n \n useEffect(() => {\n let active = true\n \n if (!loading) {\n return undefined\n }\n\n const lookup = async () => {\n try {\n const response = await props.lookup(props.search)\n\n if(active)\n setOptions(response.result)\n } catch (e) {\n setOptions([])\n }\n }\n \n lookup()\n \n return () => {\n active = false\n }\n }, [loading, props])\n\n const onOpen = (event: React.ChangeEvent<{}>) => {\n setOpen(true)\n }\n\n const onClose = (event: React.ChangeEvent<{}>, reason: AutocompleteCloseReason) => {\n setOpen(false)\n }\n\n const getOptionSelected = (option: LookupObject, value: LookupObject) => {\n return option.id === value.id\n }\n\n const getOptionLabel = (option: LookupObject) => {\n return option.label\n }\n\n const onChange = (event: React.ChangeEvent<{}>, value: LookupObject | null, reason: AutocompleteChangeReason, details?: AutocompleteChangeDetails | undefined) => {\n props.onChange(value)\n }\n\n const onInputChange = (event: React.ChangeEvent<{}>, value: string, reason: AutocompleteInputChangeReason) => {\n setOptions([])\n props.onInputChange(value)\n }\n\n const Input = (params: AutocompleteRenderInputParams): ReactNode => {\n return (\n \n {loading ? : null}\n {params.InputProps.endAdornment}\n \n )\n }}\n />\n )\n \n }\n \n return (\n \n )\n}\n\nexport default F3MAutocompleteAsync","import { Theme, makeStyles } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => ({\n parent: {\n textTransform: 'uppercase',\n fontSize: 14\n },\n page: {\n fontSize: 14\n }\n}))\n\nexport default useStyles","import React from 'react'\nimport { Breadcrumbs, Typography } from '@material-ui/core'\n\nimport { F3MBreadcrumbsProps } from './types'\n\nimport useStyles from './styles'\n\n// Only works with two levels\n// Ex. Software / Licensing\nconst F3MBreadcrumbs = (props: F3MBreadcrumbsProps) => {\n const classes = useStyles()\n const crumbs = props.path.split('/')\n\n return (\n \n \n {crumbs[0]}\n \n\n \n {crumbs[1]}\n \n \n )\n}\n\nexport default F3MBreadcrumbs","import { Theme, makeStyles, createStyles } from '@material-ui/core'\n\nimport { F3MButtonProps } from './types'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: props => ({\n boxSizing: 'border-box',\n fontWeight: props.bold ? 700 : 500,\n transition: theme.transitions.create(['background-color', 'box-shadow', 'border'], {\n duration: theme.transitions.duration.short\n }),\n '&:hover': {\n color : props.variant === 'outlined' || props.variant === 'contained' ? theme.palette[props.color!].contrastText \n : theme.palette[props.color!].main,\n backgroundColor: props.variant === 'outlined' || props.variant === 'contained' ? theme.palette[props.color!].dark \n : theme.palette[props.color!].light,\n borderColor : props.variant === 'outlined' || props.variant === 'contained' ? theme.palette[props.color!].dark \n : theme.palette[props.color!].light\n }\n }),\n contained: props => ({\n color : theme.palette[props.color!].contrastText,\n backgroundColor: theme.palette[props.color!].main,\n borderColor : theme.palette[props.color!].main,\n boxShadow: '0px 1px 4px rgba(0,0,0,0.2)'\n }),\n outlined: props => ({\n color : theme.palette[props.color!].main,\n borderColor : theme.palette[props.color!].main,\n boxShadow: '0px 1px 4px rgba(0,0,0,0.2)'\n }),\n text: props => ({\n color: theme.palette[props.color!].main,\n border: 'none'\n }),\n disabled: {\n cursor: '',\n '&:hover': {\n backgroundColor: 'transparent'\n }\n }\n}))\n\nexport default useStyles","import React from 'react'\nimport clsx from 'clsx'\n\nimport { Button } from '@material-ui/core'\n\nimport { isDefined } from '../../utils'\n\nimport { F3MButtonProps } from './types'\n\nimport useStyles from './styles'\n\nconst F3MButton = (props: F3MButtonProps) => {\n\n let buttonProps: F3MButtonProps = {\n // CLASSNAME\n className: isDefined(props.className) ? props.className : '',\n\n // Default COLOR PRIMARY\n color: isDefined(props.color) ? props.color : 'primary',\n \n // Default NOT DISABLED\n disabled: isDefined(props.disabled) ? props.disabled : false,\n \n // Default DISABLE ELEVATION TRUE\n disableElevation: isDefined(props.disableElevation) ? props.disableElevation : false,\n \n // Default NOT DISABLE FOCUS RIPPLE\n disableFocusRipple: isDefined(props.disableFocusRipple) ? props.disableFocusRipple : false,\n \n // Default ENDICON UNDEFINED\n endIcon: isDefined(props.endIcon) ? props.endIcon : undefined,\n \n // Default FULLWIDTH\n fullWidth: isDefined(props.fullWidth) ? props.fullWidth : true,\n \n // Default HREF UNDEFINED\n href: isDefined(props.href) ? props.href : undefined,\n\n // ON CLICK\n onClick: props.onClick,\n \n // Default SIZE SMALL\n size: isDefined(props.size) ? props.size : 'small',\n \n // Default STARTICON UNDEFINED\n startIcon: isDefined(props.startIcon) ? props.startIcon : undefined,\n \n // Default VARIANT CONTAINED\n variant: isDefined(props.variant) ? props.variant : 'contained',\n \n // Default NOT BOLD\n bold: isDefined(props.bold) ? props.bold : false,\n \n // Defaul TYPE BUTTON\n type: isDefined(props.type) ? props.type : 'button'\n }\n\n const classes = useStyles(buttonProps)\n\n return(\n \n {props.children}\n \n )\n}\n\nexport default F3MButton\n","import { Theme, makeStyles, createStyles } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n position: 'relative'\n },\n loading: {\n position : 'absolute',\n display : 'flex',\n top : 0,\n left : 0,\n right : 0,\n bottom : 0,\n backgroundColor: 'rgba(255, 255, 255, 0.6)',\n alignContent : 'center',\n alignItems : 'center',\n justifyContent : 'center'\n }\n}))\n\nexport default useStyles","import React from 'react'\nimport clsx from 'clsx'\n\nimport { Box, Card, CircularProgress } from '@material-ui/core'\n\nimport { isDefined } from '../../utils'\n\nimport { F3MCardProps } from './types'\n\nimport useStyles from './styles'\n\nconst F3MCard = (props: F3MCardProps) => {\n const classes = useStyles()\n\n let cardProps: F3MCardProps = {\n // CHILDREN\n children: props.children,\n\n // CLASS NAME\n className: isDefined(props.className) ? clsx(props.className, classes.root) : classes.root,\n\n // COMPONENT\n component: props.component,\n\n // ELEVATION\n elevation: props.elevation,\n\n // LOADING\n loading: props.loading,\n\n // RAISED\n raised: props.raised,\n\n // SQUARE\n square: props.square,\n\n // STYLE\n style: props.style,\n\n // VARIANT\n variant: props.variant\n }\n\n return (\n \n {cardProps.loading &&\n \n \n \n }\n {cardProps.children}\n \n )\n}\n\nexport default F3MCard","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n [theme.breakpoints.up('xs')]: {\n height: '350px'\n },\n [theme.breakpoints.down('xs')]: {\n height: '270px'\n }\n },\n container: {\n width: 'calc(30.775 * (1vw + 1vh - 1vmin))',\n [theme.breakpoints.up('xs')]: {\n height: '350px'\n },\n [theme.breakpoints.down('xs')]: {\n height: '270px'\n },\n fill: '#ffffff',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n text: {\n color: theme.palette.common.white,\n textAlign: 'center'\n }\n}))\n\nexport default useStyles","import { makeStyles, createStyles } from '@material-ui/core'\nimport { IButtonStyle } from '.'\n\nconst useStyles = makeStyles(() => createStyles({\n button: {\n width: '110px',\n height: '30px',\n borderRadius: '4px',\n textDecoration: 'none',\n backgroundColor: (props: IButtonStyle) => props.color ? props.color : '#f7931d'\n },\n textButton: {\n fontWeight: 500,\n fontFamily: 'Roboto',\n lineHeight: '30px',\n fontSize: '12px',\n color: '#ffffff',\n textAlign: 'center'\n }\n}))\n\nexport default useStyles","import React from \"react\"\nimport i18n from \"../../../i18n\"\n\nimport useStyles from \"./styles\"\nimport { IButtonStyle } from \"./types\"\n\nconst F3MCarouselButton = (props: { buttonLink: string | undefined, buttonColor: string | undefined, buttonText: string | undefined }) => {\n const {\n buttonLink,\n buttonColor,\n buttonText\n } = props\n\n const buttonStyle: IButtonStyle = {\n color: buttonColor\n }\n\n const classes = useStyles(buttonStyle)\n\n return (\n \n \n {buttonText ? buttonText : i18n.t('login.carouselButton')}\n \n \n )\n}\n\nexport default F3MCarouselButton","import React from 'react'\n\nimport { Typography, Box, Container } from '@material-ui/core'\nimport { Carousel } from 'react-responsive-carousel'\n\nimport { isDefined } from '../../utils'\n\nimport { F3MCarouselProps } from './types'\n\nimport useStyles from './styles'\nimport F3MCarouselButton from './F3MCarouselButton'\n\nconst F3MCarousel = (props: F3MCarouselProps) => {\n const classes = useStyles(props)\n\n // Default AUTOPLAY\n let autoplay = isDefined(props.autoPlay) ? props.autoPlay : true\n\n // Default CLASSNAME EMPTY\n let className = isDefined(props.className) ? props.className : ''\n\n // Default INFINITE LOOP\n let infiniteLoop = isDefined(props.infiniteLoop) ? props.infiniteLoop : true\n\n // Default INTERVAL 4S\n let interval = isDefined(props.interval) ? props.interval : 4000\n\n // Default NOT SHOW THUMBS\n let showThumbs = isDefined(props.showThumbs) ? props.showThumbs : false\n\n // Default NOT SHOW ARROWS\n let showArrows = isDefined(props.showArrows) ? props.showArrows : false\n\n // Default NOT SHOW INDICATORS\n let showIndicators = isDefined(props.showIndicators) ? props.showIndicators : false\n\n // Default NOT SHOW STATUS\n let showStatus = isDefined(props.showStatus) ? props.showStatus : false\n\n // Default STOP ON HOVER\n let stopOnHover = isDefined(props.stopOnHover) ? props.stopOnHover : true\n\n // Default WIDTH 100%\n let width = isDefined(props.width) ? props.width : '100%'\n\n return (\n \n {props.carouselSlides.map((slide) => (\n \n \n \n {slide.title}\n \n \n {slide.description}\n \n\n {isDefined(slide.buttonLink) &&\n \n }\n \n \n ))}\n \n )\n}\n\nexport default F3MCarousel","import React from 'react'\nimport clsx from 'clsx'\nimport moment from 'moment'\n\nimport { MuiPickersUtilsProvider, KeyboardDatePicker, KeyboardDatePickerProps } from '@material-ui/pickers'\nimport DateFnsUtils from '@date-io/date-fns'\n\nimport { isDefined } from '../../utils'\nimport i18n from '../../i18n'\n\nimport { F3MDatePickerProps } from './types'\n\nconst F3MDatePicker = (props: F3MDatePickerProps) => {\n\n const hasError = !moment(props.value).isValid()\n\n let datePickerProps: KeyboardDatePickerProps = {\n // Default CLASSNAME\n className: clsx('keyboardDatePicker', props.className),\n\n // Default DISABLE TOOLBAR\n disableToolbar: true,\n\n // ERROR\n error: hasError,\n\n // Default FORMAT dd/MM/yyyy\n format: isDefined(props.format) ? props.format : 'dd/MM/yyyy',\n\n // Default FULL WIDTH\n fullWidth: true,\n\n // HELPER TEXT\n helperText: hasError ? i18n.t('error.date') : undefined,\n\n // LABEL\n label: props.label,\n\n // Default INPUT VARIANT OUTLINED\n inputVariant: isDefined(props.variant) ? props.variant : 'outlined' as any,\n\n // Default MARGIN DENSE\n margin: isDefined(props.margin) ? props.margin : 'dense',\n\n // NAME\n name: props.name,\n\n // VALUE\n value: props.value,\n\n // Default VARIANT DIALOG\n variant: isDefined(props.variant) ? props.variant : 'dialog',\n\n // ON CHANGE\n onChange: props.handleChange\n }\n\n return (\n \n \n \n \n )\n}\n\nexport default F3MDatePicker","import { makeStyles, createStyles } from '@material-ui/core'\n\n\nconst useStyles = makeStyles(() => createStyles({\n goBack: {\n color: '#989898'\n },\n action: {\n boxShadow: 'none !important'\n }\n}))\n\nexport default useStyles","import React from 'react'\n\nimport { Dialog, DialogTitle, DialogContent, DialogActions, Grid, IconButton, Typography, DialogContentText } from '@material-ui/core'\nimport CloseIcon from '@material-ui/icons/Close'\n\nimport { F3MButton } from '..'\n\nimport { isDefined } from '../../utils'\nimport i18n from '../../i18n'\n\nimport { F3MDialogProps } from './types'\nimport useStyles from './styles'\n\nconst F3MDialog = (props: F3MDialogProps) => {\n const classes = useStyles()\n\n const isDialog = props.variant === 'dialog'\n const isConfirmation = props.variant === 'confirmation'\n\n let dialogProps: F3MDialogProps = {\n\n // CHILDREN\n children: props.children,\n\n // DIALOG TITLE PROPS\n DialogTitleProps: {\n ...props.DialogTitleProps,\n disableTypography: props.DialogTitleProps.children ? true : false\n },\n\n // DIALOG CONTENT PROPS\n DialogContentProps: {\n ...props.DialogContentProps,\n dividers: isDialog ? true : (isConfirmation ? false : true)\n },\n\n // DIALOG ACTIONS PROPS\n DialogActionsProps: isDefined(props.DialogActionsProps) ? props.DialogActionsProps : undefined,\n\n // Default DISABLE ESCAPE KEY DOWN if modal false, if confirmation true\n disableEscapeKeyDown: isDefined(props.disableEscapeKeyDown) ? props.disableEscapeKeyDown : (isDialog ? false : (isConfirmation ? true : false)),\n\n // Default NOT FULLSCREEN\n fullScreen: isDefined(props.fullScreen) ? props.fullScreen : false,\n\n // Default FULL WIDTH\n fullWidth: isDefined(props.fullWidth) ? props.fullWidth : true,\n\n // Default MAX WIDTH MD\n maxWidth: isDefined(props.maxWidth) ? props.maxWidth : (isDialog ? 'md' : (isConfirmation ? 'sm' : 'md')),\n\n // NEW ON CLOSE\n newOnClose: props.newOnClose,\n\n\n // ON CLOSE\n onClose: props.onClose,\n\n // OPEN\n open: props.open,\n\n // PAPER COMPONENT\n PaperComponent: props.PaperComponent,\n\n // PAPER PROPS\n PaperProps: props.PaperProps,\n\n // Default SCROLL PAPER\n scroll: isDefined(props.scroll) ? props.scroll : 'paper',\n\n // TRANSITION COMPONENT\n TransitionComponent: props.TransitionComponent,\n\n // TRANSITION DURATION\n transitionDuration: props.transitionDuration,\n\n // TRANSITION PROPS\n TransitionProps: props.TransitionProps,\n\n // Default VARIANT DIALOG\n variant: isDefined(props.variant) ? props.variant : 'dialog'\n }\n\n const { DialogActionsProps, DialogContentProps, DialogTitleProps } = dialogProps\n\n return (\n \n \n \n \n \n {DialogTitleProps.children}\n \n \n {\n isDialog &&\n \n \n \n \n \n }\n \n \n \n {React.isValidElement(DialogContentProps.children) ? DialogContentProps.children : {DialogContentProps.children}}\n \n \n {\n isConfirmation &&\n \n {i18n.t('button.goBack')}\n \n }\n {\n DialogActionsProps !== undefined &&\n \n {DialogActionsProps.label}\n \n }\n \n \n )\n}\n\nexport default F3MDialog","import { makeStyles, createStyles } from '@material-ui/core'\n\nconst useStyles = makeStyles(() => createStyles({\n hover: {\n '&:hover': {\n color: '#00adef'\n }\n }\n}))\n\nexport default useStyles","import React from 'react'\n\nimport { IconButton } from '@material-ui/core'\n\nimport GetAppIcon from '@material-ui/icons/GetApp'\n\nimport { isDefined, openOrDownload } from '../../utils'\n\nimport { F3MDownloadProps } from '..'\nimport i18n from '../../i18n'\nimport useStyles from './styles'\n\nconst F3MDownload = (props: F3MDownloadProps) => {\n const classes = useStyles()\n\n let downloadProps: F3MDownloadProps = {\n // ICON => GetAppIcon\n icon: isDefined(props.icon) ? props.icon : ,\n\n // FILENAME\n filename: props.filename,\n\n // ISLOADING\n isLoading: props.isLoading,\n\n // LOADING\n setLoading: props.setLoading,\n\n // ON CLICK\n request: props.request,\n\n // HANDLE ERROR\n handleError: props.handleError\n }\n\n const { icon, filename, isLoading, setLoading, request, handleError } = downloadProps\n\n const handleClick = async (e: React.MouseEvent) => {\n if (setLoading !== undefined) {\n setLoading(true)\n }\n\n const response = await request()\n try {\n if (response && response.status === 200) {\n openOrDownload(response, filename)\n } else {\n handleError(i18n.t('error.unexpectedError'))\n }\n }\n catch (e) {\n handleError(i18n.t('error.unexpectedError'))\n }\n finally {\n if (setLoading !== undefined) {\n setLoading(false)\n }\n }\n }\n\n return (\n \n {icon}\n \n )\n}\n\nexport default F3MDownload","import { createMuiTheme } from '@material-ui/core/styles'\n\nimport i18n from '../../i18n'\n\nconst defaultTheme = createMuiTheme({\n breakpoints: {\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n values: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n }\n },\n direction: 'ltr',\n mixins: {\n toolbar: {\n minHeight: 56,\n '@media (min-width:0px) and (orientation: landscape)': {\n minHeight: 48\n },\n '@media (min-width:600px)': {\n minHeight: 64\n }\n }\n },\n palette: {\n common: {\n black: '#000',\n white: '#fff'\n },\n type: 'light',\n primary: {\n light : '#dbf5ff',\n main : '#00adef',\n dark : '#00b8f0', // button hover\n contrastText: '#fff'\n },\n secondary: {\n light : '#fff',\n main : '#666666',\n dark : '#000',\n contrastText: '#fff'\n },\n error: {\n light : '#fff',\n main : '#f44336',\n dark : '#000',\n contrastText: '#fff'\n },\n warning: {\n light : 'rgba(247, 147, 29, 0.2)',\n main : '#f7931d',\n dark : '#f4883c',\n contrastText: '#fff'\n },\n info: {\n light : 'rgba(0, 63, 110, 0.2)',\n main : '#003f6e',\n dark : '#005a9e',\n contrastText: '#fff'\n },\n success: {\n light : '#81c784',\n main : '#4caf50',\n dark : '#388e3c',\n contrastText: '#fff'\n },\n grey: {\n '50' : '#f5f5f5',\n '100' : '#f2f2f0',\n '200' : '#e6e6e6',\n '300' : '#dadada',\n '400' : '#b8b8b8',\n '500' : '#9e9e9e',\n '600' : '#989898',\n '700' : '#666666',\n '800' : '#494949',\n '900' : '#444444',\n 'A100': '#f2f2f0',\n 'A200': '#e6e6e6',\n 'A400': '#b8b8b8',\n 'A700': '#666666'\n },\n contrastThreshold: 3,\n tonalOffset: 0.2,\n text: {\n primary : '#666666',\n secondary: '#989898',\n disabled : 'rgba(0, 0, 0, 0.38)',\n hint : 'rgba(0, 0, 0, 0.38)'\n },\n divider: '#dadada',\n background: {\n paper : '#fff',\n default: '#fff'\n },\n action: {\n active : 'rgba(0, 0, 0, 0.54)',\n hover : 'rgba(0, 0, 0, 0.04)',\n hoverOpacity : 0.04,\n selected : 'rgba(0, 0, 0, 0.08)',\n selectedOpacity : 0.08,\n disabled : 'rgba(0, 0, 0, 0.26)',\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity : 0.38,\n focus : 'rgba(0, 0, 0, 0.12)',\n focusOpacity : 0.12,\n activatedOpacity : 0.12\n }\n },\n props: {\n MuiTablePagination: {\n labelRowsPerPage: i18n.t('common.itemsPerPage'),\n backIconButtonText: i18n.t('common.previousPage'),\n nextIconButtonText: i18n.t('common.nextPage'),\n labelDisplayedRows: ({ from, to, count }) => `${from}-${to} ${i18n.t('common.of')} ${count}`\n },\n MuiCard: {\n elevation: 2\n },\n MuiAppBar: {\n elevation: 2\n }\n },\n shadows: [\n 'none',\n '0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)',\n '0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)',\n '0px 3px 3px -2px rgba(0,0,0,0.2),0px 3px 4px 0px rgba(0,0,0,0.14),0px 1px 8px 0px rgba(0,0,0,0.12)',\n '0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)',\n '0px 3px 5px -1px rgba(0,0,0,0.2),0px 5px 8px 0px rgba(0,0,0,0.14),0px 1px 14px 0px rgba(0,0,0,0.12)',\n '0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)',\n '0px 4px 5px -2px rgba(0,0,0,0.2),0px 7px 10px 1px rgba(0,0,0,0.14),0px 2px 16px 1px rgba(0,0,0,0.12)',\n '0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12)',\n '0px 5px 6px -3px rgba(0,0,0,0.2),0px 9px 12px 1px rgba(0,0,0,0.14),0px 3px 16px 2px rgba(0,0,0,0.12)',\n '0px 6px 6px -3px rgba(0,0,0,0.2),0px 10px 14px 1px rgba(0,0,0,0.14),0px 4px 18px 3px rgba(0,0,0,0.12)',\n '0px 6px 7px -4px rgba(0,0,0,0.2),0px 11px 15px 1px rgba(0,0,0,0.14),0px 4px 20px 3px rgba(0,0,0,0.12)',\n '0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12)',\n '0px 7px 8px -4px rgba(0,0,0,0.2),0px 13px 19px 2px rgba(0,0,0,0.14),0px 5px 24px 4px rgba(0,0,0,0.12)',\n '0px 7px 9px -4px rgba(0,0,0,0.2),0px 14px 21px 2px rgba(0,0,0,0.14),0px 5px 26px 4px rgba(0,0,0,0.12)',\n '0px 8px 9px -5px rgba(0,0,0,0.2),0px 15px 22px 2px rgba(0,0,0,0.14),0px 6px 28px 5px rgba(0,0,0,0.12)',\n '0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12)',\n '0px 8px 11px -5px rgba(0,0,0,0.2),0px 17px 26px 2px rgba(0,0,0,0.14),0px 6px 32px 5px rgba(0,0,0,0.12)',\n '0px 9px 11px -5px rgba(0,0,0,0.2),0px 18px 28px 2px rgba(0,0,0,0.14),0px 7px 34px 6px rgba(0,0,0,0.12)',\n '0px 9px 12px -6px rgba(0,0,0,0.2),0px 19px 29px 2px rgba(0,0,0,0.14),0px 7px 36px 6px rgba(0,0,0,0.12)',\n '0px 10px 13px -6px rgba(0,0,0,0.2),0px 20px 31px 3px rgba(0,0,0,0.14),0px 8px 38px 7px rgba(0,0,0,0.12)',\n '0px 10px 13px -6px rgba(0,0,0,0.2),0px 21px 33px 3px rgba(0,0,0,0.14),0px 8px 40px 7px rgba(0,0,0,0.12)',\n '0px 10px 14px -6px rgba(0,0,0,0.2),0px 22px 35px 3px rgba(0,0,0,0.14),0px 8px 42px 7px rgba(0,0,0,0.12)',\n '0px 11px 14px -7px rgba(0,0,0,0.2),0px 23px 36px 3px rgba(0,0,0,0.14),0px 9px 44px 8px rgba(0,0,0,0.12)',\n '0px 11px 15px -7px rgba(0,0,0,0.2),0px 24px 38px 3px rgba(0,0,0,0.14),0px 9px 46px 8px rgba(0,0,0,0.12)'\n ],\n typography: {\n htmlFontSize: 16,\n fontFamily: ['Roboto', 'Helvetica', 'Arial', 'sans-serif'].join(','),\n h1: {\n fontFamily : ['Roboto', 'Helvetica', 'Arial', 'sans-serif'].join(','),\n fontWeight : 900,\n fontSize : 28,\n lineHeight : 1.214,\n letterSpacing: '-0.01562em',\n textTransform: 'uppercase'\n },\n h2: {\n fontFamily : ['Roboto', 'Helvetica', 'Arial', 'sans-serif'].join(','),\n fontWeight : 700,\n fontSize : 24,\n lineHeight : 1.25,\n letterSpacing: '-0.00833em',\n textTransform: 'uppercase'\n },\n h3: {\n fontFamily : ['Roboto', 'Helvetica', 'Arial', 'sans-serif'].join(','),\n fontWeight : 500,\n fontSize : 20,\n lineHeight : 1.3,\n letterSpacing: '0em',\n textTransform: 'uppercase'\n },\n h4: {\n fontFamily : ['Roboto', 'Helvetica', 'Arial', 'sans-serif'].join(','),\n fontWeight : 700,\n fontSize : 18,\n lineHeight : 1.222,\n letterSpacing: '0.00735em',\n textTransform: 'uppercase'\n },\n h5: {\n fontFamily : ['Roboto', 'Helvetica', 'Arial', 'sans-serif'].join(','),\n fontWeight : 700,\n fontSize : 16,\n lineHeight : 1.25,\n letterSpacing: '0em',\n textTransform: 'uppercase'\n },\n h6: { //Not being used\n fontFamily : ['Roboto', 'Helvetica', 'Arial', 'sans-serif'].join(','),\n fontWeight : 500,\n fontSize : 14,\n lineHeight : 1.286,\n letterSpacing: '0.0075em',\n textTransform: 'uppercase'\n },\n subtitle1: {\n fontFamily : ['Roboto', 'Helvetica', 'Arial', 'sans-serif'].join(','),\n fontWeight : 500,\n fontSize : 18,\n lineHeight : 1.167,\n letterSpacing: '0.00938em'\n },\n subtitle2: { //Not being used\n fontFamily : ['Roboto', 'Helvetica', 'Arial', 'sans-serif'].join(','),\n fontWeight : 500,\n fontSize : '0.875rem',\n lineHeight : 1.57,\n letterSpacing: '0.00714em'\n },\n body1: {\n fontFamily : ['Roboto', 'Helvetica', 'Arial', 'sans-serif'].join(','),\n fontWeight : 400,\n fontSize : 14,\n lineHeight : 1.286,\n letterSpacing: '0.00938em'\n },\n body2: {\n fontFamily : ['Roboto', 'Helvetica', 'Arial', 'sans-serif'].join(','),\n fontWeight : 400,\n fontSize : 12,\n lineHeight : 1.2,\n letterSpacing: '0.01071em'\n },\n button: {\n fontFamily : ['Roboto', 'Helvetica', 'Arial', 'sans-serif'].join(','),\n fontWeight : 500,\n fontSize : 14,\n lineHeight : 1.286,\n letterSpacing: '0.02857em',\n textTransform: 'uppercase'\n },\n caption: { //Not being used\n fontFamily : ['Roboto', 'Helvetica', 'Arial', 'sans-serif'].join(','),\n fontWeight : 400,\n fontSize : '0.75rem',\n lineHeight : 1.66,\n letterSpacing: '0.03333em'\n },\n overline: { //Not being used\n fontFamily : ['Roboto', 'Helvetica', 'Arial', 'sans-serif'].join(','),\n ontWeight : 400,\n fontSize : '0.75rem',\n lineHeight : 2.66,\n letterSpacing: '0.08333em',\n textTransform: 'uppercase'\n }\n },\n shape: {\n borderRadius: 4\n },\n transitions: {\n easing: {\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n easeOut : 'cubic-bezier(0.0, 0, 0.2, 1)',\n easeIn : 'cubic-bezier(0.4, 0, 1, 1)',\n sharp : 'cubic-bezier(0.4, 0, 0.6, 1)'\n },\n duration: {\n shortest : 150,\n shorter : 200,\n short : 250,\n standard : 300,\n complex : 375,\n enteringScreen: 225,\n leavingScreen : 195\n }\n },\n zIndex: {\n mobileStepper: 1000,\n speedDial : 1050,\n drawer : 1100,\n appBar : 1200,\n modal : 1300,\n snackbar : 1400,\n tooltip : 1500\n }\n})\n\nconst { breakpoints, palette, zIndex, spacing } = defaultTheme\n\nconst theme = {\n ...defaultTheme,\n overrides: {\n MuiTypography: {\n h1: {\n [breakpoints.down('xs')]: {\n fontSize: 22\n }\n },\n h2: {\n [breakpoints.down('xs')]: {\n fontSize: 18\n }\n },\n h3: {\n [breakpoints.down('xs')]: {\n fontSize: 14\n }\n },\n h4: {\n [breakpoints.down('xs')]: {\n fontSize: 14\n }\n },\n h5: {\n [breakpoints.down('xs')]: {\n fontSize: 14\n }\n },\n h6: {\n [breakpoints.down('xs')]: {\n fontSize: 14\n }\n },\n body1: {\n [breakpoints.down('xs')]: {\n fontSize: 12\n }\n },\n body2: {\n [breakpoints.down('xs')]: {\n fontSize: 12\n }\n },\n button: {\n [breakpoints.down('xs')]: {\n fontSize: 12\n }\n }\n },\n MuiOutlinedInput: {\n notchedOutline: {\n borderColor: palette.grey['300'],\n borderWidth: 1,\n '&:hover': {\n borderColor: palette.secondary.main\n }\n }\n },\n MuiInputAdornment: {\n root: {\n color: palette.primary.main,\n '& > button': {\n padding: 0\n }\n }\n },\n MuiCheckbox: {\n root: {\n color: palette.text.primary\n }\n },\n MuiLink: {\n root: {\n '&:hover': {\n color: palette.primary.main\n }\n }\n },\n MuiAppBar: {\n root: {\n height: 80\n },\n colorPrimary: {\n backgroundColor: palette.common.white\n }\n },\n MuiDrawer: {\n root: {\n zIndex: zIndex.drawer + ' !important'\n }\n },\n MuiToolbar: {\n regular: {\n minHeight: '80px !important'\n },\n gutters: {\n [breakpoints.up('lg')]: {\n padding: spacing(0, 2, 0, 17)\n },\n [breakpoints.down('sm')]: {\n padding: spacing(0, 2, 0, 2)\n }\n }\n },\n MuiCard: {\n root: {\n marginTop: spacing(4),\n padding: spacing(2, 2, 2, 2)\n }\n },\n MuiTableContainer: {\n root: {\n paddingTop: spacing(2)\n }\n },\n MuiTable: {\n root: {\n border: '1px solid ' + palette.grey[300],\n borderRadius: 4,\n borderCollapse: 'separate'\n }\n },\n MuiTableHead: {\n root: {\n backgroundColor: palette.primary.light,\n borderBottom: '1px solid'\n }\n },\n MuiTableRow: {\n root: {\n '&:nth-child(even)': {\n backgroundColor: palette.grey[50]\n },\n '&:nth-child(odd)': {\n backgroundColor: palette.common.white\n },\n '&:not(:last-child) > td': {\n borderBottom: '1px solid ' + palette.grey[300]\n }\n },\n head: {\n backgroundColor: palette.primary.light + ' !important',\n borderTopWidth: 1,\n borderTopRightRadius: 4,\n borderTopLeftRadius: 4\n },\n hover: {\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: '#EBF9FF !important'\n }\n }\n },\n MuiTableCell: {\n root: {\n minHeight: 50,\n borderBottom: 'none',\n padding: 15\n },\n head: {\n textTransform: 'uppercase',\n borderBottom: '1px solid ' + palette.grey[300],\n [breakpoints.up('md')]: {\n fontSize: 14\n },\n [breakpoints.down('xs')]: {\n fontSize: 13\n },\n color: palette.primary.main,\n fontWeight: 500\n \n },\n body: {\n [breakpoints.up('md')]: {\n fontSize: 16\n },\n [breakpoints.down('xs')]: {\n fontSize: 14\n },\n color: palette.text.primary\n }\n },\n MuiTablePagination: {\n root: {},\n toolbar: {\n paddingLeft: 0,\n paddingRight: 0\n },\n spacer: {},\n caption: {\n color: palette.text.primary\n },\n input: {\n color: palette.text.primary\n },\n menuItem: {\n color: palette.text.primary\n }\n },\n MuiTableSortLabel: {\n root: {\n color: 'inherit',\n '&:hover': {\n color: palette.primary.dark\n }\n },\n icon: {\n color: 'inherit !important'\n },\n active: {\n color: 'inherit !important'\n }\n },\n MuiMenuItem: {\n root: {\n '&:hover': {\n backgroundColor: palette.common.white,\n color: palette.primary.main\n }\n }\n },\n MuiDialogTitle: {\n root: {\n color: palette.text.secondary\n }\n },\n MuiDialogContent: {\n dividers: {\n borderTopColor: '#D2D2D2',\n borderBottomColor: '#D2D2D2'\n }\n },\n MuiDialogActions: {\n root: {\n padding: spacing(1, 3)\n }\n },\n MuiSvgIcon: {\n fontSizeLarge: {\n fontSize: 30\n }\n },\n MuiAvatar: {\n root: {\n maxHeight: '35px',\n width: '35px',\n display: 'inline-block'\n },\n rounded: {\n borderRadius: 2\n }\n }\n }\n}\n\nexport default theme","import React from 'react'\n\nimport { Box, Typography } from '@material-ui/core'\n\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline'\n\nimport i18n from '../../i18n'\n\nimport theme from '../../assets/theme'\n\nconst F3MEmptyState = () => {\n return (\n \n \n \n {i18n.t('error.noAvailableInfo')}\n \n \n )\n}\n\nexport default F3MEmptyState","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n paper: {\n [theme.breakpoints.down('xl')]: {\n marginTop: theme.spacing(2.5)\n },\n [theme.breakpoints.down('sm')]: {\n marginTop: theme.spacing(2.5)\n },\n [theme.breakpoints.down('xs')]: {\n marginTop: theme.spacing(1.1)\n }\n },\n icon: props => ({\n color: props.variant === 'footer' ? theme.palette.grey[600] : theme.palette.grey[300],\n '&:hover': {\n cursor: 'pointer',\n color: theme.palette.secondary.main\n }\n })\n}))\n\nexport default useStyles","import React from 'react'\n\nimport { Grid, IconButton, Container } from '@material-ui/core'\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nimport { LINKS } from '../../constants'\n\nimport useStyles from './styles'\n\nconst F3MIcons = (props: any) => {\n const classes = useStyles(props)\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 default F3MIcons","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n padding: 20,\n borderWidth: 2,\n borderStyle: 'solid',\n borderColor: theme.palette.grey[200],\n borderRadius: 4\n },\n dropzoneRoot: {\n minHeight: 210\n }\n}))\n\nexport default useStyles","import React from 'react'\n\nimport { DropzoneArea } from 'material-ui-dropzone'\n\nimport i18n from '../../../i18n'\n\nimport { getDropRejectMessage, getFileLimitExceedMessage, getFileRemovedMessage, isDefined } from '../../../utils'\n\nimport { AddUpdtDropzone } from '../../F3MAddUpdt/types'\n\nimport useStyles from './styles'\n\nconst F3MDropzoneSection = (props: AddUpdtDropzone) => {\n\n const classes = useStyles()\n\n const {\n handleFileChange,\n getFileAddedMessage,\n initialFiles,\n filesLimit,\n acceptedFiles,\n maxFileSize,\n showPreviews,\n showPreviewsInDropzone,\n useChipsForPreview,\n previewGridProps,\n previewChipProps,\n centerInformation,\n detailsMessage\n } = props\n\n return (\n <>\n
\n handleFileChange(files)}\n showPreviews={showPreviews}\n showPreviewsInDropzone={showPreviewsInDropzone}\n useChipsForPreview={useChipsForPreview}\n previewGridProps={previewGridProps}\n previewChipProps={previewChipProps}\n />\n
\n {isDefined(detailsMessage) &&\n

{detailsMessage}

\n }\n \n )\n}\n\nexport default F3MDropzoneSection\n","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n padding: 20,\n verticalAlign: 'middle'\n },\n formControl: {\n minWidth: 120,\n },\n selectEmpty: {\n marginTop: theme.spacing(2),\n }\n}))\n\nexport default useStyles","import React, { useState } from 'react'\n\nimport { FormControl, FormControlLabel, InputLabel, MenuItem, Select, Switch } from '@material-ui/core'\n\nimport i18n from '../../../../i18n'\nimport useStyles from './styles'\n\nimport { ContentPropsAddUpdtSlide } from '../../../F3MAddUpdt/types'\n\nconst F3MStateSection = (props: ContentPropsAddUpdtSlide) => {\n\n const classes = useStyles()\n\n const {\n addOrUpdt,\n setAddOrUpdt\n } = props\n\n const getMaxNumberOfOrder = () => {\n return addOrUpdt.status === true ? addOrUpdt.activeRows + 2 : addOrUpdt.activeRows + 3\n }\n\n const getNumberOfOrder = () => {\n return addOrUpdt.status === true ? addOrUpdt.activeRows + 1 : addOrUpdt.activeRows + 2\n }\n\n const originalOrder: number | null = addOrUpdt.order\n const [isActive, setIsAcive] = useState(addOrUpdt.status)\n const [order, setOrder] = useState(addOrUpdt.order?.toString())\n const possibleOrder: number[] | undefined = addOrUpdt.activeRows === undefined ? undefined : [...Array(getMaxNumberOfOrder()).keys()].slice(1)\n\n const handleChangeIsActive = () => {\n if (!isActive === false) {\n setIsAcive(!isActive)\n setOrder(undefined)\n setAddOrUpdt(prevState => ({ ...prevState, status: !isActive, order: null }))\n }\n else {\n setIsAcive(!isActive)\n const newOrder = originalOrder !== null ? originalOrder.toString() : (getNumberOfOrder()).toString()\n setOrder(newOrder)\n setAddOrUpdt(prevState => ({ ...prevState, status: !isActive, order: +newOrder }))\n }\n }\n\n const handleChangeOrder = (value: string) => {\n setOrder(value as string)\n setAddOrUpdt(prevState => ({ ...prevState, order: +value }))\n }\n\n return (\n
\n handleChangeIsActive()}\n color='primary'\n />\n }\n label={i18n.t('common.active')}\n />\n {isActive &&\n \n \n {i18n.t('carousel.ordering')}\n \n handleChangeOrder(e.target.value as string)}\n displayEmpty\n className={classes.selectEmpty}\n >\n {possibleOrder?.map((order) => (\n {order}\n ))}\n \n \n }\n
\n )\n}\n\nexport default F3MStateSection","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n padding: 20,\n verticalAlign: 'middle'\n },\n formControl: {\n minWidth: 120,\n },\n selectEmpty: {\n marginTop: theme.spacing(2),\n }\n}))\n\nexport default useStyles","import React, { useState } from 'react'\n\nimport { TextField } from '@material-ui/core'\n\nimport useStyles from './styles'\nimport { ContentPropsAddUpdtSlide } from '../../../F3MAddUpdt/types'\nimport i18n from '../../../../i18n'\nimport inputLimit from '../../../../utils/inputLimit'\n\nconst F3MInfoFields = (props: ContentPropsAddUpdtSlide & { handleError: (message: string) => void }) => {\n\n const classes = useStyles()\n\n const {\n addOrUpdt,\n setAddOrUpdt,\n handleError\n } = props\n\n const [title, setTitle] = useState(addOrUpdt.title ? addOrUpdt.title : '')\n const [desc, setDesc] = useState(addOrUpdt.description ? addOrUpdt.description : '')\n\n const handleTitleChange = (value: string) => {\n const titleLimit = inputLimit.common.title\n if (value.length > titleLimit) {\n handleError(i18n.t('common.maxCharSecField', { field: i18n.t('carousel.title'), section: i18n.t('carousel.info'), maxChar: titleLimit }))\n }\n else {\n setTitle(value)\n setAddOrUpdt(prevState => ({ ...prevState, title: value }))\n }\n };\n\n const handleDescChange = (value: string) => {\n const descriptionLimit = inputLimit.common.description\n if (value.length > descriptionLimit) {\n handleError(i18n.t('common.maxCharSecField', { field: i18n.t('carousel.description'), section: i18n.t('carousel.info'), maxChar: descriptionLimit }))\n }\n else {\n setDesc(value)\n setAddOrUpdt(prevState => ({ ...prevState, description: value }))\n }\n }\n\n return (\n
\n handleTitleChange(e.target.value)}\n required={true}\n style={{ margin: 8 }}\n fullWidth\n margin='normal'\n InputLabelProps={{\n shrink: true,\n }}\n />\n handleDescChange(e.target.value)}\n style={{ margin: 8 }}\n fullWidth\n margin='normal'\n InputLabelProps={{\n shrink: true,\n }}\n />\n
\n )\n}\n\nexport default F3MInfoFields","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n padding: 20,\n verticalAlign: 'middle'\n },\n buttons: {\n padding: 20\n },\n radioButton: {\n float: 'left',\n width: '35px',\n height: '35px',\n borderRadius: '2px'\n },\n orange: {\n backgroundColor: '#f7931d'\n },\n blue: {\n backgroundColor: '#00adef'\n },\n darkBlue: {\n backgroundColor: '#003f6e'\n },\n radioButtonText: {\n float: 'right',\n paddingLeft: 20,\n paddingRight: 20\n }\n}))\n\nexport default useStyles","import React, { useState } from 'react'\n\nimport { FormControl, FormControlLabel, Input, InputLabel, Radio, RadioGroup, TextField } from '@material-ui/core'\n\nimport useStyles from './styles'\n\nimport { ContentPropsAddUpdtSlide } from '../../../F3MAddUpdt/types'\n\nimport i18n from '../../../../i18n'\nimport inputLimit from '../../../../utils/inputLimit'\n\nconst F3MButtonFields = (props: ContentPropsAddUpdtSlide & { handleError: (message: string) => void }) => {\n\n const classes = useStyles()\n\n const {\n addOrUpdt,\n setAddOrUpdt,\n handleError\n } = props\n\n const [buttonText, setButtonText] = useState(addOrUpdt.buttonText ? addOrUpdt.buttonText : '')\n const [isDisabled, setIsDisabled] = useState(addOrUpdt.buttonText ? false : true)\n const [buttonLink, setButtonLink] = useState(addOrUpdt.buttonLink ? addOrUpdt.buttonLink : '')\n const [buttonColor, setButtonColor] = useState(addOrUpdt.buttonColor ? addOrUpdt.buttonColor : '#f7931d')\n\n const handleChangeBtnText = (value: string) => {\n const buttonTextLimit = inputLimit.carousel.buttonText\n if (value.length > buttonTextLimit) {\n handleError(i18n.t('common.maxCharSecField', { field: i18n.t('carousel.text'), section: i18n.t('carousel.button'), maxChar: buttonTextLimit }))\n }\n else {\n setIsDisabled(value.length > 0 ? false : true)\n setButtonText(value)\n if (value.length > 0) {\n setAddOrUpdt(prevState => ({ ...prevState, buttonText: value, buttonLink: buttonLink, buttonColor: buttonColor }))\n }\n else {\n setAddOrUpdt(prevState => ({ ...prevState, buttonText: value, buttonLink: '', buttonColor: '' }))\n }\n }\n };\n\n const handleChangeUrl = (value: string) => {\n setButtonLink(value)\n setAddOrUpdt(prevState => ({ ...prevState, buttonLink: value }))\n };\n\n const handleChangeColor = (value: string) => {\n setButtonColor(value)\n setAddOrUpdt(prevState => ({ ...prevState, buttonColor: value }))\n };\n\n return (\n
\n handleChangeBtnText(e.target.value)}\n style={{ margin: 8 }}\n fullWidth\n margin='normal'\n InputLabelProps={{\n shrink: true,\n }}\n />\n \n {i18n.t('carousel.buttonURL')}\n handleChangeUrl(e.target.value)} />\n \n \n handleChangeColor(e.target.value)}>\n
\n
\n }\n label={i18n.t('carousel.orange')}\n />\n
\n
\n
\n }\n label={i18n.t('carousel.blue')}\n />\n
\n
\n
\n }\n label={i18n.t('carousel.darkBlue')}\n />\n
\n \n \n
\n )\n}\n\nexport default F3MButtonFields","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n padding: 20,\n verticalAlign: 'middle'\n }\n}))\n\nexport default useStyles","import React, { ChangeEvent, Dispatch, SetStateAction, useEffect, useState } from 'react'\n\nimport { Checkbox, FormControlLabel } from '@material-ui/core'\n\nimport useStyles from './styles'\n\nimport { ContentPropsDownCatUpdtCreate } from '../../../F3MAddUpdt/types'\nimport i18n from '../../../../i18n'\nimport { backofficeService } from '../../../../api'\nimport { BusinessArea } from '../../../../types/services/backoffice'\n\nconst F3MBusinessArea = (props: ContentPropsDownCatUpdtCreate & { handleError: (message: string) => void, setOpen: Dispatch> }) => {\n\n const classes = useStyles()\n\n const {\n addOrUpdt,\n setAddOrUpdt,\n handleError,\n setOpen\n } = props\n\n const [busAreasToPresent, setBusAreasToPresent] = useState([])\n const [busAreasSelected, setBusAreasSelected] = useState(addOrUpdt.businessAreas ? addOrUpdt.businessAreas : [])\n\n const loadBusinessAreas = async () => {\n try {\n const response = await backofficeService.loadBusinessAreas()\n if (response.isSuccess) {\n setBusAreasToPresent(response.result)\n } else {\n handleError(i18n.t('error.unexpectedError'))\n setOpen(false)\n }\n }\n catch (e) {\n handleError(i18n.t('error.unexpectedError'))\n setOpen(false)\n }\n }\n\n const handleChangeBusAreas = (e: ChangeEvent) => {\n if (isSelected(e.target.id)) {\n const newBusAreas: BusinessArea[] = busAreasSelected.filter(x => x.id !== e.target.id)\n setBusAreasSelected(newBusAreas)\n setAddOrUpdt(prevState => ({ ...prevState, businessAreas: newBusAreas }))\n }\n else {\n const newBusArea = {\n id: e.target.id,\n code: e.target.name,\n name: e.target.labels ? e.target.labels[0].innerText : ''\n }\n\n setAddOrUpdt(prevState => ({ ...prevState, businessAreas: [...busAreasSelected, newBusArea] }))\n setBusAreasSelected(prevState => [...prevState, newBusArea])\n }\n }\n\n const isSelected = (id: string) => {\n return busAreasSelected.some(busArea => busArea.id === id)\n }\n\n useEffect(() => {\n loadBusinessAreas()\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n
\n {busAreasToPresent.map((busArea, index) => (\n handleChangeBusAreas(e)}\n id={busArea.id}\n name={busArea.code}\n color='primary'\n />\n }\n label={busArea.name}\n />\n ))}\n
\n )\n}\n\nexport default F3MBusinessArea","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n padding: 20,\n verticalAlign: 'middle'\n }\n}))\n\nexport default useStyles","import React, { useState } from 'react'\n\nimport { TextField } from '@material-ui/core'\n\nimport useStyles from './styles'\n\nimport { ContentPropsDownCatUpdtCreate } from '../../../F3MAddUpdt/types'\n\nimport i18n from '../../../../i18n'\nimport inputLimit from '../../../../utils/inputLimit'\n\nconst F3MCategoryInfo = (props: ContentPropsDownCatUpdtCreate & { handleError: (message: string) => void }) => {\n\n const classes = useStyles()\n\n const {\n addOrUpdt,\n setAddOrUpdt,\n handleError\n } = props\n\n const [name, setName] = useState(addOrUpdt.name ? addOrUpdt.name : '')\n const [description, setDescription] = useState(addOrUpdt.description ? addOrUpdt.description : '')\n\n const handleChangeName = (value: string) => {\n const nameLimit = inputLimit.common.title\n if (value.length > nameLimit) {\n handleError(i18n.t('common.maxCharSecField', { field: i18n.t('downloadCategories.name'), section: i18n.t('downloadCategories.category'), maxChar: nameLimit }))\n }\n else {\n setName(value)\n setAddOrUpdt(prevState => ({ ...prevState, name: value }))\n }\n };\n\n const handleChangeDescrp = (value: string) => {\n const descriptionLimit = inputLimit.common.description\n if (value.length > descriptionLimit) {\n handleError(i18n.t('common.maxCharSecField', { field: i18n.t('downloadCategories.description'), section: i18n.t('downloadCategories.category'), maxChar: descriptionLimit }))\n }\n else {\n setDescription(value)\n setAddOrUpdt(prevState => ({ ...prevState, description: value }))\n }\n };\n\n return (\n
\n handleChangeName(e.target.value)}\n style={{ margin: 8 }}\n fullWidth\n margin='normal'\n InputLabelProps={{\n shrink: true,\n }}\n />\n handleChangeDescrp(e.target.value)}\n style={{ margin: 8 }}\n fullWidth\n margin='normal'\n InputLabelProps={{\n shrink: true,\n }}\n />\n
\n )\n}\n\nexport default F3MCategoryInfo","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n padding: 20,\n verticalAlign: 'middle'\n }\n}))\n\nexport default useStyles","import React, { useState } from 'react'\n\nimport useStyles from './styles'\n\nimport { ContentPropsDownCatUpdtCreate } from '../../F3MAddUpdt/types'\nimport { FormControl, FormControlLabel, Radio, RadioGroup } from '@material-ui/core'\nimport i18n from '../../../i18n'\n\nconst F3MDownloadType = (props: ContentPropsDownCatUpdtCreate) => {\n\n const classes = useStyles()\n\n const {\n addOrUpdt,\n setAddOrUpdt\n } = props\n\n const [downloadType, setDownloadType] = useState(addOrUpdt && addOrUpdt.downloadType !== undefined ? addOrUpdt.downloadType.toString() : null)\n\n const handleChangeDownloadType = (downloadType: string) => {\n setDownloadType(downloadType)\n setAddOrUpdt((prevState: any) => ({ ...prevState, downloadType: +downloadType }))\n };\n\n return (\n
\n \n handleChangeDownloadType(e.target.value)}>\n } label={i18n.t('enum.applicationDownload.type.0')} />\n } label={i18n.t('enum.applicationDownload.type.1')} />\n } label={i18n.t('enum.applicationDownload.type.2')} />\n \n \n
\n )\n}\n\nexport default F3MDownloadType","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n padding: 20,\n verticalAlign: 'middle'\n }\n}))\n\nexport default useStyles","import React, { useState } from 'react'\n\nimport useStyles from './styles'\n\nimport { ContentPropsDownCatUpdtCreate } from '../../../F3MAddUpdt/types'\nimport { FormControl, FormControlLabel, Radio, RadioGroup } from '@material-ui/core'\nimport i18n from '../../../../i18n'\n\nconst F3MCardType = (props: ContentPropsDownCatUpdtCreate) => {\n\n const classes = useStyles()\n\n const {\n addOrUpdt,\n setAddOrUpdt\n } = props\n\n const [cardType, setCardType] = useState(addOrUpdt.cardType !== undefined ? addOrUpdt.cardType.toString() : null)\n\n const handleChangeCardType = (cardType: string) => {\n setCardType(cardType)\n setAddOrUpdt(prevState => ({...prevState, cardType: +cardType}))\n };\n\n return (\n
\n \n handleChangeCardType(e.target.value)}>\n } label={i18n.t('enum.cardTypes.type.0')} />\n } label={i18n.t('enum.cardTypes.type.1')} />\n \n \n
\n )\n}\n\nexport default F3MCardType","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n padding: 20,\n verticalAlign: 'middle'\n }\n}))\n\nexport default useStyles","import React, { useState } from 'react'\n\nimport useStyles from './styles'\n\nimport { ContentPropsAppDownUpdtCreate, ContentPropsDownCatUpdtCreate, ContentPropsDownManUpdtCreate } from '../../F3MAddUpdt/types'\nimport { FormControlLabel, Switch } from '@material-ui/core'\nimport i18n from '../../../i18n'\n\nconst F3MIsActive = (props: ContentPropsDownCatUpdtCreate | ContentPropsAppDownUpdtCreate | ContentPropsDownManUpdtCreate) => {\n\n const classes = useStyles()\n\n const {\n addOrUpdt,\n setAddOrUpdt\n } = props\n\n const [isActive, setIsActive] = useState(addOrUpdt.isActive !== undefined ? addOrUpdt.isActive : true)\n\n const handleIsActive = async (checked: boolean) => {\n setIsActive(checked)\n setAddOrUpdt((prevState: any) => ({ ...prevState, isActive: checked }))\n }\n\n return (\n
\n handleIsActive(checked)} color='primary' size='medium' />\n }\n label={i18n.t('common.active')}\n />\n
\n )\n}\n\nexport default F3MIsActive","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n padding: 20,\n verticalAlign: 'middle'\n }\n}))\n\nexport default useStyles","import React, { useState } from 'react'\n\nimport { FormControlLabel, Switch } from '@material-ui/core'\n\nimport i18n from '../../../../i18n'\nimport useStyles from './styles'\n\nimport { ContentPropsDownCatDonwlsUpdtCreate } from '../../../F3MAddUpdt/types'\n\nconst F3MStateSection = (props: ContentPropsDownCatDonwlsUpdtCreate) => {\n\n const classes = useStyles()\n\n const {\n addOrUpdt,\n setAddOrUpdt\n } = props\n\n const [isActive, setIsAcive] = useState(addOrUpdt.isActive)\n\n const handleChangeIsActive = () => {\n if (!isActive === false) {\n setIsAcive(!isActive)\n setAddOrUpdt(prevState => ({ ...prevState, isActive: !isActive }))\n }\n else {\n setIsAcive(!isActive)\n setAddOrUpdt(prevState => ({ ...prevState, isActive: !isActive }))\n }\n }\n\n return (\n
\n handleChangeIsActive()}\n color='primary'\n />\n }\n label={i18n.t('common.active')}\n />\n
\n )\n}\n\nexport default F3MStateSection","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n padding: 20,\n paddingBottom: 0,\n verticalAlign: 'middle'\n }\n}))\n\nexport default useStyles","import { Theme, makeStyles, createStyles} from '@material-ui/core'\n\nimport { F3MSelectProps } from './types'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n formControl: props => ({\n marginBottom: props.variant === 'standard' ? '9px': 'unset',\n color : theme.palette.grey[600],\n '&.Mui-focused': {\n backgroundColor: theme.palette.common.white\n }\n }),\n inputRoot: props => ({\n color : theme.palette.grey[600],\n opcacity : 0,\n fontWeight: props.bold ? 700 : 'normal'\n }),\n inputRootDisabled: {},\n select: props => ({\n color : theme.palette.grey[600],\n fontWeight: props.bold ? 700 : 'normal',\n '&> .MuiSelect-select': {\n color: theme.palette.grey[700]\n },\n '&> .MuiSelect-select:focus': {\n backgroundColor: theme.palette.common.white\n }\n }),\n menuPaper: {\n maxHeight: 128 // menu padding top (8px) + 4 menu items (30px * 4)\n },\n menuItem: {\n '&.Mui-selected, &.Mui-selected:hover': {\n color: theme.palette.common.white,\n backgroundColor: theme.palette.primary.main\n },\n '&:hover': {\n color: theme.palette.grey['A700'],\n backgroundColor: theme.palette.grey['200']\n }\n }\n}))\n\nexport default useStyles","import React from 'react'\n\nimport { FormControl, InputLabel, MenuItem, Select } from '@material-ui/core'\n\nimport { isDefined } from '../../utils'\nimport i18n from '../../i18n'\n\nimport useStyles from './styles'\n\nimport { F3MSelectProps } from './types'\n\nconst F3MSelect = (props: F3MSelectProps) => {\n\n let selectProps: F3MSelectProps = {\n // Default NOT AUTOWIDTH\n autoWidth: isDefined(props.autoWidth) ? props.autoWidth : false,\n\n // Default NOT BOLD\n bold: isDefined(props.bold) ? props.bold : false,\n\n // CHILDREN\n children: props.children,\n\n // CLASSNAME\n className: props.className,\n\n // Default COLOR PRIMARY\n color: isDefined(props.color) ? props.color : 'primary',\n\n // DEFAULT VALUE\n defaultValue: props.defaultValue,\n\n // Default NOT DISABLED\n disabled: isDefined(props.disabled) ? props.disabled : false,\n \n // Default NOT ERROR\n error: isDefined(props.error) ? props.error : false,\n\n // Default DISPLAY ALL\n displayAll: isDefined(props.displayAll) ? props.displayAll : true,\n\n // Default NOT DISPLAY EMPTY\n displayEmpty: isDefined(props.displayEmpty) ? props.displayEmpty : false,\n\n // Default NOT FOCUSED\n // focused: isDefined(props.focused) ? props.focused : false,\n\n // Default FULL WIDTH\n fullWidth: isDefined(props.fullWidth) ? props.fullWidth : true,\n\n // Default NOT HIDDEN LABEL\n hiddenLabel: isDefined(props.hiddenLabel) ? props.hiddenLabel : false,\n\n // ICON COMPONENT\n IconComponent: props.IconComponent,\n\n // ID\n id: props.id,\n\n // INPUT\n input: props.input,\n\n // INPUT PROPS\n inputProps: props.inputProps,\n\n // ITEMS\n items: isDefined(props.items) ? props.items : [],\n\n // LABEL\n label: props.label,\n\n // LABEL ID\n labelId: props.labelId,\n\n // LABEL WIDTH\n labelWidth: props.labelWidth,\n\n // Default MARGIN DENSE\n margin: isDefined(props.margin) ? props.margin : 'dense',\n\n // MENU PROPS\n MenuProps: props.MenuProps,\n\n // Default NOT MULTIPLE\n multiple: isDefined(props.multiple) ? props.multiple : false,\n\n // NAME\n name: props.name,\n\n // Default NOT NATIVE\n native: isDefined(props.native) ? props.native : false,\n\n // ON CHNAGE\n onChange: props.onChange,\n\n // ON CLOSE\n onClose: props.onClose,\n\n // ON OPEN\n onOpen: props.onOpen,\n\n // OPEN\n open: props.open,\n\n // RENDER VALUE\n renderValue: props.renderValue,\n\n // Default NOT REQUIRED\n required: isDefined(props.required) ? props.required : false,\n\n // SELECT DISPLAY PROPS\n SelectDisplayProps: props.SelectDisplayProps,\n\n // Default SIZE SMALL\n size: isDefined(props.size) ? props.size : 'small',\n\n // VALUE\n value: props.value,\n\n // Default VARIANT OUTLINED\n variant: isDefined(props.variant) ? props.variant : 'outlined'\n }\n\n const classes = useStyles(selectProps)\n\n return (\n \n {selectProps.label}\n \n {selectProps.children}\n {selectProps.displayAll ? {i18n.t('common.all')} : null}\n {selectProps.items?.map((c) => {\n return (\n {c.label.toString()}\n )\n })}\n \n \n \n )\n}\n\nexport default F3MSelect","import {\n CONFIG,\n ENDPOINTS\n} from '../../constants'\nimport {\n BusinessArea\n} from '../../types/services/backoffice'\nimport {\n BusinessAreasCategoriesResponse,\n DownCatDownBusAreaResponse,\n DownloadCategoryDownloadsFilter,\n DownloadCategoryDownloadsResponse,\n DownloadCategoryDownloadsUpdtCreate,\n FileStruct\n} from '../../types/services/downloadCategoryDownloads'\nimport {\n download,\n request\n} from '../axios'\n\nexport const downloadCategoryDownloadsService = {\n loadDownloadCategoryDownloads: async (filter: DownloadCategoryDownloadsFilter) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.DOWNCATDOWNS,\n params: filter\n })\n\n return response\n },\n\n loadDownCatDownBusArea: async (downloadType: number[]) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.DOWNCATDOWNBUSAREA,\n params: {\n downloadType: downloadType\n }\n })\n\n return response\n },\n\n getBusinessAreasCategories: async (businessAreas: BusinessArea[]) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.DOWNCATBUSAREASCATEG,\n params: {\n businessAreas: businessAreas.map(busArea => busArea.id)\n }\n })\n\n return response\n },\n\n createDownloadCategoryDownload: async (downloadCategory: DownloadCategoryDownloadsUpdtCreate) => {\n const formData = new FormData()\n\n formData.append('categoryId', downloadCategory.categoryId ? downloadCategory.categoryId.toString() : '')\n formData.append('isActive', downloadCategory.isActive.toString())\n\n if (downloadCategory.files) {\n Object.values(downloadCategory.files).forEach((file: FileStruct) => {\n formData.append(file.description, file.file)\n })\n }\n\n return await request({\n method: 'POST',\n url: CONFIG.API_URL + ENDPOINTS.DOWNCATDOWNS,\n data: formData\n }).catch(error => {\n throw error\n })\n },\n\n updateDownloadCategoryDownload: async (downloadCategory: DownloadCategoryDownloadsUpdtCreate) => {\n const formData = new FormData()\n\n formData.append('id', downloadCategory.id ? downloadCategory.id.toString() : '')\n formData.append('categoryId', downloadCategory.categoryId ? downloadCategory.categoryId.toString() : '')\n formData.append('description', downloadCategory.files ? downloadCategory.files[0].description : '')\n formData.append('isActive', downloadCategory.isActive.toString())\n\n if (downloadCategory.isNewFile === true) {\n formData.append('file', downloadCategory.files ? downloadCategory.files[0].file : '')\n }\n\n const response = await request({\n method: 'PUT',\n url: CONFIG.API_URL + ENDPOINTS.DOWNCATDOWNS,\n data: formData\n })\n\n return response\n },\n\n deleteDownloadCategoryDownload: async (id: number) => {\n const response = await request({\n method: 'DELETE',\n url: CONFIG.API_URL + ENDPOINTS.DOWNCATDOWNS + '/' + id\n })\n\n return response\n },\n\n downloadCatDownload: async (downCatDownId: number) => {\n const response = await download({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.DOWNCATDOWNS + '/' + downCatDownId\n })\n\n return response\n }\n}","import React, { ChangeEvent, Dispatch, SetStateAction, useEffect, useState } from 'react'\n\nimport useStyles from './styles'\nimport { Checkbox, FormControlLabel, FormLabel } from '@material-ui/core'\n\nimport F3MSelect from '../../../F3MSelect'\nimport i18n from '../../../../i18n'\n\nimport { BusinessAreasCategoriesResponse } from '../../../../types/services/downloadCategoryDownloads'\nimport { downloadCategoryDownloadsService } from '../../../../api/services/downloadCategoryDownloadsService'\nimport { BusinessArea } from '../../../../types/services/backoffice'\nimport { ContentPropsDownCatDonwlsUpdtCreate } from '../../../F3MAddUpdt/types'\nimport { backofficeService } from '../../../../api'\n\nconst F3MBusAreaAndCategory = (props: ContentPropsDownCatDonwlsUpdtCreate &\n{\n businessAreas: BusinessArea[],\n handleError: (message: string) => void,\n setOpen: Dispatch>\n}) => {\n\n const classes = useStyles()\n\n const {\n addOrUpdt,\n setAddOrUpdt,\n businessAreas,\n handleError,\n setOpen\n } = props\n\n const [busAreasToPresent, setBusAreasToPresent] = useState([])\n const [busAreasSelected, setBusAreasSelected] = useState(businessAreas)\n const [fetchedCategories, setCategories] = useState({ categories: [] })\n const [categorySelected, setCategorySelected] = useState(addOrUpdt.categoryId ? `${addOrUpdt.categoryId}` : '')\n const [selectDisabled, setSelectDisabled] = useState(busAreasSelected.length > 0 ? false : true)\n\n const loadBusinessAreas = async () => {\n try {\n const response = await backofficeService.loadBusinessAreas()\n if (response.isSuccess) {\n setBusAreasToPresent(response.result)\n } else {\n handleError(i18n.t('error.unexpectedError'))\n setOpen(false)\n }\n }\n catch (e) {\n handleError(i18n.t('error.unexpectedError'))\n setOpen(false)\n }\n }\n \n const loadCategories = async () => {\n try {\n const response = await downloadCategoryDownloadsService.getBusinessAreasCategories(busAreasSelected)\n\n if (response.isSuccess) {\n setCategories(response.result)\n } else {\n handleError(i18n.t('error.unexpectedError'))\n setOpen(false)\n }\n }\n catch (e) {\n handleError(i18n.t('error.unexpectedError'))\n setOpen(false)\n }\n }\n\n const handleChangeBusAreas = (e: ChangeEvent) => {\n if (isSelected(e.target.id)) {\n const newBusAreas: BusinessArea[] = busAreasSelected.filter(x => x.id !== e.target.id)\n setBusAreasSelected(newBusAreas)\n if (newBusAreas.length === 0) {\n setSelectDisabled(true)\n }\n }\n else {\n const newBusArea = {\n id: e.target.id,\n code: e.target.name,\n name: e.target.labels ? e.target.labels[0].innerText : ''\n }\n setBusAreasSelected(prevState => [...prevState, newBusArea])\n setSelectDisabled(false)\n }\n setCategorySelected('')\n setAddOrUpdt(prevState => ({ ...prevState, categoryId: null }))\n }\n\n const handleSelectorFilterChange = (e: ChangeEvent<{ value: unknown }>) => {\n if (typeof e.target.value === 'number') {\n const newCategoryId: number = e.target.value\n setCategorySelected(newCategoryId.toString())\n setAddOrUpdt(prevState => ({ ...prevState, categoryId: newCategoryId }))\n }\n else {\n setCategorySelected('')\n setAddOrUpdt(prevState => ({ ...prevState, categoryId: null }))\n }\n }\n\n const isSelected = (id: string) => {\n return busAreasSelected.some(busArea => busArea.id === id)\n }\n\n useEffect(() => {\n loadBusinessAreas()\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n loadCategories()\n }, [busAreasSelected]) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n
\n
\n {i18n.t('downloadCategoryDownload.businessArea')}\n {busAreasToPresent.map((busArea, index) => (\n handleChangeBusAreas(e)}\n id={busArea.id}\n name={busArea.code}\n color='primary'\n />\n }\n label={busArea.name}\n />\n ))}\n
\n \n
\n )\n}\n\nexport default F3MBusAreaAndCategory","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n padding: 20,\n verticalAlign: 'middle'\n }\n}))\n\nexport default useStyles","import React, { useState } from \"react\";\n\nimport useStyles from \"./styles\";\n\nimport { ContentPropsDownCatDonwlsUpdtCreate } from \"../../../F3MAddUpdt/types\";\nimport { F3MDropzoneSection } from \"../..\";\n\nimport i18n from \"../../../../i18n\";\nimport { Button, Chip, TextField } from \"@material-ui/core\";\nimport {\n FileNameAndDesc,\n FilesStruct,\n} from \"../../../../types/services/downloadCategoryDownloads\";\nimport inputLimit from \"../../../../utils/inputLimit\";\nimport { FILESIZE } from \"../../../../constants\";\n\nconst F3MUploadFiles = (\n props: ContentPropsDownCatDonwlsUpdtCreate & {\n fileNameAndDesc: FileNameAndDesc;\n handleError: (message: string) => void;\n }\n) => {\n const classes = useStyles();\n\n const { setAddOrUpdt, fileNameAndDesc, handleError } = props;\n\n const isOriginalFileChange: boolean =\n fileNameAndDesc.fileName.length > 0 &&\n fileNameAndDesc.description.length > 0;\n const [originalFile, setOriginalFile] = useState<{\n name: string;\n description: string;\n }>({\n name: fileNameAndDesc.fileName,\n description: fileNameAndDesc.description,\n });\n\n const [fileInAddition, setFileInAddition] = useState(\n undefined\n );\n\n const [files, setFiles] = useState({});\n\n const [dropAreaReset, setDropAreaReset] = useState(0);\n const [desc, setDesc] = useState(\"\");\n\n const handleFileChange = (files: File[]) => {\n if (files.length > 0) {\n setFileInAddition(files[0]);\n } else {\n setFileInAddition(undefined);\n }\n };\n\n const handleDescChange = (value: string) => {\n const descriptionLimit = inputLimit.common.description;\n if (value.length > descriptionLimit) {\n handleError(\n i18n.t(\"common.maxCharSecField\", {\n field: i18n.t(\"downloadCategoryDownload.description\"),\n section: i18n.t(\"downloadCategoryDownload.fileUpload\"),\n maxChar: descriptionLimit,\n })\n );\n } else {\n setDesc(value);\n }\n };\n\n const getFileAddedMessage = (fileName: string) => {\n setAddOrUpdt((prevState) => ({ ...prevState, isNewFile: true }));\n return i18n.t(\"dropzone.fileAdded\").replace(\"FILE_NAME\", fileName);\n };\n\n const isFileNameAlreadySubmitted = (fileToAddName: string) => {\n return (\n (files !== null &&\n Object.values(files).some(\n (elem) => elem.file.name === fileToAddName\n )) ||\n originalFile.name === fileToAddName\n );\n };\n\n const addNewFile = () => {\n if (fileInAddition !== undefined && desc.length > 0) {\n if (isFileNameAlreadySubmitted(fileInAddition.name)) {\n handleError(i18n.t(\"downloadCategoryDownload.sameNameAddedFile\"));\n return;\n }\n\n if (isOriginalFileChange) {\n setAddOrUpdt((prevState) => ({\n ...prevState,\n files: { 0: { file: fileInAddition, description: desc } },\n }));\n setOriginalFile({ name: fileInAddition.name, description: desc });\n } else {\n const index: number = Object.keys(files).length;\n let newFileToAdd: FilesStruct = {};\n newFileToAdd[index] = {\n file: fileInAddition,\n description: desc,\n };\n setFiles((prevState) => ({ ...prevState, ...newFileToAdd }));\n setAddOrUpdt((prevState) => ({\n ...prevState,\n files: { ...prevState.files, ...newFileToAdd },\n }));\n }\n setDropAreaReset((prevState) => prevState + 1);\n setDesc(\"\");\n } else {\n handleError(i18n.t(\"downloadCategoryDownload.mandatoryFileAndDesc\"));\n }\n };\n\n const onDelete = (id?: number) => {\n if (isOriginalFileChange) {\n setAddOrUpdt((prevState) => ({ ...prevState, files: null }));\n setOriginalFile({ name: \"\", description: \"\" });\n } else {\n let newFiles: FilesStruct = JSON.parse(JSON.stringify(files));\n if (id !== undefined) {\n delete newFiles[id];\n setAddOrUpdt((prevState) => ({ ...prevState, files: newFiles }));\n setFiles(newFiles);\n }\n }\n };\n\n return (\n
\n \n handleDescChange(e.target.value)}\n required={true}\n style={{ margin: 8 }}\n fullWidth\n margin=\"normal\"\n InputLabelProps={{\n shrink: true,\n }}\n />\n \n {!isOriginalFileChange && (\n <>\n

{i18n.t(\"downloadCategoryDownload.files\")}

\n {Object.keys(files).map((elem) => (\n onDelete(+elem)}\n variant=\"outlined\"\n color=\"primary\"\n style={{ marginRight: \"10px\", marginBottom: \"10px\" }}\n />\n ))}\n \n )}\n {isOriginalFileChange && (\n <>\n

{i18n.t(\"downloadCategoryDownload.file\")}

\n {originalFile.name.length > 0 &&\n originalFile.description.length > 0 && (\n onDelete()}\n variant=\"outlined\"\n color=\"primary\"\n style={{ marginRight: \"10px\", marginBottom: \"10px\" }}\n />\n )}\n \n )}\n
\n );\n};\n\nexport default F3MUploadFiles;\n","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n padding: 20,\n verticalAlign: 'middle'\n },\n uploadArea: {\n paddingTop: 20,\n },\n required: {\n color: 'red'\n }\n}))\n\nexport default useStyles","import { Button, ButtonGroup } from \"@material-ui/core\";\nimport React, { useState } from \"react\";\nimport { F3MDropzoneSection } from \"../..\";\nimport i18n from \"../../../../i18n\";\nimport { connect, ConnectedProps } from \"react-redux\";\n\nimport { ContentPropsAppDownUpdtCreate } from \"../../../F3MAddUpdt/types\";\n\nimport useStyles from \"./styles\";\nimport { getFileVersion } from \"../../../../utils\";\nimport { appDownloadOperations } from \"../../../../store/operations\";\nimport { FILESIZE } from \"../../../../constants\";\n\nconst mapDispatchToProps = (dispatch: any) => ({\n setVersion: (version: string) =>\n dispatch(appDownloadOperations.setVersion(version)),\n});\n\nconst connector = connect(null, mapDispatchToProps);\n\ntype PropsFromRedux = ConnectedProps;\n\ntype Props = PropsFromRedux;\n\nconst F3MAppDownFilesInd = (\n props: ContentPropsAppDownUpdtCreate &\n Props & {\n required: boolean;\n fileName: string[];\n gainsName: string[];\n useOriginalVersion: boolean;\n }\n) => {\n const classes = useStyles();\n\n const {\n setAddOrUpdt,\n setVersion,\n required,\n fileName,\n gainsName,\n useOriginalVersion,\n } = props;\n\n const [selected, setSelected] = useState(0);\n\n const [fileNameToShow, setFileNameToShow] =\n useState<(File | string)[]>(fileName);\n const [gainsNameToShow, setGainsNameToShow] =\n useState<(File | string)[]>(gainsName);\n\n const [originalVersion, setOriginalVersion] =\n useState(useOriginalVersion);\n\n const getStyle = (btnSelected: number) => {\n return btnSelected === selected\n ? { background: \"#00adef\", color: \"white\" }\n : { background: \"none\", color: \"#00adef\" };\n };\n\n const handleFileChangeFile = (files: File[]) => {\n if (files.length > 0) {\n if (originalVersion) {\n setOriginalVersion(false);\n } else {\n setVersion(getFileVersion(files[0].name));\n }\n setFileNameToShow(files.length > 0 ? files : []);\n } else {\n setVersion(\"\");\n }\n setAddOrUpdt((prevState) => ({\n ...prevState,\n file: files.length > 0 ? files[0] : undefined,\n }));\n };\n\n const handleGainsChangeFile = (files: File[]) => {\n setGainsNameToShow(files.length > 0 ? files : []);\n setAddOrUpdt((prevState) => ({\n ...prevState,\n gains: files.length > 0 ? files[0] : undefined,\n }));\n };\n\n const getFileAddedMessage = (file: string) => {\n setAddOrUpdt((prevState) => ({ ...prevState, isNewFile: true }));\n return i18n.t(\"dropzone.fileAdded\").replace(\"FILE_NAME\", file);\n };\n\n const getGainsAddedMessage = (file: string) => {\n setAddOrUpdt((prevState) => ({ ...prevState, isNewGains: true }));\n return i18n.t(\"dropzone.fileAdded\").replace(\"FILE_NAME\", file);\n };\n\n return (\n
\n \n {\n setSelected(0);\n }}\n style={getStyle(0)}\n >\n {i18n.t(\"applicationDownload.file\")}\n \n {\n setSelected(1);\n }}\n style={getStyle(1)}\n >\n {i18n.t(\"applicationDownload.gains\")}\n \n \n {required === true &&  *}\n
\n {selected === 0 && (\n \n )}\n {selected === 1 && (\n \n )}\n
\n
\n );\n};\n\nexport default connector(F3MAppDownFilesInd);\n","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n padding: 20,\n verticalAlign: 'middle'\n },\n uploadArea: {\n paddingTop: 20,\n },\n required: {\n color: 'red'\n }\n}))\n\nexport default useStyles","import { Button, ButtonGroup, Grid } from \"@material-ui/core\";\nimport React, { useState } from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { F3MDropzoneSection } from \"../..\";\nimport { FILESIZE } from \"../../../../constants\";\nimport i18n from \"../../../../i18n\";\nimport { appDownloadOperations } from \"../../../../store/operations\";\nimport { FilesStruct } from \"../../../../types/services/applicationDownload\";\nimport { ApplicationState } from \"../../../../types/store\";\nimport { getFileVersion } from \"../../../../utils\";\n\nimport { ContentPropsAppDownUpdtCreate } from \"../../../F3MAddUpdt/types\";\n\nimport useStyles from \"./styles\";\n\nconst mapStateToProps = (state: ApplicationState) => ({\n appDownload: state.appDownload,\n});\n\nconst mapDispatchToProps = (dispatch: any) => ({\n setVersion: (version: string) =>\n dispatch(appDownloadOperations.setVersion(version)),\n});\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\ntype PropsFromRedux = ConnectedProps;\n\ntype Props = PropsFromRedux;\n\nconst F3MAppDownFilesMulti = (\n props: ContentPropsAppDownUpdtCreate & Props & { required: boolean }\n) => {\n const classes = useStyles();\n\n const { setAddOrUpdt, setVersion, required } = props;\n\n const version = props.appDownload?.version;\n\n const [selected, setSelected] = useState(0);\n const [addedFiles, setAddedFiles] = useState(\n undefined\n );\n const [gainsFile, setGainsFile] = useState(undefined);\n\n const initInstFile: File[] = addedFiles ? [addedFiles[\"installation\"]] : [];\n const initUpdtFile: File[] = addedFiles ? [addedFiles[\"update\"]] : [];\n const initUpgrFile: File[] = addedFiles ? [addedFiles[\"upgrade\"]] : [];\n const initGainsFile: File[] = gainsFile ? [gainsFile] : [];\n\n const getStyle = (btnSelected: number) => {\n return btnSelected === selected\n ? { background: \"#00adef\", color: \"white\" }\n : { background: \"none\", color: \"#00adef\" };\n };\n\n const handleFilesChange = (type: number, files: any) => {\n let key = \"\";\n switch (type) {\n case 0:\n key = \"installation\";\n break;\n case 1:\n key = \"update\";\n break;\n case 2:\n key = \"upgrade\";\n break;\n }\n let newFiles: FilesStruct | undefined = {};\n\n if (addedFiles !== undefined) {\n newFiles = addedFiles;\n\n if (files.length === 0) {\n delete newFiles[key];\n }\n }\n\n if (files.length > 0) {\n if (!version) {\n setVersion(getFileVersion(files[0].name));\n }\n newFiles[key] = files[0];\n }\n\n if (Object.keys(newFiles).length === 0) {\n newFiles = undefined;\n setVersion(\"\");\n }\n\n setAddedFiles(newFiles);\n setAddOrUpdt((prevState) => ({ ...prevState, files: newFiles }));\n };\n\n const handleGainsChangeFile = (files: File[]) => {\n setGainsFile(files.length > 0 ? files[0] : undefined);\n setAddOrUpdt((prevState) => ({\n ...prevState,\n gains: files.length > 0 ? files[0] : undefined,\n }));\n };\n\n const getFileAddedMessage = (file: string) => {\n setAddOrUpdt((prevState) => ({ ...prevState, isNewFile: true }));\n return i18n.t(\"dropzone.fileAdded\").replace(\"FILE_NAME\", file);\n };\n\n const getGainsAddedMessage = (file: string) => {\n setAddOrUpdt((prevState) => ({ ...prevState, isNewGains: true }));\n return i18n.t(\"dropzone.fileAdded\").replace(\"FILE_NAME\", file);\n };\n\n return (\n
\n \n {\n setSelected(0);\n }}\n style={getStyle(0)}\n >\n {i18n.t(\"applicationDownload.file\")}\n \n {\n setSelected(1);\n }}\n style={getStyle(1)}\n >\n {i18n.t(\"applicationDownload.gains\")}\n \n \n {required === true &&  *}\n
\n {selected === 0 && (\n \n \n handleFilesChange(0, files)}\n initialFiles={initInstFile}\n getFileAddedMessage={getFileAddedMessage}\n showPreviews={true}\n showPreviewsInDropzone={false}\n useChipsForPreview\n previewGridProps={{\n container: { spacing: 1, direction: \"row\" },\n }}\n filesLimit={1}\n maxFileSize={FILESIZE[\"2GB\"]}\n centerInformation={i18n.t(\n \"applicationDownload.uploadInstallation\"\n )}\n />\n \n \n handleFilesChange(1, files)}\n initialFiles={initUpdtFile}\n getFileAddedMessage={getFileAddedMessage}\n showPreviews={true}\n showPreviewsInDropzone={false}\n useChipsForPreview\n previewGridProps={{\n container: { spacing: 1, direction: \"row\" },\n }}\n filesLimit={1}\n maxFileSize={FILESIZE[\"2GB\"]}\n centerInformation={i18n.t(\"applicationDownload.uploadUpdate\")}\n />\n \n \n handleFilesChange(2, files)}\n initialFiles={initUpgrFile}\n getFileAddedMessage={getFileAddedMessage}\n showPreviews={true}\n showPreviewsInDropzone={false}\n useChipsForPreview\n previewGridProps={{\n container: { spacing: 1, direction: \"row\" },\n }}\n filesLimit={1}\n maxFileSize={FILESIZE[\"2GB\"]}\n centerInformation={i18n.t(\"applicationDownload.uploadUpgrade\")}\n />\n \n \n )}\n {selected === 1 && (\n \n )}\n
\n
\n );\n};\n\nexport default connector(F3MAppDownFilesMulti);\n","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n padding: 20,\n verticalAlign: 'middle'\n },\n formControl: {\n minWidth: 120,\n }\n}))\n\nexport default useStyles","import { Checkbox, CircularProgress, FormControlLabel, Grid, TextField } from '@material-ui/core'\nimport { Autocomplete } from '@material-ui/lab'\nimport React, { ChangeEvent, Dispatch, Fragment, SetStateAction, useEffect, useState } from 'react'\nimport { connect, ConnectedProps } from 'react-redux'\nimport { applicationService } from '../../../../api'\nimport i18n from '../../../../i18n'\nimport { ApiResponse } from '../../../../types/api'\nimport { ApplicationResponse } from '../../../../types/services/application'\nimport { ApplicationState } from '../../../../types/store'\n\nimport { ContentPropsAppDownUpdtCreate } from '../../../F3MAddUpdt/types'\n\nimport useStyles from './styles'\n\n\nconst mapStateToProps = (state: ApplicationState) => {\n return {\n appDownload: state.appDownload\n }\n}\n\nconst connector = connect(mapStateToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst F3MApplicationChoice = (props: ContentPropsAppDownUpdtCreate & Props &\n{ setAddUpdtModal: Dispatch>, handleError: (message: string) => void }) => {\n\n const classes = useStyles()\n\n const {\n addOrUpdt,\n setAddOrUpdt,\n setAddUpdtModal,\n handleError\n } = props\n\n const versionFromFile = props.appDownload?.version\n\n const defaultApplication = addOrUpdt && (addOrUpdt.applicationId && addOrUpdt.applicationName)\n ? { 'applicationId': addOrUpdt.applicationId, 'applicationName': addOrUpdt.applicationName }\n : null\n\n const [application, setApplication] = useState(defaultApplication)\n const [applications, setApplications] = useState([])\n const [loading, setLoading] = useState(false)\n const [isManualVersion, setManualVersion] = useState(addOrUpdt.isManualVersion ? addOrUpdt.isManualVersion : false)\n const [versionToPresent, setVersionToPresent] = useState(props.appDownload?.version)\n\n const loadApplications = async () => {\n setLoading(true)\n try {\n const response: ApiResponse = await applicationService.loadApplications()\n\n if (response.isSuccess) {\n setApplications(response.result)\n setLoading(false)\n } else {\n setLoading(false)\n }\n }\n catch (e) {\n setAddUpdtModal(false)\n handleError(i18n.t('error.unexpectedError'))\n }\n finally {\n setLoading(false)\n }\n }\n\n const handleChangeApplication = (e: React.ChangeEvent<{}>, option: { applicationId: string, applicationName: string } | null) => {\n setAddOrUpdt(prevState => ({\n ...prevState,\n applicationId: option ? option.applicationId : undefined,\n applicationName: option ? option.applicationName : undefined\n }))\n setApplication(option)\n }\n\n const handleChangeVersion = (e: any) => {\n if (!e.target.value.match(/[^0-9.]/g)) {\n setAddOrUpdt(prevState => ({ ...prevState, version: e.target.value }))\n setVersionToPresent(e.target.value)\n }\n }\n\n const handleChangeManualVersion = (event: ChangeEvent, checked: boolean) => {\n if (checked === true) {\n setAddOrUpdt(prevState => ({ ...prevState, version: versionFromFile, isManualVersion: true }))\n }\n else {\n setAddOrUpdt(prevState => ({ ...prevState, version: versionFromFile, isManualVersion: false }))\n }\n setVersionToPresent(versionFromFile)\n setManualVersion(checked)\n }\n\n useEffect(() => {\n if (!isManualVersion && versionFromFile !== versionToPresent) {\n setVersionToPresent(versionFromFile)\n setAddOrUpdt(prevState => ({ ...prevState, version: versionFromFile, isManualVersion: false }))\n }\n }, [props.appDownload?.version]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n loadApplications()\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n
\n \n \n option.applicationId === value.applicationId}\n getOptionLabel={(option) => option.applicationName}\n style={{ width: '100%' }}\n onChange={handleChangeApplication}\n loading={loading}\n renderInput={(params) => \n {loading ? (\n \n ) : null}\n {params.InputProps.endAdornment}\n \n )\n }} />}\n />\n \n \n \n \n \n \n \n handleChangeManualVersion(e, c)} name='manualVersion' />\n } label='Introduzir Manualmente' />\n \n \n \n \n
\n )\n}\n\nexport default connector(F3MApplicationChoice)","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n padding: 20,\n verticalAlign: 'middle'\n },\n uploadArea: {\n paddingTop: 20,\n }\n}))\n\nexport default useStyles","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n padding: 20,\n paddingBottom: 0,\n verticalAlign: 'middle'\n }\n}))\n\nexport default useStyles","import React, { ChangeEvent, Dispatch, Fragment, SetStateAction, useState } from 'react'\n\nimport { CircularProgress, TextField } from '@material-ui/core'\nimport { Autocomplete } from '@material-ui/lab'\n\nimport i18n from '../../../../i18n'\n\nimport { downloadManagerService } from '../../../../api'\nimport { ApiResponse } from '../../../../types/api'\nimport { ClientModel } from '../../../../types/services/downloadsManager'\n\nimport { ContentPropsDownManUpdtCreate } from '../../../F3MAddUpdt/types'\n\nimport useStyles from './styles'\n\nconst F3MClientChoice = (props: ContentPropsDownManUpdtCreate &\n{\n setAddUpdtModal: Dispatch>,\n handleError: (message: string) => void,\n defaultClient: ClientModel | null\n}) => {\n\n const classes = useStyles()\n\n const {\n setAddOrUpdt,\n setAddUpdtModal,\n handleError,\n defaultClient\n } = props\n\n const [client, setClient] = useState(defaultClient)\n const [clients, setClients] = useState([])\n const [loading, setLoading] = useState(false)\n const [open, setOpen] = useState(false)\n\n const loadClients = async (clientCodeName: string) => {\n if (clientCodeName.length === 0) {\n setClients([])\n return\n }\n\n setLoading(true)\n try {\n const response: ApiResponse = await downloadManagerService.loadClients(clientCodeName)\n\n if (response.isSuccess) {\n if (response.result.length > 0) {\n setOpen(true)\n }\n setClients(response.result)\n setLoading(false)\n } else {\n setClients([])\n setLoading(false)\n }\n }\n catch (e) {\n setAddUpdtModal(false)\n handleError(i18n.t('error.unexpectedError'))\n }\n finally {\n setLoading(false)\n }\n }\n\n const handleChangeClient = (e: ChangeEvent<{}>, option: ClientModel | null) => {\n setOpen(false)\n setAddOrUpdt(prevState => ({\n ...prevState,\n clientId: option ? option.clientId : undefined,\n }))\n setClient(option)\n }\n\n return (\n
\n option.clientId === value.clientId}\n getOptionLabel={(option) => option.clientName}\n style={{ width: '100%' }}\n onChange={handleChangeClient}\n filterOptions={(options, state) => options}\n loading={loading}\n noOptionsText={i18n.t('downloads.noOptionsAvail')}\n renderInput={(params) =>\n {\n await loadClients(event.target.value)\n }}\n variant='outlined'\n InputProps={{\n ...params.InputProps,\n endAdornment: (\n \n {loading ? (\n \n ) : null}\n {params.InputProps.endAdornment}\n \n )\n }}\n />}\n />\n
\n )\n}\n\nexport default F3MClientChoice","import { makeStyles, createStyles } from '@material-ui/core/styles'\nimport { Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n description: {\n paddingLeft: 20,\n paddingRight: 20,\n verticalAlign: 'middle'\n }\n}))\n\nexport default useStyles","import { TextField } from '@material-ui/core'\nimport React, { useState } from 'react'\nimport i18n from '../../../../i18n'\nimport inputLimit from '../../../../utils/inputLimit'\n\nimport { ContentPropsDownManUpdtCreate } from '../../../F3MAddUpdt/types'\n\nimport useStyles from './styles'\n\nconst F3MDownManDescp = (props: ContentPropsDownManUpdtCreate & { handleError: (message: string) => void }) => {\n const classes = useStyles()\n\n const {\n addOrUpdt,\n setAddOrUpdt,\n handleError\n } = props\n\n const [description, setDescription] = useState(addOrUpdt.description ? addOrUpdt.description : '')\n\n const handleChangeDescrp = (value: string) => {\n const descriptionLimit = inputLimit.common.description\n if (value.length > descriptionLimit) {\n handleError(i18n.t('common.maxCharField', { field: i18n.t('downloadCategoryDownload.description'), maxChar: descriptionLimit }))\n }\n else {\n setDescription(value)\n setAddOrUpdt(prevState => ({ ...prevState, description: value }))\n }\n }\n\n return (\n handleChangeDescrp(e.target.value)}\n style={{ margin: 8 }}\n fullWidth\n margin='normal'\n InputLabelProps={{\n shrink: true,\n }}\n />\n )\n}\n\nexport default F3MDownManDescp","import { useState, useEffect } from 'react'\n\ninterface IWindowSize {\n\twidth?: number\n\theight?: number\n}\n\nexport const useWindowSize = () => {\n\tconst [windowSize, setWindowSize] = useState({width: undefined, height: undefined})\n \n\tuseEffect(() => {\n\t // Handler to call on window resize\n\t\tconst handleResize = () => setWindowSize({width: window.innerWidth, height: window.innerHeight})\n\t\twindow.addEventListener('resize', handleResize)\n\t \thandleResize()\n\t \n\t \treturn () => window.removeEventListener('resize', handleResize)\n\t}, [])\n \n\treturn windowSize\n}\n","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nimport { WIDTHS } from '../../constants'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n container: {\n backgroundColor: theme.palette.grey[200],\n position: 'absolute',\n bottom: 0,\n width: '100vw',\n height: 400,\n paddingTop: 60,\n paddingRight: 40,\n [theme.breakpoints.up(WIDTHS.SIDEBAR_OPEN_WINDOW)]: {\n paddingLeft: WIDTHS.DESKTOP_DRAWER + 40\n },\n [theme.breakpoints.down(WIDTHS.SIDEBAR_OPEN_WINDOW)]: {\n paddingLeft: WIDTHS.DESKTOP_DRAWER_CLOSED + 40\n },\n [theme.breakpoints.down('sm')]: {\n paddingLeft: 20,\n paddingRight: 20\n },\n [theme.breakpoints.down('xs')]: {\n height: 550\n }\n },\n columnsGrid: {\n height: 'calc(400px - 50px - 50px - 170px)', // footer (400px) - paddingTop (60px) - space between grid and icons (60px) - icons + image (170px)\n [theme.breakpoints.down('xs')]: {\n height: 'calc(550px - 60px - 60px - 170px)'\n }\n },\n footerTitle: {\n fontWeight: 700,\n paddingBottom: 5\n },\n footerLink: {\n color: theme.palette.text.secondary,\n textDecoration: 'none',\n lineHeight: '22px',\n '&:hover': {\n textDecoration: 'none',\n color: theme.palette.text.secondary\n }\n },\n iconAndImageGrid: {\n height: 'calc(60px + 170px)',\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(1)\n },\n image: {\n maxWidth: '100%'\n }\n}))\n\nexport default useStyles","import React from 'react'\nimport { Link } from 'react-router-dom'\nimport { connect, ConnectedProps } from 'react-redux'\n\nimport { Container, Grid, Typography, Link as MuiLink } from '@material-ui/core'\n\nimport { F3MIcons } from '..'\n\nimport i18n from '../../i18n'\nimport { ROUTES } from '../../constants'\n\nimport { useWindowSize } from '../../hooks'\nimport theme from '../../assets/theme'\n\nimport useStyles from './styles'\n\nimport { ApplicationState } from '../../types/store'\nimport { openOrDownload } from '../../utils'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n loginState: state.login,\n servCatalogState: state.servCatalog\n})\n\nconst connector = connect(mapStateToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst F3MFooter = (props: Props) => {\n const classes = useStyles()\n\n const servCatalogBlob = props.servCatalogState?.servCatalogBlob\n const { user } = props.loginState!\n\n const { SOFTWARE, SERVICES, TRAINING, BACKOFFICE } = ROUTES\n\n const size = useWindowSize()\n const { sm } = theme.breakpoints.values\n\n return (\n \n \n \n \n {i18n.t('menus.software.parent')}\n \n {i18n.t('menus.software.licensing')}\n \n \n {i18n.t('menus.software.installations')}\n \n \n {i18n.t('menus.software.updates')}\n \n \n \n {i18n.t('menus.services.parent')}\n \n {i18n.t('menus.services.incidents')}\n \n \n {i18n.t('menus.services.contracts')}\n \n \n openOrDownload(undefined, undefined, servCatalogBlob)}>{i18n.t('menus.services.catalog')}\n \n \n {i18n.t('menus.services.report')}\n \n \n {i18n.t('menus.services.downloads')}\n \n \n \n {i18n.t('menus.training.parent')}\n \n {i18n.t('menus.training.footer')}\n \n \n {user?.role === 'F3M' &&\n \n {i18n.t('menus.backoffice.parent')}\n \n {i18n.t('menus.backoffice.carousel')}\n \n \n {i18n.t('menus.backoffice.applications')}\n \n \n {i18n.t('menus.backoffice.downloads')}\n \n \n }\n \n \n \n \n \n \n \n \n \n \n\n \n )\n}\n\nexport default connector(F3MFooter)","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n paper: {\n padding: 14,\n maxWidth: 250\n }\n}))\n\nexport default useStyles","import React from 'react'\n\nimport { Popover } from '@material-ui/core'\n\nimport { F3MPopoverProps } from './types'\n\nimport useStyles from './styles'\n\nconst F3MPopover = (props: F3MPopoverProps) => {\n const classes = useStyles()\n\n return \n}\n\nexport default F3MPopover","import React from 'react'\nimport { SvgIcon } from '@material-ui/core'\n\nexport const ServicesIcon = (props: any) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}","import React from 'react'\nimport { SvgIcon } from '@material-ui/core'\n\nexport const SoftwareIcon = (props: any) => {\n return (\n \n \n \n \n \n \n \n \n )\n}","import React from 'react'\nimport { SvgIcon } from '@material-ui/core'\n\nexport const TrainingIcon = (props: any) => {\n return (\n \n \n \n \n \n \n \n \n )\n}","import React from 'react'\nimport { SvgIcon } from '@material-ui/core'\n\nexport const BackofficeIcon = (props: any) => {\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}","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n listRoot: {\n paddingTop: 0,\n paddingBottom: 0,\n [theme.breakpoints.up('sm')]: {\n paddingTop: 170\n },\n [theme.breakpoints.down('xs')]: {\n paddingTop: 140\n }\n },\n listItemRoot: {\n paddingTop: 20,\n paddingBottom: 20,\n borderLeft: 'solid 3px transparent',\n color: theme.palette.grey[500],\n '&.Mui-selected': {\n color: theme.palette.primary.main + ' !important',\n fontWeight: 500,\n backgroundColor: theme.palette.common.white\n },\n '&.Mui-selected:hover': {\n color: theme.palette.primary.main + ' !important',\n fontWeight: 500,\n backgroundColor: theme.palette.common.white\n },\n '&:hover': {\n color: theme.palette.primary.main + ' !important',\n backgroundColor: theme.palette.common.white + ' !important'\n }\n },\n listItemSelected: {\n backgroundColor: theme.palette.common.white + ' !important',\n color: theme.palette.primary.main + ' !important',\n fontWeight: 500,\n borderLeft: 'solid 3px ' + theme.palette.primary.main,\n },\n listItemIcon: {\n marginLeft: 31, //border (3px)\n marginRight: theme.spacing(1),\n '&.MuiListItemIcon-root': {\n color: 'inherit'\n }\n },\n listItemIconIcon: {\n color: 'inherit !important',\n overflow: 'visible',\n width: 32,\n height: 32\n },\n listItemExpandIcon: {\n marginRight: theme.spacing(2),\n transition: theme.transitions.create(['transform'], {\n duration: theme.transitions.duration.short\n })\n },\n listItemExpandMoreIcon: {\n color: 'inherit',\n transform: 'rotate(90deg)'\n },\n listItemExpandLessIcon: {\n color: 'inherit',\n transform: 'rotate(-90deg)'\n },\n listItemText: {\n textTransform: 'uppercase',\n fontSize: 15,\n fontWeight: 500,\n color: 'inherit',\n marginTop: 0,\n marginBottom: 0\n },\n collapseListItem: {\n padding: theme.spacing(0.5, 0, 0.5, 12),\n fontSize: 16,\n color: theme.palette.text.primary,\n fontWeight: 400,\n '&.Mui-selected': {\n color: theme.palette.primary.main,\n fontWeight: 500,\n backgroundColor: theme.palette.common.white\n },\n '&.Mui-selected:hover': {\n color: theme.palette.primary.main,\n fontWeight: 500,\n backgroundColor: theme.palette.common.white\n },\n '&:hover': {\n color: theme.palette.primary.main,\n backgroundColor: theme.palette.common.white + ' !important'\n }\n }\n}))\n\nexport default useStyles","import React from 'react'\nimport { connect, ConnectedProps } from 'react-redux'\nimport { push } from 'connected-react-router'\nimport clsx from 'clsx'\n\nimport { List, ListItem, ListItemIcon, ListItemText, Collapse, Link } from '@material-ui/core'\n\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight'\n\nimport { SoftwareIcon, ServicesIcon, TrainingIcon, BackofficeIcon } from '../../../assets/icons'\n\nimport i18n from '../../../i18n'\nimport { ApplicationState } from '../../../types/store'\nimport commonOperations from '../../../store/operations/commonOperations'\nimport { ROUTES } from '../../../constants'\n\nimport useStyles from './styles'\nimport { openOrDownload } from '../../../utils'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n commonState: state.common,\n routerState: state.router,\n loginState: state.login,\n servCatalogState: state.servCatalog\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n toggleSidebar: (e: any) => dispatch(commonOperations.toggleSidebar(e)),\n toggleSoftwareSidebar: () => dispatch(commonOperations.toggleSoftwareSidebar()),\n toggleServiceSidebar: () => dispatch(commonOperations.toggleServiceSidebar()),\n toggleBackofficeSidebar: () => dispatch(commonOperations.toggleBackofficeSidebar()),\n push: (p: string) => dispatch(push(p))\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst SidebarContent = (props: Props) => {\n const classes = useStyles()\n\n const { sidebarSoftwareOpen, sidebarServicesOpen, sidebarBackofficeOpen } = props.commonState!\n const { pathname } = props.routerState?.location!\n const { user } = props.loginState!\n const servCatalogBlob = props.servCatalogState?.servCatalogBlob\n const { SOFTWARE, SERVICES, TRAINING, BACKOFFICE } = ROUTES\n\n const isSoftwareSelected = (): boolean => [\n SOFTWARE.LICENSING.PATH,\n SOFTWARE.INSTALLATION.PATH,\n SOFTWARE.UPDATES.PATH\n ].includes(pathname)\n\n const isServicesSelected = (): boolean => [\n SERVICES.INCIDENTS.PATH,\n SERVICES.CONTRACTS.PATH,\n SERVICES.REPORTS.PATH,\n SERVICES.DOWNLOADS.PATH\n ].includes(pathname)\n\n const isBackofficeSelected = (): boolean => [\n BACKOFFICE.CAROUSEL.PATH,\n BACKOFFICE.APPLICATIONS.PATH,\n BACKOFFICE.DOWNLOADS.PATH\n ].includes(pathname)\n\n const redirect = (event: any, path: string): void => {\n props.push(path)\n props.toggleSidebar(event)\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n redirect(e, SOFTWARE.LICENSING.PATH)}\n >\n \n \n redirect(e, SOFTWARE.INSTALLATION.PATH)}\n >\n \n \n redirect(e, SOFTWARE.UPDATES.PATH)}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n redirect(e, SERVICES.INCIDENTS.PATH)}\n >\n \n \n redirect(e, SERVICES.CONTRACTS.PATH)}\n >\n \n \n openOrDownload(undefined, undefined, servCatalogBlob)}\n >\n \n \n redirect(e, SERVICES.REPORTS.PATH)}\n >\n \n \n redirect(e, SERVICES.DOWNLOADS.PATH)}\n >\n \n \n \n \n \n \n \n \n \n \n {user?.role === 'F3M' &&\n <>\n \n \n \n \n \n \n \n \n \n redirect(e, BACKOFFICE.CAROUSEL.PATH)}\n >\n \n \n redirect(e, BACKOFFICE.APPLICATIONS.PATH)}\n >\n \n \n redirect(e, BACKOFFICE.DOWNLOADS.PATH)}\n >\n \n \n \n \n \n }\n \n )\n}\n\nexport default connector(SidebarContent)","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nimport { WIDTHS } from '../../../constants'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n drawerRoot: {\n flexShrink: 0,\n whiteSpace: 'nowrap',\n width: WIDTHS.DESKTOP_DRAWER,\n [theme.breakpoints.down('lg')]: {\n width: WIDTHS.TABLET_DRAWER\n },\n [theme.breakpoints.down('xs')]: {\n width: WIDTHS.MOBILE_DRAWER\n },\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.short\n }),\n boxShadow: theme.shadows[3],\n zIndex: theme.zIndex.drawer\n },\n drawerClosed: {\n overflowX: 'hidden',\n width: WIDTHS.DESKTOP_DRAWER_CLOSED,\n [theme.breakpoints.up(WIDTHS.SIDEBAR_OPEN_WINDOW)]: {\n width: WIDTHS.DESKTOP_DRAWER\n },\n [theme.breakpoints.down('sm')]: {\n width: 0\n },\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.short\n }),\n boxShadow: theme.shadows[2]\n },\n sidebarToggleFab: {\n zIndex: theme.zIndex.drawer + 1,\n backgroundColor: 'rgba(255, 255, 255, 0.8)',\n boxShadow: 'none',\n border: 'solid 1px ' + theme.palette.warning.main,\n position: 'fixed',\n transition: theme.transitions.create(['transform', 'translate'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.short\n }),\n [theme.breakpoints.up(WIDTHS.SIDEBAR_OPEN_WINDOW)]: {\n display: 'none'\n },\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n },\n '&:hover': {\n backgroundColor: 'rgba(255, 255, 255, 0.8)'\n }\n },\n sidebarToggleFabOpen: {\n transform: 'rotate(0deg) translate(277px, calc(50vh + 100px)) rotate(180deg)'\n },\n sidebarToggleFabClose: {\n transform: 'rotate(0deg) translate(80px, calc(50vh + 100px)) rotate(0deg)'\n },\n sidebarToggleIcon: {\n width: 32,\n height: 32,\n color: theme.palette.primary.main\n }\n}))\n\nexport default useStyles","import React from 'react'\nimport { connect, ConnectedProps } from 'react-redux'\nimport clsx from 'clsx'\n\nimport { ClickAwayListener, Fab, Drawer } from '@material-ui/core'\n\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight'\n\nimport SidebarContent from '../Content'\n\nimport { ApplicationState } from '../../../types/store'\nimport commonOperations from '../../../store/operations/commonOperations'\n\nimport useStyles from './styles'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n commonState: state.common\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n toggleSidebar: (e: React.MouseEvent) => dispatch(commonOperations.toggleSidebar(e))\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst DesktopSidebar = (props: Props) => {\n const classes = useStyles()\n\n const {sidebarOpen} = props.commonState!\n\n const clickAway = (e: React.MouseEvent): void => {\n if(sidebarOpen) {\n props.toggleSidebar(e)\n }\n }\n \n return (\n <>\n \n
\n \n \n \n\n \n \n \n
\n
\n \n )\n}\n\nexport default connector(DesktopSidebar)","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nimport { WIDTHS } from '../../../constants'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n drawerRoot: {\n flexShrink: 0,\n whiteSpace: 'nowrap',\n width: WIDTHS.DESKTOP_DRAWER,\n [theme.breakpoints.down('lg')]: {\n width: WIDTHS.TABLET_DRAWER\n },\n [theme.breakpoints.down('xs')]: {\n width: WIDTHS.MOBILE_DRAWER\n },\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.short\n }),\n boxShadow: theme.shadows[3],\n zIndex: theme.zIndex.drawer\n },\n drawerClosed: {\n overflowX: 'hidden',\n width: WIDTHS.DESKTOP_DRAWER_CLOSED,\n [theme.breakpoints.up(WIDTHS.SIDEBAR_OPEN_WINDOW)]: {\n width: WIDTHS.DESKTOP_DRAWER\n },\n [theme.breakpoints.down('sm')]: {\n width: 0\n },\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.short\n }),\n boxShadow: theme.shadows[2]\n }\n}))\n\nexport default useStyles","import React from 'react'\nimport { connect, ConnectedProps } from 'react-redux'\nimport clsx from 'clsx'\n\nimport { SwipeableDrawer } from '@material-ui/core'\n\nimport SidebarContent from '../Content'\n\nimport { ApplicationState } from '../../../types/store'\nimport commonOperations from '../../../store/operations/commonOperations'\n\nimport useStyles from './styles'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n commonState: state.common\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n toggleSidebar: (e: any) => dispatch(commonOperations.toggleSidebar(e))\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst MobileSidebar = (props: Props) => {\n const classes = useStyles()\n\n const {sidebarOpen} = props.commonState!\n\n return (\n \n \n \n )\n}\n\nexport default connector(MobileSidebar)","import React from 'react'\n\nimport { useTheme } from '@material-ui/core'\n\nimport { useWindowSize } from '../../hooks'\n\nimport DesktopSidebar from './Desktop'\nimport MobileSidebar from './Mobile'\n\nconst F3MSidebar = () => {\n const theme = useTheme()\n const size = useWindowSize()\n \n return (\n size.width! > theme.breakpoints.values.lg ? : \n )\n}\n\nexport default F3MSidebar","import { makeStyles, createStyles } from \"@material-ui/core/styles\"\nimport { Theme } from \"@material-ui/core\"\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n alertRoot: {\n fontSize: '0.875rem',\n lineHeight: 1.43\n }\n}))\n\nexport default useStyles","import React from 'react'\n\nimport { IconButton, Snackbar } from '@material-ui/core'\nimport { Alert } from '@material-ui/lab'\n\nimport CloseIcon from '@material-ui/icons/Close'\n\nimport { isDefined } from '../../utils'\n\nimport { F3MSnackbarProps } from './types'\n\nimport useStyles from './styles'\n\nconst F3MSnackbar = (props: F3MSnackbarProps) => {\n\n const classes = useStyles()\n\n const Close = () => {\n return (\n \n \n \n )\n }\n\n let snackbarProps: F3MSnackbarProps = {\n \n // ACTION\n action: isDefined(props.action) ? props.action : ,\n\n // Default ACHOR ORIGIN BOTTOM RIGHT\n anchorOrigin: isDefined(props.anchorOrigin) ? props.anchorOrigin : { vertical: 'bottom', horizontal: 'right' },\n\n // Default AUTO HIDE DURATION 6000\n autoHideDuration: isDefined(props.autoHideDuration) ? props.autoHideDuration : 6000,\n\n setSnackbar: props.setSnackbar,\n\n snackbar: props.snackbar\n }\n\n const closeSnackbar = (event?: React.SyntheticEvent | undefined, reason?: string | undefined) => {\n if(reason !== 'clickaway') snackbarProps.setSnackbar(prevState => ({ ...prevState, open: false }))\n }\n\n return (\n \n \n {snackbarProps.snackbar.message}\n \n \n )\n}\n\nexport default F3MSnackbar","import moment from 'moment'\nimport { isArray, isDefined, isNumber, isStringEmpty } from '../../utils'\n\nimport { Alignment, ColType, F3MDataGridRowData, SortDirection } from './types'\n\nconst getWidth = (width: number | string | undefined): string => {\n if (isDefined(width)) {\n if (isNumber(width!)) {\n return width! + '%'\n }\n return width! as string\n }\n return 'auto'\n}\n\nconst alignCell = (align: Alignment | undefined, type: ColType | undefined): Alignment => {\n if (isDefined(align)) {\n return align!\n } else if (isDefined(type)) {\n if (type! === 'number' || type! === 'date' || type! === 'datetime') {\n return 'right'\n } else if (type! === 'node') {\n return 'center'\n }\n return 'left'\n }\n return 'left'\n}\n\nconst getClassName = (className: string | string[] | undefined): string => {\n if (isDefined(className)) {\n if (isArray(className)) {\n return (className as string[]).join(' ')\n } else {\n return className as string\n }\n }\n return ''\n}\n\nconst descendingComparator = (a: T, b: T, orderBy: keyof T) => {\n if (b[orderBy] < a[orderBy]) {\n return -1\n }\n if (b[orderBy] > a[orderBy]) {\n return 1\n }\n return 0\n}\n\nconst getComparator = (order: SortDirection, orderBy: Key): (a: {[key in Key]: number | string}, b: {[key in Key]: number | string}) => number => {\n return order === 'desc' ? (a, b) => descendingComparator(a, b, orderBy) : (a, b) => -descendingComparator(a, b, orderBy)\n}\n\nconst stableSort = (array: F3MDataGridRowData[], comparator: (a: F3MDataGridRowData, b: F3MDataGridRowData) => number) => {\n const stabilizedThis = array.map((el, index) => [el, index] as[F3MDataGridRowData, number])\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[0], b[0])\n if (order !== 0) return order\n return a[1] - b[1]\n })\n return stabilizedThis.map((el) => el[0])\n}\n\nconst formatField = (field: any, type: ColType | undefined): any => {\n if (!isDefined(field) || isStringEmpty(field.toString())) {\n return '-'\n } else if (type === 'date') {\n return moment(field).format('DD/MM/YYYY')\n } else if (type === 'datetime') {\n return moment(field).utc().format('DD/MM/YYYY HH:mm')\n }\n return field\n}\n\nexport {\n getWidth,\n alignCell,\n getClassName,\n getComparator,\n stableSort,\n formatField\n}","import React, { useEffect, useState } from 'react'\n\nimport { Table, TableBody, TableCell, TableContainer, TableHead, TablePagination, TableRow, TableSortLabel } from '@material-ui/core'\n\nimport { isDefined } from '../../utils'\n\nimport { F3MDataGridProps, F3MDataGridRowData } from './types'\n\nimport { alignCell, formatField, getClassName, getComparator, getWidth, stableSort } from './functions'\nimport { F3MEmptyState } from '..'\n\nconst F3MDataGrid = (props: F3MDataGridProps) => {\n let tableProps: F3MDataGridProps = {\n // COLUMNS\n columns: props.columns.map((c, i) => ({\n // FIELD\n field: c.field,\n\n // HEADER NAME\n headerName: c.headerName,\n\n // WIDTH\n width: getWidth(c.width),\n\n // SORTABLE => FALSE\n sortable: isDefined(c.sortable) ? c.sortable: false,\n\n // TYPE\n type: isDefined(c.type) ? c.type : 'string',\n\n // ALIGN\n align: alignCell(c.align, c.type),\n\n // CELL CLASS NAME\n cellClassName: getClassName(c.cellClassName),\n\n // HEADER CLASS NAME\n headerClassName: getClassName(c.headerClassName),\n\n // HEADER ALIGN\n headerAlign: alignCell(c.headerAlign, c.type),\n\n // HIDE SORT ICONS => FALSE\n hideSortIcons: isDefined(c.hideSortIcons) ? c.hideSortIcons: false\n })),\n \n // ROWS\n rows: props.rows,\n\n // ROW CLICK\n rowClick: props.rowClick,\n\n // EXTRA ROWS\n extraRows: props.extraRows,\n\n // HOVER => FALSE\n hover: isDefined(props.hover) ? props.hover : false,\n\n // LOADING => FALSE\n loading: isDefined(props.loading) ? props.loading : false,\n\n // SORT MODE => SERVER\n sortMode: isDefined(props.sortMode) ? props.sortMode : 'server',\n\n // SORT FIELD\n sortField: props.sortField,\n\n // SORT DIRECTION\n sortDirection: props.sortDirection,\n\n // SORT CHANGE\n sortChange: props.sortChange,\n\n // PAGINATION => FALSE\n pagination: isDefined(props.pagination) ? props.pagination : false,\n\n // PAGINATION MODE => SERVER\n paginationMode: isDefined(props.paginationMode) ? props.paginationMode : 'server',\n\n // ROW COUNT => ROWS LENGTH\n rowCount: isDefined(props.rowCount) ? props.rowCount : props.rows.length,\n\n // PAGE SIZE => FIRST OPTION OF ROWS PER PAGE ARRAY => 10\n pageSize: isDefined(props.pageSize) ? props.pageSize : isDefined(props.rowsPerPageOptions) ? props.rowsPerPageOptions![0] : props.pagination ? 10 : undefined,\n\n // PAGE => 0\n page: isDefined(props.page) ? (props.page! - 1) : 0,\n\n // ON CHANGE PAGE\n onChangePage: props.onChangePage,\n\n // ON CHANGE ROWS PER PAGE\n onChangeRowsPerPage: props.onChangeRowsPerPage,\n\n // ROWS PER PAGE OPTIONS\n rowsPerPageOptions: isDefined(props.rowsPerPageOptions) ? props.rowsPerPageOptions : [10, 25, 50, 100]\n }\n\n\n const {columns, rows, rowClick, extraRows, hover, loading} = tableProps\n const {sortMode, sortField, sortDirection, sortChange} = tableProps\n const {pagination, paginationMode, rowCount, pageSize, page, onChangePage, onChangeRowsPerPage, rowsPerPageOptions} = tableProps\n\n\n const [ps, setPageSize] = useState(pageSize!)\n const [p, setPage] = useState(page!)\n const [sf, setSortField] = useState(sortField)\n const [sd, setSortDirection] = useState<'asc' | 'desc' | undefined>(sortDirection)\n const [rowData, setRowData] = useState([])\n\n const GetRowsData = () => {\n let result = rows\n\n if(isDefined(sf) && isDefined(sd)) {\n if(sortMode === 'client') {\n result = stableSort(result, getComparator(sd!, sf!))\n }\n }\n\n if(pagination) {\n if(paginationMode === 'client') {\n result = result.slice(p * ps, p * ps + ps)\n }\n }\n\n return result\n }\n\n useEffect(() => {\n setRowData(GetRowsData())\n\n return () => {\n setRowData([])\n }\n }, [rows, sd, sf, p, ps]) // eslint-disable-line react-hooks/exhaustive-deps\n\n const sort = (e: React.MouseEvent) => {\n e.preventDefault()\n const id = e.currentTarget.parentElement!.id\n\n if(sf === id) {\n if(sd === 'asc') {\n setSortDirection('desc')\n } else {\n setSortDirection('asc')\n }\n } else {\n setSortDirection('asc')\n setSortField(id)\n }\n\n if(sortMode === 'server') {\n sortChange!(e)\n }\n\n setPage(0)\n }\n\n const handleChangePage = (event: React.MouseEvent | null, page: number) => {\n if(paginationMode === 'server') {\n onChangePage!(event, page)\n }\n\n setPage(page)\n }\n\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\n if(paginationMode === 'server') {\n onChangeRowsPerPage!(event)\n }\n \n setPageSize(parseInt(event.target.value, 10))\n setPage(0)\n }\n\n return (\n <>\n \n \n \n {columns.map((c, i) => ())}\n \n \n \n {columns.map((c, i) => (\n \n {\n c.sortable\n ?\n \n {c.headerName}\n \n : \n c.headerName\n }\n \n ))}\n \n \n \n {rowData.map((r: { [x: string]: any; id: string }, i: any) => (\n \n {columns.map((c, i) => (\n \n {formatField(r[c.field], c.type)}\n \n ))}\n \n ))}\n {\n rowData.length > 0\n ?\n extraRows\n :\n loading\n ?\n \n \n \n \n :\n \n \n \n \n \n }\n \n
\n
\n {pagination === true && rowData.length > 0 && \n }\n \n )\n}\n\nexport default F3MDataGrid","import { Theme, makeStyles, createStyles } from '@material-ui/core'\n\nimport { isDefined } from '../../utils'\n\nimport { F3MTextFieldProps } from './types'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n formLabelRoot: props => ({\n opacity: 1,\n color: isDefined(props.value) ? theme.palette[props.color!].main : theme.palette.grey[300],\n fontWeight: props.bold ? 700 : 'normal'\n }),\n formLabelDisabled: {},\n formLabelFocused: {},\n inputLabelRoot: {},\n inputLabelOutlined: {\n color: theme.palette.text.primary + ' !important'\n },\n inputLabelStandard: {\n color: theme.palette.text.primary + ' !important'\n },\n inputLabelFilled: {\n color: theme.palette.text.primary + ' !important'\n },\n inputLabelDisabled: {},\n inputLabelFocused: props => ({\n opacity: 1,\n color: theme.palette[props.color!].main + ' !important',\n fontWeight: 700\n }),\n inputRoot: {\n color: theme.palette.text.primary\n },\n inputRootDisabled: {\n color: theme.palette.grey[300]\n },\n focused: props => ({\n '& > fieldset': {\n borderColor: theme.palette[props.color!].main + ' !important'\n }\n })\n}))\n\nexport default useStyles","import React from 'react'\n\nimport { TextField } from '@material-ui/core'\n\nimport { isDefined } from '../../utils'\n\nimport { F3MTextFieldProps } from './types'\n\nimport useStyles from './styles'\n\nconst F3MTextField = (props: F3MTextFieldProps) => {\n\n let textFieldProps: F3MTextFieldProps = {\n // Default NOT AUTOCOMPLETE\n autoComplete: isDefined(props.autoComplete) ? props.autoComplete : undefined,\n\n // Default NOT AUTOFOCUS\n autoFocus: isDefined(props.autoFocus) ? props.autoFocus : false,\n\n // Default NOT BOLD\n bold: isDefined(props.bold) ? props.bold : false,\n\n // CHILDREN\n children: props.children,\n\n // CLASSNAME\n className: props.className,\n\n // Default COLOR PRIMARY\n color: isDefined(props.color) ? props.color : 'primary',\n\n // Default DEFAULT VALUE UNDEFINED\n defaultValue: isDefined(props.defaultValue) ? props.defaultValue : undefined,\n\n // Default NOT DISABLED\n disabled: isDefined(props.disabled) ? props.disabled : false,\n\n // Default NOT ERROR\n error: isDefined(props.error) ? props.error : false,\n\n // Default NOT FOCUSED\n // focused: isDefined(props.focused) ? props.focused : false,\n\n // FORM HELPER TEXT PROPS\n FormHelperTextProps: props.FormHelperTextProps,\n\n // Default FULLWIDTH\n fullWidth: isDefined(props.fullWidth) ? props.fullWidth : true,\n\n // HELPER TEXT\n helperText: props.helperText,\n\n // ID\n id: props.id,\n\n // INPUT LABEL PROPS\n InputLabelProps: props.InputLabelProps,\n\n // INPUT REF\n inputRef: props.inputRef,\n\n // INPUT PROPS\n InputProps: props.InputProps,\n\n // LABEL\n label: props.label,\n\n // Default MARGIN NORMAL\n margin: isDefined(props.margin) ? props.margin : 'normal',\n\n // Default NOT MULTILINE\n multiline: isDefined(props.multiline) ? props.multiline : false,\n\n // NAME\n name: props.name,\n\n // ONCHANGE\n onChange: props.onChange,\n\n // PLACEHOLDER\n placeholder: props.placeholder,\n\n // Default NOT REQUIRED\n required: isDefined(props.required) ? props.required : false,\n\n // ROWS\n rows: props.rows,\n\n // ROWSMAX\n rowsMax: props.rowsMax,\n\n // Default SIZE SMALL\n size: isDefined(props.size) ? props.size : 'small',\n\n // Default TYPE TEXT\n type: isDefined(props.type) ? props.type : 'text',\n\n // VALUE\n value: props.value,\n\n // Default VARIANT OUTLINED\n variant: isDefined(props.variant) ? props.variant : 'outlined'\n }\n\n const classes = useStyles(textFieldProps)\n\n return (\n \n {textFieldProps.children}\n \n )\n}\n\nexport default F3MTextField","import React from 'react'\n\nimport { Grid } from '@material-ui/core'\nimport { F3MFilterSearch, F3MSelect } from '..'\n\nimport i18n from '../../i18n'\nimport { DownCatBusinessAreasResponse } from '../../types/services/downloadCategories'\nimport { buildBusAreasItemsToSelect } from '../../utils'\n\n\ninterface FiltersBacDownUpgrProps {\n activeBusAreasFilter: string\n handleSelectorFilterChange: (e: React.ChangeEvent<{ name?: string | undefined; value: unknown; }>) => void\n businessAreasFilter: DownCatBusinessAreasResponse\n handleTextFilterChange: (e: React.ChangeEvent) => void\n placeholderSearch: string\n}\n\nconst F3MFiltersBacDownUpgr = (props: FiltersBacDownUpgrProps) => {\n const {\n activeBusAreasFilter,\n handleSelectorFilterChange,\n businessAreasFilter,\n handleTextFilterChange,\n placeholderSearch\n } = props\n\n return (\n \n \n \n \n \n \n \n \n )\n}\n\nexport default F3MFiltersBacDownUpgr","import { makeStyles, createStyles, Theme, fade } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n search: {\n position: 'relative',\n borderRadius: theme.shape.borderRadius,\n backgroundColor: fade(theme.palette.common.white, 0.15),\n '&:hover': {\n backgroundColor: fade(theme.palette.common.white, 0.25),\n },\n marginLeft: 0,\n width: '100%',\n [theme.breakpoints.up('sm')]: {\n marginLeft: theme.spacing(1),\n width: 'auto',\n }\n },\n searchIcon: {\n padding: theme.spacing(0, 2),\n height: '100%',\n position: 'absolute',\n pointerEvents: 'none',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n inputRoot: {\n color: 'inherit',\n },\n inputInput: {\n borderBottom: 'ridge',\n padding: theme.spacing(1, 1, 1, 0),\n // vertical padding + font size from searchIcon\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\n transition: theme.transitions.create('width'),\n width: '100%',\n [theme.breakpoints.up('sm')]: {\n width: '30ch',\n '&:focus': {\n width: '30ch',\n },\n }\n }\n}))\n\nexport default useStyles","import React, { ChangeEvent } from 'react'\n\nimport { InputBase } from '@material-ui/core'\nimport SearchIcon from '@material-ui/icons/Search'\n\nimport useStyles from './styles'\n\ninterface F3MFilterSearchProps {\n handleTextFilterChange: (e: ChangeEvent) => void\n placeholder: string\n}\n\nconst F3MFilterSearch = (props: F3MFilterSearchProps) => {\n\n const classes = useStyles()\n\n return (\n
\n
\n \n
\n props.handleTextFilterChange(e)}\n placeholder={props.placeholder}\n classes={{\n root: classes.inputRoot,\n input: classes.inputInput,\n }}\n />\n
\n )\n}\n\nexport default F3MFilterSearch","import { Theme, makeStyles } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => ({\n category: {\n alignSelf: 'flex-start'\n }\n}))\n\nexport default useStyles","import React from 'react'\nimport { Grid, Typography } from '@material-ui/core'\n\nimport { F3MCategoryTableProps } from './types'\n\nimport { F3MCard, F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData, F3MDownload } from '..'\nimport i18n from '../../i18n'\n\nimport useStyles from './styles'\nimport { downloadCategoryDownloadsService } from '../../api/services/downloadCategoryDownloadsService'\n\nconst F3MCategoryTable = (props: F3MCategoryTableProps) => {\n\n const classes = useStyles()\n\n let productColumns: F3MDataGridColumnProps[] = [\n { field: 'description', headerName: i18n.t('common.description'), width: 30, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'download', headerName: i18n.t('common.download'), width: 15, sortable: false, type: 'node', align: 'center', headerAlign: 'center' }\n ]\n\n let productData: F3MDataGridRowData[] = (props.categoriesData).map((r, id) => ({\n id: id,\n description: r.downCatDownDescription,\n download: r.downCatDownId && downloadCategoryDownloadsService.downloadCatDownload(r.downCatDownId)} />\n }))\n\n return (\n \n \n {props.title}\n \n \n \n )\n}\n\nexport default F3MCategoryTable","import React from 'react'\n\nimport { Box } from '@material-ui/core'\n\nimport { Bar } from 'react-chartjs-2'\nimport { LinearTickOptions } from 'chart.js'\n\nconst F3MChart = (props: { dataset: any, height?: number, noMinWidth?: boolean }) => {\n\n const {\n dataset,\n height,\n noMinWidth\n } = props\n\n return (\n \n \n \n \n \n )\n}\n\nexport default F3MChart","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n button: {\n marginTop: '2vmax',\n color: theme.palette.primary.main\n }\n}))\n\nexport default useStyles","import React, { useEffect, useState } from 'react'\nimport { connect, ConnectedProps } from 'react-redux'\nimport { push } from 'connected-react-router'\n\nimport { Button, Typography } from '@material-ui/core'\n\nimport VisibilityIcon from '@material-ui/icons/Visibility'\n\nimport { F3MDownload, F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData, F3MCard } from '../../../../components'\n\nimport { ApplicationState } from '../../../../types/store'\nimport { licensingOperations } from '../../../../store/operations'\n\nimport i18n from '../../../../i18n'\nimport { isDefined } from '../../../../utils'\nimport { licenseService } from '../../../../api'\n\nimport useStyles from './styles'\n\nimport { ROUTES } from '../../../../constants'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n licensingState: state.licensing\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n handleProductChangePage: (e: any, p: number) => dispatch(licensingOperations.handleProductChangePage(e, p)),\n handleProductChangeRowsPerPage: (e: React.ChangeEvent) => dispatch(licensingOperations.handleProductChangeRowsPerPage(e)),\n loadProducts: () => dispatch(licensingOperations.loadProducts()),\n clearData: () => dispatch(licensingOperations.clearData()),\n order: (e: React.MouseEvent) => dispatch(licensingOperations.order(e)),\n push: (p: string) => dispatch(push(p))\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst TableProducts = (props: Props & { handleError: (message: string) => void, isHomePage?: boolean }) => {\n const classes = useStyles()\n\n const { SOFTWARE } = ROUTES\n\n const { products } = props.licensingState!\n\n const [isGettingPDF, setIsGettingPDF] = useState(false)\n\n useEffect(() => {\n // On Mount\n props.loadProducts()\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n const order = (e: React.MouseEvent) => {\n props.order(e)\n props.loadProducts()\n }\n\n const handleChangePage = (e: any, p: number) => {\n props.handleProductChangePage(e, p)\n props.loadProducts()\n }\n\n const handleChangeRowsPerPage = (e: React.ChangeEvent) => {\n props.handleProductChangeRowsPerPage(e)\n props.loadProducts()\n }\n\n let productColumns: F3MDataGridColumnProps[] = [\n { field: 'applicationName', headerName: i18n.t('common.application'), width: 40, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'version', headerName: i18n.t('common.version'), width: 10, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'network', headerName: i18n.t('product.network'), width: 10, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'salesDate', headerName: i18n.t('common.date'), width: 10, sortable: true, type: 'date', align: 'right', headerAlign: 'right' },\n { field: 'download', headerName: i18n.t('product.download'), width: 15, sortable: false, type: 'node', align: 'center', headerAlign: 'center' },\n { field: 'view', headerName: i18n.t('product.view'), width: 15, sortable: false, type: 'node', align: 'center', headerAlign: 'center' }\n ]\n\n let productData: F3MDataGridRowData[] = isDefined(products.data) ? products.data.map((r, i) => (\n {\n id: r.id,\n applicationName: r.applicationName.toUpperCase(),\n version: r.version,\n network: r.network ? i18n.t('common.yes') : i18n.t('common.no'),\n salesDate: r.salesDate,\n download: r.hasLicense && licenseService.downloadProductLicense(r.id)} />,\n view: r.hasLicense && } request={() => licenseService.getProductLicensePDF(r.id)} />\n }\n )) : []\n\n return (\n \n {i18n.t('product.products')}\n \n { props.isHomePage === true &&\n \n }\n \n )\n}\n\nexport default connector(TableProducts)","import React from 'react'\nimport { connect, ConnectedProps } from 'react-redux';\nimport { push } from 'connected-react-router'\n\nimport { Button, Grid } from '@material-ui/core'\nimport { Cached, GetApp, Build } from '@material-ui/icons';\n\nimport useStyles from './styles'\nimport { ROUTES } from '../../../../constants';\nimport i18n from '../../../../i18n';\n\nconst mapDispatchToProps = (dispatch: any) => ({\n push: (p: string) => dispatch(push(p))\n})\n\nconst connector = connect(null, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst QuickAccessBtns = (props: Props) => {\n const classes = useStyles()\n\n const { SOFTWARE, SERVICES } = ROUTES\n\n return (\n \n \n \n \n \n )\n}\n\nexport default connector(QuickAccessBtns)","import React, { useEffect, useState } from 'react'\nimport { connect, ConnectedProps } from 'react-redux';\nimport { push } from 'connected-react-router'\n\nimport { Button, Grid, Typography } from '@material-ui/core'\n\nimport useStyles from './styles'\nimport { ROUTES } from '../../../../constants';\nimport i18n from '../../../../i18n';\nimport { F3MCard } from '../../../../components';\nimport { contractsService } from '../../../../api';\nimport { AssistanceContractsResponse, ServiceContractsResponse } from '../../../../types/services/contracts';\nimport { ApiResponse } from '../../../../types/api';\n\nconst mapDispatchToProps = (dispatch: any) => ({\n push: (p: string) => dispatch(push(p))\n})\n\nconst connector = connect(null, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\ninterface Plan {\n planName: string\n ends: string\n}\n\nconst QuickAccessBtns = (props: Props & { handleError: (message: string) => void }) => {\n const classes = useStyles()\n\n const [plans, setPlans] = useState([])\n const [loading, setLoading] = useState(false)\n\n const { SERVICES } = ROUTES\n\n const {\n handleError\n } = props\n\n const loadContracts = async () => {\n setLoading(true)\n try {\n const responseAssistCont: ApiResponse = await contractsService.loadAssistanceContracts(3)\n\n if (responseAssistCont.isSuccess) {\n const assistContParsed: Plan[] = responseAssistCont.result.map(elem => {\n return { planName: elem.plan, ends: elem.endDate.toString().split(\"T\")[0] }\n })\n setPlans(prevState => [...prevState, ...assistContParsed])\n } else {\n handleError(i18n.t('error.unexpectedError'))\n }\n\n const planCount: number = responseAssistCont.result.length\n if (planCount < 3) {\n const responseServContr: ApiResponse = await contractsService.loadServiceContracts(3 - planCount)\n\n if (responseServContr.isSuccess) {\n const assistContParsed: Plan[] = responseServContr.result.map(elem => {\n return { planName: elem.description, ends: elem.endDate.toString().split(\"T\")[0] }\n })\n setPlans(prevState => ([...prevState, ...assistContParsed]))\n\n } else {\n handleError(i18n.t('error.unexpectedError'))\n }\n }\n\n }\n catch (e) {\n handleError(i18n.t('error.unexpectedError'))\n }\n finally {\n setLoading(false)\n }\n }\n\n const getBackColor = (date: string) => {\n const actMonth = new Date().getMonth() + 1\n const dateMonth = new Date(date).getMonth() + 1\n const actYear = new Date().getFullYear()\n const dateYear = new Date(date).getFullYear()\n return (dateYear < actYear || dateMonth <= actMonth) ? '#f7931d' : '#dadada'\n }\n\n const getColor = (date: string) => {\n const actMonth = new Date().getMonth() + 1\n const dateMonth = new Date(date).getMonth() + 1\n const actYear = new Date().getFullYear()\n const dateYear = new Date(date).getFullYear()\n return (dateYear < actYear || dateMonth <= actMonth) ? '#ffffff' : '#666666'\n }\n\n useEffect(() => {\n loadContracts()\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n \n {i18n.t('homepage.plans')}\n \n \n \n {i18n.t('homepage.planName')}\n \n \n {i18n.t('homepage.ends')}\n \n \n {plans.map((elem, index) => (\n
\n \n \n {elem.planName}\n \n \n {elem.ends}\n \n \n
\n ))}\n
\n \n
\n )\n}\n\nexport default connector(QuickAccessBtns)","import React, { useEffect, useState } from 'react'\nimport { connect, ConnectedProps } from 'react-redux'\nimport { push } from 'connected-react-router'\n\nimport { Button, Grid, Typography } from '@material-ui/core'\nimport useStyles from './styles'\n\nimport TableProducts from '../../software/licensing/TableProducts'\nimport QuickAccessBtns from './QuickAccessBtns'\nimport i18n from '../../../../i18n'\nimport { F3MCard, F3MChart, F3MSnackbar, F3MSnackbarState } from '../../../../components'\nimport { ticketsService } from '../../../../api'\nimport { TicketsLastXMonthsResponse } from '../../../../types/services/tickets'\nimport theme from '../../../../assets/theme'\nimport Plans from './Plans'\nimport { ROUTES } from '../../../../constants'\n\nconst mapDispatchToProps = (dispatch: any) => ({\n push: (p: string) => dispatch(push(p))\n})\n\nconst connector = connect(null, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst Dashboard = (props: Props) => {\n const classes = useStyles()\n\n const { SERVICES } = ROUTES\n\n const [snackbar, setSnackbar] = useState({\n open: false,\n severity: 'info',\n message: ''\n })\n const [statistics, setStatistics] = useState({ tickets: {} })\n const [loading, setLoading] = useState(false)\n\n const loadStatistics = async () => {\n setLoading(true)\n try {\n const response = await ticketsService.loadNumberTicketsByMonthLastXMonths(4)\n\n if (response.isSuccess) {\n setStatistics(response.result)\n } else {\n handleError(i18n.t('error.unexpectedError'))\n }\n setLoading(false)\n }\n catch (e) {\n handleError(i18n.t('error.unexpectedError'))\n }\n finally {\n setLoading(false)\n }\n }\n\n const handleError = (message: string) => {\n setSnackbar({ open: true, severity: 'error', message: message })\n }\n\n useEffect(() => {\n loadStatistics()\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n const labels = [\n i18n.t('months.january.label'),\n i18n.t('months.february.label'),\n i18n.t('months.march.label'),\n i18n.t('months.april.label'),\n i18n.t('months.may.label'),\n i18n.t('months.june.label'),\n i18n.t('months.july.label'),\n i18n.t('months.august.label'),\n i18n.t('months.september.label'),\n i18n.t('months.october.label'),\n i18n.t('months.november.label'),\n i18n.t('months.december.label')\n ]\n\n let labelsToPresent: string[] = []\n let finalDataToPresente: number[] = []\n\n Object.keys(statistics.tickets).forEach((elem) => {\n labelsToPresent.push(labels[+(elem.split(\"m_\")[1]) - 1])\n finalDataToPresente.push(statistics.tickets[elem])\n })\n\n const dataset = {\n labels: labelsToPresent,\n datasets: [\n {\n label: i18n.t('reports.numberOfTickets'),\n backgroundColor: theme.palette.warning.main,\n borderColor: theme.palette.warning.main,\n borderWidth: 1,\n hoverBackgroundColor: theme.palette.warning.light,\n hoverBorderColor: theme.palette.warning.light,\n data: finalDataToPresente\n }\n ]\n }\n\n return (\n <>\n {i18n.t('homepage.greentingGeneral')}\n \n \n \n {i18n.t('homepage.last4MonthsInc')}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default connector(Dashboard)","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n tableRow: {\n margin: theme.spacing(0, 1),\n '& > *': {\n borderBottom: 'unset !important'\n }\n },\n tableRowIcon: {\n transition: theme.transitions.create(['transform'], {\n duration: theme.transitions.duration.short\n })\n },\n tableRowIconOpen: {\n transform: 'rotate(0deg)'\n },\n tableRowIconClose: {\n transform: 'rotate(-180deg)'\n },\n collapsedTableRow: {\n backgroundColor: theme.palette.common.white + ' !important'\n },\n collapsedTable: {\n borderRight: '1px solid ' + theme.palette.grey[300],\n borderLeft: '1px solid ' + theme.palette.grey[300],\n borderTop: '1px solid ' + theme.palette.grey[300],\n borderBottom: '1px solid ' + theme.palette.grey[300]\n },\n collapsedTableHead: {\n backgroundColor: theme.palette.common.white + ' !important'\n },\n collapsedTableRowHead: {\n backgroundColor: theme.palette.common.white + ' !important'\n },\n collapsedTableCellHead: {\n color: theme.palette.text.primary\n },\n collapsedTableRowBody: {\n '&:nth-child(even)': {\n backgroundColor: theme.palette.common.white\n },\n '&:nth-child(odd)': {\n backgroundColor: theme.palette.grey[50]\n }\n }\n}))\n\nexport default useStyles","import React, { useEffect } from 'react'\nimport { connect, ConnectedProps } from 'react-redux'\nimport moment from 'moment'\nimport clsx from 'clsx'\n\nimport { Box, Collapse, IconButton, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Typography } from '@material-ui/core'\n\nimport CheckBoxIcon from '@material-ui/icons/CheckBox'\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank'\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown'\n\nimport { F3MBreadcrumbs, F3MCard, F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData, F3MEmptyState } from '../../../../components'\n\nimport i18n from '../../../../i18n'\nimport { isDefined } from '../../../../utils'\n\nimport { AssistanceContractsResponse } from '../../../../types/services/contracts'\n\nimport { ApplicationState } from '../../../../types/store'\nimport { contractOperations } from '../../../../store/operations'\n\nimport useStyles from './styles'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n contractsState: state.contracts\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n loadServiceContractsData: () => dispatch(contractOperations.loadServiceContractsData()),\n loadAssistanceContractsData: () => dispatch(contractOperations.loadAssistanceContractsData()),\n clearData: () => dispatch(contractOperations.clearData())\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst Contracts = (props: Props) => {\n const { updateContracts, assistanceContracts } = props.contractsState!\n\n useEffect(() => {\n // On Mount\n props.loadServiceContractsData()\n props.loadAssistanceContractsData()\n\n // On Unmount\n return () => {\n props.clearData()\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n const updatePlansColumns: F3MDataGridColumnProps[] = [\n { field: 'plan', headerName: i18n.t('contracts.plan'), width: 40, sortable: false, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'active', headerName: i18n.t('common.active'), width: 20, sortable: false, type: 'node', align: 'center', headerAlign: 'center' },\n { field: 'startDate', headerName: i18n.t('common.startDate'), width: 20, sortable: false, type: 'date', align: 'right', headerAlign: 'right' },\n { field: 'endDate', headerName: i18n.t('common.endDate'), width: 20, sortable: false, type: 'date', align: 'right', headerAlign: 'right' }\n ]\n\n const updatePlansRows: F3MDataGridRowData[] = isDefined(updateContracts.data) ? updateContracts.data.map((r, i) => (\n {\n id: i.toString(),\n plan: r.description,\n active: r.active ? : ,\n startDate: r.startDate,\n endDate: r.endDate\n }\n )) : []\n\n const Row = (props: AssistanceContractsResponse) => {\n const [open, setOpen] = React.useState(false)\n const classes = useStyles()\n\n return (\n <>\n \n \n setOpen(!open)} disabled={props.contractExtensions.length === 0}>\n \n \n \n {props.plan}\n {moment(props.startDate).format('DD/MM/YYYY')}\n {moment(props.endDate).format('DD/MM/YYYY')}\n {props.totalCredited}\n {props.totalDebited}\n {props.total}\n \n {open &&\n \n \n \n \n \n \n \n {i18n.t('contracts.occurrence')}\n {i18n.t('common.startDate')}\n {i18n.t('common.endDate')}\n {i18n.t('contracts.credit') + ' (' + i18n.t('time.hours.short').toUpperCase() + ')'}\n {i18n.t('contracts.debit') + ' (' + i18n.t('time.hours.short').toUpperCase() + ')'}\n {i18n.t('common.total') + ' (' + i18n.t('time.hours.short').toUpperCase() + ')'}\n \n \n \n {props.contractExtensions.map((ce, i) => (\n \n {ce.description}\n {isDefined(ce.startDate) ? moment(ce.startDate).format('DD/MM/YYYY') : '-'}\n {isDefined(ce.endDate) ? moment(ce.endDate).format('DD/MM/YYYY') : '-'}\n {ce.credit || '-'}\n {ce.debit || '-'}\n {ce.total || '-'}\n \n ))}\n \n {i18n.t('common.total')}\n {moment(props.startDate).format('DD/MM/YYYY')}\n {moment(props.endDate).format('DD/MM/YYYY')}\n {props.totalCredited || '-'}\n {props.totalDebited || '-'}\n {props.total || '-'}\n \n \n
\n
\n
\n
\n
\n }\n \n )\n }\n\n return (\n <>\n \n\n \n {i18n.t('contracts.updatePlans')}\n \n \n\n \n {i18n.t('contracts.assistancePlans')}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {i18n.t('contracts.plan')}\n {i18n.t('common.startDate')}\n {i18n.t('common.endDate')}\n {i18n.t('contracts.credit') + ' (' + i18n.t('time.hours.short').toUpperCase() + ')'}\n {i18n.t('contracts.debit') + ' (' + i18n.t('time.hours.short').toUpperCase() + ')'}\n {i18n.t('common.total') + ' (' + i18n.t('time.hours.short').toUpperCase() + ')'}\n \n\n \n \n {\n isDefined(assistanceContracts.data) && assistanceContracts.data.length > 0\n ?\n assistanceContracts.data.map((ac, i) => (\n \n ))\n :\n assistanceContracts.loading\n ?\n \n \n \n \n :\n \n \n \n \n \n }\n \n
\n
\n
\n \n )\n}\n\nexport default connector(Contracts)","import { CONFIG, ENDPOINTS } from '../../constants'\nimport { ApplicationResponse } from '../../types/services/application'\nimport { ContractResponse, IncidentsResponse } from '../../types/services/incidents'\nimport { IncidentsRequest } from '../../types/services/incidents/IncidentsRequest'\nimport { download, request } from '../axios'\n\nexport const incidentsService = {\n getIncidentPDF: async (id: string) => {\n const response = await download({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.INCIDENT_PDF + '/' + id\n })\n\n return response\n },\n\n loadIncidents: async (params: IncidentsRequest) => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.INCIDENT,\n params : params\n })\n\n return response\n },\n\n loadContracts: async () => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.INCIDENT_CONTRACTS\n })\n\n return response\n },\n\n loadApplications: async () => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.INCIDENT_APPLICATION\n })\n\n return response\n },\n \n getExcel: async (params: IncidentsRequest) => {\n const response = await download({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.INCIDENT_EXCEL,\n params : params\n })\n\n return response\n }\n}","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n hidden: {\n display: 'none'\n },\n filter: {\n transition: theme.transitions.create(['max-height'], {\n duration: theme.transitions.duration.short,\n easing: 'ease-in-out'\n }),\n maxHeight: 1000,\n overflow: 'hidden'\n },\n filterHidden: {\n maxHeight: 0\n },\n icons: {\n '&:hover': {\n color: theme.palette.primary.main\n }\n },\n totals: {\n marginTop: 20,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: 40,\n width: '100%',\n backgroundColor: theme.palette.primary.main,\n [theme.breakpoints.up('md')]: {\n maxWidth: 400\n },\n '& > p': {\n color: theme.palette.common.white,\n fontWeight: 700,\n fontSize: 16\n }\n },\n buttonSeeMore: {\n alignSelf: 'center',\n textAlign: 'right',\n '@media (max-width:958px)': {\n paddingTop: '0 !important'\n }\n },\n textButtonSeeMore: {\n color: theme.palette.primary.main,\n fontSize: '12px',\n maxWidth: '69px',\n '@media (max-width:958px)': {\n maxWidth: '112px'\n }\n }\n}))\n\nexport default useStyles","import moment from 'moment'\n\nexport const tableAsExcel = {\n downloadExcel: (response: any, title: string) => {\n const { data, headers } = response\n\n const blob: Blob = new Blob([data], { type: headers['content-type'] })\n\n let link = document.createElement('a')\n\n link.href = window.URL.createObjectURL(blob)\n link.download = title + ' - ' + moment().format('DD-MM-YYYY')\n\n document.body.appendChild(link)\n\n link.click()\n\n document.body.removeChild(link)\n }\n}","import React, { Suspense, useEffect, useState } from 'react'\nimport { connect, ConnectedProps } from 'react-redux'\nimport clsx from 'clsx'\n\nimport { Typography, Box, Grid, MenuItem, IconButton, Tooltip, TableRow, TableCell, Menu, LinearProgress, Button } from '@material-ui/core'\n\nimport FilterListIcon from '@material-ui/icons/FilterList'\nimport MoreVertIcon from '@material-ui/icons/MoreVert'\n\nimport { F3MBreadcrumbs, F3MDatePicker, F3MSelect, F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData, F3MCard, F3MSnackbar, F3MSnackbarState } from '../../../../components'\n\nimport i18n from '../../../../i18n'\nimport { ApplicationState } from '../../../../types/store'\nimport { incidentOperations } from '../../../../store/operations'\n\nimport { useWindowSize } from '../../../../hooks'\nimport theme from '../../../../assets/theme'\n\nimport { isDefined, openOrDownload } from '../../../../utils'\n\nimport { incidentsService } from '../../../../api/services/incidentsService'\n\nimport useStyles from './styles'\n\nimport { tableAsExcel } from '../../../../utils/tableAsExcel'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n incidentsState: state.incidents\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n handleFilterChange: (n: string, v: any) => dispatch(incidentOperations.handleFilterChange(n, v)),\n handleChangePage: (e: any, p: number) => dispatch(incidentOperations.handleChangePage(e, p)),\n handleChangeRowsPerPage: (e: React.ChangeEvent) => dispatch(incidentOperations.handleChangeRowsPerPage(e)),\n loadIncidents: () => dispatch(incidentOperations.loadIncidents()),\n clearData: () => dispatch(incidentOperations.clearData()),\n loadContracts: () => dispatch(incidentOperations.loadContracts()),\n loadApplications: () => dispatch(incidentOperations.loadApplications()),\n toggleFilter: () => dispatch(incidentOperations.toggleFilter()),\n setLoading: (loading: boolean) => dispatch(incidentOperations.setLoading(loading)),\n order: (e: React.MouseEvent) => dispatch(incidentOperations.order(e))\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst Incidents = (props: Props) => {\n const [snackbar, setSnackbar] = useState({\n open: false,\n severity: 'info',\n message: ''\n })\n\n const classes = useStyles()\n const { incidents } = props.incidentsState!\n const size = useWindowSize()\n const { sm, md } = theme.breakpoints.values\n\n const [menu, setMenu] = React.useState(null)\n const [initDateFilter] = useState(incidents.filter.startDate)\n const [endDateFilter,] = useState(incidents.filter.endDate)\n const [initContractFilter] = useState(incidents.filter.contract)\n const [initApplicationFilter] = useState(incidents.filter.application)\n\n const menuOpen = (event: React.MouseEvent) => {\n setMenu(event.currentTarget)\n }\n\n const menuClose = () => {\n setMenu(null)\n }\n\n const columns: F3MDataGridColumnProps[] = [\n { field: 'date', headerName: i18n.t('common.date'), width: 10, sortable: true, type: 'date', align: 'right', headerAlign: 'right' },\n { field: 'contract', headerName: i18n.t('incidents.contractNumber'), width: 15, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'consultant', headerName: i18n.t('incidents.consultant'), width: 15, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'assistanceNumber', headerName: i18n.t('incidents.assistanceNumber'), width: 15, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'application', headerName: i18n.t('common.application'), width: 10, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'numberOfHours', headerName: i18n.t('common.numberHours'), width: 10, sortable: true, type: 'string', align: 'right', headerAlign: 'right' },\n { field: 'debited', headerName: i18n.t('incidents.debited'), width: 10, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'requestedBy', headerName: i18n.t('incidents.requestedBy'), width: 15, sortable: true, type: 'string', align: 'left', headerAlign: 'left' }\n ]\n\n const rows: F3MDataGridRowData[] = isDefined(incidents.data) ? incidents.data.map((r, i) => (\n {\n id: r.id,\n date: r.date,\n contract: isDefined(r.contractDescription) ? r.contractDescription + ' (' + r.contractNumber + ')' : '',\n consultant: r.consultant,\n assistanceNumber: r.assistanceNumber,\n application: r.application,\n numberOfHours: r.numberOfHours,\n debited: r.debited ? i18n.t('common.yes') : i18n.t('common.no'),\n requestedBy: r.requestedBy\n }\n )) : []\n\n const totals =\n <>\n \n \n \n {i18n.t('common.totaldebited')}\n \n \n {incidents.totalDebited}\n \n \n \n \n \n {i18n.t('common.total')}\n \n \n {incidents.total}\n \n \n \n\n const handleFilterChange = (name: string) => (value: any) => {\n if (name === 'contract' || name === 'application') {\n props.handleFilterChange(name, value.target.value)\n } else {\n props.handleFilterChange(name, value)\n }\n props.loadIncidents()\n }\n\n const clearFilter = () => {\n props.handleFilterChange('contract', initContractFilter)\n props.handleFilterChange('application', initApplicationFilter)\n props.handleFilterChange('startDate', initDateFilter)\n props.handleFilterChange('endDate', endDateFilter)\n props.loadIncidents()\n }\n\n const order = (e: React.MouseEvent) => {\n props.order(e)\n props.loadIncidents()\n }\n\n const handleChangePage = (e: any, p: number) => {\n props.handleChangePage(e, p)\n props.loadIncidents()\n }\n\n const handleChangeRowsPerPage = (e: React.ChangeEvent) => {\n props.handleChangeRowsPerPage(e)\n props.loadIncidents()\n }\n\n const exportTableAsExcel = async () => {\n menuClose()\n\n const response = await incidentsService.getExcel({ ...incidents.filter, rowsPerPage: null })\n\n tableAsExcel.downloadExcel(response, i18n.t('fileNames.excel.incidents'))\n }\n\n const handleError = (message: string) => {\n setSnackbar({ open: true, severity: 'error', message: message })\n }\n\n const handleClick = async (e: React.MouseEvent) => {\n props.setLoading(true)\n\n const response = await incidentsService.getIncidentPDF(e.currentTarget.id)\n try {\n if (response && response.status === 200) {\n openOrDownload(response)\n } else {\n handleError(i18n.t('error.unexpectedError'))\n }\n }\n catch (e) {\n handleError(i18n.t('error.unexpectedError'))\n }\n finally {\n props.setLoading(false)\n }\n }\n\n // TODO: Export table as PDF\n // const exportTableAsPDF = () => {\n // menuClose()\n // console.log(incidents.data)\n // }\n\n useEffect(() => {\n // On Mount\n props.loadIncidents()\n props.loadContracts()\n props.loadApplications()\n\n // On Unmount\n return () => {\n props.clearData()\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n \n \n \n \n \n \n {i18n.t('menus.services.incidents')}\n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n {i18n.t('common.exportExcel')}\n {/* {i18n.t('common.exportPDF')} */}\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n ({ 'id': elem.applicationId, 'label': elem.applicationName }))}\n />\n \n \n \n \n \n \n \n \n \n \n\n )\n}\n\nexport default connector(Incidents)","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n tableCellHead: {\n textTransform: 'uppercase',\n color: theme.palette.primary.main,\n fontWeight: 500,\n fontSize: theme.typography.body1.fontSize\n },\n hidden: {\n display: 'none'\n },\n filter: {\n transition: theme.transitions.create(['max-height'], {\n duration: theme.transitions.duration.short,\n easing: 'ease-in-out'\n }),\n maxHeight: 1000,\n overflow: 'hidden'\n },\n filterHidden: {\n maxHeight: 0\n },\n icons: {\n '&:hover': {\n color: theme.palette.primary.main\n }\n },\n buttonSeeMore: {\n alignSelf: 'center',\n textAlign: 'right'\n },\n textButtonSeeMore: {\n color: theme.palette.primary.main,\n fontSize: '12px',\n maxWidth: '69px',\n '@media (max-width:768px)': {\n maxWidth: '112px'\n }\n }\n}))\n\nexport default useStyles","import { CONFIG, ENDPOINTS } from '../../constants'\nimport { TicketsLastXMonthsResponse, TicketsRequest, TicketsResponse, TicketsStatisticsResponse } from '../../types/services/tickets'\nimport { download, request } from '../axios'\n\nexport const ticketsService = {\n loadTickets: async (params: TicketsRequest) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.REPORT,\n params: params\n })\n\n return response\n },\n\n loadNumberTicketsByMonthLastXMonths: async (numberOfMonths: number) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.REPORT_STATS_LAST_X_MONTHS,\n params: { numberOfMonths: numberOfMonths }\n })\n\n return response\n },\n\n loadTicketsStatistics: async (year?: number) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.REPORT_STATISTICS,\n params: { year: year }\n })\n\n return response\n },\n\n loadYears: async () => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.REPORT_YEARS\n })\n\n return response\n },\n\n getExcel: async (params: TicketsRequest) => {\n const response = await download({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.REPORT_EXCEL,\n params: params\n })\n\n return response\n }\n}","import React, { useEffect, useState } from 'react'\nimport { connect, ConnectedProps } from 'react-redux'\nimport clsx from 'clsx'\n\nimport { Box, Button, Grid, IconButton, Menu, MenuItem, Table, TableBody, TableCell, TableContainer, TableRow, Tooltip, Typography } from '@material-ui/core'\n\nimport FilterListIcon from '@material-ui/icons/FilterList'\nimport MoreVertIcon from '@material-ui/icons/MoreVert'\n\nimport { F3MBreadcrumbs, F3MDatePicker, F3MSelect, F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData, F3MCard, F3MChart } from '../../../../components'\n\nimport i18n from '../../../../i18n'\n\nimport { ApplicationState } from '../../../../types/store'\nimport { reportOperations } from '../../../../store/operations'\n\nimport theme from '../../../../assets/theme'\nimport { isDefined } from '../../../../utils'\nimport { useWindowSize } from '../../../../hooks'\n\nimport useStyles from './styles'\n\nimport { ticketsService } from '../../../../api/services/ticketsService'\n\nimport { tableAsExcel } from '../../../../utils/tableAsExcel'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n reportsState: state.reports\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n handleYearChange: (e: React.ChangeEvent<{ name?: string; value: unknown }>) => dispatch(reportOperations.handleYearChange(e)),\n handleFilterChange: (n: string, v: string) => dispatch(reportOperations.handleFilterChange(n, v)),\n handleChangePage: (e: any, p: number) => dispatch(reportOperations.handleChangePage(e, p)),\n handleChangeRowsPerPage: (e: React.ChangeEvent) => dispatch(reportOperations.handleChangeRowsPerPage(e)),\n loadStatistics: () => dispatch(reportOperations.loadStatistics()),\n loadTickets: () => dispatch(reportOperations.loadTickets()),\n clearData: () => dispatch(reportOperations.clearData()),\n loadYears: () => dispatch(reportOperations.loadYears()),\n toggleFilter: () => dispatch(reportOperations.toggleFilter()),\n order: (e: React.MouseEvent) => dispatch(reportOperations.order(e))\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst Reports = (props: Props) => {\n const classes = useStyles()\n const { statistics, reports } = props.reportsState!\n const size = useWindowSize()\n const { sm, md } = theme.breakpoints.values\n\n const [menu, setMenu] = React.useState(null)\n const [initDateFilter] = useState(reports.filter.startDate)\n const [endDateFilter,] = useState(reports.filter.endDate)\n\n const menuOpen = (event: React.MouseEvent) => {\n setMenu(event.currentTarget)\n }\n\n const menuClose = () => {\n setMenu(null)\n }\n\n useEffect(() => {\n // On Mount\n props.loadYears()\n props.loadTickets()\n\n // On Unmount\n return () => {\n props.clearData()\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n // On Mount\n props.loadStatistics()\n }, [statistics.year]) // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleYearChange = (e: React.ChangeEvent<{ name?: string; value: unknown }>) => {\n props.handleYearChange(e)\n props.loadStatistics()\n }\n\n const handleFilterChange = (name: string) => (value: any) => {\n props.handleFilterChange(name, value)\n props.loadTickets()\n }\n\n const clearFilter = () => {\n props.handleFilterChange('startDate', initDateFilter)\n props.handleFilterChange('endDate', endDateFilter)\n props.loadTickets()\n }\n\n const order = (e: React.MouseEvent) => {\n props.order(e)\n props.loadTickets()\n }\n\n const handleChangePage = (e: any, p: number) => {\n props.handleChangePage(e, p)\n props.loadTickets()\n }\n\n const handleChangeRowsPerPage = (e: React.ChangeEvent) => {\n props.handleChangeRowsPerPage(e)\n props.loadTickets()\n }\n\n // TODO: Export table as excel\n const exportTableAsExcel = async () => {\n menuClose()\n\n const response = await ticketsService.getExcel({ ...reports.filter, rowsPerPage: null })\n\n tableAsExcel.downloadExcel(response, i18n.t('fileNames.excel.tickets'))\n }\n\n // TODO: Export table as PDF\n // const exportTableAsPDF = () => {\n // menuClose()\n // console.log(reports.data)\n // }\n\n const renderValue = () => {\n return statistics.year\n }\n\n const dataset = {\n labels: [\n i18n.t('months.january.label'),\n i18n.t('months.february.label'),\n i18n.t('months.march.label'),\n i18n.t('months.april.label'),\n i18n.t('months.may.label'),\n i18n.t('months.june.label'),\n i18n.t('months.july.label'),\n i18n.t('months.august.label'),\n i18n.t('months.september.label'),\n i18n.t('months.october.label'),\n i18n.t('months.november.label'),\n i18n.t('months.december.label')\n ],\n datasets: [\n {\n label: i18n.t('reports.numberOfTickets'),\n backgroundColor: theme.palette.primary.main,\n borderColor: theme.palette.primary.main,\n borderWidth: 1,\n hoverBackgroundColor: theme.palette.primary.light,\n hoverBorderColor: theme.palette.primary.light,\n data: statistics.data?.tickets\n },\n {\n label: i18n.t('reports.meetSLA'),\n backgroundColor: theme.palette.success.main,\n borderColor: theme.palette.success.main,\n borderWidth: 1,\n hoverBackgroundColor: theme.palette.success.light,\n hoverBorderColor: theme.palette.success.light,\n data: statistics.data?.ticketsSLA\n },\n {\n label: i18n.t('reports.doNotMeetSLA'),\n backgroundColor: theme.palette.warning.main,\n borderColor: theme.palette.warning.main,\n borderWidth: 1,\n hoverBackgroundColor: theme.palette.warning.light,\n hoverBorderColor: theme.palette.warning.light,\n data: statistics.data?.ticketsNotSLA\n }\n ]\n }\n\n const columns: F3MDataGridColumnProps[] = [\n { field: 'ticket', headerName: i18n.t('reports.ticket'), width: 15, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'requestDate', headerName: i18n.t('common.date'), width: 15, sortable: true, type: 'datetime', align: 'right', headerAlign: 'right' },\n { field: 'predictedDate', headerName: i18n.t('reports.expectedDate'), width: 15, sortable: true, type: 'datetime', align: 'right', headerAlign: 'right' },\n { field: 'realDate', headerName: i18n.t('reports.realDate'), width: 15, sortable: true, type: 'datetime', align: 'right', headerAlign: 'right' },\n { field: 'slaCompliance', headerName: i18n.t('reports.slaCompliance'), width: 15, sortable: false, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'incident', headerName: i18n.t('reports.incidentRequest'), width: 20, sortable: true, type: 'string', align: 'left', headerAlign: 'left' }\n ]\n\n const rows: F3MDataGridRowData[] = isDefined(reports.data) ? reports.data.map((r, i) => (\n {\n id: r.id + '-' + i,\n ticket: r.ticket,\n requestDate: r.requestDate,\n predictedDate: r.predictedDate,\n realDate: r.realDate,\n slaCompliance: r.slaComplicance ? i18n.t('common.yes') : i18n.t('common.no'),\n incident: r.incident\n }\n )) : []\n\n return (\n <>\n \n \n \n \n {i18n.t('reports.ticketsStatistics')}\n \n \n renderValue()}\n onChange={handleYearChange}\n items={isDefined(statistics.years) ? statistics.years.map((year) => ({ id: year, label: year })) : []}\n displayAll={false}\n />\n \n \n \n \n \n \n \n \n {i18n.t('reports.numberOfTickets')}\n {statistics.data?.number}\n \n \n {i18n.t('reports.answeredOnTime')}\n {statistics.data?.slaPercentage}\n \n \n {i18n.t('reports.answeredAfterTime')}\n {statistics.data?.notSLAPercentage}\n \n \n
\n
\n
\n \n \n \n \n \n {i18n.t('reports.monthWithMostTickets')}\n {statistics.data?.monthWithMoreTickets}\n \n \n {i18n.t('reports.monthWithMostCompliance')}\n {statistics.data?.monthWithMoreCompliance}\n \n \n {i18n.t('reports.monthWithLessCompliance')}\n {statistics.data?.monthWithLessCompliance}\n \n \n
\n
\n
\n
\n \n
\n \n \n \n \n {i18n.t('reports.ticketsList')}\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n {i18n.t('common.exportExcel')}\n {/* {i18n.t('common.exportPDF')} */}\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 default connector(Reports)","import React, { useEffect, useState } from 'react'\nimport { connect, ConnectedProps } from 'react-redux'\n\nimport { Typography } from '@material-ui/core'\n\nimport { F3MBreadcrumbs, F3MDownload, F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData, F3MCard, F3MSnackbar, F3MSnackbarState } from '../../../../components'\n\nimport { ApplicationState } from '../../../../types/store'\nimport { downloadOperations } from '../../../../store/operations'\n\nimport i18n from '../../../../i18n'\nimport { isDefined } from '../../../../utils'\n\nimport { userDownloadService } from '../../../../api'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n downloadState: state.downloads\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n loadDownloads: () => dispatch(downloadOperations.loadDownloads()),\n clearData: () => dispatch(downloadOperations.clearData())\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst Downloads = (props: Props) => {\n const [snackbar, setSnackbar] = useState({\n open: false,\n severity: 'info',\n message: ''\n })\n const [isDownloading, setIsDownloading] = useState(false)\n\n const { downloads } = props.downloadState!\n\n const handleError = (message: string) => {\n setSnackbar({ open: true, severity: 'error', message: message })\n }\n\n useEffect(() => {\n // On Mount\n props.loadDownloads()\n\n // On Unmount\n return () => {\n props.clearData()\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n let columns: F3MDataGridColumnProps[] = [\n { field: 'description', headerName: i18n.t('common.description'), width: 50, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'date', headerName: i18n.t('common.date'), width: 20, sortable: true, type: 'date', align: 'right', headerAlign: 'right' },\n { field: 'download', headerName: i18n.t('common.download'), width: 30, sortable: false, type: 'node', align: 'center', headerAlign: 'center' }\n ]\n\n let data: F3MDataGridRowData[] = isDefined(downloads.data) ? downloads.data.map((r, i) => ({\n id: r.id,\n description: r.description,\n date: r.date,\n download: userDownloadService.download(r.id!)} />,\n })) : []\n\n return (\n <>\n \n \n {i18n.t('downloads.availableDownloads')}\n \n \n \n \n )\n}\n\nexport default connector(Downloads)","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nimport { WIDTHS } from '../../constants'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n top: 0,\n position: 'absolute',\n maxWidth: '100%',\n overflow: 'hidden'\n },\n main: {\n [theme.breakpoints.up(WIDTHS.SIDEBAR_OPEN_WINDOW)]: {\n width: 'calc(100vw - 313px)', // window width (100vw) - sidebar open width (296px) - scroll width (17px)\n minHeight: 'calc(100vh - 100px)',\n marginLeft: 296,\n paddingLeft: 17,\n paddingRight: 9,\n marginTop: 100,\n paddingTop: 20,\n paddingBottom: 510 // padding (110px) + footer (400px)\n },\n [theme.breakpoints.down(WIDTHS.SIDEBAR_OPEN_WINDOW)]: {\n width: 'calc(100vw - 116px)', // window width (100vw) - sidebar width (99px) - scroll width (17px)\n minHeight: 'calc(100vh - 100px)',\n marginLeft: 100,\n paddingLeft: 17,\n paddingRight: 9,\n marginTop: 100,\n paddingTop: 20,\n paddingBottom: 510 // padding (110px) + footer (400px)\n },\n [theme.breakpoints.down('md')]: {\n width: '100vw',\n minHeight: 'calc(100vh - 100px)',\n marginLeft: 0,\n paddingLeft: 0,\n paddingRight: 0,\n marginTop: 100,\n paddingTop: 20,\n paddingBottom: 510 // padding (110px) + footer (400px)\n },\n [theme.breakpoints.down('xs')]: {\n width: '100vw',\n minHeight: 'calc(100vh - 80px)',\n marginLeft: 0,\n paddingLeft: 0,\n paddingRight: 0,\n marginTop: 80,\n paddingTop: 20,\n paddingBottom: 660 // padding (110px) + footer (550px)\n }\n },\n hover: {\n '&:hover': {\n color: '#00adef'\n }\n }\n}))\n\nexport default useStyles","import React, { useEffect, useState } from 'react'\n\nimport { Grid, IconButton, Link, Typography } from '@material-ui/core'\n\nimport VisibilityIcon from '@material-ui/icons/Visibility'\n\nimport { F3MBreadcrumbs, F3MDownload, F3MPopover, F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData, F3MCard, F3MSnackbarState, F3MSnackbar, F3MCategoryTable } from '../../../../components'\n\nimport i18n from '../../../../i18n'\nimport { isDefined } from '../../../../utils'\n\nimport { InstallationResponse } from '../../../../types/services/applicationDownload'\nimport { applicationDownloadService } from '../../../../api'\nimport { downloadCategoryDownloadsService } from '../../../../api/services/downloadCategoryDownloadsService'\nimport { CategoryDownload } from '../../../../types/services/downloadCategoryDownloads'\nimport globalSoftwareStyles from '../../styles'\n\nconst Installation = () => {\n const globalClasses = globalSoftwareStyles()\n \n const [snackbar, setSnackbar] = useState({\n open: false,\n severity: 'info',\n message: ''\n })\n\n const [anchorEl, setAnchorEl] = useState(null)\n const [installations, setInstallations] = useState([])\n const [downCatDownBusArea, setDownCatDownBusArea] = useState()\n const [installation, setInstallation] = useState(null)\n const [loading, setLoading] = useState(false)\n\n const loadInstallations = async () => {\n setLoading(true)\n try {\n const responseInstallations = await applicationDownloadService.loadInstallations()\n\n if (responseInstallations.isSuccess) {\n setInstallations(responseInstallations.result)\n\n } else {\n handleError(i18n.t('error.unexpectedError'))\n }\n\n const responseCatDownlaods = await downloadCategoryDownloadsService.loadDownCatDownBusArea([0])\n\n if (responseCatDownlaods.isSuccess) {\n setDownCatDownBusArea(responseCatDownlaods.result.businessAreaDownloads)\n\n } else {\n handleError(i18n.t('error.unexpectedError'))\n }\n }\n catch (e) {\n handleError(i18n.t('error.unexpectedError'))\n }\n finally {\n setLoading(false)\n }\n }\n\n const handleError = (message: string) => {\n setSnackbar({ open: true, severity: 'error', message: message })\n }\n\n const handlePopoverClose = () => {\n setAnchorEl(null)\n }\n\n const handleClick = (e: React.MouseEvent) => {\n const id = e.currentTarget.parentElement?.parentElement?.id\n setInstallation(installations.filter((ins) => ins.id.toString() === id)[0])\n setAnchorEl(e.currentTarget)\n }\n\n const openGains = async () => {\n const { data, headers } = await applicationDownloadService.downloadGains(installation?.id)\n\n const blob = new Blob([data], { type: headers['content-type'] })\n\n window.open(URL.createObjectURL(blob), \"_blank\")\n }\n\n useEffect(() => {\n loadInstallations()\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n let productColumns: F3MDataGridColumnProps[] = [\n { field: 'application', headerName: i18n.t('common.application'), width: 30, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'fileName', headerName: i18n.t('common.fileName'), width: 20, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'version', headerName: i18n.t('common.version'), width: 10, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'date', headerName: i18n.t('common.date'), width: 10, sortable: true, type: 'date', align: 'right', headerAlign: 'right' },\n { field: 'download', headerName: i18n.t('common.download'), width: 15, sortable: false, type: 'node', align: 'center', headerAlign: 'center' },\n { field: 'view', headerName: i18n.t('common.viewDetails'), width: 15, sortable: false, type: 'node', align: 'center', headerAlign: 'center' }\n ]\n\n let productData: F3MDataGridRowData[] = installations !== null ? installations.map((r, i) => ({\n id: r.id,\n application: r.application,\n fileName: r.fileName,\n version: r.version,\n date: r.date,\n download: applicationDownloadService.downloadApplication(r.id!)} />,\n view: r.hasGains || (isDefined(r.description) && r.description !== '') ? : ''\n })) : []\n\n return (\n <>\n \n \n {downCatDownBusArea ? Object.keys(downCatDownBusArea).map((elem, key) => {\n const totalCards: number = Object.keys(downCatDownBusArea).length\n const division: 4 | 6 | 12 = totalCards === 1 ? 12 : (totalCards % 2 === 0) ? 6 : 4\n return ()\n }) : null}\n \n \n {i18n.t('installation.availableInstallations')}\n \n \n \n {Boolean(installation?.description) && {installation?.description}}\n {installation?.hasGains && openGains()} >{i18n.t('installation.addedValue')}}\n \n \n \n )\n}\n\nexport default Installation","import React, { useEffect, useState } from 'react'\nimport { connect, ConnectedProps } from 'react-redux'\n\nimport { Typography } from '@material-ui/core'\n\nimport TableProducts from './TableProducts'\n\nimport { F3MBreadcrumbs, F3MDownload, F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData, F3MCard, F3MDialog, F3MSnackbar, F3MSnackbarState } from '../../../../components'\n\nimport { ApplicationState } from '../../../../types/store'\nimport { licensingOperations } from '../../../../store/operations'\n\nimport i18n from '../../../../i18n'\nimport { isDefined } from '../../../../utils'\nimport { licenseService } from '../../../../api'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n licensingState: state.licensing\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n loadWebProducts: () => dispatch(licensingOperations.loadWebProducts()),\n clearData: () => dispatch(licensingOperations.clearData()),\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst Licensing = (props: Props) => {\n const [snackbar, setSnackbar] = useState({\n open: false,\n severity: 'info',\n message: ''\n })\n\n const { webProducts } = props.licensingState!\n\n const [modal, setModal] = useState(false)\n\n useEffect(() => {\n // On Mount\n props.loadWebProducts()\n\n // On Unmount\n return () => {\n props.clearData()\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleModal = () => {\n setModal(!modal)\n }\n\n const webProductColumns: F3MDataGridColumnProps[] = [\n { field: 'name', headerName: i18n.t('common.application'), width: 85, sortable: false, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'download', headerName: i18n.t('product.download'), width: 15, sortable: false, type: 'node', align: 'center', headerAlign: 'center' }\n ]\n\n const handleError = (message: string) => {\n setSnackbar({ open: true, severity: 'error', message: message })\n }\n\n const webProductData: F3MDataGridRowData[] = webProducts.data && webProducts.data.length > 0 ? webProducts.data.map((r, i) => (\n {\n id: r.code,\n name: r.name,\n download: licenseService.downloadWebProductLicense(r.code)} />\n }\n )) : []\n \n return (\n <>\n \n \n \n {i18n.t('product.webProducts')}\n \n \n \n \n \n )\n}\n\nexport default connector(Licensing)","import React, { useEffect, useState } from 'react'\n\nimport { Grid, IconButton, Link, Typography } from '@material-ui/core'\n\nimport VisibilityIcon from '@material-ui/icons/Visibility'\n\nimport { F3MBreadcrumbs, F3MDownload, F3MPopover, F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData, F3MCard, F3MCategoryTable, F3MSnackbarState, F3MSnackbar } from '../../../../components'\n\nimport i18n from '../../../../i18n'\nimport { isDefined } from '../../../../utils'\n\nimport { UpdateResponse, UpgradeResponse } from '../../../../types/services/applicationDownload'\nimport { applicationDownloadService } from '../../../../api'\nimport { downloadCategoryDownloadsService } from '../../../../api/services/downloadCategoryDownloadsService'\nimport { CategoryDownload } from '../../../../types/services/downloadCategoryDownloads'\nimport globalSoftwareStyles from '../../styles'\n\nconst Updates = () => {\n const globalClasses = globalSoftwareStyles()\n \n const [snackbar, setSnackbar] = useState({\n open: false,\n severity: 'info',\n message: ''\n })\n\n const [anchorEl, setAnchorEl] = useState(null)\n const [up, setUp] = useState(null)\n const [updates, setUpdates] = useState([])\n const [upgrades, setUpgrades] = useState([])\n const [downCatDownBusArea, setDownCatDownBusArea] = useState()\n const [loadingUpdt, setLoadingUpdt] = useState(false)\n const [loadingUpgr, setLoadingUpgr] = useState(false)\n\n const loadData = async () => {\n setLoadingUpdt(true)\n setLoadingUpgr(true)\n try {\n const responseUpdates = await applicationDownloadService.loadUpdates()\n\n if (responseUpdates.isSuccess) {\n setUpdates(responseUpdates.result)\n\n } else {\n handleError(i18n.t('error.unexpectedError'))\n }\n setLoadingUpdt(false)\n\n const responseUpgrades = await applicationDownloadService.loadUpgrades()\n\n if (responseUpgrades.isSuccess) {\n setUpgrades(responseUpgrades.result)\n\n } else {\n handleError(i18n.t('error.unexpectedError'))\n }\n setLoadingUpgr(false)\n\n const responseCatDownlaods = await downloadCategoryDownloadsService.loadDownCatDownBusArea([1, 2])\n\n if (responseCatDownlaods.isSuccess) {\n setDownCatDownBusArea(responseCatDownlaods.result.businessAreaDownloads)\n\n } else {\n handleError(i18n.t('error.unexpectedError'))\n }\n }\n catch (e) {\n handleError(i18n.t('error.unexpectedError'))\n }\n finally {\n setLoadingUpdt(false)\n setLoadingUpgr(false)\n }\n }\n\n const handleError = (message: string) => {\n setSnackbar({ open: true, severity: 'error', message: message })\n }\n\n const handlePopoverClose = () => {\n setAnchorEl(null)\n }\n\n const handleClick = (e: React.MouseEvent) => {\n const id = e.currentTarget.parentElement?.parentElement?.id\n setUp(updates.concat(upgrades).filter((u) => u.id.toString() === id)[0])\n setAnchorEl(e.currentTarget)\n }\n\n const openGains = async () => {\n\n const { data, headers } = await applicationDownloadService.downloadGains(up?.id)\n\n const blob = new Blob([data], { type: headers['content-type'] })\n\n window.open(URL.createObjectURL(blob), \"_blank\")\n }\n\n useEffect(() => {\n loadData()\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n let upgradeColumns: F3MDataGridColumnProps[] = [\n { field: 'application', headerName: i18n.t('common.application'), width: 30, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'fileName', headerName: i18n.t('common.fileName'), width: 20, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'version', headerName: i18n.t('common.version'), width: 10, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'date', headerName: i18n.t('common.date'), width: 10, sortable: true, type: 'date', align: 'right', headerAlign: 'right' },\n { field: 'download', headerName: i18n.t('common.download'), width: 15, sortable: false, type: 'node', align: 'center', headerAlign: 'center' },\n { field: 'view', headerName: i18n.t('common.viewDetails'), width: 15, sortable: false, type: 'node', align: 'center', headerAlign: 'center' }\n ]\n\n let upgradeData: F3MDataGridRowData[] = isDefined(updates) ? updates.map((r, i) => ({\n id: r.id,\n application: r.application,\n fileName: r.fileName,\n version: r.version,\n date: r.date,\n download: applicationDownloadService.downloadApplication(r.id!)} />,\n view: r.hasGains || (isDefined(r.description) && r.description !== '') ? : ''\n })) : []\n\n let updateColumns: F3MDataGridColumnProps[] = [\n { field: 'application', headerName: i18n.t('common.application'), width: 30, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'fileName', headerName: i18n.t('common.fileName'), width: 20, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'version', headerName: i18n.t('common.version'), width: 10, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'date', headerName: i18n.t('common.date'), width: 10, sortable: true, type: 'date', align: 'right', headerAlign: 'right' },\n { field: 'download', headerName: i18n.t('common.download'), width: 15, sortable: false, type: 'node', align: 'center', headerAlign: 'center' },\n { field: 'view', headerName: i18n.t('common.viewDetails'), width: 15, sortable: false, type: 'node', align: 'center', headerAlign: 'center' }\n ]\n\n let updateData: F3MDataGridRowData[] = isDefined(upgrades) ? upgrades.map((r, i) => ({\n id: r.id,\n application: r.application,\n fileName: r.fileName,\n version: r.version,\n date: r.date,\n download: applicationDownloadService.downloadApplication(r.id!)} />,\n view: r.hasGains || (isDefined(r.description) && r.description !== '') ? : ''\n })) : []\n\n return (\n <>\n \n \n {downCatDownBusArea ? Object.keys(downCatDownBusArea).map((elem, key) => {\n const totalCards: number = Object.keys(downCatDownBusArea).length\n const division: 4 | 6 | 12 = totalCards === 1 ? 12 : (totalCards % 2 === 0) ? 6 : 4\n return ()\n }) : null}\n \n \n {i18n.t('updates.availableUpdates')}\n \n \n \n {i18n.t('updates.availableUpgrades')}\n \n \n \n {Boolean(up?.description) && {up?.description}}\n {up?.hasGains && openGains()}>{i18n.t('updates.addedValue')}}\n \n \n \n )\n}\n\nexport default Updates","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n icons: {\n 'color': theme.palette.secondary.main,\n '&:hover': {\n color: theme.palette.primary.main\n }\n }\n}))\n\nexport default useStyles","import { CONFIG, ENDPOINTS } from '../../constants'\nimport { SlideResponse, CarouselResponse } from '../../types/services/carousel'\nimport { AddUpdtSlide } from '../../types/services/carousel/AddUpdtSlide'\nimport { CarouselFilter } from '../../types/services/carousel/CarouselFilter'\nimport { request, download } from '../axios'\n\nexport const carouselService = {\n loadCarouselLogin: async () => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.CAROUSELLOGIN\n })\n\n return response\n },\n\n loadCarouselManagement: async (filter: CarouselFilter) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.CAROUSELMANAGEMENT,\n params: filter\n })\n\n return response\n },\n\n loadSlideImage: async (imagePath: string) => {\n const response = await download({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.SLIDEIMAGE,\n params: {\n imagePath: imagePath\n }\n })\n\n return response\n },\n\n addorUpdtSlide: async (slide: AddUpdtSlide) => {\n const formData: FormData = new FormData()\n\n if (slide.image !== null && slide.newImage === true) {\n formData.append('imageFile', slide.image[0])\n }\n\n formData.append('id', slide.id ? (slide.id).toString() : '')\n formData.append('status', (slide.status).toString())\n formData.append('order', slide.order ? (slide.order).toString() : '')\n formData.append('title', slide.title)\n formData.append('description', slide.description ? slide.description : '')\n formData.append('buttonText', slide.buttonText ? slide.buttonText : '')\n formData.append('buttonLink', slide.buttonLink ? slide.buttonLink : '')\n formData.append('buttonColor', slide.buttonColor ? slide.buttonColor : '')\n\n const response = await request({\n method: 'POST',\n url: CONFIG.API_URL + ENDPOINTS.CAROUSELADDORUPDTSLIDE,\n data: formData\n })\n\n return response\n },\n\n setSlideStatus: async (id: string, newStatus: boolean, rowOrder: number | null) => {\n const response = await request({\n method: 'PUT',\n url: CONFIG.API_URL + ENDPOINTS.SETSLIDESTATUS,\n data: {\n id: id,\n newStatus: newStatus,\n rowOrder: rowOrder\n }\n })\n\n return response\n },\n\n deleteSlide: async (id: string, isActive: boolean, order: number | null) => {\n const response = await request({\n method: 'DELETE',\n url: CONFIG.API_URL + ENDPOINTS.DELETESLIDE,\n data: {\n id: id,\n status: isActive,\n order: order\n }\n })\n\n return response\n }\n}","import React, { useEffect, useState } from 'react'\n\nimport { Grid, IconButton, Typography } from '@material-ui/core'\n\nimport {\n F3MAddUpdt,\n F3MBreadcrumbs,\n F3MCard,\n F3MDataGridColumnProps,\n F3MDataGridRowData,\n F3MDataGrid,\n F3MDialog,\n SortDirection,\n F3MSnackbar,\n F3MSnackbarState,\n F3MButton,\n F3MDropzoneSection,\n F3MCarouselInfoFields,\n F3MButtonFields,\n F3MCarouselStateSection\n} from '../../../../components'\n\nimport i18n from '../../../../i18n'\n\nimport { isDefined, isSlideValid } from '../../../../utils'\n\nimport DeleteIcon from '@material-ui/icons/Delete'\nimport LinkIcon from '@material-ui/icons/Link'\nimport Avatar from '@material-ui/core/Avatar'\nimport FormControlLabel from '@material-ui/core/FormControlLabel'\nimport Switch from '@material-ui/core/Switch'\n\nimport useStyles from './styles'\n\nimport { SlideResponse } from '../../../../types/services/carousel'\n\nimport { carouselService } from '../../../../api/services/carouselService'\nimport { CarouselFilter } from '../../../../types/services/carousel/CarouselFilter'\nimport { CarouselFields } from '../../../../types'\nimport { F3MAddUpdtSection } from '../../../../components/F3MAddUpdt/types'\nimport { AddUpdtSlide } from '../../../../types/services/carousel/AddUpdtSlide'\nimport { FILESIZE } from '../../../../constants'\n\ninterface IRowBlobImg {\n [key: string]: string\n}\n\ninterface DeleteState {\n open: boolean\n id: string\n isActive: boolean\n order: number | null\n}\n\nconst CarouselManager = () => {\n const classes = useStyles()\n\n const [fetchedRows, setFetchedRows] = useState([])\n const [rows, setRows] = useState([])\n const [rowCount, setRowCount] = useState(0)\n const [activeRowCount, setActiveRowCount] = useState(0)\n const [rowsBlobImg, setRowsBlobImg] = useState({})\n\n const [compSections, setCompSections] = useState>([])\n const [addUpdtModal, setAddUpdtModal] = useState(false)\n const [addUpdtModalTitle, setAddUpdtModalTitle] = useState('')\n const [addUpdtTitleVariant, setAddUpdtTitleVariant] = useState('')\n const [loading, setLoading] = useState(false)\n const [filter, setFilter] = useState({\n page: 1,\n rowsPerPage: 10,\n sortDirection: 'asc',\n sortField: 'order'\n })\n\n const [deleteRow, setDeleteRow] = useState({ open: false, id: '', isActive: false, order: null })\n const [snackbar, setSnackbar] = useState({\n open: false,\n severity: 'info',\n message: ''\n })\n\n const emptyAddOrUpdt: AddUpdtSlide = {\n id: null,\n newImage: true,\n image: null,\n status: true,\n activeRows: activeRowCount,\n order: activeRowCount + 1,\n title: '',\n description: '',\n buttonText: '',\n buttonLink: '',\n buttonColor: ''\n }\n const [addOrUpdt, setAddOrUpdt] = useState(emptyAddOrUpdt)\n const [update, setUpdate] = useState(false)\n\n const columns: F3MDataGridColumnProps[] = [\n { field: 'imagePath', headerName: i18n.t('carousel.image'), width: 10, sortable: false, type: 'node', align: 'center', headerAlign: 'center' },\n { field: 'isActive', headerName: i18n.t('carousel.state'), width: 15, sortable: true, type: 'node', align: 'center', headerAlign: 'center' },\n { field: 'order', headerName: i18n.t('carousel.order'), width: 10, sortable: true, type: 'number', align: 'right', headerAlign: 'right' },\n { field: 'title', headerName: i18n.t('carousel.title'), width: 45, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'buttonLink', headerName: i18n.t('carousel.link'), width: 10, sortable: false, type: 'node', align: 'center', headerAlign: 'center' },\n { field: 'deleteButton', headerName: i18n.t('carousel.delete'), width: 10, sortable: false, type: 'node', align: 'center', headerAlign: 'center' },\n ]\n\n const getImage = async (rowId: string, imagePath: string) => {\n const response: any = await carouselService.loadSlideImage(imagePath)\n\n const { data, headers } = response\n const blob: Blob = new Blob([data], { type: headers['content-type'] })\n\n const blobImg: string = window.URL.createObjectURL(blob)\n\n const rowBlobImg: IRowBlobImg = {}\n rowBlobImg[rowId] = blobImg\n setRowsBlobImg(prevState => ({ ...prevState, ...rowBlobImg }))\n\n setLoading(false)\n return blobImg\n }\n\n const delSlide = async () => {\n if (activeRowCount > 1 || deleteRow.isActive === false) {\n setLoading(true)\n await carouselService.deleteSlide(deleteRow.id, deleteRow.isActive, deleteRow.order)\n .then(async () => {\n await loadCarouselManagement()\n handleSuccess(i18n.t('snackbar.deleteSuccess'))\n })\n .catch((errorMessage) => {\n handleError(i18n.t('snackbar.deleteError'))\n })\n setLoading(false)\n }\n else {\n handleError(i18n.t('snackbar.deleteError'))\n }\n setDeleteRow({ open: false, id: '', isActive: false, order: null })\n }\n\n const handleSortChange = (e: React.MouseEvent) => {\n e.preventDefault()\n const id = e.currentTarget.parentElement!.id\n\n const { sortDirection, sortField } = filter\n let newSortDirection = 'asc'\n let newField = 'order'\n\n if (sortField === id) {\n newField = sortField\n newSortDirection = sortDirection === 'asc' ? 'desc' : 'asc'\n } else {\n newSortDirection = 'asc'\n newField = id\n }\n\n setFilter(prevState => ({\n ...prevState,\n sortDirection: newSortDirection as SortDirection,\n sortField: newField as CarouselFields\n }))\n }\n\n const handleChangePage = (event: React.MouseEvent | null, page: number) => {\n setFilter(prevState => ({\n ...prevState,\n page: page + 1\n }))\n }\n\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\n setFilter(prevState => ({\n ...prevState,\n page: 1,\n rowsPerPage: parseInt(event.target.value)\n }))\n }\n\n const handleChangeStatus = async (actRowId: string, status: boolean, rowOrder: number | null) => {\n if (activeRowCount > 1 || !status) {\n setLoading(true)\n carouselService.setSlideStatus(actRowId, !status, rowOrder)\n .then(async () => {\n await loadCarouselManagement()\n handleSuccess(i18n.t('snackbar.updateSuccess'))\n })\n .catch((errorMessage) => {\n handleError(i18n.t('snackbar.updateError'))\n })\n setLoading(false)\n }\n else {\n handleError(i18n.t('snackbar.updateError'))\n }\n }\n\n const handleDeleteBtn = (event: React.MouseEvent, actRowId: string, isActive: boolean, order: number | null) => {\n event.preventDefault()\n event.stopPropagation()\n setDeleteRow({ open: true, id: actRowId, isActive: isActive, order: order })\n }\n\n const handleButtonLink = (event: React.MouseEvent, buttonLink: string | undefined) => {\n event.preventDefault()\n event.stopPropagation()\n window.open(buttonLink)\n }\n\n const handleImageChange = (files: File[]) => {\n setAddOrUpdt(prevState => ({ ...prevState, image: files }))\n }\n\n const getImageAddedMessage = (fileName: string) => {\n setAddOrUpdt(prevState => ({ ...prevState, newImage: true }))\n return i18n.t('dropzone.fileAdded').replace('FILE_NAME', fileName)\n }\n\n const handleAddUpdtModal = (type: string, event: React.MouseEvent | null) => {\n let addOrUpdtToComp: AddUpdtSlide = addOrUpdt\n\n if (type === 'create') {\n setAddUpdtModalTitle(i18n.t('carousel.addSlide'))\n setAddUpdtTitleVariant('add')\n }\n else {\n const id: number | undefined = event ? +event.currentTarget.id : undefined\n\n if (id !== undefined) {\n addOrUpdtToComp = {\n id: fetchedRows[id].id,\n newImage: false,\n image: [rowsBlobImg[fetchedRows[id].id]],\n status: fetchedRows[id].isActive,\n activeRows: activeRowCount - 1,\n order: fetchedRows[id].order,\n title: fetchedRows[id].title,\n description: fetchedRows[id].description,\n buttonText: fetchedRows[id].buttonText,\n buttonLink: fetchedRows[id].buttonLink,\n buttonColor: fetchedRows[id].buttonColor\n }\n setAddOrUpdt(addOrUpdtToComp)\n setAddUpdtTitleVariant('edit')\n setAddUpdtModalTitle(i18n.t('carousel.editSlide'))\n }\n }\n setCompSections([\n {\n title: 'carousel.uplImg',\n required: true,\n component: \n },\n { title: 'carousel.status', required: true, component: },\n { title: 'carousel.info', required: true, component: },\n { title: 'carousel.button', component: }\n ])\n setAddUpdtModal(true)\n }\n\n const resetAddOrUpdt = () => {\n setAddOrUpdt(emptyAddOrUpdt)\n setCompSections([])\n }\n\n const handleSuccess = (message: string) => {\n setSnackbar({ open: true, severity: 'success', message: message })\n }\n\n const handleError = (message: string) => {\n setSnackbar({ open: true, severity: 'error', message: message })\n }\n\n const loadCarouselManagement = async () => {\n setLoading(true)\n try {\n const response = await carouselService.loadCarouselManagement(filter)\n\n if (response.isSuccess && response.result) {\n setRowCount(response.result.rowCount)\n setActiveRowCount(response.result.activeRowCount)\n setFetchedRows(response.result.slides)\n }\n }\n catch (e) {\n handleError(i18n.t('error.unexpectedError'))\n }\n finally {\n setLoading(false)\n }\n }\n\n const buildRows = async () => {\n let resultRows: F3MDataGridRowData[] = []\n if (isDefined(fetchedRows)) {\n resultRows = await Promise.all(fetchedRows.map(async (r, index): Promise => {\n const rowId: string = `${r.id}`\n const image: string = await getImage(rowId, r.imagePath)\n return {\n id: index,\n order: r.order,\n isActive: event.stopPropagation()}>\n handleChangeStatus(rowId, r.isActive, r.order)}\n color='primary'\n />\n }\n label={i18n.t('common.active')}\n />\n ,\n imagePath: ,\n title: r.title,\n buttonLink: r.buttonLink !== null\n ? handleButtonLink(event, r.buttonLink)}>\n : '',\n deleteButton: handleDeleteBtn(event, rowId, r.isActive, r.order)}>\n }\n }))\n }\n setRows(resultRows)\n }\n\n useEffect(() => {\n loadCarouselManagement()\n }, [filter, update])// eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n setAddOrUpdt(emptyAddOrUpdt)\n buildRows()\n }, [fetchedRows])// eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <>\n \n \n {i18n.t('carousel.cardTitle')}\n \n \n handleAddUpdtModal('create', null)}>\n {i18n.t('button.add')}\n \n \n \n handleAddUpdtModal('edit', e)}\n pagination={true}\n paginationMode='server'\n rowsPerPageOptions={[5, 10, 15, 20]}\n page={filter.page}\n pageSize={filter.rowsPerPage}\n sortMode='server'\n sortDirection={filter.sortDirection}\n sortField={filter.sortField}\n onChangePage={handleChangePage}\n onChangeRowsPerPage={handleChangeRowsPerPage}\n sortChange={handleSortChange}\n rowCount={rowCount}\n />\n \n setDeleteRow({ open: false, id: '', isActive: false, order: null })}\n DialogTitleProps={{ children: i18n.t('confirmation.remove.title') }}\n DialogContentProps={{ children: i18n.t('confirmation.remove.message') }}\n DialogActionsProps={{ label: i18n.t('button.remove'), newOnClick: async () => await delSlide() }}\n />\n \n \n \n )\n}\n\nexport default CarouselManager","import React, { Dispatch, SetStateAction } from 'react'\n\nimport { IconButton, Switch } from '@material-ui/core'\nimport DeleteIcon from '@material-ui/icons/Delete'\n\nimport { F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData } from '../../../../../../components'\n\nimport { ApplicationDownloadFilter, ApplicationDownloadsResponse } from '../../../../../../types/services/applicationDownload'\nimport { ApplicationDownloadFields, SortDirection } from '../../../../../../types'\n\nimport i18n from '../../../../../../i18n'\n\nimport globalSoftwareStyles from '../../../../styles'\n\ninterface ContentProps {\n applicationDownloads: ApplicationDownloadsResponse\n handleChangeStatus: (checked: boolean, id: number) => Promise\n handleDeleteBtn: (event: React.MouseEvent, id: number) => void\n filter: ApplicationDownloadFilter\n setFilter: Dispatch>\n loading: boolean\n handleAddUpdtModal: (type: string, event: React.MouseEvent | null) => void\n}\n\nconst Table = (props: ContentProps) => {\n const globalClasses = globalSoftwareStyles()\n\n const {\n applicationDownloads,\n handleChangeStatus,\n handleDeleteBtn,\n filter,\n setFilter,\n loading,\n handleAddUpdtModal\n } = props\n\n const handleSortChange = (e: React.MouseEvent) => {\n e.preventDefault()\n const id = e.currentTarget.parentElement!.id\n\n const { sortDirection, sortField } = filter\n let newSortDirection = 'desc'\n let newField = 'date'\n\n if (sortField === id) {\n newField = sortField\n if (sortDirection === 'asc') {\n newSortDirection = 'desc'\n } else {\n newSortDirection = 'asc'\n }\n } else {\n newSortDirection = 'asc'\n newField = id\n }\n\n setFilter(prevState => ({\n ...prevState,\n sortDirection: newSortDirection as SortDirection,\n sortField: newField as ApplicationDownloadFields\n }))\n }\n\n const handleChangePage = (event: React.MouseEvent | null, page: number) => {\n setFilter(prevState => ({\n ...prevState,\n page: page + 1\n }))\n }\n\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\n setFilter(prevState => ({\n ...prevState,\n page: 1,\n rowsPerPage: parseInt(event.target.value)\n }))\n }\n\n let columns: F3MDataGridColumnProps[] = [\n { field: 'applicationName', headerName: i18n.t('common.application'), width: 20, sortable: false, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'version', headerName: i18n.t('common.version'), width: 10, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'date', headerName: i18n.t('common.date'), width: 10, sortable: true, type: 'date', align: 'right', headerAlign: 'right' },\n { field: 'fileName', headerName: i18n.t('common.fileName'), width: 10, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'downloadType', headerName: i18n.t('common.type'), width: 10, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'isActive', headerName: i18n.t('common.state'), width: 10, sortable: true, type: 'node', align: 'center', headerAlign: 'center' },\n { field: 'delete', headerName: i18n.t('button.remove'), width: 10, sortable: false, type: 'node', align: 'center', headerAlign: 'center' }\n ]\n\n let data: F3MDataGridRowData[] = applicationDownloads.applications.map((r, index) => ({\n id: index,\n applicationDownloadId: r.id,\n applicationId: r.applicationId,\n applicationName: r.applicationName,\n version: r.version,\n date: r.date,\n fileName: r.fileName,\n downloadType: i18n.t('enum.applicationDownload.type.' + r.downloadType),\n isActive: e.stopPropagation()}>\n handleChangeStatus(c, r.id)} color='primary' size='small' />\n {i18n.t('common.active')}\n ,\n delete: handleDeleteBtn(e, r.id)} size='small'>\n }))\n\n return (\n handleAddUpdtModal('edit', e)}\n sortMode='server'\n sortDirection={filter.sortDirection}\n sortField={filter.sortField}\n sortChange={handleSortChange}\n pagination={true}\n paginationMode='server'\n rowCount={applicationDownloads.rowCount}\n page={filter.page}\n pageSize={filter.rowsPerPage}\n onChangePage={handleChangePage}\n onChangeRowsPerPage={handleChangeRowsPerPage}\n />\n )\n}\n\nexport default Table","import React, { useEffect, useState } from 'react'\nimport { connect, ConnectedProps } from 'react-redux'\n\nimport { Grid } from '@material-ui/core'\n\nimport { F3MAddUpdt, F3MButton, F3MDialog, F3MApplicationChoice, F3MSnackbar, F3MSnackbarState, F3MIsActive, F3MAppDownFilesInd, F3MAppDownFilesMulti, F3MAddUpdtSection, F3MFilterSearch } from '../../../../../../components'\n\nimport i18n from '../../../../../../i18n'\nimport { applicationDownloadService } from '../../../../../../api'\n\nimport { ApplicationDownloadFilter, ApplicationDownloadResponse, ApplicationDownloadsResponse, ApplicationDownloadUpdtCreate } from '../../../../../../types/services/applicationDownload'\nimport Table from './Table'\nimport { appDownloadOperations } from '../../../../../../store/operations'\nimport { isApplicationDownloadValid } from '../../../../../../utils'\n\ninterface ApplicationDownloadProps {\n setLoading: (b: boolean) => void\n loading: boolean\n}\n\ninterface DeleteState {\n open: boolean\n id: number\n}\n\nconst mapDispatchToProps = (dispatch: any) => ({\n setVersion: (version: string) => dispatch(appDownloadOperations.setVersion(version))\n})\n\nconst connector = connect(null, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst ApplicationDownload = (props: ApplicationDownloadProps & Props) => {\n const [snackbar, setSnackbar] = useState({\n open: false,\n severity: 'info',\n message: ''\n })\n\n const [fetchedApplicationDownloads, setApplicationDownloads] = useState({ rowCount: 0, applications: [] })\n const [filter, setFilter] = useState({\n applicationName: null,\n page: 1,\n rowsPerPage: 10,\n sortDirection: 'desc',\n sortField: 'date'\n })\n\n const [del, setDel] = useState({ open: false, id: 0 })\n\n const [compSections, setCompSections] = useState([])\n const [addUpdtModal, setAddUpdtModal] = useState(false)\n const [addUpdtModalTitle, setAddUpdtModalTitle] = useState('')\n const [addUpdtTitleVariant, setAddUpdtTitleVariant] = useState('')\n\n const [addOrUpdt, setAddOrUpdt] = useState({})\n\n const [callApiToSave, setCallApiToSave] = useState<(object: any) => any>(() => applicationDownloadService.createApplicationDownload)\n const [update, setUpdate] = useState(false)\n\n const loadApplicationDownloads = async () => {\n props.setLoading(true)\n try {\n const response = await applicationDownloadService.getApplicationDownloads(filter)\n\n if (response.isSuccess) {\n setApplicationDownloads(response.result)\n props.setLoading(false)\n } else {\n props.setLoading(false)\n }\n }\n catch (e) {\n handleError(i18n.t('error.unexpectedError'))\n }\n finally {\n props.setLoading(false)\n setDel({ open: false, id: 0 })\n }\n }\n\n const handleDelDownCatDown = async () => {\n props.setLoading(true)\n try {\n const response = await applicationDownloadService.deleteApplicationDownload(del.id)\n\n if (response.isSuccess) {\n await loadApplicationDownloads()\n handleSuccess(i18n.t('snackbar.deleteSuccess'))\n } else {\n handleError(i18n.t('snackbar.deleteError'))\n }\n }\n catch (e) {\n handleError(i18n.t('snackbar.deleteError'))\n }\n finally {\n props.setLoading(false)\n setDel({ open: false, id: 0 })\n }\n }\n\n const handleChangeStatus = async (checked: boolean, id: number) => {\n props.setLoading(true)\n try {\n const response = await applicationDownloadService.updateApplicationDownload({ id: id, isActive: checked })\n\n if (response.isSuccess) {\n await loadApplicationDownloads()\n handleSuccess(i18n.t('snackbar.updateSuccess'))\n } else {\n handleError(i18n.t('snackbar.updateError'))\n }\n }\n catch (e) {\n handleError(i18n.t('snackbar.updateError'))\n }\n finally {\n props.setLoading(false)\n }\n }\n\n const handleDeleteBtn = (e: React.MouseEvent, id: number) => {\n e.preventDefault()\n e.stopPropagation()\n setDel({ open: true, id: id })\n }\n\n const handleAddUpdtModal = (type: string, event: React.MouseEvent | null) => {\n let addOrUpdtToComp: ApplicationDownloadUpdtCreate = addOrUpdt\n\n let fileName: string[] = []\n let gainsName: string[] = []\n\n let appDownFilesToPresent: F3MAddUpdtSection = {}\n\n if (type === 'create') {\n setAddUpdtTitleVariant('add')\n setAddUpdtModalTitle(i18n.t('applicationDownload.addUploadByProduct'))\n setCallApiToSave(() => applicationDownloadService.createApplicationDownload)\n appDownFilesToPresent = { component: }\n }\n else {\n const rowIndex: number | undefined = event ? +event.currentTarget.id : undefined\n\n if (rowIndex !== undefined) {\n const applicationDownload: ApplicationDownloadResponse = fetchedApplicationDownloads.applications[rowIndex]\n addOrUpdtToComp = {\n id: applicationDownload.id,\n applicationId: applicationDownload.applicationId,\n applicationName: applicationDownload.applicationName,\n isActive: applicationDownload.isActive,\n version: applicationDownload.version,\n isManualVersion: false,\n isNewGains: false,\n isNewFile: false\n }\n fileName = [applicationDownload.fileName]\n gainsName = [applicationDownload.gainsName]\n\n props.setVersion(applicationDownload.version)\n\n setAddOrUpdt(addOrUpdtToComp)\n setAddUpdtTitleVariant('edit')\n const appDownType: string = i18n.t('enum.applicationDownload.type.' + applicationDownload.downloadType)\n setAddUpdtModalTitle(i18n.t('applicationDownload.editUploadByProduct') + ' - ' + appDownType)\n setCallApiToSave(() => applicationDownloadService.updateApplicationDownload)\n appDownFilesToPresent = {\n component: \n }\n }\n }\n setCompSections([\n appDownFilesToPresent,\n {\n title: 'applicationDownload.product', required: true,\n component: \n },\n { title: 'applicationDownload.active', required: true, component: }\n ])\n setAddUpdtModal(true)\n }\n\n const handleSuccess = (message: string) => {\n setSnackbar({ open: true, severity: 'success', message: message })\n }\n\n const handleError = (message: string) => {\n setSnackbar({ open: true, severity: 'error', message: message })\n }\n\n const resetAddOrUpdt = () => {\n setAddOrUpdt({})\n setCompSections([])\n }\n\n const handleTextFilterChange = (e: React.ChangeEvent) => {\n setFilter(prevState => ({ ...prevState, applicationName: e.currentTarget.value }))\n }\n\n useEffect(() => {\n loadApplicationDownloads()\n }, [filter, update]) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <>\n \n \n \n \n \n handleAddUpdtModal('create', null)}>\n {i18n.t('button.add')}\n \n \n \n \n \n setDel((prevState: any) => ({ ...prevState, open: false }))}\n DialogTitleProps={{ children: i18n.t('confirmation.remove.title') }}\n DialogContentProps={{ children: i18n.t('confirmation.remove.message') }}\n DialogActionsProps={{ label: i18n.t('button.remove'), newOnClick: () => handleDelDownCatDown() }}\n />\n \n \n )\n}\n\nexport default connector(ApplicationDownload)","import React, { Dispatch, SetStateAction } from 'react'\n\nimport { Chip, IconButton, Switch } from '@material-ui/core'\nimport DeleteIcon from '@material-ui/icons/Delete'\n\nimport { F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData } from '../../../../../../components'\nimport { DownloadCategoriesFields, SortDirection } from '../../../../../../types'\n\nimport i18n from '../../../../../../i18n'\nimport { DownloadCategoriesFilter, DownloadCategoriesResponse } from '../../../../../../types/services/downloadCategories'\n\nimport globalSoftwareStyles from '../../../../styles'\n\ninterface ContentProps {\n downloadCategories: DownloadCategoriesResponse\n handleChangeStatus: (id: number, isActive: boolean) => Promise\n handleDeleteBtn: (event: React.MouseEvent, id: number) => void\n filter: DownloadCategoriesFilter\n setFilter: Dispatch>\n loading: boolean\n handleAddUpdtModal: (type: string, event: React.MouseEvent | null) => void\n}\n\nconst Table = (props: ContentProps) => {\n const globalClasses = globalSoftwareStyles()\n\n const {\n downloadCategories,\n handleChangeStatus,\n handleDeleteBtn,\n filter,\n setFilter,\n loading,\n handleAddUpdtModal\n } = props\n\n const handleSortChange = (e: React.MouseEvent) => {\n e.preventDefault()\n const id = e.currentTarget.parentElement!.id\n\n const { sortDirection, sortField } = filter\n let newSortDirection = 'desc'\n let newField = 'name'\n\n if (sortField === id) {\n newField = sortField\n newSortDirection = sortDirection === 'asc' ? 'desc' : 'asc'\n } else {\n newSortDirection = 'asc'\n newField = id\n }\n\n setFilter(prevState => ({\n ...prevState,\n sortDirection: newSortDirection as SortDirection,\n sortField: newField as DownloadCategoriesFields\n }))\n }\n\n const handleChangePage = (event: React.MouseEvent | null, page: number) => {\n setFilter(prevState => ({\n ...prevState,\n page: page + 1\n }))\n }\n\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\n setFilter(prevState => ({\n ...prevState,\n page: 1,\n rowsPerPage: parseInt(event.target.value)\n }))\n }\n\n const columns: F3MDataGridColumnProps[] = [\n { field: 'name', headerName: i18n.t('downloadCategories.name'), width: 12.5, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'businessArea', headerName: i18n.t('downloadCategories.businessArea'), width: 12.5, sortable: false, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'description', headerName: i18n.t('downloadCategories.description'), width: 45, sortable: true, type: 'number', align: 'left', headerAlign: 'left' },\n { field: 'cardType', headerName: i18n.t('downloadCategories.cardType'), width: 10, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'isActive', headerName: i18n.t('downloadCategories.isActive'), width: 10, sortable: true, type: 'node', align: 'center', headerAlign: 'center' },\n { field: 'deleteButton', headerName: i18n.t('downloadCategories.deleteButton'), width: 10, sortable: false, type: 'node', align: 'center', headerAlign: 'center' },\n ]\n\n const data: F3MDataGridRowData[] = downloadCategories.downloadCategories.map((r, rowIndex) => {\n return {\n id: rowIndex,\n downloadCategoryid: r.id,\n name: r.name,\n businessArea:\n i18n.t(busArea.name)).join(' + ')} color='primary' variant='outlined' />,\n description: r.description,\n cardType: i18n.t('enum.cardTypes.type.' + r.cardType),\n isActive: e.stopPropagation()}>\n handleChangeStatus(r.id, c)} color='primary' size='small' />\n {i18n.t('common.active')}\n ,\n deleteButton: handleDeleteBtn(e, r.id)} size='small'>\n }\n })\n\n return (\n handleAddUpdtModal('edit', e)}\n pagination={true}\n paginationMode='server'\n rowsPerPageOptions={[5, 10, 15, 20]}\n page={filter.page}\n pageSize={filter.rowsPerPage}\n sortMode='server'\n sortDirection={filter.sortDirection}\n sortField={filter.sortField}\n onChangePage={handleChangePage}\n onChangeRowsPerPage={handleChangeRowsPerPage}\n sortChange={handleSortChange}\n rowCount={downloadCategories.rowCount}\n />\n )\n}\n\nexport default Table","import { CONFIG, ENDPOINTS } from '../../constants'\nimport { DownCatBusinessAreasResponse, DownloadCategoriesFilter, DownloadCategoriesResponse, DownloadCategoryResponse, DownloadCategoryUpdtCreate } from '../../types/services/downloadCategories'\nimport { request } from '../axios'\n\nexport const downloadCategoriesService = {\n loadDownloadCategories: async (filter: DownloadCategoriesFilter) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.DOWNLOADCATEGORY,\n params: filter\n })\n\n return response\n },\n\n loadDownCatBusAreas: async () => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.DOWNCATBUSINESSAREAS\n })\n\n return response\n },\n\n createDownloadCategory: async (downloadCategory: DownloadCategoryUpdtCreate) => {\n const response = await request({\n method: 'POST',\n url: CONFIG.API_URL + ENDPOINTS.DOWNLOADCATEGORY,\n data: downloadCategory\n })\n\n return response\n },\n\n updateDownloadCategory: async (downloadCategory: DownloadCategoryUpdtCreate, isChangeStatus: boolean | undefined) => {\n const response = await request({\n method: 'PUT',\n url: CONFIG.API_URL + ENDPOINTS.DOWNLOADCATEGORY,\n data: { ...downloadCategory, IsChangeStatus: isChangeStatus === undefined ? false : true }\n })\n\n return response\n },\n\n deleteDownloadCategory: async (id: number) => {\n const response = await request({\n method: 'DELETE',\n url: CONFIG.API_URL + ENDPOINTS.DOWNLOADCATEGORY + '/' + id\n })\n\n return response\n }\n}","import React, { useEffect, useState } from 'react'\n\nimport { F3MAddUpdt, F3MBusinessArea, F3MButton, F3MCardType, F3MCategoryInfo, F3MDialog, F3MDownloadType, F3MFiltersBacDownUpgr, F3MIsActive, F3MSnackbar, F3MSnackbarState } from '../../../../../../components'\nimport Table from './Table'\n\nimport i18n from '../../../../../../i18n'\nimport { downloadCategoriesService } from '../../../../../../api/services/downloadCategoriesService'\n\nimport { DownCatBusinessAreasResponse, DownloadCategoriesFilter, DownloadCategoriesResponse, DownloadCategoryResponse, DownloadCategoryUpdtCreate } from '../../../../../../types/services/downloadCategories'\n\nimport { Grid } from '@material-ui/core'\n\nimport { F3MAddUpdtSection } from '../../../../../../components/F3MAddUpdt/types'\nimport { isCategoryDownloadValid } from '../../../../../../utils'\n\ninterface DeleteState {\n open: boolean\n id: number\n}\n\ninterface DownloadCategoriesProps {\n setLoading: (b: boolean) => void\n loading: boolean\n}\n\nconst DownloadCategories = (props: DownloadCategoriesProps) => {\n const [snackbar, setSnackbar] = useState({\n open: false,\n severity: 'info',\n message: ''\n })\n\n const [fetchedDownloadCategories, setDownloadCategories] = useState({ rowCount: 0, downloadCategories: [] })\n const [filter, setFilter] = useState({\n page: 1,\n rowsPerPage: 10,\n sortDirection: 'asc',\n sortField: 'name',\n businessAreas: null,\n name: null\n })\n\n const [businessAreasFilter, setBusinessAreasFilter] = useState({ businessAreas: [] })\n const [activeBusAreasFilter, setActiveBusAreasFilter] = useState('')\n\n const [del, setDel] = useState({ open: false, id: 0 })\n\n const [compSections, setCompSections] = useState>([])\n const [addUpdtModal, setAddUpdtModal] = useState(false)\n const [addUpdtModalTitle, setAddUpdtModalTitle] = useState('')\n const [addUpdtTitleVariant, setAddUpdtTitleVariant] = useState('')\n\n const [addOrUpdt, setAddOrUpdt] = useState({})\n\n const [callApiToSave, setCallApiToSave] = useState<(object: any) => any>(() => downloadCategoriesService.createDownloadCategory)\n\n const [update, setUpdate] = useState(false)\n\n const loadDownloadCategories = async () => {\n try {\n props.setLoading(true)\n\n await loadDownCatBusAreas();\n const response = await downloadCategoriesService.loadDownloadCategories(filter)\n\n if (response.isSuccess) {\n setDownloadCategories(response.result)\n props.setLoading(false)\n } else {\n props.setLoading(false)\n handleError(i18n.t('error.unexpectedError'))\n }\n }\n catch (e) {\n handleError(i18n.t('error.unexpectedError'))\n }\n finally {\n props.setLoading(false)\n setDel({ open: false, id: 0 })\n }\n }\n\n const loadDownCatBusAreas = async () => {\n try {\n const response = await downloadCategoriesService.loadDownCatBusAreas()\n\n if (response.isSuccess) {\n setBusinessAreasFilter(response.result)\n return\n } else {\n throw new Error()\n }\n }\n catch {\n throw new Error()\n }\n }\n\n const delDownloadCategory = async () => {\n props.setLoading(true)\n try {\n const response = await downloadCategoriesService.deleteDownloadCategory(del.id)\n\n if (response.isSuccess) {\n await loadDownloadCategories()\n handleSuccess(i18n.t('snackbar.deleteSuccess'))\n } else {\n handleError(i18n.t('snackbar.deleteError'))\n }\n }\n catch (e) {\n handleError(i18n.t('snackbar.deleteError'))\n }\n finally {\n props.setLoading(false)\n setDel({ open: false, id: 0 })\n }\n }\n\n const handleChangeStatus = async (id: number, newStatus: boolean) => {\n props.setLoading(true)\n try {\n const downloadCategoryToUpdate: DownloadCategoryUpdtCreate = { id: id, isActive: newStatus }\n const response = await downloadCategoriesService.updateDownloadCategory(downloadCategoryToUpdate, true)\n\n if (response.isSuccess) {\n await loadDownloadCategories()\n handleSuccess(i18n.t('snackbar.updateSuccess'))\n } else {\n handleError(i18n.t('snackbar.updateError'))\n }\n }\n catch (e) {\n handleError(i18n.t('snackbar.updateError'))\n }\n finally {\n props.setLoading(false)\n }\n }\n\n const handleDeleteBtn = (event: React.MouseEvent, id: number) => {\n event.preventDefault()\n event.stopPropagation()\n setDel({ open: true, id: id })\n }\n const handleAddUpdtModal = (type: string, event: React.MouseEvent | null) => {\n let addOrUpdtToComp: DownloadCategoryUpdtCreate = addOrUpdt\n\n if (type === 'create') {\n addOrUpdt['isActive'] = true\n setAddUpdtTitleVariant('add')\n setAddUpdtModalTitle(i18n.t('downloadCategories.addCategory'))\n setCallApiToSave(() => downloadCategoriesService.createDownloadCategory)\n }\n else {\n const rowIndex: number | undefined = event ? +event.currentTarget.id : undefined\n\n if (rowIndex !== undefined) {\n const downloadCategory: DownloadCategoryResponse = fetchedDownloadCategories.downloadCategories[rowIndex]\n addOrUpdtToComp = {\n id: downloadCategory.id,\n name: downloadCategory.name,\n description: downloadCategory.description,\n businessAreas: downloadCategory.businessAreas,\n cardType: downloadCategory.cardType,\n downloadType: downloadCategory.downloadType,\n isActive: downloadCategory.isActive\n }\n setAddOrUpdt(addOrUpdtToComp)\n setAddUpdtTitleVariant('edit')\n setAddUpdtModalTitle(i18n.t('downloadCategories.editCategory'))\n setCallApiToSave(() => downloadCategoriesService.updateDownloadCategory)\n }\n }\n setCompSections([\n { title: 'downloadCategories.category', required: true, component: },\n { title: 'downloadCategories.businessArea', required: true, component: },\n { title: 'downloadCategories.downloadType', required: true, component: },\n { title: 'downloadCategories.cardType', required: true, component: },\n { title: 'downloadCategories.isActive', required: true, component: }\n ])\n setAddUpdtModal(true)\n }\n\n const handleSuccess = (message: string) => {\n setSnackbar({ open: true, severity: 'success', message: message })\n }\n\n const handleError = (message: string) => {\n setSnackbar({ open: true, severity: 'error', message: message })\n }\n\n const resetAddOrUpdt = () => {\n setAddOrUpdt({})\n setCompSections([])\n }\n\n const handleSelectorFilterChange = (e: React.ChangeEvent<{ name?: string | undefined; value: unknown; }>) => {\n if (typeof e.target.value === 'string' && e.target.value !== '') {\n const filterBusAreaToApply: string[] = e.target.value.split('+').map(x => x)\n setFilter(prevState => ({ ...prevState, businessAreas: filterBusAreaToApply }))\n setActiveBusAreasFilter(e.target.value)\n }\n else {\n setFilter(prevState => ({ ...prevState, businessAreas: null }))\n setActiveBusAreasFilter('')\n }\n }\n\n const handleTextFilterChange = (e: React.ChangeEvent) => {\n setFilter(prevState => ({ ...prevState, name: e.currentTarget.value }))\n }\n\n useEffect(() => {\n loadDownloadCategories()\n }, [filter, update]) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <>\n \n \n \n \n \n handleAddUpdtModal('create', null)}>\n {i18n.t('button.add')}\n \n \n \n \n \n setDel((prevState: any) => ({ ...prevState, open: false }))}\n DialogTitleProps={{ children: i18n.t('confirmation.remove.title') }}\n DialogContentProps={{ children: i18n.t('confirmation.remove.message') }}\n DialogActionsProps={{ label: i18n.t('button.remove'), newOnClick: () => delDownloadCategory() }}\n />\n \n \n )\n}\n\nexport default DownloadCategories","import React, { Dispatch, SetStateAction } from 'react'\n\nimport { Chip, IconButton, Switch } from '@material-ui/core'\nimport DeleteIcon from '@material-ui/icons/Delete'\n\nimport { F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData } from '../../../../../../components'\nimport { DownloadCategoryDownloadsFields, SortDirection } from '../../../../../../types'\n\nimport i18n from '../../../../../../i18n'\n\nimport { DownloadCategoryDownloadsFilter, DownloadCategoryDownloadsResponse } from '../../../../../../types/services/downloadCategoryDownloads'\n\nimport globalSoftwareStyles from '../../../../styles'\n\ninterface ContentProps {\n downloadCategoryDownloads: DownloadCategoryDownloadsResponse\n handleChangeStatus: (id: number, isActive: boolean) => Promise\n handleDeleteBtn: (event: React.MouseEvent, id: number) => void\n filter: DownloadCategoryDownloadsFilter\n setFilter: Dispatch>\n loading: boolean\n handleAddUpdtModal: (type: string, event: React.MouseEvent | null) => void\n}\n\nconst Table = (props: ContentProps) => {\n const globalClasses = globalSoftwareStyles()\n\n const {\n downloadCategoryDownloads,\n handleChangeStatus,\n handleDeleteBtn,\n filter,\n setFilter,\n loading,\n handleAddUpdtModal\n } = props\n\n const handleSortChange = (e: React.MouseEvent) => {\n e.preventDefault()\n const id = e.currentTarget.parentElement!.id\n\n const { sortDirection, sortField } = filter\n let newSortDirection = 'desc'\n let newField = 'category'\n\n if (sortField === id) {\n newField = sortField\n newSortDirection = sortDirection === 'asc' ? 'desc' : 'asc'\n } else {\n newSortDirection = 'asc'\n newField = id\n }\n\n setFilter(prevState => ({\n ...prevState,\n sortDirection: newSortDirection as SortDirection,\n sortField: newField as DownloadCategoryDownloadsFields\n }))\n }\n\n const handleChangePage = (event: React.MouseEvent | null, page: number) => {\n setFilter(prevState => ({\n ...prevState,\n page: page + 1\n }))\n }\n\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\n setFilter(prevState => ({\n ...prevState,\n page: 1,\n rowsPerPage: parseInt(event.target.value)\n }))\n }\n\n const columns: F3MDataGridColumnProps[] = [\n { field: 'businessArea', headerName: i18n.t('downloadCategoryDownload.businessArea'), width: 12.5, sortable: false, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'category', headerName: i18n.t('downloadCategoryDownload.categoryName'), width: 12.5, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'fileName', headerName: i18n.t('downloadCategoryDownload.fileName'), width: 15, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'description', headerName: i18n.t('downloadCategoryDownload.description'), width: 40, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'isActive', headerName: i18n.t('downloadCategoryDownload.isActive'), width: 10, sortable: true, type: 'node', align: 'center', headerAlign: 'center' },\n { field: 'deleteButton', headerName: i18n.t('downloadCategoryDownload.deleteButton'), width: 10, sortable: false, type: 'node', align: 'center', headerAlign: 'center' },\n ]\n\n const data: F3MDataGridRowData[] = downloadCategoryDownloads.downloadCategoryDownloads.map((r, rowIndex) => {\n return {\n id: rowIndex,\n downloadCategoryid: r.id,\n businessArea:\n i18n.t(busArea.name)).join(' + ')} color='primary' variant='outlined' />,\n category: r.category,\n fileName: r.fileName,\n description: r.description,\n isActive: e.stopPropagation()}>\n handleChangeStatus(r.id, c)} color='primary' size='small' />\n {i18n.t('common.active')}\n ,\n deleteButton: handleDeleteBtn(e, r.id)} size='small'>\n }\n })\n\n return (\n handleAddUpdtModal('edit', e)}\n pagination={true}\n paginationMode='server'\n rowsPerPageOptions={[5, 10, 15, 20]}\n page={filter.page}\n pageSize={filter.rowsPerPage}\n sortMode='server'\n sortDirection={filter.sortDirection}\n sortField={filter.sortField}\n onChangePage={handleChangePage}\n onChangeRowsPerPage={handleChangeRowsPerPage}\n sortChange={handleSortChange}\n rowCount={downloadCategoryDownloads.rowCount}\n />\n )\n}\n\nexport default Table","import React, { useEffect, useState } from 'react'\n\nimport {\n F3MAddUpdt,\n F3MButton,\n F3MDialog,\n F3MFiltersBacDownUpgr,\n F3MSnackbar,\n F3MSnackbarState,\n F3MDownCatDownlsStateSection,\n F3MBusAreaAndCategory,\n F3MUploadFiles\n} from '../../../../../../components'\n\nimport Table from './Table'\n\nimport i18n from '../../../../../../i18n'\n\nimport { Grid } from '@material-ui/core'\n\nimport { DownloadCategoryDownloadResponse, DownloadCategoryDownloadsFilter, DownloadCategoryDownloadsResponse, DownloadCategoryDownloadsUpdtCreate, FileNameAndDesc } from '../../../../../../types/services/downloadCategoryDownloads'\nimport { downloadCategoryDownloadsService } from '../../../../../../api/services/downloadCategoryDownloadsService'\n\nimport { downloadCategoriesService } from '../../../../../../api/services/downloadCategoriesService'\nimport { DownCatBusinessAreasResponse } from '../../../../../../types/services/downloadCategories'\nimport { F3MAddUpdtSection } from '../../../../../../components/F3MAddUpdt/types'\nimport { isDownloadCategoryDownloadValid } from '../../../../../../utils'\nimport { BusinessArea } from '../../../../../../types/services/backoffice'\n\ninterface DeleteState {\n open: boolean\n id: number\n}\n\ninterface DownloadCategoryDownloadsProps {\n setLoading: (b: boolean) => void\n loading: boolean\n}\n\nconst DownloadCategoryDownloads = (props: DownloadCategoryDownloadsProps) => {\n const [snackbar, setSnackbar] = useState({\n open: false,\n severity: 'info',\n message: ''\n })\n\n const [fetchedDownloadCategoryDownloads, setDownloadCategoryDownloads] = useState({ rowCount: 0, downloadCategoryDownloads: [] })\n const [filter, setFilter] = useState({\n page: 1,\n rowsPerPage: 10,\n sortDirection: 'asc',\n sortField: 'category',\n businessAreas: null,\n category: null\n })\n\n const [businessAreasFilter, setBusinessAreasFilter] = useState({ businessAreas: [] })\n const [activeBusAreasFilter, setActiveBusAreasFilter] = useState('')\n\n const [del, setDel] = useState({ open: false, id: 0 })\n\n const [compSections, setCompSections] = useState>([])\n const [addUpdtModal, setAddUpdtModal] = useState(false)\n const [addUpdtModalTitle, setAddUpdtModalTitle] = useState('')\n const [addUpdtTitleVariant, setAddUpdtTitleVariant] = useState('')\n\n const emptyAddOrUpdt: DownloadCategoryDownloadsUpdtCreate = {\n id: null,\n categoryId: null,\n files: null,\n isActive: true,\n isNewFile: false\n }\n const [addOrUpdt, setAddOrUpdt] = useState(emptyAddOrUpdt)\n\n const [callApiToSave, setCallApiToSave] = useState<(object: any) => any>(() => downloadCategoryDownloadsService.createDownloadCategoryDownload)\n\n const [update, setUpdate] = useState(false)\n\n const loadDownloadCategoryDownloads = async () => {\n props.setLoading(true)\n try {\n await loadDownCatBusAreas();\n const response = await downloadCategoryDownloadsService.loadDownloadCategoryDownloads(filter)\n\n if (response.isSuccess) {\n setDownloadCategoryDownloads(response.result)\n props.setLoading(false)\n } else {\n props.setLoading(false)\n handleError(i18n.t('error.unexpectedError'))\n }\n }\n catch (e) {\n handleError(i18n.t('error.unexpectedError'))\n }\n finally {\n props.setLoading(false)\n setDel({ open: false, id: 0 })\n }\n }\n\n const loadDownCatBusAreas = async () => {\n try {\n const response = await downloadCategoriesService.loadDownCatBusAreas()\n\n if (response.isSuccess) {\n setBusinessAreasFilter(response.result)\n return\n } else {\n throw new Error()\n }\n }\n catch {\n throw new Error()\n }\n }\n\n const delDownloadCategoryDownload = async () => {\n props.setLoading(true)\n try {\n const response = await downloadCategoryDownloadsService.deleteDownloadCategoryDownload(del.id)\n\n if (response.isSuccess) {\n await loadDownloadCategoryDownloads()\n handleSuccess(i18n.t('snackbar.deleteSuccess'))\n } else {\n handleError(i18n.t('snackbar.deleteError'))\n }\n }\n catch (e) {\n handleError(i18n.t('snackbar.deleteError'))\n }\n finally {\n props.setLoading(false)\n setDel({ open: false, id: 0 })\n }\n }\n\n const handleChangeStatus = async (id: number, newStatus: boolean) => {\n props.setLoading(true)\n try {\n const downloadCategoryDownloadToUpdate: DownloadCategoryDownloadsUpdtCreate = {\n ...emptyAddOrUpdt,\n id: id,\n isActive: newStatus\n }\n const response = await downloadCategoryDownloadsService.updateDownloadCategoryDownload(downloadCategoryDownloadToUpdate)\n\n if (response.isSuccess) {\n await loadDownloadCategoryDownloads()\n handleSuccess(i18n.t('snackbar.updateSuccess'))\n } else {\n handleError(i18n.t('snackbar.updateError'))\n }\n }\n catch (e) {\n handleError(i18n.t('snackbar.updateError'))\n }\n finally {\n props.setLoading(false)\n }\n }\n\n const handleDeleteBtn = (event: React.MouseEvent, id: number) => {\n event.preventDefault()\n event.stopPropagation()\n setDel({ open: true, id: id })\n }\n\n const handleAddUpdtModal = (type: string, event: React.MouseEvent | null) => {\n let addOrUpdtToComp: DownloadCategoryDownloadsUpdtCreate = addOrUpdt\n\n let fileNameAndDesc: FileNameAndDesc = { fileName: '', description: ''}\n let businessAreas: BusinessArea[] = []\n\n if (type === 'create') {\n setAddUpdtTitleVariant('add')\n setAddUpdtModalTitle(i18n.t('downloadCategoryDownload.addCategory'))\n setCallApiToSave(() => downloadCategoryDownloadsService.createDownloadCategoryDownload)\n }\n else {\n const rowIndex: number | undefined = event ? +event.currentTarget.id : undefined\n\n if (rowIndex !== undefined) {\n const downloadCategoryDownload: DownloadCategoryDownloadResponse = fetchedDownloadCategoryDownloads.downloadCategoryDownloads[rowIndex]\n addOrUpdtToComp = {\n ...emptyAddOrUpdt,\n id: downloadCategoryDownload.id,\n categoryId: downloadCategoryDownload.categoryId,\n isActive: downloadCategoryDownload.isActive,\n isNewFile: false\n }\n fileNameAndDesc = { fileName: downloadCategoryDownload.fileName, description: downloadCategoryDownload.description }\n businessAreas = downloadCategoryDownload.businessAreas\n\n setAddOrUpdt(addOrUpdtToComp)\n setAddUpdtTitleVariant('edit')\n setAddUpdtModalTitle(i18n.t('downloadCategoryDownload.editCategory'))\n setCallApiToSave(() => downloadCategoryDownloadsService.updateDownloadCategoryDownload)\n }\n }\n setCompSections([\n {\n title: 'downloadCategoryDownload.fileUpload',\n required: true,\n component: \n },\n { title: 'downloadCategoryDownload.information', required: true },\n { component: },\n { title: 'downloadCategoryDownload.isActive', required: true, component: }\n ])\n setAddUpdtModal(true)\n }\n\n const handleSuccess = (message: string) => {\n setSnackbar({ open: true, severity: 'success', message: message })\n }\n\n const handleError = (message: string) => {\n setSnackbar({ open: true, severity: 'error', message: message })\n }\n\n const handleSelectorFilterChange = (e: React.ChangeEvent<{ name?: string | undefined; value: unknown; }>) => {\n if (typeof e.target.value === 'string' && e.target.value !== '') {\n const filterBusAreaToApply: number[] = e.target.value.split(/(?:\\s*),(?:\\s*)/).map(x => +x)\n setFilter(prevState => ({ ...prevState, businessAreas: filterBusAreaToApply }))\n setActiveBusAreasFilter(e.target.value)\n }\n else {\n setFilter(prevState => ({ ...prevState, businessAreas: null }))\n setActiveBusAreasFilter('')\n }\n }\n\n const handleTextFilterChange = (e: React.ChangeEvent) => {\n setFilter(prevState => ({ ...prevState, category: e.currentTarget.value }))\n }\n\n const resetAddOrUpdt = () => {\n setAddOrUpdt(emptyAddOrUpdt)\n setCompSections([])\n }\n\n useEffect(() => {\n loadDownloadCategoryDownloads()\n }, [filter, update]) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <>\n \n \n \n \n \n handleAddUpdtModal('create', null)}>\n {i18n.t('button.add')}\n \n \n \n \n \n setDel((prevState: any) => ({ ...prevState, open: false }))}\n DialogTitleProps={{ children: i18n.t('confirmation.remove.title') }}\n DialogContentProps={{ children: i18n.t('confirmation.remove.message') }}\n DialogActionsProps={{ label: i18n.t('button.remove'), newOnClick: () => delDownloadCategoryDownload() }}\n />\n \n \n )\n}\n\nexport default DownloadCategoryDownloads","import React, { Dispatch, SetStateAction } from 'react'\n\nimport { IconButton, Switch } from '@material-ui/core'\nimport DeleteIcon from '@material-ui/icons/Delete'\n\nimport { DownloadsManagerFields, SortDirection } from '../../../../types'\nimport { DownloadManagerFilter, DownloadsManagerResponse } from '../../../../types/services/downloadsManager'\nimport { F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData } from '../../../../components'\n\nimport i18n from '../../../../i18n'\n\nimport globalSoftwareStyles from '../../styles'\n\ninterface ContentProps {\n fetchedDownloads: DownloadsManagerResponse\n handleChangeStatus: (checked: boolean, id: number) => Promise\n handleDeleteBtn: (event: React.MouseEvent, id: number) => void\n filter: DownloadManagerFilter\n setFilter: Dispatch>\n loading: boolean\n handleAddUpdtModal: (type: string, event: React.MouseEvent | null) => void\n}\n\nconst Table = (props: ContentProps) => {\n const globalClasses = globalSoftwareStyles()\n\n const {\n fetchedDownloads,\n handleChangeStatus,\n handleDeleteBtn,\n filter,\n setFilter,\n loading,\n handleAddUpdtModal\n } = props\n\n const handleSortChange = (e: React.MouseEvent) => {\n e.preventDefault()\n const id = e.currentTarget.parentElement!.id\n\n const { sortDirection, sortField } = filter\n let newSortDirection = 'desc'\n let newField = 'date'\n\n if (sortField === id) {\n newField = sortField\n if (sortDirection === 'asc') {\n newSortDirection = 'desc'\n } else {\n newSortDirection = 'asc'\n }\n } else {\n newSortDirection = 'asc'\n newField = id\n }\n\n setFilter(prevState => ({\n ...prevState,\n sortDirection: newSortDirection as SortDirection,\n sortField: newField as DownloadsManagerFields\n }))\n }\n\n const handleChangePage = (event: React.MouseEvent | null, page: number) => {\n setFilter(prevState => ({\n ...prevState,\n page: page + 1\n }))\n }\n\n const handleChangeRowsPerPage = (event: React.ChangeEvent) => {\n setFilter(prevState => ({\n ...prevState,\n page: 1,\n rowsPerPage: parseInt(event.target.value)\n }))\n }\n\n let columns: F3MDataGridColumnProps[] = [\n { field: 'clientName', headerName: i18n.t('downloads.clientName'), width: 30, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'description', headerName: i18n.t('common.description'), width: 30, sortable: false, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'date', headerName: i18n.t('common.date'), width: 5, sortable: true, type: 'date', align: 'right', headerAlign: 'right' },\n { field: 'fileName', headerName: i18n.t('common.fileName'), width: 10, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'isActive', headerName: i18n.t('common.state'), width: 5, sortable: true, type: 'node', align: 'center', headerAlign: 'center' },\n { field: 'delete', headerName: i18n.t('button.remove'), width: 5, sortable: false, type: 'node', align: 'center', headerAlign: 'center' }\n ]\n\n let data: F3MDataGridRowData[] = fetchedDownloads.downloads.map((r, index) => ({\n id: index,\n downloadId: r.id,\n clientId: r.clientId,\n clientName: r.clientName,\n description: r.description,\n date: r.date,\n fileName: r.fileName,\n isActive: e.stopPropagation()}>\n handleChangeStatus(c, r.id)} color='primary' size='small' />\n {i18n.t('common.active')}\n ,\n delete: handleDeleteBtn(e, r.id)} size='small'>\n }))\n\n return (\n handleAddUpdtModal('edit', e)}\n sortMode='server'\n sortDirection={filter.sortDirection}\n sortField={filter.sortField}\n sortChange={handleSortChange}\n pagination={true}\n paginationMode='server'\n rowCount={fetchedDownloads.rowCount}\n page={filter.page}\n pageSize={filter.rowsPerPage}\n onChangePage={handleChangePage}\n onChangeRowsPerPage={handleChangeRowsPerPage}\n />\n )\n}\n\nexport default Table","import Dashboard from '../views/home/other/dashboard'\nimport Login from '../views/login/'\nimport Contracts from '../views/home/services/contracts'\nimport Incidents from '../views/home/services/incidents'\nimport Reports from '../views/home/services/reports'\nimport Downloads from '../views/home/software/downloads'\nimport Installation from '../views/home/software/installation'\nimport Licensing from '../views/home/software/licensing'\nimport Updates from '../views/home/software/updates'\nimport CarouselManager from '../views/home/backoffice/carousel'\nimport ApplicationsManager from '../views/home/backoffice/applications'\nimport DownloadManager from '../views/home/backoffice/downloads'\n\nexport const ROUTES = {\n LOGIN: {\n PATH: '/',\n COMPONENT: Login\n },\n HOMEPAGE: {\n PATH: '/',\n COMPONENT: Dashboard\n },\n SOFTWARE: {\n BASE: '/software',\n LICENSING: {\n PATH: '/software/licensing',\n COMPONENT: Licensing\n },\n INSTALLATION: {\n PATH: '/software/installation',\n COMPONENT: Installation\n },\n UPDATES: {\n PATH: '/software/updates',\n COMPONENT: Updates\n }\n },\n SERVICES: {\n BASE: '/services',\n INCIDENTS: {\n PATH: '/services/incidents',\n COMPONENT: Incidents\n },\n CONTRACTS: {\n PATH: '/services/contracts',\n COMPONENT: Contracts\n },\n REPORTS: {\n PATH: '/services/reports',\n COMPONENT: Reports\n },\n DOWNLOADS: {\n PATH: '/services/downloads',\n COMPONENT: Downloads\n }\n },\n TRAINING: {\n REDIRECT: 'https://trainingcentre.f3m.pt/',\n TARGET: '_blank'\n },\n BACKOFFICE: {\n CAROUSEL: {\n PATH: '/backoffice/Carousel',\n COMPONENT: CarouselManager\n },\n APPLICATIONS: {\n PATH: '/backoffice/applications',\n COMPONENT: ApplicationsManager\n },\n DOWNLOADS: {\n PATH: '/backoffice/downloads',\n COMPONENT: DownloadManager\n }\n }\n}","import React, { useState } from 'react'\n\nimport { Box, Tab, Tabs, useTheme } from '@material-ui/core'\n\nimport { F3MBreadcrumbs, F3MCard } from '../../../../components'\n\nimport { ApplicationDownload, DownloadCategories, DownloadCategoryDownloads } from './Cards'\nimport i18n from '../../../../i18n'\nimport { CSSTransition, TransitionGroup } from 'react-transition-group'\n\nconst ApplicationsManager = () => {\n const theme = useTheme()\n const [value, setValue] = useState(0)\n const [loading, setLoading] = useState(false)\n\n const handleChange = (event: React.ChangeEvent<{}>, newValue: number) => {\n setValue(newValue);\n };\n\n return (\n <>\n \n\n \n \n \n \n \n \n \n \n\n \n \n <>\n {value === 0 && }\n {value === 1 && }\n {value === 2 && }\n \n \n \n \n \n )\n}\n\nexport default ApplicationsManager","import React, { useEffect, useState } from \"react\";\nimport { Grid } from \"@material-ui/core\";\n\nimport i18n from \"../../../../i18n\";\n\nimport {\n F3MAddUpdt,\n F3MAddUpdtSection,\n F3MBreadcrumbs,\n F3MButton,\n F3MCard,\n F3MClientChoice,\n F3MDialog,\n F3MDownManDescp,\n F3MDropzoneSection,\n F3MFilterSearch,\n F3MIsActive,\n F3MSnackbar,\n F3MSnackbarState,\n} from \"../../../../components\";\nimport {\n ClientModel,\n DownloadManagerFilter,\n DownloadManagerResponse,\n DownloadManagerUpdtCreate,\n DownloadsManagerResponse,\n} from \"../../../../types/services/downloadsManager\";\nimport { downloadManagerService } from \"../../../../api\";\n\nimport Table from \"./Table\";\nimport { isDownloadValid } from \"../../../../utils\";\nimport { FILESIZE } from \"../../../../constants\";\n\ninterface DeleteState {\n open: boolean;\n id: number;\n}\n\nconst DownloadManager = () => {\n const [loading, setLoading] = useState(false);\n\n const [snackbar, setSnackbar] = useState({\n open: false,\n severity: \"info\",\n message: \"\",\n });\n\n const [fetchedDownloads, setDownloads] = useState({\n rowCount: 0,\n downloads: [],\n });\n const [filter, setFilter] = useState({\n clientNameNumber: null,\n page: 1,\n rowsPerPage: 10,\n sortDirection: \"desc\",\n sortField: \"date\",\n });\n\n const [compSections, setCompSections] = useState([]);\n const [addUpdtModal, setAddUpdtModal] = useState(false);\n const [addUpdtModalTitle, setAddUpdtModalTitle] = useState(\"\");\n const [addUpdtTitleVariant, setAddUpdtTitleVariant] = useState(\"\");\n\n const [addOrUpdt, setAddOrUpdt] = useState({\n isNewFile: true,\n isActive: true,\n });\n\n const [callApiToSave, setCallApiToSave] = useState<(object: any) => any>(\n () => downloadManagerService.createDownload\n );\n const [update, setUpdate] = useState(false);\n\n const [del, setDel] = useState({ open: false, id: 0 });\n\n const loadDownloads = async () => {\n setLoading(true);\n try {\n const response = await downloadManagerService.loadDownloads(filter);\n\n if (response.isSuccess) {\n setDownloads(response.result);\n setLoading(false);\n } else {\n setLoading(false);\n }\n } catch (e) {\n handleError(i18n.t(\"error.unexpectedError\"));\n } finally {\n setLoading(false);\n setDel({ open: false, id: 0 });\n }\n };\n\n const handleDelDownload = async () => {\n setLoading(true);\n try {\n const response = await downloadManagerService.deleteDownload(del.id);\n\n if (response.isSuccess) {\n await loadDownloads();\n handleSuccess(i18n.t(\"snackbar.deleteSuccess\"));\n } else {\n handleError(i18n.t(\"snackbar.deleteError\"));\n }\n } catch (e) {\n handleError(i18n.t(\"snackbar.deleteError\"));\n } finally {\n setLoading(false);\n setDel({ open: false, id: 0 });\n }\n };\n\n const handleChangeStatus = async (checked: boolean, id: number) => {\n setLoading(true);\n try {\n const response = await downloadManagerService.updateDownload({\n id: id,\n isActive: checked,\n });\n\n if (response.isSuccess) {\n await loadDownloads();\n handleSuccess(i18n.t(\"snackbar.updateSuccess\"));\n } else {\n handleError(i18n.t(\"snackbar.updateError\"));\n }\n } catch (e) {\n handleError(i18n.t(\"snackbar.updateError\"));\n } finally {\n setLoading(false);\n }\n };\n\n const handleDeleteBtn = (\n e: React.MouseEvent,\n id: number\n ) => {\n e.preventDefault();\n e.stopPropagation();\n setDel({ open: true, id: id });\n };\n\n const handleFileChange = (files: File[]) => {\n setAddOrUpdt((prevState) => ({\n ...prevState,\n file: files.length > 0 ? files[0] : undefined,\n }));\n };\n\n const getFileAddedMessage = (fileName: string) => {\n setAddOrUpdt((prevState) => ({ ...prevState, isNewFile: true }));\n return i18n.t(\"dropzone.fileAdded\").replace(\"FILE_NAME\", fileName);\n };\n\n const handleAddUpdtModal = (\n type: string,\n event: React.MouseEvent | null\n ) => {\n let addOrUpdtToComp: DownloadManagerUpdtCreate = addOrUpdt;\n\n let fileName: string[] = [];\n let defaultClient: ClientModel | null = null;\n\n if (type === \"create\") {\n setAddUpdtTitleVariant(\"add\");\n setAddUpdtModalTitle(i18n.t(\"downloads.addDownload\"));\n setCallApiToSave(() => downloadManagerService.createDownload);\n } else {\n const rowIndex: number | undefined = event\n ? +event.currentTarget.id\n : undefined;\n\n if (rowIndex !== undefined) {\n const download: DownloadManagerResponse =\n fetchedDownloads.downloads[rowIndex];\n addOrUpdtToComp = {\n id: download.id,\n clientId: download.clientId,\n description: download.description,\n isNewFile: false,\n isActive: download.isActive,\n };\n defaultClient = {\n clientId: download.clientId,\n clientName: download.clientName,\n };\n fileName = [download.fileName];\n\n setAddOrUpdt(addOrUpdtToComp);\n setAddUpdtTitleVariant(\"edit\");\n setAddUpdtModalTitle(i18n.t(\"downloads.editDownload\"));\n setCallApiToSave(() => downloadManagerService.updateDownload);\n }\n }\n setCompSections([\n {\n title: \"downloadCategoryDownload.fileUpload\",\n required: true,\n component: (\n \n ),\n },\n {\n title: \"downloads.selectClient\",\n required: true,\n component: (\n \n ),\n },\n {\n title: \"common.description\",\n required: true,\n component: (\n \n ),\n },\n {\n title: \"applicationDownload.active\",\n required: true,\n component: (\n \n ),\n },\n ]);\n setAddUpdtModal(true);\n };\n\n const handleSuccess = (message: string) => {\n setSnackbar({ open: true, severity: \"success\", message: message });\n };\n\n const handleError = (message: string) => {\n setSnackbar({ open: true, severity: \"error\", message: message });\n };\n\n const handleTextFilterChange = (\n e: React.ChangeEvent\n ) => {\n setFilter((prevState) => ({\n ...prevState,\n clientNameNumber: e.currentTarget.value,\n }));\n };\n\n const resetAddOrUpdt = () => {\n setAddOrUpdt({ isNewFile: true, isActive: true });\n setCompSections([]);\n };\n\n useEffect(() => {\n loadDownloads();\n }, [filter, update]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <>\n \n \n \n \n \n \n \n handleAddUpdtModal(\"create\", null)}\n >\n {i18n.t(\"button.add\")}\n \n \n \n \n \n \n setDel((prevState: any) => ({ ...prevState, open: false }))\n }\n DialogTitleProps={{ children: i18n.t(\"confirmation.remove.title\") }}\n DialogContentProps={{\n children: i18n.t(\"confirmation.remove.message\"),\n }}\n DialogActionsProps={{\n label: i18n.t(\"button.remove\"),\n newOnClick: () => handleDelDownload(),\n }}\n />\n \n \n \n );\n};\n\nexport default DownloadManager;\n","export const FILESIZE = {\n //bytes (in binary)\n \"1MB\": 1048576,\n \"30MB\": 31457280,\n \"350MB\": 367001600,\n \"1GB\": 1073741824,\n \"2GB\": 2147483648,\n \"10GB\": 10737418240,\n};\n","import axios, { AxiosResponse } from 'axios'\n\nimport api from './api'\n\nimport { CONFIG, STORAGE } from '../../constants'\nimport { getLocalStorage } from '../../utils'\nimport { store } from '../..'\n\nimport loginOperations from '../../store/operations/loginOperations'\n\n/**\n * Check https://gist.github.com/Godofbrowser/bf118322301af3fc334437c683887c5f\n */\nlet isRefreshing = false\nlet failedQueue: any = []\n\nconst processQueue = (error: any, token = null) => {\n failedQueue.forEach((prom: any) => {\n if (error) {\n prom.reject(error)\n } else {\n prom.resolve(token)\n }\n })\n\n failedQueue = []\n}\n\nconst responseSuccess = (response: AxiosResponse) => response\n\nconst responseFailure = async (error: any) => {\n const request = error.config\n\n if (request.url.startsWith(CONFIG.API_URL) && error.response.status === 401 && !request._retry) {\n\n if (isRefreshing) {\n return new Promise(function(resolve, reject) {\n failedQueue.push({resolve, reject})\n }).then(token => {\n request.headers['Authorization'] = 'Bearer ' + token\n return axios(request)\n }).catch(err => {\n return Promise.reject(err)\n })\n }\n\n request._retry = true\n isRefreshing = true\n\n await store.dispatch(loginOperations.refreshToken() as any)\n \n const token = getLocalStorage(STORAGE.ACCESS_TOKEN)\n request.headers.Authorization = 'Bearer ' + token\n processQueue(null, token)\n\n isRefreshing = false\n\n return api(request)\n }\n \n return new Promise((resolve, reject) => {\n return reject(error.response)\n })\n}\n\n// Add a request interceptor\napi.interceptors.request.use((request) => {\n if(request.url!.startsWith(CONFIG.API_URL)) {\n request.headers.Authorization = 'Bearer ' + getLocalStorage(STORAGE.ACCESS_TOKEN)\n }\n \n return request\n})\n\n// Add a response interceptor\napi.interceptors.response.use(responseSuccess, responseFailure)\n\nexport { api }","import { AxiosRequestConfig, AxiosResponse } from 'axios'\nimport { api } from './interceptors'\n\nimport { ApiResponse } from '../../types/api'\n\nexport const request = (config: AxiosRequestConfig): Promise> => {\n return api.request(config)\n .then(response => {\n const { isSuccess, result, errorMessage } = response.data\n\n return { isSuccess, result, errorMessage }\n })\n .catch(error => {\n throw error\n })\n}\n\nexport const download = async (config: AxiosRequestConfig): Promise> => {\n try {\n return await api.request({\n responseType: 'arraybuffer',\n ...config\n })\n } catch (error) {\n return error.response\n }\n}","import { request } from '../axios'\nimport { CONFIG, ENDPOINTS } from '../../constants'\nimport { AccountResponse } from '../../types/services/account'\n\nexport const accountService = {\n accountInfo: async () => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.ACCOUNT\n })\n\n return response\n }\n}","import { request } from '..'\nimport { CONFIG, ENDPOINTS } from '../../constants'\nimport { ApplicationResponse } from '../../types/services/application'\n\nexport const applicationService = {\n loadApplications: async () => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.APPLICATIONS\n })\n\n return response\n },\n\n loadApplication: async (applicationName: string) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.APPLICATIONS + '/' + applicationName\n })\n\n return response\n },\n\n loadApplicationVersions: async (applicationId: string) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.APPLICATIONVERSIONS,\n params: { applicationId: applicationId }\n })\n\n return response\n }\n}","import { CONFIG, ENDPOINTS } from '../../constants'\nimport { ApplicationDownloadResponse, ApplicationDownloadsResponse, ApplicationDownloadUpdtCreate, InstallationResponse, UpdateResponse, UpgradeResponse } from '../../types/services/applicationDownload'\nimport { ApplicationDownloadFilter } from '../../types/services/applicationDownload/ApplicationDownloadFilter'\nimport { isDefined } from '../../utils'\nimport { download, request } from '../axios'\n\nexport const applicationDownloadService = {\n loadInstallations: async () => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.APPLICATION_DOWNLOAD_INSTALLATION\n })\n\n return response\n },\n\n loadUpgrades: async () => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.APPLICATION_DOWNLOAD_UPGRADE\n })\n\n return response\n },\n\n loadUpdates: async () => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.APPLICATION_DOWNLOAD_UPDATE\n })\n\n return response\n },\n\n downloadApplication: async (id: number) => {\n const response = await download({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.APPLICATION_DOWNLOAD_DOWNLOAD + '/' + id,\n headers: {\n responseType: 'arraybuffer'\n }\n })\n\n return response\n },\n\n downloadGains: async (id: number | undefined) => {\n const response = await download({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.APPLICATION_DOWNLOAD_GAINS + '/' + id,\n headers: {\n responseType: 'arraybuffer'\n }\n })\n\n return response\n },\n\n getApplicationDownloads: async (filter: ApplicationDownloadFilter) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.APPLICATION_DOWNLOAD,\n params: filter\n })\n\n return response\n },\n\n getApplicationDownload: async (id: number) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.APPLICATION_DOWNLOAD + '/' + id\n })\n\n return response\n },\n\n createApplicationDownload: async (application: ApplicationDownloadUpdtCreate) => {\n const formData = new FormData()\n\n formData.append('applicationId', application.applicationId ? application.applicationId : ''!)\n formData.append('applicationName', application.applicationName ? application.applicationName : ''!)\n formData.append('version', application.version ? application.version : '')\n formData.append('isManualVersion', (application.isManualVersion === true).toString())\n if(application.files){\n formData.append('installationFile', application.files['installation'] ? application.files['installation'] : '')\n formData.append('updateFile', application.files['update'] ? application.files['update'] : '')\n formData.append('upgradeFile', application.files['upgrade'] ? application.files['upgrade'] : '')\n }\n formData.append('gainsFile', application.gains ? application.gains : '')\n formData.append('isActive', application.isActive !== undefined ? application.isActive.toString() : true.toString())\n\n const response = await request({\n method: 'POST',\n url: CONFIG.API_URL + ENDPOINTS.APPLICATION_DOWNLOAD,\n data: formData,\n headers: { 'Content-Type': 'multipart/form-data' }\n })\n\n return response\n },\n\n updateApplicationDownload: async (application: ApplicationDownloadUpdtCreate) => {\n const formData = new FormData()\n\n if (!isDefined(application.id)) {\n throw Error\n }\n\n formData.append('id', application.id ? application.id.toString() : '')\n formData.append('applicationId', application.applicationId ? application.applicationId : ''!)\n formData.append('applicationName', application.applicationName ? application.applicationName : ''!)\n formData.append('version', application.version ? application.version : '')\n formData.append('isManualVersion', (application.isManualVersion === true).toString())\n formData.append('isActive', (application.isActive === true).toString())\n\n if (application.isNewFile) {\n formData.append('file', application.file ? application.file : '')\n }\n if (application.isNewGains) {\n formData.append('gains', application.gains ? application.gains : '')\n }\n\n const response = await request({\n method: 'PUT',\n url: CONFIG.API_URL + ENDPOINTS.APPLICATION_DOWNLOAD,\n data: formData,\n headers: { 'Content-Type': 'multipart/form-data' }\n })\n\n return response\n },\n\n deleteApplicationDownload: async (id: number) => {\n const response = await request({\n method: 'DELETE',\n url: CONFIG.API_URL + ENDPOINTS.APPLICATION_DOWNLOAD + '/' + id\n })\n\n return response\n }\n}","import { request } from '../axios'\nimport { CONFIG, ENDPOINTS } from '../../constants'\nimport { TokenCreateRequest, TokenCreateResponse, TokenRefreshRequest, TokenRefreshResponse } from '../../types/services/auth'\n\nexport const authService = {\n tokenCreate: async (data: TokenCreateRequest) => {\n const response = await request({\n method : 'POST',\n url : CONFIG.API_URL + ENDPOINTS.TOKEN_CREATE,\n data : data\n })\n\n return response\n },\n\n tokenRefresh: async (data: TokenRefreshRequest) => {\n const response = await request({\n method : 'POST',\n url : CONFIG.API_URL + ENDPOINTS.TOKEN_REFRESH,\n data : data\n })\n\n return response\n },\n\n tokenRevoke: async () => {\n const response = await request({\n method : 'POST',\n url : CONFIG.API_URL + ENDPOINTS.TOKEN_REVOKE\n })\n\n return response\n }\n}","import { CONFIG, ENDPOINTS } from '../../constants'\nimport { AssistanceContractsResponse, ServiceContractsResponse } from '../../types/services/contracts'\nimport { request } from '../axios'\n\nexport const contractsService = {\n loadAssistanceContracts: async (maxPlans?: number) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.CONTRACT_ASSISTANCE_CONTRACTS,\n params: { maxPlans: maxPlans }\n })\n\n return response\n },\n\n loadServiceContracts: async (maxPlans?: number) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.CONTRACT_SERVICE_CONTRACTS,\n params: { maxPlans: maxPlans }\n })\n\n return response\n }\n}","import { CONFIG, ENDPOINTS } from '../../constants'\nimport { ProductsRequest, ProductsResponse, WebProductResponse } from '../../types/services/license'\nimport { download, request } from '../axios'\n\nexport const licenseService = {\n loadProducts: async (data: ProductsRequest) => {\n const response = await request({\n method : 'POST',\n url : CONFIG.API_URL + ENDPOINTS.LICENSING_PRODUCTS,\n data : data\n })\n\n return response\n },\n\n loadWebProducts: async () => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.LICENSING_WEB_PRODUCTS,\n })\n\n return response\n },\n\n getProductLicensePDF: async (id: string) => {\n const response = await download({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.LICENSING_PRODUCT_LICENSE_PDF + '/' + id\n })\n\n return response\n },\n\n downloadProductLicense: async (id: string) => {\n const response = await download({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.LICENSING_PRODUCT_LICENSE + '/' + id\n })\n\n return response\n },\n\n downloadWebProductLicense: async (code: string) => {\n const response = await download({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.LICENSING_WEB_PRODUCT_LICENSE + '/' + code\n })\n\n return response\n }\n}","import { CONFIG, ENDPOINTS } from '../../constants'\nimport { UserDownloadResponse } from '../../types/services/userDownload'\nimport { download, request } from '../axios'\n\nexport const userDownloadService = {\n loadDownloads: async () => {\n const response = await request({\n method: 'GET',\n url : CONFIG.API_URL + ENDPOINTS.USER_DOWNLOAD\n })\n\n return response\n },\n\n download: async (id: number, downloadProgress?: ((progressEvent: ProgressEvent) => void)) => {\n const response = await download({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.USER_DOWNLOAD_DOWNLOAD + '/' + id,\n headers: {\n responseType: 'arraybuffer'\n },\n onDownloadProgress: downloadProgress\n })\n\n return response\n }\n}","import { CONFIG, ENDPOINTS } from '../../constants'\nimport { download } from '../axios'\n\nexport const servCatalogService = {\n getServCatalogUrl: async () => {\n try {\n const response = await download({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.SERVCATALOG\n })\n\n const { data, headers } = response\n\n const blob = new Blob([data], { type: headers['content-type'] })\n\n return blob\n }\n catch (error) {\n throw new Error()\n }\n }\n}","import { request } from '..'\nimport { CONFIG, ENDPOINTS } from '../../constants'\nimport { BusinessArea } from '../../types/services/backoffice'\n\nexport const backofficeService = {\n loadBusinessAreas: async () => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.BUSINESSAREAS\n })\n\n return response\n }\n}","import { request } from '..'\nimport { CONFIG, ENDPOINTS } from '../../constants'\nimport { DownloadManagerFilter, DownloadsManagerResponse, DownloadManagerUpdtCreate, ClientModel } from '../../types/services/downloadsManager'\nimport { isDefined } from '../../utils'\n\nexport const downloadManagerService = {\n loadDownloads: async (filter: DownloadManagerFilter) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.DOWNLOADMANAGER,\n params: filter\n })\n\n return response\n },\n\n loadClients: async (clientCodeName: string) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.CLIENTS,\n params: { clientCodeName: clientCodeName }\n })\n\n return response\n },\n\n createDownload: async (download: DownloadManagerUpdtCreate) => {\n const formData = new FormData()\n\n formData.append('clientId', download.clientId ? download.clientId : ''!)\n formData.append('description', download.description ? download.description : '')\n formData.append('file', download.file ? download.file : '')\n formData.append('isActive', download.isActive.toString())\n\n const response = await request({\n method: 'POST',\n url: CONFIG.API_URL + ENDPOINTS.DOWNLOADMANAGER,\n data: formData,\n headers: { 'Content-Type': 'multipart/form-data' }\n })\n\n return response\n },\n\n updateDownload: async (download: DownloadManagerUpdtCreate) => {\n const formData = new FormData()\n\n if (!isDefined(download.id)) {\n throw Error\n }\n\n formData.append('id', download.id ? download.id.toString() : '')\n formData.append('clientId', download.clientId ? download.clientId : '')\n formData.append('description', download.description ? download.description : '')\n \n if (download.isNewFile === true) {\n formData.append('file', download.file ? download.file : '')\n }\n\n formData.append('isActive', (download.isActive === true).toString())\n\n const response = await request({\n method: 'PUT',\n url: CONFIG.API_URL + ENDPOINTS.DOWNLOADMANAGER,\n data: formData,\n headers: { 'Content-Type': 'multipart/form-data' }\n })\n\n return response\n },\n\n deleteDownload: async (id: number) => {\n const response = await request({\n method: 'DELETE',\n url: CONFIG.API_URL + ENDPOINTS.DOWNLOADMANAGER + '/' + id\n })\n\n return response\n }\n}","import { CONFIG, ENDPOINTS } from '../../constants'\nimport { download } from '../axios'\n\nexport const remoteAssistanceService = {\n downloadRemoAssistExe: async () => {\n const response = await download({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.REMOTEASSISTANCE\n })\n\n return response\n }\n}","import { AssistanceContractsResponse, ServiceContractsResponse } from '../../types/services/contracts'\nimport {\n LoadServiceContractsRequest,\n LoadServiceContractsSuccess,\n LoadServiceContractsError,\n LoadAssistanceContractsRequest,\n LoadAssitanceContractsSuccess,\n LoadAssitanceContractsError,\n ClearData\n} from '../../types/store/contract'\n\nconst contractActions = {\n loadServiceContractsRequest: (): LoadServiceContractsRequest => {\n return {type: 'CONTRACT_LOAD_SERVICE_CONTRACTS_REQUEST'}\n },\n\n loadServiceContractsSuccess: (data: ServiceContractsResponse[]): LoadServiceContractsSuccess => {\n return {type: 'CONTRACT_LOAD_SERVICE_CONTRACTS_SUCCESS', payload: data}\n },\n\n loadServiceContractsError: (data: string): LoadServiceContractsError => {\n return {type: 'CONTRACT_LOAD_SERVICE_CONTRACTS_ERROR', payload: data}\n },\n\n loadAssistanceContractsRequest: (): LoadAssistanceContractsRequest => {\n return {type: 'CONTRACT_LOAD_ASSISTANCE_CONTRACTS_REQUEST'}\n },\n\n loadAssistanceContractsSuccess: (data: AssistanceContractsResponse[]): LoadAssitanceContractsSuccess => {\n return {type: 'CONTRACT_LOAD_ASSISTANCE_CONTRACTS_SUCCESS', payload: data}\n },\n\n loadAssistanceContractsError: (data: string): LoadAssitanceContractsError => {\n return {type: 'CONTRACT_LOAD_ASSISTANCE_CONTRACTS_ERROR', payload: data}\n },\n\n clearData: (): ClearData => {\n return {type: 'CONTRACT_CLEAR_DATA'}\n }\n}\n\nexport default contractActions","import { contractsService } from '../../api'\nimport { AppThunkAction } from '../../types/store'\nimport { ContractActions } from '../../types/store/contract'\nimport contractActions from '../actions/contractActions'\n\nconst {\n loadServiceContractsRequest,\n loadServiceContractsSuccess,\n loadServiceContractsError,\n loadAssistanceContractsRequest,\n loadAssistanceContractsSuccess,\n loadAssistanceContractsError,\n clearData\n} = contractActions\n\nconst contractOperations = {\n loadServiceContractsData: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadServiceContractsRequest())\n\n try {\n const response = await contractsService.loadServiceContracts()\n \n if(response.isSuccess) {\n dispatch(loadServiceContractsSuccess(response.result))\n } else {\n dispatch(loadServiceContractsError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadServiceContractsError(e.response))\n }\n },\n\n loadAssistanceContractsData: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadAssistanceContractsRequest())\n\n try {\n const response = await contractsService.loadAssistanceContracts()\n \n if(response.isSuccess) {\n dispatch(loadAssistanceContractsSuccess(response.result))\n } else {\n dispatch(loadAssistanceContractsError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadAssistanceContractsError(e.response))\n }\n },\n\n clearData: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(clearData())\n }\n}\n\nexport default contractOperations","import { UserDownloadResponse } from '../../types/services/userDownload'\nimport { ClearData, LoadDownloadsError, LoadDownloadsRequest, LoadDownloadsSuccess } from '../../types/store/download'\n\nconst downloadActions = {\n loadDownloadsRequest: (): LoadDownloadsRequest => {\n return {type: 'DOWNLOAD_LOAD_DOWNLOADS_REQUEST'}\n },\n\n loadDownloadsSuccess: (installations: UserDownloadResponse[]): LoadDownloadsSuccess => {\n return {type: 'DOWNLOAD_LOAD_DOWNLOADS_SUCCESS', payload: installations}\n },\n\n loadDownloadsError: (error: string): LoadDownloadsError => {\n return {type: 'DOWNLOAD_LOAD_DOWNLOADS_ERROR', payload: error}\n },\n\n clearData: (): ClearData => {\n return {type: 'DOWNLOAD_CLEAR_DATA'}\n }\n}\n\nexport default downloadActions","import { userDownloadService } from '../../api'\nimport { AppThunkAction } from '../../types/store'\nimport { DownloadActions } from '../../types/store/download'\nimport downloadActions from '../actions/downloadActions'\n\nconst { clearData, loadDownloadsError, loadDownloadsRequest, loadDownloadsSuccess } = downloadActions\n\nconst downloadOperations = {\n loadDownloads: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadDownloadsRequest())\n \n try {\n const response = await userDownloadService.loadDownloads()\n \n if(response.isSuccess) {\n dispatch(loadDownloadsSuccess(response.result))\n } else {\n dispatch(loadDownloadsError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadDownloadsError(e.response))\n }\n },\n\n clearData: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(clearData())\n }\n}\n\nexport default downloadOperations","import { IncidentFields, SortDirection } from '../../types'\nimport { ApplicationResponse } from '../../types/services/application'\nimport { ContractResponse, IncidentsResponse } from '../../types/services/incidents'\nimport {\n ClearData,\n HandleFilterChange,\n HandlePageChange,\n HandleRowsPerPageChange,\n LoadApplications,\n LoadContracts,\n LoadIncidentsError,\n LoadIncidentsRequest,\n LoadIncidentsSuccess,\n Order,\n SetLoading,\n ToggleFilter\n} from '../../types/store/incident'\n\nconst incidentActions = {\n handleFilterChange: (data: { name: string, value: string | number }): HandleFilterChange => {\n return { type: 'INCIDENT_HANDLE_FILTER_CHANGE', payload: data }\n },\n\n handlePageChange: (page: number): HandlePageChange => {\n return { type: 'INCIDENT_HANDLE_PAGE_CHANGE', payload: page }\n },\n\n handleRowsPerPageChange: (rowsPerPage: number): HandleRowsPerPageChange => {\n return { type: 'INCIDENT_HANDLE_ROWS_PER_PAGE_CHANGE', payload: rowsPerPage }\n },\n\n loadIncidentsRequest: (): LoadIncidentsRequest => {\n return { type: 'INCIDENT_LOAD_INCIDENTS_REQUEST' }\n },\n\n loadIncidentsSuccess: (data: IncidentsResponse): LoadIncidentsSuccess => {\n return { type: 'INCIDENT_LOAD_INCIDENTS_SUCCESS', payload: data }\n },\n\n loadIncidentsError: (error: string): LoadIncidentsError => {\n return { type: 'INCIDENT_LOAD_INCIDENTS_ERROR', payload: error }\n },\n\n clearData: (): ClearData => {\n return { type: 'INCIDENT_CLEAR_DATA' }\n },\n\n loadContracts: (contracts: ContractResponse[]): LoadContracts => {\n return { type: 'INCIDENT_LOAD_CONTRACTS', payload: contracts }\n },\n\n loadApplications: (applications: ApplicationResponse[]): LoadApplications => {\n return { type: 'INCIDENT_LOAD_APPLICATIONS', payload: applications }\n },\n\n toggleFilter: (): ToggleFilter => {\n return { type: 'INCIDENT_TOGGLE_FILTER' }\n },\n\n setLoading: (loading: boolean): SetLoading => {\n return { type: 'SET_LOADING', payload: loading }\n },\n\n order: (sortDirection: SortDirection, sortField: IncidentFields): Order => {\n return { type: 'INCIDENT_ORDER', payload: { sortDirection, sortField } }\n }\n}\n\nexport default incidentActions","import { incidentsService } from '../../api'\nimport { IncidentFields } from '../../types'\nimport { AppThunkAction } from '../../types/store'\nimport { IncidentActions } from '../../types/store/incident'\nimport incidentActions from '../actions/incidentActions'\nimport { SortDirection } from '../../types'\n\nconst {\n clearData,\n handleFilterChange,\n handlePageChange,\n handleRowsPerPageChange,\n loadApplications,\n loadContracts,\n loadIncidentsError,\n loadIncidentsRequest,\n loadIncidentsSuccess,\n order,\n setLoading,\n toggleFilter\n} = incidentActions\n\nconst incidentOperations = {\n handleFilterChange: (name: string, value: any): AppThunkAction => async (dispatch, getState) => { \n dispatch(handleFilterChange({name, value}))\n },\n\n handleChangePage: (event: any, page: number): AppThunkAction => async (dispatch, getState) => {\n dispatch(handlePageChange(page))\n },\n\n handleChangeRowsPerPage: (event: React.ChangeEvent): AppThunkAction => async (dispatch, getState) => {\n dispatch(handleRowsPerPageChange(parseInt(event.target.value)))\n },\n\n loadIncidents: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadIncidentsRequest())\n\n try {\n const response = await incidentsService.loadIncidents(getState().incidents?.incidents.filter!)\n \n if(response.isSuccess) {\n dispatch(loadIncidentsSuccess(response.result))\n } else {\n dispatch(loadIncidentsError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadIncidentsError(e.response))\n }\n },\n\n clearData: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(clearData())\n },\n\n loadContracts: (): AppThunkAction => async (dispatch, getState) => {\n try {\n const response = await incidentsService.loadContracts()\n\n dispatch(loadContracts(response.result))\n } catch(e) {\n dispatch(loadContracts([]))\n }\n },\n\n loadApplications: (): AppThunkAction => async (dispatch, getState) => {\n try {\n const response = await incidentsService.loadApplications()\n dispatch(loadApplications(response.result))\n } catch(e) {\n dispatch(loadApplications([]))\n }\n }, \n\n toggleFilter: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(toggleFilter())\n },\n\n setLoading: (loading: boolean): AppThunkAction => (dispatch) => {\n dispatch(setLoading(loading))\n },\n\n order: (e: React.MouseEvent): AppThunkAction => async (dispatch, getState) => {\n e.preventDefault()\n const id = e.currentTarget.parentElement!.id\n\n const {sortDirection, sortField} = getState().incidents!.incidents.filter\n let newSortDirection= 'desc'\n let newField = 'date'\n\n if(sortField === id) {\n newField = sortField\n if(sortDirection === 'asc') {\n newSortDirection = 'desc'\n } else {\n newSortDirection = 'asc'\n }\n } else {\n newSortDirection = 'asc'\n newField = id\n }\n\n dispatch(order(newSortDirection as SortDirection, newField as IncidentFields))\n }\n}\n\nexport default incidentOperations","import { LicensingProductFields, SortDirection } from '../../types'\nimport { ProductsResponse, WebProductResponse } from '../../types/services/license'\nimport {\n ClearData,\n HandleProductPageChange,\n HandleProductRowsPerPageChange,\n LoadProductsError,\n LoadProductsRequest,\n LoadProductsSuccess,\n LoadWebProductsError,\n LoadWebProductsRequest,\n LoadWebProductsSuccess,\n OrderProduct\n} from '../../types/store/licensing'\n\nconst licensingActions = {\n loadProductsRequest: (): LoadProductsRequest => {\n return {type: 'LICENSING_LOAD_PRODUCTS_REQUEST'}\n },\n\n loadProductsSuccess: (products: ProductsResponse): LoadProductsSuccess => {\n return {type: 'LICENSING_LOAD_PRODUCTS_SUCCESS', payload: products}\n },\n\n loadProductsError: (error: string): LoadProductsError => {\n return {type: 'LICENSING_LOAD_PRODUCTS_ERROR', payload: error}\n },\n\n loadWebProductsRequest: (): LoadWebProductsRequest => {\n return {type: 'LICENSING_LOAD_WEB_PRODUCTS_REQUEST'}\n },\n\n loadWebProductsSuccess: (products: WebProductResponse[]): LoadWebProductsSuccess => {\n return {type: 'LICENSING_LOAD_WEB_PRODUCTS_SUCCESS', payload: products}\n },\n\n loadWebProductsError: (error: string): LoadWebProductsError => {\n return {type: 'LICENSING_LOAD_WEB_PRODUCTS_ERROR', payload: error}\n },\n\n clearData: (): ClearData => {\n return {type: 'LICENSING_CLEAR_DATA'}\n },\n\n handleProductPageChange: (page: number): HandleProductPageChange => {\n return {type: 'LICENSING_HANDLE_PRODUCTS_PAGE_CHANGE', payload: page}\n },\n\n handleProductRowsPerPageChange: (rowsPerPage: number): HandleProductRowsPerPageChange => {\n return {type: 'LICENSING_HANDLE_PRODUCTS_ROWS_PER_PAGE_CHANGE', payload: rowsPerPage}\n },\n\n orderProduct: (sortDirection: SortDirection, sortField: LicensingProductFields): OrderProduct => {\n return {type: 'LICENSING_PRODUCTS_ORDER', payload: {sortDirection, sortField}}\n }\n}\n\nexport default licensingActions","import { licenseService } from '../../api'\nimport { LicensingProductFields, SortDirection } from '../../types'\nimport { AppThunkAction } from '../../types/store'\nimport { LicensingActions } from '../../types/store/licensing'\nimport licensingActions from '../actions/licensingActions'\n\nconst {\n clearData,\n handleProductPageChange,\n handleProductRowsPerPageChange,\n loadProductsError,\n loadProductsRequest,\n loadProductsSuccess,\n loadWebProductsError,\n loadWebProductsRequest,\n loadWebProductsSuccess,\n orderProduct\n} = licensingActions\n\n\nconst licensingOperations = {\n handleProductChangePage: (event: any, page: number): AppThunkAction => async (dispatch, getState) => {\n dispatch(handleProductPageChange(page))\n },\n\n handleProductChangeRowsPerPage: (event: React.ChangeEvent): AppThunkAction => async (dispatch, getState) => {\n dispatch(handleProductRowsPerPageChange(parseInt(event.target.value)))\n },\n\n loadProducts: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadProductsRequest())\n\n try {\n const response = await licenseService.loadProducts(getState().licensing?.products.filter!)\n \n if(response.isSuccess) {\n dispatch(loadProductsSuccess(response.result))\n } else {\n dispatch(loadProductsError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadProductsError(e.response))\n }\n },\n\n loadWebProducts: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadWebProductsRequest())\n\n try {\n const response = await licenseService.loadWebProducts()\n \n if(response.isSuccess) {\n dispatch(loadWebProductsSuccess(response.result))\n } else {\n dispatch(loadWebProductsError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadWebProductsError(e.response))\n }\n },\n\n clearData: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(clearData())\n },\n\n order: (e: React.MouseEvent): AppThunkAction => async (dispatch, getState) => {\n e.preventDefault()\n const id = e.currentTarget.parentElement!.id\n\n const {sortDirection, sortField} = getState().licensing?.products.filter!\n let newSortDirection = 'desc'\n let newField = 'date'\n\n if(sortField === id) {\n newField = sortField\n if(sortDirection === 'asc') {\n newSortDirection = 'desc'\n } else {\n newSortDirection = 'asc'\n }\n } else {\n newSortDirection = 'asc'\n newField = id\n }\n\n dispatch(orderProduct(newSortDirection as SortDirection, newField as LicensingProductFields))\n }\n}\n\nexport default licensingOperations","import { ReportFields, SortDirection } from '../../types'\nimport { TicketsResponse, TicketsStatisticsResponse } from '../../types/services/tickets'\nimport {\n ClearData,\n HandleFilterChange,\n HandlePageChange,\n HandleRowsPerPageChange,\n HandleYearChange,\n LoadStatisticsError,\n LoadStatisticsRequest,\n LoadStatisticsSuccess,\n LoadTicketsError,\n LoadTicketsRequest,\n LoadTicketsSuccess,\n LoadYearsError,\n LoadYearsRequest,\n LoadYearsSuccess,\n Order,\n ToggleFilter\n} from '../../types/store/report'\n\nconst reportActions = {\n loadStatisticsRequest: (): LoadStatisticsRequest => {\n return {type: 'REPORT_LOAD_STATISTICS_REQUEST'}\n },\n \n loadStatisticsSuccess: (response: TicketsStatisticsResponse): LoadStatisticsSuccess => {\n return {type: 'REPORT_LOAD_STATISTICS_SUCCESS', payload: response}\n },\n \n loadStatisticsError: (error: string): LoadStatisticsError => {\n return {type: 'REPORT_LOAD_STATISTICS_ERROR', payload: error}\n },\n \n loadTicketsRequest: (): LoadTicketsRequest => {\n return {type: 'REPORT_LOAD_TICKETS_REQUEST'}\n },\n \n loadTicketsSuccess: (response: TicketsResponse): LoadTicketsSuccess => {\n return {type: 'REPORT_LOAD_TICKETS_SUCCESS', payload: response}\n },\n \n loadTicketsError: (error: string): LoadTicketsError => {\n return {type: 'REPORT_LOAD_TICKETS_ERROR', payload: error}\n },\n\n clearData: (): ClearData => {\n return {type: 'REPORT_CLEAR_DATA'}\n },\n \n loadYearsRequest: (): LoadYearsRequest => {\n return {type: 'REPORT_LOAD_YEARS_REQUEST'}\n },\n \n loadYearsSuccess: (response: number[]): LoadYearsSuccess => {\n return {type: 'REPORT_LOAD_YEARS_SUCCESS', payload: response}\n },\n \n loadYearsError: (error: string): LoadYearsError => {\n return {type: 'REPORT_LOAD_YEARS_ERROR', payload: error}\n },\n\n handleYearChange: (year: number): HandleYearChange => {\n return {type: 'REPORT_HANDLE_YEAR_CHANGE', payload: year}\n },\n\n handleFilterChange: (name: string, value: string): HandleFilterChange => {\n return {type: 'REPORT_HANDLE_FILTER_CHANGE', payload: {name, value}}\n },\n\n toggleFilter: (): ToggleFilter => {\n return {type: 'REPORT_TOGGLE_FILTER'}\n },\n\n handlePageChange: (page: number): HandlePageChange => {\n return {type: 'REPORT_HANDLE_PAGE_CHANGE', payload: page}\n },\n\n handleRowsPerPageChange: (rowsPerPage: number): HandleRowsPerPageChange => {\n return {type: 'REPORT_HANDLE_ROWS_PER_PAGE_CHANGE', payload: rowsPerPage}\n },\n\n order: (sortDirection: SortDirection, sortField: ReportFields): Order => {\n return {type: 'REPORT_ORDER', payload: {sortDirection, sortField}}\n }\n}\n\nexport default reportActions","import { ticketsService } from '../../api'\nimport { ReportFields, SortDirection } from '../../types'\nimport { AppThunkAction } from '../../types/store'\nimport { ReportActions } from '../../types/store/report'\nimport reportActions from '../actions/reportActions'\n\nconst {\n clearData,\n handleFilterChange,\n handlePageChange,\n handleRowsPerPageChange,\n handleYearChange,\n loadStatisticsError,\n loadStatisticsRequest,\n loadStatisticsSuccess,\n loadTicketsError,\n loadTicketsRequest,\n loadTicketsSuccess,\n loadYearsError,\n loadYearsRequest,\n loadYearsSuccess,\n order,\n toggleFilter\n} = reportActions\n\nconst reportOperations = {\n handleYearChange: (event :React.ChangeEvent<{ name?: string; value: unknown }>): AppThunkAction => async (dispatch, getState) => { \n dispatch(handleYearChange(event.target.value as number))\n },\n\n handleFilterChange: (name: string, value: string): AppThunkAction => async (dispatch, getState) => { \n dispatch(handleFilterChange(name, value))\n },\n\n handleChangePage: (event: any, page: number): AppThunkAction => async (dispatch, getState) => {\n dispatch(handlePageChange(page))\n },\n\n handleChangeRowsPerPage: (event: React.ChangeEvent): AppThunkAction => async (dispatch, getState) => {\n dispatch(handleRowsPerPageChange(parseInt(event.target.value)))\n },\n\n loadStatistics: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadStatisticsRequest())\n\n try {\n const response = await ticketsService.loadTicketsStatistics(getState().reports?.statistics.year)\n \n if(response.isSuccess) {\n dispatch(loadStatisticsSuccess(response.result))\n } else {\n dispatch(loadStatisticsError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadStatisticsError(e.response))\n }\n },\n\n loadTickets: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadTicketsRequest())\n\n try {\n const response = await ticketsService.loadTickets(getState().reports?.reports.filter!)\n \n if(response.isSuccess) {\n dispatch(loadTicketsSuccess(response.result))\n } else {\n dispatch(loadTicketsError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadTicketsError(e.response))\n }\n },\n\n clearData: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(clearData())\n },\n\n loadYears: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadYearsRequest())\n\n try {\n const response = await ticketsService.loadYears()\n\n if(response.isSuccess) {\n dispatch(loadYearsSuccess(response.result))\n } else {\n dispatch(loadYearsError(response.errorMessage))\n }\n \n } catch(e) {\n dispatch(loadYearsError(e.response))\n }\n },\n\n toggleFilter: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(toggleFilter())\n },\n\n order: (e: React.MouseEvent): AppThunkAction => async (dispatch, getState) => {\n e.preventDefault()\n const id = e.currentTarget.parentElement!.id\n\n const {sortDirection, sortField} = getState().reports?.reports.filter!\n let newSortDirection = 'desc'\n let newField = 'date'\n\n if(sortField === id) {\n newField = sortField\n if(sortDirection === 'asc') {\n newSortDirection = 'desc'\n } else {\n newSortDirection = 'asc'\n }\n } else {\n newSortDirection = 'asc'\n newField = id\n }\n\n dispatch(order(newSortDirection as SortDirection, newField as ReportFields))\n }\n}\n\nexport default reportOperations","import {\n SetVersion,\n ClearVersion\n} from '../../types/store/appDownload'\n\nconst appDownloadActions = {\n setVersion: (version: string): SetVersion => {\n return { type: 'SET_VERSION', payload: version }\n },\n\n clearVersion: (): ClearVersion => {\n return { type: 'CLEAR_VERSION' }\n }\n}\n\nexport default appDownloadActions","import { AppThunkAction } from '../../types/store'\nimport { AppDownloadActions } from '../../types/store/appDownload'\nimport appDownloadActions from '../actions/appDownloadActions'\n\nconst {\n setVersion,\n clearVersion\n} = appDownloadActions\n\nconst appDownloadOperations = {\n setVersion: (version: string): AppThunkAction => async (dispatch) => {\n dispatch(setVersion(version))\n },\n\n clearVersion: (): AppThunkAction => async (dispatch) => {\n dispatch(clearVersion())\n }\n}\n\nexport default appDownloadOperations","import { makeStyles, createStyles } from \"@material-ui/core/styles\"\nimport { Theme } from \"@material-ui/core\"\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n form: {\n width: \"100%\",\n marginTop: theme.spacing(1)\n },\n button: {\n height: 40,\n marginTop: theme.spacing(2),\n [theme.breakpoints.down('xs')]: {\n marginTop: theme.spacing(1)\n }\n }\n}))\n\nexport default useStyles","import React from 'react'\n\nimport { InputAdornment, Link, Typography, Grid, IconButton, Popover, Box } from '@material-ui/core'\n\nimport VisibilityIcon from '@material-ui/icons/Visibility'\nimport VisibilityOffIcon from '@material-ui/icons/VisibilityOff'\n\nimport { F3MButton, F3MTextField } from '../../../components/'\n\nimport i18n from '../../../i18n'\n\nimport LoginFormProps from './types'\n\nimport useStyles from './styles'\n\n\nconst LoginForm = (props: LoginFormProps) => {\n const classes = useStyles()\n\n const {username, password, handleChange, handleSubmit} = props\n\n const [passwordVisible, setPasswordVisibility] = React.useState(false)\n const [anchorEl, setAnchorEl] = React.useState(null)\n\n const togglePassword = () => {\n setPasswordVisibility(!passwordVisible)\n }\n\n const handleClick = (event: React.MouseEvent) => {\n event.preventDefault()\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const open = Boolean(anchorEl)\n\n return (\n
\n \n \n \n {passwordVisible ? : }\n \n \n )\n }}\n />\n \n \n \n {i18n.t('login.forgotPassword')}\n \n \n \n \n {i18n.t('login.forgotPasswordPopover')}\n contacto@f3m.pt\n \n \n \n \n \n \n {i18n.t('login.loginButton')}\n \n \n )\n}\n\nexport default LoginForm","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n height: '100vh',\n backgroundColor: theme.palette.common.white\n },\n container: {\n paddingTop: 80\n },\n paper: {\n width: 330,\n marginTop: theme.spacing(9),\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n [theme.breakpoints.down('xs')]: {\n marginTop: theme.spacing(3)\n }\n },\n loading: {\n [theme.breakpoints.up('xs')]: {\n height: '350px'\n },\n [theme.breakpoints.down('xs')]: {\n height: '270px'\n },\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n },\n paperRemoteAssist: {\n textAlign: 'center',\n [theme.breakpoints.down('xl')]: {\n marginTop: theme.spacing(6.5)\n },\n [theme.breakpoints.down('sm')]: {\n marginTop: theme.spacing(6.5)\n },\n [theme.breakpoints.down('xs')]: {\n marginTop: theme.spacing(2.9)\n }\n }\n}))\n\nexport default useStyles","import React, { useEffect, useState } from 'react'\n\nimport { connect, ConnectedProps } from 'react-redux'\nimport { ApplicationState } from '../../types/store'\nimport { loginOperations } from '../../store/operations'\n\nimport { Box, CircularProgress, Container, Link, Typography } from '@material-ui/core'\n\nimport 'react-responsive-carousel/lib/styles/carousel.min.css'\n\nimport i18n from '../../i18n'\n\nimport { carouselService } from '../../api/services/carouselService'\nimport { CarouselSlide, F3MAppBar, F3MCarousel, F3MIcons, F3MSnackbar, F3MSnackbarState } from '../../components'\n\nimport LoginForm from './LoginForm'\n\nimport useStyles from './styles'\nimport { remoteAssistanceService } from '../../api'\nimport { openOrDownload } from '../../utils'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n loginState: state.login\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n handleChange: (v: React.ChangeEvent) => dispatch(loginOperations.handleChange(v)),\n handleSubmit: (v: React.FormEvent) => dispatch(loginOperations.login(v))\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst Login = (props: Props) => {\n const classes = useStyles()\n const [fetchedCarousel, setFetchedCarousel] = useState([])\n const [carousel, setCarousel] = useState([])\n\n const { handleChange, handleSubmit, loginState } = props\n\n const { username, password, expired } = loginState!\n\n const [snackbar, setSnackbar] = useState({\n open: expired,\n severity: 'info',\n message: i18n.t('login.expiredSessionMessage')\n })\n\n const getRemAssistExe = async () => {\n const response: any = await remoteAssistanceService.downloadRemoAssistExe()\n openOrDownload(response, 'SuporteF3M.exe')\n }\n\n const getImage = async (imagePath: string) => {\n const response: any = await carouselService.loadSlideImage(imagePath)\n\n const { data, headers } = response\n const blob: Blob = new Blob([data], { type: headers['content-type'] })\n\n return window.URL.createObjectURL(blob)\n }\n\n const handleError = (message: string) => {\n setSnackbar({ open: true, severity: 'error', message: message })\n }\n\n useEffect(() => {\n const fetchData = async () => {\n return await carouselService.loadCarouselLogin()\n }\n fetchData()\n .then(res => {\n if (res.isSuccess && res.result) {\n setFetchedCarousel(res.result)\n }\n }).catch(error => {\n switch (error.message) {\n case '500':\n handleError(i18n.t('snackbar.serviceUnavailable'))\n break\n default:\n handleError(i18n.t('snackbar.verifyConnection'))\n }\n })\n }, [])\n\n useEffect(() => {\n const fetchData = async () => {\n let ordFinalCar: CarouselSlide[] = []\n await Promise.all(fetchedCarousel.map(async el => {\n const imagePath: string = await getImage(el.imagePath)\n const slide: CarouselSlide = { ...el, imagePath: imagePath }\n ordFinalCar[el.order ? el.order - 1 : 0] = slide\n }))\n setCarousel([...ordFinalCar])\n }\n fetchData()\n }, [fetchedCarousel])\n\n return (\n \n \n \n {carousel.length > 0\n ? \n : \n \n \n }\n \n \n {i18n.t('login.clientPortal')}\n \n \n {i18n.t('login.greeting')}\n \n \n \n \n \n \n {i18n.t('login.remoteAssistance')}\n \n \n \n \n \n )\n\n}\n\nexport default connector(Login)","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n main: {\n position: 'relative'\n },\n background: {\n fontSize: '25vmax',\n color: '#e6e6e6',\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)'\n },\n content: {\n textAlign: 'center',\n minHeight: '23vmax',\n position: 'relative'\n },\n title: {\n paddingTop: '10%',\n fontFamily: 'Roboto',\n fontSize: '18px',\n color: '#f7931d',\n textDecoration: 'none solid rgb(247, 147, 29)'\n },\n innerContent: {\n marginTop: '15%'\n },\n firstLine: {\n fontFamily: 'Roboto',\n fontSize: '32px',\n color: '#666666',\n textDecoration: 'none solid rgb(102, 102, 102)'\n },\n seccondLine: {\n paddingTop: '5%',\n paddingBottom: '10%',\n fontFamily: 'Roboto',\n fontSize: '20px',\n color: '#666666',\n textDecoration: 'none solid rgb(102, 102, 102)'\n }\n}))\n\nexport default useStyles","import React from 'react'\n\nimport { Container } from '@material-ui/core'\n\nimport useStyles from './styles'\nimport { F3MButton } from '../../../../components'\nimport { useHistory } from 'react-router-dom'\nimport i18n from '../../../../i18n'\n\nconst NotFound = () => {\n const classes = useStyles()\n const history = useHistory()\n\n return (\n
\n
\n {i18n.t('errorPage.errorCode')}\n
\n \n
\n {i18n.t('errorPage.errorCodeMessage')}\n
\n
\n
\n {i18n.t('errorPage.errorWarning')}\n
\n
\n {i18n.t('errorPage.errorReason')}\n
\n history.goBack()}>\n {i18n.t('errorPage.goBack')}\n \n
\n
\n
\n )\n}\n\nexport default NotFound","import React from 'react'\nimport { Switch, Route, useLocation } from 'react-router'\nimport { BrowserRouter } from 'react-router-dom'\n\nimport { ROUTES } from '../constants'\n\nimport NotFound from '../views/home/other/404'\n\nimport { TransitionGroup, CSSTransition } from 'react-transition-group'\nimport { Container } from '@material-ui/core'\n\nconst Routes = () => {\n const { HOMEPAGE, SOFTWARE, SERVICES, BACKOFFICE } = ROUTES\n\n const location = useLocation()\n\n return (\n \n
\n {\n return (\n \n \n \n \n {/* Homepage */}\n \n\n {/* Software */}\n \n \n \n\n {/* Services */}\n \n \n \n \n\n {/* BACKOFFICE */}\n \n \n \n\n {/* Not Found 404 */}\n \n \n \n \n \n )\n }\n } />\n
\n
\n\n )\n}\n\nexport default Routes","import {\n ServCatalog\n} from '../../types/store/servCatalog'\n\nconst servCatalogActions = {\n loadServCatalog: (servCatalogResp: Blob): ServCatalog => {\n return { type: 'SERVICES_CATALOG_URL', payload: servCatalogResp }\n }\n}\n\nexport default servCatalogActions","import { servCatalogService } from '../../api'\nimport { AppThunkAction } from '../../types/store'\nimport { ServCatalogActions } from '../../types/store/servCatalog'\nimport servCatalogActions from '../actions/servCatalogActions'\n\nconst {\n loadServCatalog\n} = servCatalogActions\n\nconst servCatalogOperations = {\n loadServCatalogUrl: (): AppThunkAction => async (dispatch, getState) => {\n const response = await servCatalogService.getServCatalogUrl()\n\n dispatch(loadServCatalog(response))\n }\n}\n\nexport default servCatalogOperations","import React, { useEffect } from 'react'\nimport { connect, ConnectedProps } from 'react-redux'\n\nimport { Container, useTheme } from '@material-ui/core'\n\nimport { F3MAppBar, F3MSidebar, F3MFooter, F3MDialog } from '../../components'\n\nimport Routes from '../../router/Routes'\n\nimport { ApplicationState } from '../../types/store'\nimport commonOperations from '../../store/operations/commonOperations'\nimport loginOperations from '../../store/operations/loginOperations'\nimport servCatalogOperations from '../../store/operations/servCatalogOperations'\n\nimport i18n from '../../i18n'\n\nimport useStyles from './styles'\nimport { ROUTES } from '../../constants'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n commonState: state.common,\n loginState: state.login,\n routerState: state.router\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n setUser : () => dispatch(loginOperations.setUser()),\n loadServCatalogUrl : () => dispatch(servCatalogOperations.loadServCatalogUrl()),\n toggleLogoutConfirmation: () => dispatch(commonOperations.toggleLogoutConfirmation()),\n logout : () => dispatch(loginOperations.logout())\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst Home = (props: Props) => {\n const classes = useStyles()\n const theme = useTheme()\n\n useEffect(() => {\n props.setUser()\n props.loadServCatalogUrl()\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n const onClose = () => {\n props.toggleLogoutConfirmation()\n props.logout()\n }\n\n const IsBackoffice = (): boolean => [\n ROUTES.BACKOFFICE.CAROUSEL.PATH,\n ROUTES.BACKOFFICE.APPLICATIONS.PATH,\n ROUTES.BACKOFFICE.DOWNLOADS.PATH\n ].includes(props.routerState?.location.pathname!)\n\n return (\n <>\n \n \n \n \n \n \n \n \n\n \n \n )\n}\n\nexport default connector(Home)","import React from 'react'\nimport { connect, ConnectedProps } from 'react-redux'\n\nimport Login from './views/login/'\nimport Home from './views/home'\nimport { ApplicationState } from './types/store'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n loginState: state.login\n})\n\nconst connector = connect(mapStateToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst App = (props: Props) => {\n return (\n <>\n \n {props.loginState?.authenticated ? : }\n \n )\n}\n\nexport default connector(App)\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess ? : (registration: ServiceWorkerRegistration) => void;\n onUpdate ? : (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config ? : Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(\n process.env.PUBLIC_URL,\n window.location.href\n );\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config ? : Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config ? : Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: {\n 'Service-Worker': 'script'\n }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}","import { CommonState, CommonActions } from '../../types/store/common'\n\n\nconst initialState: CommonState = {\n sidebarOpen: false,\n sidebarSoftwareOpen: false,\n sidebarServicesOpen: false,\n sidebarBackofficeOpen: false,\n logoutConfirmationOpen: false\n}\n\nconst commonReducer = (state = initialState, action: CommonActions): CommonState => {\n switch (action.type) {\n\n case ('COMMON_TOGGLE_SIDEBAR'): {\n return {\n ...state,\n sidebarOpen: !state.sidebarOpen\n }\n }\n\n case ('COMMON_TOGGLE_SOFTWARE_SIDEBAR'): {\n return {\n ...state,\n sidebarSoftwareOpen: !state.sidebarSoftwareOpen\n }\n }\n\n case ('COMMON_TOGGLE_SERVICE_SIDEBAR'): {\n return {\n ...state,\n sidebarServicesOpen: !state.sidebarServicesOpen\n }\n }\n\n case ('COMMON_TOGGLE_BACKOFFICE_SIDEBAR'): {\n return {\n ...state,\n sidebarBackofficeOpen: !state.sidebarBackofficeOpen\n }\n }\n\n case ('COMMON_TOGGLE_LOGOUT_CONFIRMATION'): {\n return {\n ...state,\n logoutConfirmationOpen: !state.logoutConfirmationOpen\n }\n }\n\n default:\n return state\n }\n}\n\nexport default commonReducer","import { ContractState, ContractActions } from '../../types/store/contract'\n\nconst initialState: ContractState = {\n updateContracts: {\n data: [],\n loading: false\n },\n assistanceContracts: {\n data: [],\n loading: false\n }\n}\n\nconst contractReducer = (state = initialState, action: ContractActions): ContractState => {\n switch (action.type) {\n case ('CONTRACT_LOAD_SERVICE_CONTRACTS_REQUEST'): {\n return {\n ...state,\n updateContracts: {\n ...state.updateContracts,\n loading: true\n }\n }\n }\n\n case ('CONTRACT_LOAD_SERVICE_CONTRACTS_SUCCESS'): {\n return {\n ...state,\n updateContracts: {\n ...state.updateContracts,\n data: action.payload,\n loading: false\n }\n }\n }\n\n case ('CONTRACT_LOAD_SERVICE_CONTRACTS_ERROR'): {\n return {\n ...state,\n updateContracts: {\n ...state.updateContracts,\n loading: false\n }\n }\n }\n\n case ('CONTRACT_LOAD_ASSISTANCE_CONTRACTS_REQUEST'): {\n return {\n ...state,\n assistanceContracts: {\n ...state.assistanceContracts,\n loading: true\n }\n }\n }\n\n case ('CONTRACT_LOAD_ASSISTANCE_CONTRACTS_SUCCESS'): {\n return {\n ...state,\n assistanceContracts: {\n ...state.assistanceContracts,\n data: action.payload,\n loading: false\n }\n }\n }\n\n case ('CONTRACT_LOAD_ASSISTANCE_CONTRACTS_ERROR'): {\n return {\n ...state,\n assistanceContracts: {\n ...state.assistanceContracts,\n loading: false\n }\n }\n }\n\n case ('CONTRACT_CLEAR_DATA'): {\n return initialState\n }\n\n default: {\n return state\n }\n }\n}\n\nexport default contractReducer","import { DownloadActions, DownloadState } from '../../types/store/download'\n\nconst initialState: DownloadState = {\n downloads: {\n data: [],\n loading: false\n }\n}\n\nconst downloadReducer = (state = initialState, action: DownloadActions): DownloadState => {\n switch (action.type) {\n case ('DOWNLOAD_LOAD_DOWNLOADS_REQUEST'): {\n return {\n ...state,\n downloads: {\n ...state.downloads,\n loading: true\n }\n }\n }\n\n case ('DOWNLOAD_LOAD_DOWNLOADS_SUCCESS'): {\n return {\n ...state,\n downloads: {\n ...state.downloads,\n data: action.payload,\n loading: false\n }\n }\n }\n\n case ('DOWNLOAD_LOAD_DOWNLOADS_ERROR'): {\n return {\n ...state,\n downloads: {\n ...state.downloads,\n loading: false\n }\n }\n }\n\n case ('DOWNLOAD_CLEAR_DATA'): {\n return initialState\n }\n\n default:\n return state\n }\n}\n\nexport default downloadReducer","import moment from 'moment'\n\nimport { IncidentActions, IncidentState } from '../../types/store/incident'\n\nconst initialState: IncidentState = {\n incidents: {\n data: [],\n rowCount: 0,\n totalDebited: '00:00',\n total: '00:00',\n isFilterOpen: false,\n contracts: [],\n applications: [],\n loading: false,\n filter: {\n startDate: moment().format('YYYY') + '-01-01',\n endDate: moment().format('YYYY-MM-DD'),\n contract: '',\n application: '',\n rowsPerPage: 10,\n page: 1,\n sortDirection: 'desc',\n sortField: 'date'\n },\n }\n}\n\nconst incidentReducer = (state = initialState, action: IncidentActions): IncidentState => {\n switch (action.type) {\n case ('INCIDENT_HANDLE_FILTER_CHANGE'): {\n const {name, value} = action.payload\n\n return { \n ...state,\n incidents: {\n ...state.incidents,\n filter: {\n ...state.incidents.filter,\n [name]: value\n } \n }\n }\n }\n\n case ('INCIDENT_HANDLE_PAGE_CHANGE'): {\n return { \n ...state,\n incidents: {\n ...state.incidents,\n filter: {\n ...state.incidents.filter,\n page: action.payload + 1\n } \n }\n }\n }\n\n case ('INCIDENT_HANDLE_ROWS_PER_PAGE_CHANGE'): {\n return { \n ...state,\n incidents: {\n ...state.incidents,\n filter: {\n ...state.incidents.filter,\n rowsPerPage: action.payload,\n page: 1\n } \n }\n }\n }\n\n case('INCIDENT_LOAD_INCIDENTS_REQUEST'): {\n return {\n ...state,\n incidents: {\n ...state.incidents,\n loading: true\n }\n }\n }\n\n case ('INCIDENT_LOAD_INCIDENTS_SUCCESS'): {\n const { incidents, totalDebited, total, rowCount } = action.payload\n\n return {\n ...state,\n incidents: {\n ...state.incidents,\n data: incidents,\n rowCount: rowCount,\n totalDebited: totalDebited,\n total: total,\n loading: false\n }\n }\n }\n\n case ('INCIDENT_LOAD_INCIDENTS_ERROR'): {\n return {\n ...state,\n incidents: {\n ...state.incidents,\n loading: false\n }\n }\n }\n\n case ('INCIDENT_CLEAR_DATA'): {\n return initialState\n }\n\n case ('INCIDENT_LOAD_CONTRACTS'): {\n return {\n ...state,\n incidents: {\n ...state.incidents,\n contracts: action.payload\n }\n }\n }\n\n case ('INCIDENT_LOAD_APPLICATIONS'): {\n return {\n ...state,\n incidents: {\n ...state.incidents,\n applications: action.payload\n }\n }\n }\n\n case ('INCIDENT_TOGGLE_FILTER'): {\n return {\n ...state,\n incidents: {\n ...state.incidents,\n isFilterOpen: !state.incidents.isFilterOpen\n }\n }\n }\n\n case ('SET_LOADING'): {\n return {\n ...state,\n incidents: {\n ...state.incidents,\n loading: action.payload\n }\n }\n }\n\n case ('INCIDENT_ORDER'): {\n return {\n ...state,\n incidents: {\n ...state.incidents,\n filter: {\n ...state.incidents.filter,\n page: 1,\n sortDirection: action.payload.sortDirection,\n sortField: action.payload.sortField\n }\n }\n }\n }\n\n default:\n return state\n }\n}\n\nexport default incidentReducer","import { LicensingActions, LicensingState } from \"../../types/store/licensing\"\n\nconst initialState: LicensingState = {\n products : {\n data: [],\n filter: {\n sortDirection: 'desc',\n sortField : 'salesDate',\n page : 1,\n rowsPerPage : 5\n },\n rowCount: 0,\n loading: false\n },\n webProducts: {\n data: [],\n loading: false\n }\n}\n\nconst licensingReducer = (state = initialState, action: LicensingActions): LicensingState => {\n switch (action.type) {\n case ('LICENSING_HANDLE_PRODUCTS_PAGE_CHANGE'): {\n return { \n ...state,\n products: {\n ...state.products,\n filter: {\n ...state.products.filter,\n page: action.payload + 1\n }\n }\n }\n }\n\n case ('LICENSING_HANDLE_PRODUCTS_ROWS_PER_PAGE_CHANGE'): {\n return { \n ...state,\n products: {\n ...state.products,\n filter: {\n ...state.products.filter,\n rowsPerPage: action.payload,\n page: 1\n }\n }\n }\n }\n\n case ('LICENSING_LOAD_PRODUCTS_REQUEST'): {\n return {\n ...state,\n products: {\n ...state.products,\n loading: true\n }\n }\n }\n\n case ('LICENSING_LOAD_PRODUCTS_SUCCESS'): {\n const { applications, rowCount } = action.payload\n return {\n ...state,\n products: {\n ...state.products,\n data: applications,\n rowCount: rowCount,\n loading: false\n },\n }\n }\n\n case ('LICENSING_LOAD_PRODUCTS_ERROR'): {\n return {\n ...state,\n products: {\n ...state.products,\n loading: false\n }\n }\n }\n\n case ('LICENSING_LOAD_WEB_PRODUCTS_REQUEST'): {\n return {\n ...state,\n webProducts: {\n ...state.webProducts,\n loading: true\n }\n }\n }\n\n case ('LICENSING_LOAD_WEB_PRODUCTS_SUCCESS'): {\n return {\n ...state,\n webProducts: {\n ...state.webProducts,\n data: action.payload,\n loading: false\n }\n }\n }\n\n case ('LICENSING_LOAD_WEB_PRODUCTS_ERROR'): {\n return {\n ...state,\n webProducts: {\n ...state.webProducts,\n loading: false\n }\n }\n }\n\n case ('LICENSING_CLEAR_DATA'): {\n return initialState\n }\n\n case ('LICENSING_PRODUCTS_ORDER'): {\n const { sortDirection, sortField } = action.payload\n return {\n ...state,\n products: {\n ...state.products,\n filter: {\n ...state.products.filter,\n page: 1,\n sortDirection: sortDirection,\n sortField: sortField\n }\n }\n }\n }\n\n default:\n return state\n }\n}\n\nexport default licensingReducer","import { STORAGE } from '../../constants'\nimport { LoginActions, LoginState } from '../../types/store/login'\nimport { getLocalStorage, removeLocalStorage, setLocalStorage } from '../../utils'\n\nconst initialState: LoginState = {\n username : getLocalStorage(STORAGE.USERNAME),\n password : '',\n token : getLocalStorage(STORAGE.ACCESS_TOKEN),\n tokenRefresh : getLocalStorage(STORAGE.REFRESH_TOKEN),\n authenticated: getLocalStorage(STORAGE.ACCESS_TOKEN) !== '',\n expiresOn : getLocalStorage(STORAGE.EXPIRES_ON),\n expired : false,\n errorMessage : '',\n hasError : false,\n carousel : []\n}\n\nconst loginReducer = (state = initialState, action: LoginActions): LoginState => {\n switch (action.type) {\n case ('LOGIN_HANDLE_CHANGE'): {\n const {name, value} = action.payload\n\n return { \n ...state, \n [name]: value\n }\n }\n\n case ('LOGIN_REQUEST'): {\n return state\n }\n\n case ('LOGIN_SUCCESS'): {\n const {accessToken, tokenRefresh, expiration} = action.payload\n \n setLocalStorage(STORAGE.USERNAME, state.username)\n setLocalStorage(STORAGE.ACCESS_TOKEN, accessToken)\n setLocalStorage(STORAGE.REFRESH_TOKEN, tokenRefresh)\n setLocalStorage(STORAGE.EXPIRES_ON, expiration)\n \n return {\n ...state,\n token : accessToken,\n tokenRefresh : tokenRefresh,\n authenticated: true,\n expiresOn : expiration.toString(),\n expired : false\n }\n }\n\n case ('LOGIN_ERROR'): {\n return {\n ...state,\n hasError : true,\n errorMessage : action.payload[0],\n authenticated: false,\n password : ''\n }\n }\n\n case ('LOGIN_LOGOUT_REQUEST'): {\n return state\n }\n\n case ('LOGIN_LOGOUT_SUCCESS'): {\n removeLocalStorage(STORAGE.ACCESS_TOKEN)\n removeLocalStorage(STORAGE.REFRESH_TOKEN)\n removeLocalStorage(STORAGE.EXPIRES_ON)\n\n return {\n ...state,\n password : '',\n token : '',\n tokenRefresh : '',\n authenticated: false,\n expiresOn : '',\n expired : false\n }\n }\n\n case ('LOGIN_LOGOUT_ERROR'): {\n return state\n }\n\n case ('LOGIN_REFRESH_TOKEN_REQUEST'): {\n return state\n }\n\n case ('LOGIN_REFRESH_TOKEN_SUCCESS'): {\n const {accessToken, tokenRefresh, expiration} = action.payload\n\n setLocalStorage(STORAGE.ACCESS_TOKEN, accessToken)\n setLocalStorage(STORAGE.REFRESH_TOKEN, tokenRefresh)\n setLocalStorage(STORAGE.EXPIRES_ON, expiration)\n \n return {\n ...state,\n token : accessToken,\n tokenRefresh : tokenRefresh,\n authenticated: true,\n expiresOn : expiration,\n expired : false\n }\n }\n\n case ('LOGIN_REFRESH_TOKEN_ERROR'): {\n removeLocalStorage(STORAGE.ACCESS_TOKEN)\n removeLocalStorage(STORAGE.REFRESH_TOKEN)\n removeLocalStorage(STORAGE.EXPIRES_ON)\n\n return {\n ...state,\n authenticated: false,\n password : '',\n token : '',\n tokenRefresh : '',\n expiresOn : '',\n expired : true\n }\n }\n\n case ('LOGIN_LOAD_CAROUSEL_REQUEST'): {\n return state\n }\n\n case ('LOGIN_LOAD_CAROUSEL_SUCCESS'): {\n return {\n ...state,\n carousel: action.payload\n }\n }\n\n case ('LOGIN_LOAD_CAROUSEL_ERROR'): {\n return state\n }\n\n case ('LOGIN_CLOSE_EXPIRED_SNACKBAR'): {\n return {\n ...state,\n expired: false\n }\n }\n\n case ('LOGIN_SET_USER'): {\n return {\n ...state,\n user: action.payload\n }\n }\n\n default:\n return state\n }\n}\n\nexport default loginReducer","import moment from 'moment'\nimport i18n from '../../i18n'\n\nimport { ReportActions, ReportState } from '../../types/store/report'\nimport { isDefined } from '../../utils'\n\nconst initialState: ReportState = {\n statistics: {\n loading: false,\n year : undefined,\n years : []\n },\n reports: {\n data : [],\n loading : false,\n rowCount : 0,\n isFilterOpen: false,\n filter : {\n startDate : moment().format('YYYY') + '-01-01',\n endDate : moment().format('YYYY-MM-DD'),\n rowsPerPage : 5,\n page : 1,\n sortDirection: 'desc',\n sortField : 'requestDate'\n }\n }\n}\n\nconst reportReducer = (state = initialState, action: ReportActions): ReportState => {\n switch (action.type) {\n case ('REPORT_HANDLE_YEAR_CHANGE'): {\n return { \n ...state,\n statistics: {\n ...state.statistics,\n year: action.payload\n }\n }\n }\n\n case ('REPORT_HANDLE_FILTER_CHANGE'): {\n const {name, value} = action.payload\n\n return { \n ...state,\n reports: {\n ...state.reports,\n filter: {\n ...state.reports.filter,\n [name]: value\n }\n }\n }\n }\n\n case ('REPORT_HANDLE_PAGE_CHANGE'): {\n return { \n ...state,\n reports: {\n ...state.reports,\n filter: {\n ...state.reports.filter,\n page: action.payload + 1\n }\n }\n }\n }\n\n case ('REPORT_HANDLE_ROWS_PER_PAGE_CHANGE'): {\n return {\n ...state,\n reports: {\n ...state.reports,\n filter: {\n ...state.reports.filter,\n rowsPerPage: action.payload,\n page: 1\n }\n }\n }\n }\n\n case ('REPORT_LOAD_STATISTICS_REQUEST'): {\n return {\n ...state,\n statistics: {\n ...state.statistics,\n loading: true\n }\n }\n }\n\n case ('REPORT_LOAD_STATISTICS_SUCCESS'): {\n const {number, slaPercentage, notSLAPercentage, monthWithMoreTickets, monthWithMoreCompliance, monthWithLessCompliance, tickets, ticketsSLA, ticketsNotSLA} = action.payload\n return {\n ...state,\n statistics: {\n ...state.statistics,\n data: {\n number : number,\n slaPercentage : isDefined(slaPercentage) ? slaPercentage : '-',\n notSLAPercentage : isDefined(notSLAPercentage) ? notSLAPercentage : '-',\n monthWithMoreTickets : isDefined(monthWithMoreTickets) ? i18n.t('months.' + monthWithMoreTickets + '.label') : '-',\n monthWithMoreCompliance: isDefined(monthWithMoreCompliance) ? i18n.t('months.' + monthWithMoreCompliance + '.label') : '-',\n monthWithLessCompliance: isDefined(monthWithLessCompliance) ? i18n.t('months.' + monthWithLessCompliance + '.label') : '-',\n tickets : tickets,\n ticketsSLA : ticketsSLA,\n ticketsNotSLA : ticketsNotSLA\n },\n loading: false\n }\n }\n }\n\n case ('REPORT_LOAD_STATISTICS_ERROR'): {\n return {\n ...state,\n statistics: {\n ...state.statistics,\n loading: false\n }\n }\n }\n\n case ('REPORT_LOAD_TICKETS_REQUEST'): {\n return {\n ...state,\n reports: {\n ...state.reports,\n loading: true\n }\n }\n }\n\n case ('REPORT_LOAD_TICKETS_SUCCESS'): {\n return {\n ...state,\n reports: {\n ...state.reports,\n data: action.payload.tickets,\n loading: false,\n rowCount: action.payload.rowCount\n }\n }\n }\n\n case ('REPORT_LOAD_TICKETS_ERROR'): {\n return {\n ...state,\n reports: {\n ...state.reports,\n loading: true\n }\n }\n }\n\n case ('REPORT_CLEAR_DATA'): {\n return initialState\n }\n\n case ('REPORT_LOAD_YEARS_REQUEST'): {\n return state\n }\n\n case ('REPORT_LOAD_YEARS_SUCCESS'): {\n return {\n ...state,\n statistics: {\n ...state.statistics,\n year: action.payload[0] ? action.payload[0] : undefined,\n years: action.payload\n }\n }\n }\n\n case ('REPORT_LOAD_YEARS_ERROR'): {\n return {\n ...state,\n statistics: {\n ...state.statistics,\n years: [moment().year()]\n }\n }\n }\n\n case ('REPORT_TOGGLE_FILTER'): {\n return {\n ...state,\n reports: {\n ...state.reports,\n isFilterOpen: !state.reports.isFilterOpen\n }\n }\n }\n\n case ('REPORT_ORDER'): {\n return {\n ...state,\n reports: {\n ...state.reports,\n filter: {\n ...state.reports.filter,\n page: 1,\n sortDirection: action.payload.sortDirection,\n sortField: action.payload.sortField\n }\n }\n }\n }\n\n default:\n return state\n }\n}\n\nexport default reportReducer","import { ServCatalogActions, ServCatalogState } from \"../../types/store/servCatalog\"\n\nconst initialState: ServCatalogState = {\n servCatalogBlob: new Blob()\n}\n\nconst servCatalogReducer = (state = initialState, action: ServCatalogActions): ServCatalogState => {\n switch (action.type) {\n case ('SERVICES_CATALOG_URL'): {\n return {\n ...state,\n servCatalogBlob: action.payload\n }\n }\n\n default:\n return state\n }\n}\n\nexport default servCatalogReducer","import { AppDownloadActions, AppDownloadState } from \"../../types/store/appDownload\"\n\nconst initialState: AppDownloadState = {\n version: ''\n}\n\nconst appDownloadReducer = (state = initialState, action: AppDownloadActions): AppDownloadState => {\n switch (action.type) {\n\n case ('SET_VERSION'): {\n \n return {\n ...state,\n version: action.payload\n }\n }\n\n case ('CLEAR_VERSION'): {\n return initialState\n }\n\n default:\n return state\n }\n}\n\nexport default appDownloadReducer","import thunk from 'redux-thunk'\nimport { connectRouter, routerMiddleware } from 'connected-react-router'\nimport { createStore, applyMiddleware, combineReducers, compose } from 'redux'\nimport { History } from 'history'\n\nimport { isDev } from '../utils'\nimport { ApplicationState } from '../types/store'\n\nimport {\n commonReducer,\n contractReducer,\n downloadReducer,\n incidentReducer,\n licensingReducer,\n loginReducer,\n reportReducer,\n servCatalogReducer,\n appDownloadReducer\n} from './reducers'\n\nconst configureStore = (history: History, initialState?: ApplicationState) => {\n const middleware = [\n thunk,\n routerMiddleware(history)\n ]\n\n const reducers = {\n common : commonReducer,\n contracts : contractReducer,\n downloads : downloadReducer,\n incidents : incidentReducer,\n licensing : licensingReducer,\n login : loginReducer,\n reports : reportReducer,\n servCatalog : servCatalogReducer,\n appDownload : appDownloadReducer\n }\n\n const rootReducer = combineReducers({\n ...reducers,\n router: connectRouter(history)\n })\n\n const enhancers = []\n const windowIfDefined = typeof window === 'undefined' ? null : window as any\n if (windowIfDefined && windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__ && isDev()) {\n enhancers.push(windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__({ trace: true, traceLimit: 25 }))\n }\n\n return createStore(\n rootReducer,\n initialState,\n compose(applyMiddleware(...middleware), ...enhancers)\n )\n}\n\nexport default configureStore","import React, { Suspense } from 'react'\nimport ReactDOM from 'react-dom'\n\nimport { createBrowserHistory, History } from 'history'\nimport { ConnectedRouter } from 'connected-react-router'\nimport { Provider } from 'react-redux'\n\nimport { ThemeProvider, CssBaseline, LinearProgress } from '@material-ui/core'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { fab } from '@fortawesome/free-brands-svg-icons'\nimport { fas } from '@fortawesome/free-solid-svg-icons'\n\nimport App from './App'\nimport * as serviceWorker from './serviceWorker'\nimport theme from './assets/theme'\n\nimport configureStore from './store'\n\nimport './assets/css/index.scss'\n\n// Router\nconst history: History = createBrowserHistory()\nexport const store = configureStore(history)\n\n// Font Awesome Library\nlibrary.add(fab)\nlibrary.add(fas)\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n \n ,\n document.getElementById('root')\n)\n\nserviceWorker.register()\n"],"sourceRoot":""}