{"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","assets/icons/Profile.tsx","assets/icons/EmptyState1.tsx","assets/icons/EmptyState2.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","components/F3MLineChart/F3MLineChart.tsx","components/F3MPieChart/F3MPieChart.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","api/services/debitDocumentsService.ts","views/home/other/dashboard/DebitDocumentsHomepage.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/applications/index.tsx","views/home/backoffice/downloads/Table.tsx","views/home/backoffice/downloads/index.tsx","views/home/profile/styles.ts","api/services/profileService.ts","views/home/profile/PartnerForm.tsx","views/home/profile/index.tsx","views/home/profile/ClientsList/styles.ts","views/home/profile/ClientsList/ClientsList.tsx","views/home/profile/LicensingValues/styles.ts","views/home/profile/LicensingValues/LicensingValues.tsx","views/home/profile/BillingVolume/styles.ts","views/home/profile/BillingVolume/BillingVolume.tsx","views/home/profile/Settings/styles.ts","views/home/profile/Settings/Settings.tsx","views/home/profile/DebitDocuments/styles.ts","views/home/profile/DebitDocuments/index.tsx","constants/routes.ts","constants/fileSize.ts","constants/partnerRoles.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","api/services/billingService.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","store/actions/profileActions.ts","store/operations/profileOperations.ts","store/actions/licensingValuesActions.ts","store/actions/billingVolumeActions.ts","store/actions/debitDocumentsActions.ts","store/operations/licensingValuesOperations.ts","store/operations/billingVolumeOperations.ts","store/operations/debitDocumentsOperations.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/reducers/profileReducer.ts","store/reducers/licensingValuesReducer.ts","store/reducers/billingVolumeReducer.ts","store/reducers/debitDocumentsReducer.ts","store/index.ts","index.tsx"],"names":["commonActions","toggleSidebar","type","toggleSoftwareSidebar","toggleServiceSidebar","toggleBackofficeSidebar","toggleLogoutConfirmation","setViewClientProfileByPartner","clientId","clientName","payload","setPreviousPath","path","commonOperations","event","dispatch","getState","_getState$common","_getState$common2","_getState$common3","preventDefault","common","sidebarSoftwareOpen","sidebarServicesOpen","sidebarBackofficeOpen","_getState$common4","sidebarOpen","_getState$common5","_getState$common6","async","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","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","PROD","API_URL","location","protocol","hostname","CONFIG","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","then","severity","catch","error","status","applicationMessages","handleSave","CircularProgress","top","right","logo","verticalAlign","breakpoints","up","down","LoginAppBar","Link","to","src","alt","loginActions","handleChange","value","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","resetClientView","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","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","isEdit","dialogProps","DialogTitleProps","disableTypography","DialogContentProps","dividers","DialogActionsProps","fullScreen","newOnClose","onSave","PaperComponent","PaperProps","TransitionComponent","transitionDuration","TransitionProps","Grid","justify","xs","SaveIcon","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","userId","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","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","ProfileIcon","EmptyState1","fillRule","cx","cy","rx","ry","gradientUnits","gradientTransform","offset","stopColor","stopOpacity","EmptyState2","fillOpacity","opacity","listRoot","listItemRoot","borderLeft","listItemSelected","listItemIcon","listItemIconIcon","overflow","listItemExpandIcon","listItemExpandMoreIcon","listItemExpandLessIcon","listItemText","collapseListItem","routerState","router","p","_props$routerState","pathname","PROFILE","isSoftwareSelected","isServicesSelected","isBackofficeSelected","redirect","List","ListItem","redirectOnly","_props$commonState","FORM","BILLINGVOLUME","CLIENTSLIST","DEBITDOCUMENTS","LICENSINGVALUES","SETTINGS","ListItemIcon","viewBox","PARTNER_ROLES","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","formatField","trim","utc","F3MDataGrid","headerFontSize","bodyFontSize","resetPage","tableProps","columns","i","headerName","sortable","cellClassName","headerClassName","headerAlign","hideSortIcons","alertColor","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","colSpan","TablePagination","rowsPerPage","onPageChange","handleChangePage","onRowsPerPageChange","parseInt","formLabelRoot","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","F3MLineChart","dataChart","datasets","tension","Line","min","stepSize","callback","Number","isInteger","legend","F3MPieChart","Doughnut","tooltips","callbacks","tooltipItem","_tooltipItem$datasetI","_tooltipItem$index","datasetIndex","currentValue","licensingState","licensing","handleProductChangePage","licensingOperations","handleProductChangeRowsPerPage","loadProductsSimply","loadSimplyProducts","loadProductsSaas","loadSaasProducts","productsSimply","productsSaas","isGettingPDF","setIsGettingPDF","clientIdByPartnerView","productSimplyColumns","productSimplyData","toUpperCase","tipology","includeSimply","addLicense","licenseAdded","hasLicense","licenseService","downloadProductLicense","view","VisibilityIcon","getProductLicensePDF","productSaasColumns","productSaasData","product","module","nUser","numberOfUsers","nRecords","numberOfRecords","frequency","endDate","isHomePage","handleChangePageSimply","sx","bgcolor","handleChangePageSaas","Build","Cached","GetApp","plans","setPlans","getBackColor","date","actMonth","Date","getMonth","dateMonth","actYear","getFullYear","getColor","responseAssistCont","contractsService","loadAssistanceContracts","assistContParsed","planName","plan","ends","planCount","responseServContr","loadServiceContracts","loadContracts","debitDocumentsService","months","debitDocuments","setDebitDocuments","HOMEPAGE","responseParsed","dueDate","loadDebitDocuments","statistics","setStatistics","tickets","ticketsService","loadNumberTicketsByMonthLastXMonths","loadStatistics","labelsToPresent","finalDataToPresente","hoverBackgroundColor","hoverBorderColor","DebitDocumentsHomepage","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","setResetPage","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","globalClasses","globalSoftwareStyles","setAnchorEl","installations","setInstallations","downCatDownBusArea","setDownCatDownBusArea","installation","setInstallation","handleClick","_e$currentTarget$pare","_e$currentTarget$pare2","ins","responseInstallations","responseCatDownlaods","applicationDownloadService","loadInstallationsFromClient","loadInstallations","businessAreaDownloads","downloadApplication","hasGains","previousPath","ArrowBack","clientNameByPartnerView","totalCards","handlePopoverClose","downloadGains","openGains","loadWebProducts","webProducts","setModal","webProductColumns","webProductData","downloadWebProductLicense","handleModal","setUp","updates","setUpdates","upgrades","setUpgrades","loadingUpdt","setLoadingUpdt","loadingUpgr","setLoadingUpgr","u","responseUpdates","responseUpgrades","loadUpdatesFromClient","loadUpdates","loadUpgradesFromClient","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","ApplicationsManager","setValue","Tabs","newValue","indicatorColor","textColor","Tab","TransitionGroup","CSSTransition","classNames","appear","enter","exit","ApplicationDownload","fetchedDownloads","downloadId","DownloadManager","setDownloads","clientNameNumber","createDownload","updateDownload","deleteDownload","handleDelDownload","cardTitleBlue","cardSubtitleDivider","cardSubtitleDarkBlue","gridRowSpacing","photoNameProfile","gap","profileImage","tableContainer","cardIconsContainer","cardFormIcons","profileService","profileState","profile","getProfileForm","profileOperations","loadProfileForm","setProfileImage","clearProfileForm","fileInputRef","useRef","handleImageClick","current","profileForm","contacts","userName","email","userEmail","loadingProfileForm","onMouseEnter","hoverContent","querySelector","HTMLElement","onMouseLeave","PhotoImg","ref","accept","_event$target$files","reader","FileReader","onload","_e$target","readAsDataURL","clientAddress","clientTelephone","clientMobile","clientWebsite","clientFax","clientVAT","clientList","PartnerForm","cardTitle","cardSubtitle","buttonSearch","buttonSeeProfile","loadClientsList","loadClientList","getClientsFilters","loadClientsFilters","orderClientsList","clearClientsList","handleFilterChangeSelect","clientID","entity","nif","mobile","seeProfile","SeeProfileIcon","entityType","filtersData","typesOfEntities","district","districts","municipality","getMunicipalitiesFiltered","_profile$clientList$f","find","municipalities","flatMap","renovateSimply","toLocaleUpperCase","cardTitleMarginBottom","viewDetailsText","licensingValuesState","licensingValues","vName","licensingValuesOperations","handleChangeRowsPerPageSaas","handleChangeRowsPerPageSimply","orderLicensingValuesSimply","orderSimply","orderLicensingValuesSaas","orderSaas","loadLicensingValuesSimply","loadLicensingValuesSaas","menuSimply","setMenuSimply","menuSaas","setMenuSaas","_licensingValues$filt","entityTypeName","_licensingValues$filt2","districtName","_licensingValues$filt3","municipalityName","columnsSimply","rowsSimply","simplyData","seeMore","columnsSaas","rowsSaas","saasData","menuSimplyClose","menuSaasClose","entityTypeId","districtId","municipalityId","_licensingValues$filt4","flexGrow","MoreVert","getExcelLicensingValuesSimply","getExcelLicensingValuesSaas","buttonEdit","billingVolumeState","billingVolume","billingVolumeOperations","loadBillingVolume","setAnnualGoals","_billingVolume$data","_billingVolume$data$s","_billingVolume$data2","_billingVolume$data3","_billingVolume$filter","_billingVolume$data4","_billingVolume$data4$","_billingVolume$data5","_billingVolume$data5$","_billingVolume$data6","_billingVolume$data6$","_billingVolume$data7","_billingVolume$data7$","_billingVolume$filter2","annualGoalsEdit","setAnnualGoalsEdit","summary","annualGoals","yearSelect","setYearSelect","previousYear","results","valuePreviousYear","valueYear","columnsResults","rowsResults","month","valueCurrentYear","fluctuation","saveAnnualGoals","billingService","putAnnualGoals","salesValue","isNaN","Edit","calculateFluctuation","toFixed","totalYear","totalPreviousYear","totalFluctuation","listItem","textList","linkForm","ELETRONICBILLING","underline","textSubEletBil","textSubEletBilBold","buttonSub","emptyIcon","emptyStateDocBold","emptyStateBalBold","defaultEmptyState","debitDocumentsState","loadDebitDocumentsTable","debitDocumentsOperations","loadDebitDocumentsExpiredChart","loadDebitDocumentsCurrentBalanceChart","loadDebitDocumentsBalanceChart","handleChartFilterChange","chartFilter","tableData","docDate","daysOverdue","initialValue","nature","monthLabels","labelsChart","expiredDocChartData","expiredDocuments","labelsPieChart","dataPieChart","currBalanceChartData","totalPaid","totalOverdue","Receipt","loadingExpiredChart","loadingCurrentBalance","loadingTable","tableFilter","LOGIN","COMPONENT","Login","Dashboard","BASE","Licensing","Installation","Updates","Incidents","Contracts","Reports","Downloads","Profile","ClientsList","LicensingValues","BillingVolume","Settings","DebitDocuments","isRefreshing","failedQueue","interceptors","startsWith","Authorization","config","_retry","resolve","reject","token","err","arguments","prom","processQueue","responseType","loadApplication","loadApplicationVersions","getApplicationDownload","maxPlans","loadProductsSimplyFromClient","loadProductsSaasFromClient","loadWebProductsFromClient","filters","filtersTable","downloadProgress","onDownloadProgress","servCatalogService","remoteAssistanceService","contractActions","loadServiceContractsRequest","loadServiceContractsSuccess","loadServiceContractsError","loadAssistanceContractsRequest","loadAssistanceContractsSuccess","loadAssistanceContractsError","downloadActions","loadDownloadsRequest","loadDownloadsSuccess","loadDownloadsError","incidentActions","handlePageChange","handleRowsPerPageChange","loadIncidentsRequest","loadIncidentsSuccess","loadIncidentsError","_getState$incidents","licensingActions","loadProductsSimplyRequest","loadProductsSimplySuccess","products","loadProductsSimplyError","loadProductsSaasRequest","loadProductsSaasSuccess","loadProductsSaasError","loadWebProductsRequest","loadWebProductsSuccess","loadWebProductsError","handleProductPageChange","table","handleProductRowsPerPageChange","orderProduct","_getState$licensing","_getState$licensing2","_getState$licensing3","_getState$licensing4","reportActions","loadStatisticsRequest","loadStatisticsSuccess","loadStatisticsError","loadTicketsRequest","loadTicketsSuccess","loadTicketsError","loadYearsRequest","loadYearsSuccess","loadYearsError","_getState$reports","_getState$reports2","_getState$reports3","appDownloadActions","profileActions","loadProfileFormRequest","loadProfileFormSuccess","loadProfileFormError","loadClientsListRequest","loadClientsListSuccess","loadClientsListError","clientImagePath","imageResponse","_getState$profile","LicensingValuesActions","handlePageChangeSimply","handleRowsPerPageChangeSimply","handlePageChangeSaas","handleRowsPerPageChangeSaas","loadLicensingValuesSimplyRequest","loadLicensingValuesSimplySuccess","loadLicensingValuesSimplyError","loadLicensingValuesSaasRequest","loadLicensingValuesSaasSuccess","loadLicensingValuesSaasError","billingVolumeActions","loadBillingVolumeRequest","loadBillingVolumeSuccess","loadBillingVolumeError","DebitDocumentsActions","loadDebitDocumentsTableRequest","loadDebitDocumentsTableSucess","loadDebitDocumentsTableError","loadDebitDocumentsExpiredChartRequest","loadDebitDocumentsExpiredChartSucess","loadDebitDocumentsExpiredChartError","loadDebitDocumentsBalanceChartRequest","loadDebitDocumentsBalanceChartSucess","loadDebitDocumentsBalanceChartError","licensingValuesActions","valueName","_getState$licensingVa","_getState$licensingVa2","_getState$licensingVa3","_getState$licensingVa4","_getState$billingVolu","debitDocumentsActions","_getState$debitDocume","_getState$debitDocume2","form","LoginForm","handleSubmit","passwordVisible","setPasswordVisibility","noValidate","onSubmit","InputAdornment","togglePassword","VisibilityOffIcon","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","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","saasValues","sortFieldAux","expiresOn","loginReducer","accessToken","expiration","reportReducer","servCatalogReducer","appDownloadReducer","initialStateForm","initialStateClientsList","profileReducer","LicensingValuesReducer","licenseValuesSaas","licenseValuesSimply","currentYear","billingVolumeReducer","debitDocumentsReducer","configureStore","middleware","thunk","routerMiddleware","reducers","licensingValuesReducer","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.2f101066.chunk.js","sourcesContent":["import {\n ToggleSidebar,\n ToggleSoftwareSidebar,\n ToggleServiceSidebar,\n ToggleLogoutConfirmation,\n ToggleBackofficeSidebar,\n SetPreviousPath,\n SetViewClientProfileByPartner\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 setViewClientProfileByPartner: (clientId: string | null, clientName: string | null): SetViewClientProfileByPartner => {\n return { type: 'COMMON_SET_VIEW_CLIENT_PROFILE_BY_PARTNER', payload: { clientId, clientName } }\n },\n\n setPreviousPath: ( path: string ): SetPreviousPath => {\n return { type: 'COMMON_SET_PREVIOUS_PATH', payload: path }\n }\n}\n\nexport default commonActions","import { AppThunkAction } from '../../types/store'\nimport { CommonActions } from '../../types/store/common'\nimport commonActions from '../actions/commonActions'\n\nconst { \n toggleSidebar,\n toggleSoftwareSidebar, \n toggleServiceSidebar, \n toggleBackofficeSidebar, \n toggleLogoutConfirmation, \n setPreviousPath,\n setViewClientProfileByPartner\n} = 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 setViewClientProfileByPartner : (clientId: string | null, clientName: string | null) : AppThunkAction => async (dispatch, getState) => {\n dispatch(setViewClientProfileByPartner(clientId,clientName))\n },\n\n setPreviousPath : (path: string) : AppThunkAction => async (dispatch, getState) => {\n dispatch(setPreviousPath(path))\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: window.location.protocol + '//' + window.location.hostname + '/api'\n}\nexport const DEV = {\n API_URL: window.location.protocol + '//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_SIMPLY : '/License/SimplyProducts',\n LICENSING_PRODUCTS_SIMPLY_CLIENT : '/License/SimplyProducts/Client',\n LICENSING_PRODUCTS_SAAS : '/License/SaasValues',\n LICENSING_PRODUCTS_SAAS_CLIENT : '/License/SaasValues/Client',\n LICENSING_WEB_PRODUCTS : '/License/WebApplications',\n LICENSING_WEB_PRODUCTS_CLIENT : '/License/WebApplications/Client',\n LICENSING_PRODUCT_LICENSE : '/License/Application',\n LICENSING_PRODUCT_LICENSE_PDF : '/License/Application/PDF',\n LICENSING_WEB_PRODUCT_LICENSE : '/License/WebApplication',\n LICENSING_VALUES_SIMPLY : '/License/LicenseValues/Simply',\n LICENSING_VALUES_SAAS : '/License/LicenseValues/Saas',\n LICENSING_VALUES_SIMPLY_EXCEL : '/License/LicenseValues/Simply/Excel',\n LICENSING_VALUES_SAAS_EXCEL : '/License/LicenseValues/Saas/Excel',\n APPLICATION_DOWNLOAD : '/ApplicationDownload',\n APPLICATION_DOWNLOAD_INSTALLATION : '/ApplicationDownload/Installation',\n APPLICATION_DOWNLOAD_INSTALLATION_CLIENT : '/ApplicationDownload/Installation/Client',\n APPLICATION_DOWNLOAD_UPGRADE : '/ApplicationDownload/Upgrade',\n APPLICATION_DOWNLOAD_UPGRADE_CLIENT : '/ApplicationDownload/Upgrade/Client',\n APPLICATION_DOWNLOAD_UPDATE : '/ApplicationDownload/Update',\n APPLICATION_DOWNLOAD_UPDATE_CLIENT : '/ApplicationDownload/Update/Client',\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 DOWNCATDOWNBUSAREA_CLIENT : '/DownloadCategoryDownload/BusinessArea/Client',\n DOWNCATBUSAREASCATEG : '/DownloadCategoryDownload/BusinessAreas/Categories',\n BUSINESSAREAS : '/BusinessAreas',\n DOWNLOADMANAGER : '/DownloadManager',\n CLIENTS : '/Clients',\n PROFILE_FORM : '/Client/Form',\n //PROFILE_ABOUT_US : '/Client/Form/AboutUs',\n PROFILE_IMAGE : '/Client/Form/Image',\n PROFILE_CLIENTS_LIST : '/Partner/ClientList',\n PROFILE_CLIENTS_FILTERS : '/Partner/ClientList/Filters',\n PROFILE_CLIENT_FORM_BY_PARTNER : '/Partner/ClientList/ClientForm',\n REMOTEASSISTANCE : '/RemoteAssistance',\n BILLING : '/Billing',\n BILLING_ANNUAL_GOALS : '/Billing/AnnualGoals',\n DEBIT_DOCUMENTS_HOMEPAGE : '/Document/Homepage/DebitDocuments',\n DEBIT_DOCUMENTS_TABLE : '/Document/DebitDocuments',\n DEBIT_DOCUMENTS_TABLE_CLIENT : '/Document/DebitDocuments/Client',\n DEBIT_DOCUMENTS_EXPIRED_DOC_CHART : '/Document/DebitDocuments/ExpiredChart',\n DEBIT_DOCUMENTS_EXPIRED_DOC_CHART_CLIENT : '/Document/DebitDocuments/ExpiredChart/Client',\n DEBIT_DOCUMENTS_CURRENT_BALANCE_CHART : '/Document/DebitDocuments/TotalBalance',\n DEBIT_DOCUMENTS_CURRENT_BALANCE_CHART_CLIENT: '/Document/DebitDocuments/TotalBalance/Client',\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 setViewClientProfileByPartner: (clientId: string | null, clientName: string | null) => dispatch(commonOperations.setViewClientProfileByPartner(clientId,clientName)),\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 const resetClientView = () => {\n props.setViewClientProfileByPartner(null,null) \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 '&::-webkit-scrollbar': { \n width: '5px', \n }, \n '&::-webkit-scrollbar-track': { \n backgroundColor: '#f1f1f1', \n }, \n '&::-webkit-scrollbar-thumb': {\n backgroundColor: '#888',\n borderRadius: '5px',\n }\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() && props.value !== ''\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 === '' ? null : 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, Divider } from '@material-ui/core'\nimport CloseIcon from '@material-ui/icons/Close'\nimport SaveIcon from '@material-ui/icons/SaveOutlined'\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 const isEdit = props.variant === 'edit'\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 && !isEdit)\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 // ON SAVE\n onSave: isDefined(props.onSave) ? props.onSave : undefined,\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 isEdit &&\n \n \n \n \n \n }\n\n {\n (isDialog || isEdit) &&\n \n \n \n \n \n }\n \n \n { isEdit && }\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 loadDownCatDownBusAreaFromClient: async (downloadType: number[], id: string) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.DOWNCATDOWNBUSAREA_CLIENT,\n params: {\n downloadType: downloadType,\n userId: id\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 React from 'react'\nimport { SvgIcon } from '@material-ui/core'\n\nexport const ProfileIcon = (props: any) => {\n return (\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 EmptyState1 = (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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}","import React from 'react'\nimport { SvgIcon } from '@material-ui/core'\n\nexport const EmptyState2 = (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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}","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, ProfileIcon } from '../../../assets/icons'\n\nimport i18n from '../../../i18n'\nimport { ApplicationState } from '../../../types/store'\nimport { commonOperations} from '../../../store/operations'\nimport { PARTNER_ROLES, 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 setViewClientProfileByPartner: (clientId: string | null, clientName: string | null) => dispatch(commonOperations.setViewClientProfileByPartner(clientId,clientName)),\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 { PROFILE, SOFTWARE, SERVICES, TRAINING, BACKOFFICE } = ROUTES\n \n const isProfileSelected = (): boolean => [\n PROFILE.FORM.PATH,\n PROFILE.BILLINGVOLUME.PATH,\n PROFILE.CLIENTSLIST.PATH,\n PROFILE.DEBITDOCUMENTS.PATH,\n PROFILE.LICENSINGVALUES.PATH,\n PROFILE.SETTINGS.PATH\n ].includes(pathname)\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 props.setViewClientProfileByPartner(null,null) \n }\n\n const redirectOnly = (event: any, path: string): void => {\n if (props.commonState?.sidebarOpen) props.toggleSidebar(event)\n props.push(path)\n props.setViewClientProfileByPartner(null,null) \n }\n\n return (\n \n redirectOnly(e , PROFILE.FORM.PATH)}\n selected={isProfileSelected()}\n >\n \n \n \n { user?.role !== undefined && PARTNER_ROLES.includes(user.role) ?\n \n :\n \n }\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 '..'\nimport theme from '../../assets/theme'\n\nconst F3MDataGrid = (props: F3MDataGridProps) => {\n const { headerFontSize, bodyFontSize, resetPage} = props; \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 // ALERT COLOR IN DAYS OVERDUE\n alertColor: isDefined(c.alertColor) ? c.alertColor: 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 setPage(0);\n }, [resetPage]);\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 | number }, i: any) => (\n \n {columns.map((c, i) => (\n 0 ? theme.palette.warning.main : theme.palette.text.primary,\n ...(bodyFontSize && { fontSize: bodyFontSize })}}\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 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 React from 'react'\n\nimport { Box } from '@material-ui/core'\n\nimport { Line } from 'react-chartjs-2'\n\nconst F3MLineChart = (props: { labels: any, data: any, height?: number, noMinWidth?: boolean }) => {\n\n const {\n labels,\n data,\n height,\n noMinWidth\n } = props\n\n\n const dataChart = {\n labels: labels,\n datasets: [\n {\n data: data,\n fill: false,\n borderColor: 'rgba(75,192,192,1)',\n tension: 0.1,\n },\n ],\n };\n\n return (\n \n \n \n \n \n )\n}\n\nexport default F3MLineChart","import React from 'react'\n\nimport { Box } from '@material-ui/core'\n\nimport { Doughnut } from 'react-chartjs-2'\nimport theme from '../../assets/theme'\n\nconst F3MPieChart = (props: { labels: any, data: any, height?: number, noMinWidth?: boolean }) => {\n\n const {\n labels,\n data,\n height,\n noMinWidth\n } = props\n\n \n const dataChart = {\n labels: labels,\n datasets: [\n {\n data: data,\n backgroundColor: [theme.palette.info.main, theme.palette.primary.main],\n borderWidth: 0,\n },\n ],\n };\n\n return (\n \n \n \n \n \n )\n}\n\nexport default F3MPieChart","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, Box } 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'\nimport { formatField } from '../../../../components/F3MDataGrid/functions'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n licensingState: state.licensing,\n commonState: state.common\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n handleProductChangePage: (e: any, p: number, t: string) => dispatch(licensingOperations.handleProductChangePage(e, p, t)),\n handleProductChangeRowsPerPage: (e: React.ChangeEvent, t: string) => dispatch(licensingOperations.handleProductChangeRowsPerPage(e, t)),\n loadProductsSimply: (clientId?: string) => dispatch(licensingOperations.loadSimplyProducts(clientId)),\n loadProductsSaas: (clientId?: string) => dispatch(licensingOperations.loadSaasProducts(clientId)),\n clearData: () => dispatch(licensingOperations.clearData()),\n order: (e: React.MouseEvent, t: string) => dispatch(licensingOperations.order(e,t)),\n push: (p: string) => dispatch(push(p))\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\nconst TableProducts = (props: PropsFromRedux & { handleError: (message: string) => void, isHomePage?: boolean }) => {\n const classes = useStyles()\n\n const { SOFTWARE } = ROUTES\n\n const { productsSimply, productsSaas } = props.licensingState!\n const common = props.commonState!\n\n const [isGettingPDF, setIsGettingPDF] = useState(false)\n\n useEffect(() => {\n // On Mount\n if (common.clientIdByPartnerView) {\n props.loadProductsSimply(common.clientIdByPartnerView)\n props.loadProductsSaas(common.clientIdByPartnerView)\n } else {\n props.loadProductsSimply()\n props.loadProductsSaas()\n }\n\n // On Unmount\n return () => {\n props.clearData()\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n const orderSimply = (e: React.MouseEvent) => {\n props.order(e,'simply')\n if (common.clientIdByPartnerView) {\n props.loadProductsSimply(common.clientIdByPartnerView)\n } else {\n props.loadProductsSimply()\n }\n }\n\n const orderSaas = (e: React.MouseEvent) => {\n props.order(e,'saas')\n if (common.clientIdByPartnerView) {\n props.loadProductsSaas(common.clientIdByPartnerView)\n } else {\n props.loadProductsSaas()\n }\n }\n\n const handleChangePageSimply = (e: any, p: number) => {\n props.handleProductChangePage(e, p, 'simply')\n if (common.clientIdByPartnerView) {\n props.loadProductsSimply(common.clientIdByPartnerView)\n } else {\n props.loadProductsSimply()\n }\n }\n\n const handleChangePageSaas = (e: any, p: number) => {\n props.handleProductChangePage(e, p, 'saas')\n if (common.clientIdByPartnerView) {\n props.loadProductsSaas(common.clientIdByPartnerView)\n } else {\n props.loadProductsSaas()\n }\n }\n\n const handleChangeRowsPerPageSimply = (e: React.ChangeEvent) => {\n props.handleProductChangeRowsPerPage(e, 'simply')\n if (common.clientIdByPartnerView) {\n props.loadProductsSimply(common.clientIdByPartnerView)\n } else {\n props.loadProductsSimply()\n }\n }\n\n const handleChangeRowsPerPageSaas = (e: React.ChangeEvent) => {\n props.handleProductChangeRowsPerPage(e, 'saas')\n if (common.clientIdByPartnerView) {\n props.loadProductsSaas(common.clientIdByPartnerView)\n } else {\n props.loadProductsSaas()\n }\n }\n\n let productSimplyColumns: F3MDataGridColumnProps[] = [\n { field: 'applicationName', headerName: i18n.t('common.application'), width: 25, 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: 'tipology', headerName: i18n.t('product.tipology'), width: 10, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'includeSimply', headerName: i18n.t('product.includeSimply'), width: 12, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'addLicense', headerName: i18n.t('product.addLicense'), width: 18, sortable: true, 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 { field: 'view', headerName: i18n.t('product.view'), width: 10, sortable: false, type: 'node', align: 'center', headerAlign: 'center' }\n ]\n\n let productSimplyData: F3MDataGridRowData[] = isDefined(productsSimply.data) ? productsSimply.data.map((r, i) => (\n {\n id: r.id,\n applicationName: r.applicationName.toUpperCase(),\n version: r.version,\n tipology: r.tipology,\n includeSimply: r.includeSimply ? i18n.t('common.yes') : i18n.t('common.no'),\n addLicense: r.licenseAdded ? i18n.t('common.yes') : i18n.t('common.no'),\n download: r.hasLicense && licenseService.downloadProductLicense(r.id)} />,\n view: r.hasLicense && } request={() => licenseService.getProductLicensePDF(r.id)} />\n }\n )) : []\n\n let productSaasColumns: F3MDataGridColumnProps[] = [\n { field: 'product', headerName: i18n.t('product.product'), width: 25, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'module', headerName: i18n.t('product.module'), width: 15, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'nUser', headerName: i18n.t('product.numberOfUsers'), width: 15, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'nRecords', headerName: i18n.t('product.numberOfRecords'), width: 12, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'frequency', headerName: i18n.t('product.frequency'), width: 13, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'endDate', headerName: i18n.t('common.endDate'), width: 10, sortable: true, type: 'string', align: 'center', headerAlign: 'center' },\n { field: 'value', headerName: i18n.t('common.value'), width: 10, sortable: true, type: 'string', align: 'center', headerAlign: 'center' }\n ]\n\n let productSaasData: F3MDataGridRowData[] = isDefined(productsSaas.data) ? productsSaas.data.map((r, i) => (\n {\n id: \"productsSaas\" + i,\n product: r.product,\n module: isDefined(r.module) ? r.module : \"-\",\n nUser: isDefined(r.numberOfUsers) ? r.numberOfUsers : \"-\",\n nRecords: isDefined(r.numberOfRecords) ? r.numberOfRecords : \"-\",\n frequency: isDefined(r.frequency) ? r.frequency : \"-\",\n endDate: isDefined(r.endDate) ? formatField(r.endDate, \"date\") : \"-\",\n value: isDefined(r.value) ? r.value + \"€\" : \"-\",\n }\n )) : [] \n\n return (\n \n {i18n.t('product.products')}\n {i18n.t('product.simply')}\n \n\n { productsSimply.rowCount !== 0 &&\n \n \n {i18n.t('common.endDate')}: \n {formatField(productsSimply.endDate, \"date\")}\n {i18n.t('common.value')}: \n {productsSimply.value}€\n \n \n }\n\n {i18n.t('product.saas')}\n \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 { request } from '../axios'\nimport { CONFIG, ENDPOINTS } from '../../constants'\nimport { DebitDocumentsExpiredChartResponse, DebitDocumentsTableFilters, DebitDocumentsTableResponse, DebitDocumentsTotalBalanceChartResponse } from '../../types/services/debitDocuments'\nimport { DebitDocumentsHomepageResponse } from '../../types/services/debitDocuments/DebitDocumentsHomepageResponse'\n\nexport const debitDocumentsService = {\n loadDebitDocumentsHomepage: async () => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.DEBIT_DOCUMENTS_HOMEPAGE\n })\n\n return response\n },\n\n loadDebitDocumentsTable: async (params: DebitDocumentsTableFilters) => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.DEBIT_DOCUMENTS_TABLE,\n params : params\n })\n\n return response\n },\n\n loadDebitDocumentsTableFromClient: async (params: DebitDocumentsTableFilters, clientId: string) => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.DEBIT_DOCUMENTS_TABLE_CLIENT,\n params : {...params, userId: clientId}\n })\n\n return response\n },\n\n loadDebitDocumentsExpiredChart: async (months: number) => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.DEBIT_DOCUMENTS_EXPIRED_DOC_CHART,\n params : { months } \n })\n\n return response\n },\n\n loadDebitDocumentsExpiredChartFromClient: async (months: number, userId: string) => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.DEBIT_DOCUMENTS_EXPIRED_DOC_CHART_CLIENT,\n params : { months, userId } \n })\n\n return response\n },\n\n loadDebitDocumentsTotalBalance: async () => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.DEBIT_DOCUMENTS_CURRENT_BALANCE_CHART\n })\n\n return response\n },\n\n loadDebitDocumentsTotalBalanceFromClient: async (userId: string) => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.DEBIT_DOCUMENTS_CURRENT_BALANCE_CHART_CLIENT,\n params : { userId } \n })\n\n return response\n },\n\n \n}","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 { debitDocumentsService } from '../../../../api/services/debitDocumentsService';\nimport { DebitDocumentsHomepageResponse } from '../../../../types/services/debitDocuments/DebitDocumentsHomepageResponse';\nimport { commonOperations } from '../../../../store/operations';\n\nconst mapDispatchToProps = (dispatch: any) => ({\n push: (p: string) => dispatch(push(p)),\n setPreviousPath: (path: string) => dispatch(commonOperations.setPreviousPath(path)),\n})\n\nconst connector = connect(null, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\nconst DebitDocuments = (props: PropsFromRedux & { handleError: (message: string) => void }) => {\n const classes = useStyles()\n\n const [debitDocuments, setDebitDocuments] = useState([])\n const [loading, setLoading] = useState(false)\n\n const { PROFILE, HOMEPAGE } = ROUTES\n\n const {\n handleError\n } = props\n\n const loadDebitDocuments = async () => {\n setLoading(true)\n try {\n const response = await debitDocumentsService.loadDebitDocumentsHomepage()\n\n if (response.isSuccess) {\n const responseParsed: DebitDocumentsHomepageResponse[] = response.result.map(elem => {\n return { currentValue: elem.currentValue, dueDate: elem.dueDate.toString().split(\"T\")[0] }\n })\n setDebitDocuments(responseParsed)\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 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 loadDebitDocuments()\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n \n {i18n.t('homepage.debitDocuments')}\n \n \n \n {i18n.t('common.value')}\n \n \n {i18n.t('common.limitDate')}\n \n \n {debitDocuments.map((elem, index) => (\n
\n \n \n {elem.currentValue}€\n \n \n {elem.dueDate}\n \n \n
\n ))}\n
\n \n
\n )\n}\n\nexport default connector(DebitDocuments)","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'\nimport DebitDocumentsHomepage from './DebitDocumentsHomepage'\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 \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 const [resetPage, setResetPage] = useState(0);\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 props.handleChangePage(null,0)\n setResetPage(resetPage+1)\n } else {\n props.handleFilterChange(name, value)\n props.handleChangePage(null,0)\n setResetPage(resetPage+1)\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.handleChangePage(null,0)\n setResetPage(resetPage+1)\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 const [resetPage, setResetPage] = useState(0);\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.handleChangePage(null,0)\n setResetPage(resetPage+1)\n props.loadTickets()\n }\n\n const clearFilter = () => {\n props.handleFilterChange('startDate', initDateFilter)\n props.handleFilterChange('endDate', endDateFilter)\n props.handleChangePage(null,0)\n setResetPage(resetPage+1)\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 goBack:{\n color: theme.palette.primary.main,\n marginBottom: '16px',\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 { Grid, IconButton, Link, Typography } from '@material-ui/core'\n\nimport VisibilityIcon from '@material-ui/icons/Visibility'\nimport ArrowBack from '@material-ui/icons/ArrowBack'\n\nimport { F3MBreadcrumbs, F3MDownload, F3MPopover, F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData, F3MCard, F3MSnackbarState, F3MSnackbar, F3MCategoryTable, F3MTextField, F3MButton } from '../../../../components'\n\nimport i18n from '../../../../i18n'\nimport { isDefined } from '../../../../utils'\nimport { PARTNER_ROLES} from '../../../../constants'\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'\nimport { ApplicationState } from '../../../../types/store'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n loginState: state.login,\n commonState: state.common\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n push: (p: string) => dispatch(push(p))\n})\n\nconst connector = connect(mapStateToProps,mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\nconst Installation = (props: PropsFromRedux) => {\n const { user } = props.loginState!\n const common = props.commonState!\n\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 let responseInstallations\n if (common.clientIdByPartnerView){\n responseInstallations = await applicationDownloadService.loadInstallationsFromClient(common.clientIdByPartnerView)\n } else {\n responseInstallations = await applicationDownloadService.loadInstallations()\n }\n\n if (responseInstallations.isSuccess) {\n setInstallations(responseInstallations.result)\n\n } else {\n handleError(i18n.t('error.unexpectedError'))\n }\n\n let responseCatDownlaods\n if (common.clientIdByPartnerView){\n responseCatDownlaods = await downloadCategoryDownloadsService.loadDownCatDownBusAreaFromClient([0],common.clientIdByPartnerView)\n } else {\n responseCatDownlaods = await downloadCategoryDownloadsService.loadDownCatDownBusArea([0])\n }\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 {common.clientIdByPartnerView ? \n props.push(common.previousPath)} fullWidth={false} variant='text' >\n \n {i18n.t('button.goBack')}\n \n : \n <>\n }\n \n {user?.role !== undefined && PARTNER_ROLES.includes(user.role) && common.clientIdByPartnerView ? \n \n {i18n.t('profile.entity')}\n \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 connector(Installation)","import React, { useEffect, useState } from 'react'\nimport { connect, ConnectedProps } from 'react-redux'\nimport { push } from 'connected-react-router';\n\nimport { Typography } from '@material-ui/core'\nimport ArrowBack from '@material-ui/icons/ArrowBack'\n\nimport TableProducts from './TableProducts'\nimport globalSoftwareStyles from '../../styles'\n\nimport { F3MBreadcrumbs, F3MDownload, F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData, F3MCard, F3MDialog, F3MSnackbar, F3MSnackbarState, F3MTextField, F3MButton } from '../../../../components'\n\nimport { ApplicationState } from '../../../../types/store'\nimport { licensingOperations } from '../../../../store/operations'\n\nimport i18n from '../../../../i18n'\nimport { licenseService } from '../../../../api'\nimport { PARTNER_ROLES } from '../../../../constants'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n licensingState: state.licensing,\n loginState: state.login,\n commonState: state.common\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n loadWebProducts: (clientId?: string) => dispatch(licensingOperations.loadWebProducts(clientId)),\n clearData: () => dispatch(licensingOperations.clearData()),\n push: (p: string) => dispatch(push(p))\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\ntype Props = PropsFromRedux\n\nconst Licensing = (props: Props) => {\n const globalClasses = globalSoftwareStyles()\n\n const [snackbar, setSnackbar] = useState({\n open: false,\n severity: 'info',\n message: ''\n })\n\n const { webProducts } = props.licensingState!\n const { user } = props.loginState!\n const common = props.commonState!\n\n const [modal, setModal] = useState(false)\n\n useEffect(() => {\n // On Mount\n if (common.clientIdByPartnerView) {\n props.loadWebProducts(common.clientIdByPartnerView)\n } else {\n props.loadWebProducts()\n }\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 {common.clientIdByPartnerView ? \n props.push(common.previousPath)} fullWidth={false} variant='text' >\n \n {i18n.t('button.goBack')}\n \n : \n <>\n }\n \n {user?.role !== undefined && PARTNER_ROLES.includes(user.role) && common.clientIdByPartnerView ? \n \n {i18n.t('profile.entity')}\n \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'\nimport { ConnectedProps, connect } from 'react-redux'\nimport { push } from 'connected-react-router';\n\nimport { Grid, IconButton, Link, Typography } from '@material-ui/core'\n\nimport VisibilityIcon from '@material-ui/icons/Visibility'\nimport ArrowBack from '@material-ui/icons/ArrowBack'\n\nimport { F3MBreadcrumbs, F3MDownload, F3MPopover, F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData, F3MCard, F3MCategoryTable, F3MSnackbarState, F3MSnackbar, F3MTextField, F3MButton } from '../../../../components'\n\nimport i18n from '../../../../i18n'\nimport { isDefined } from '../../../../utils'\nimport { PARTNER_ROLES} from '../../../../constants'\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'\nimport { ApplicationState } from '../../../../types/store'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n loginState: state.login,\n commonState: state.common\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n push: (p: string) => dispatch(push(p))\n})\n\nconst connector = connect(mapStateToProps,mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\nconst Updates = (props: PropsFromRedux) => {\n const { user } = props.loginState!\n const common = props.commonState!\n\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 let responseUpdates\n if (common.clientIdByPartnerView){\n responseUpdates = await applicationDownloadService.loadUpdatesFromClient(common.clientIdByPartnerView)\n } else {\n responseUpdates = await applicationDownloadService.loadUpdates()\n }\n\n if (responseUpdates.isSuccess) {\n setUpdates(responseUpdates.result)\n\n } else {\n handleError(i18n.t('error.unexpectedError'))\n }\n setLoadingUpdt(false)\n\n let responseUpgrades\n if (common.clientIdByPartnerView){\n responseUpgrades = await applicationDownloadService.loadUpgradesFromClient(common.clientIdByPartnerView)\n } else {\n responseUpgrades = await applicationDownloadService.loadUpgrades()\n }\n\n if (responseUpgrades.isSuccess) {\n setUpgrades(responseUpgrades.result)\n\n } else {\n handleError(i18n.t('error.unexpectedError'))\n }\n setLoadingUpgr(false)\n\n let responseCatDownlaods\n if (common.clientIdByPartnerView){\n responseCatDownlaods = await downloadCategoryDownloadsService.loadDownCatDownBusAreaFromClient([1, 2],common.clientIdByPartnerView)\n } else {\n responseCatDownlaods = await downloadCategoryDownloadsService.loadDownCatDownBusArea([1, 2])\n }\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 {common.clientIdByPartnerView ? \n props.push(common.previousPath)} fullWidth={false} variant='text' >\n \n {i18n.t('button.goBack')}\n \n : \n <>\n }\n \n {user?.role !== undefined && PARTNER_ROLES.includes(user.role) && common.clientIdByPartnerView ? \n \n {i18n.t('profile.entity')}\n \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 connector(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, { 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, { 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 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","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n cardTitleBlue: {\n color: theme.palette.primary.main,\n },\n cardSubtitleDivider: {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '40px',\n marginBottom: '8px',\n color: theme.palette.info.main,\n borderBottom: '1px solid'\n },\n cardSubtitleDarkBlue: {\n color: theme.palette.info.main,\n paddingBottom: '8px'\n },\n gridRowSpacing: {\n [theme.breakpoints.up('md')]: {\n paddingRight: '20px',\n },\n },\n photoNameProfile: {\n marginTop: '10px',\n display: 'flex',\n gap: '20px'\n },\n profileImage:{\n cursor: 'pointer', \n width: '60px', \n height: '60px', \n borderRadius: '50px',\n position: 'absolute', \n top: 0, \n left: 0, \n zIndex: 1, \n // objectFit: 'cover', \n },\n tableContainer:{\n width: '100%',\n maxHeight: '260px',\n marginTop: '8px',\n marginBottom: '16px',\n paddingTop: '0px !important',\n paddingBottom: '0px !important',\n overflow: 'auto',\n '&::-webkit-scrollbar': { \n width: '5px', \n }, \n '&::-webkit-scrollbar-track': { \n backgroundColor: '#f1f1f1', \n }, \n '&::-webkit-scrollbar-thumb': {\n backgroundColor: '#888',\n borderRadius: '5px',\n }\n },\n cardIconsContainer: {\n display: 'flex',\n justifyContent: 'flex-end',\n gap: '8px',\n position: 'relative',\n top: '-0.5em'\n },\n cardFormIcons: {\n padding: '0px'\n }, \n listItemRoot: {\n paddingTop: 20,\n paddingBottom: 20,\n color: theme.palette.secondary.main,\n '&:hover': {\n color: theme.palette.primary.main + ' !important',\n backgroundColor: theme.palette.common.white + ' !important'\n }\n },\n listItemText: {\n fontSize: 18,\n fontWeight: 500,\n color: 'inherit'\n },\n goBack: {\n color: theme.palette.primary.main,\n marginBottom: '10px'\n },\n}))\n\nexport default useStyles","import { request, download } from '../axios'\nimport { CONFIG, ENDPOINTS } from '../../constants'\nimport { ProfileFormResponse, ProfileClientsFilterResponse, ClientsListResponse, ClientsListRequest } from '../../types/services/profile'\n\nexport const profileService = {\n getProfileForm: async () => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.PROFILE_FORM\n })\n\n return response\n },\n getClientProfileByPartner: async (id: string) => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.PROFILE_CLIENT_FORM_BY_PARTNER,\n params : {\n clientId: id\n } \n })\n\n return response\n },\n\n // putAboutUs: async (aboutUs : string) => {\n // const response = await request({\n // method : 'PUT',\n // url : CONFIG.API_URL + ENDPOINTS.PROFILE_ABOUT_US,\n // data: { aboutUs }\n // })\n\n // return response\n // },\n loadProfileImage: async (imagePath: string) => {\n const response = await download({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.PROFILE_IMAGE,\n params : {\n imagePath: imagePath\n } \n })\n\n return response\n },\n addOrUpdProfileImage: async (file: File) => {\n const formData = new FormData();\n formData.append('image', file,); \n\n const response = await request({\n method : 'PUT',\n url : CONFIG.API_URL + ENDPOINTS.PROFILE_IMAGE,\n data : formData\n })\n\n return response\n },\n getProfileClientsFilters: async () => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.PROFILE_CLIENTS_FILTERS\n })\n\n return response\n },\n\n loadClientsList: async (params: ClientsListRequest) => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.PROFILE_CLIENTS_LIST,\n params : params\n })\n\n return response\n },\n}","import React, { useEffect, useRef } from 'react'\nimport { connect, ConnectedProps } from 'react-redux';\nimport { push } from 'connected-react-router';\n\nimport { Box, Grid, IconButton, Typography } from '@material-ui/core'\n// import SaveOutlinedIcon from '@material-ui/icons/SaveOutlined'\n// import CloseIcon from '@material-ui/icons/Close'\n// import EditIcon from '@material-ui/icons/Edit'\nimport PhotoImg from '@material-ui/icons/PhotoCamera'\nimport ArrowBack from '@material-ui/icons/ArrowBack'\n\nimport useStyles from './styles'\nimport i18n from '../../../i18n';\nimport { F3MBreadcrumbs, F3MButton, F3MCard, F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData, F3MTextField } from '../../../components'\nimport { ApplicationState } from '../../../types/store'\n\nimport { commonOperations, profileOperations } from '../../../store/operations';\nimport theme from '../../../assets/theme';\nimport { PARTNER_ROLES, ROUTES } from '../../../constants';\nimport { profileService } from '../../../api/services/profileService';\nimport { isDefined } from '../../../utils';\n\nconst mapStateToProps = (state: ApplicationState) => ({\n profileState: state.profile,\n loginState: state.login,\n commonState: state.common\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n getProfileForm: (clientId?: string) => dispatch(profileOperations.loadProfileForm(clientId)),\n setProfileImage: (image: string) => dispatch(profileOperations.setProfileImage(image)),\n clearProfileForm: () => dispatch(profileOperations.clearProfileForm()),\n setViewClientProfileByPartner: (clientId: string | null, clientName: string | null) => dispatch(commonOperations.setViewClientProfileByPartner(clientId,clientName)), \n push: (p: string) => dispatch(push(p))\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\nconst Form = (props: PropsFromRedux & { handleError: (message: string) => void, handleSuccess: (message: string) => void } ) => {\n const classes = useStyles()\n const {\n handleError,\n handleSuccess\n } = props\n\n const { profile } = props.profileState!\n const { user } = props.loginState!\n const common = props.commonState!\n const { PROFILE} = ROUTES\n\n //const [isEditing, setIsEditing] = useState(false)\n //const [aboutUs, setAboutUs] = useState(profile?.profileForm.clientAboutUs)\n //const [aboutUsSaved, setAboutUsSaved] = useState('')\n //const [aboutUsState, setAboutUsState] = useState(0\n const fileInputRef = useRef(null);\n\n useEffect(() => {\n if (common.clientIdByPartnerView) {\n props.getProfileForm(common.clientIdByPartnerView)\n } else {\n props.getProfileForm()\n }\n\n return () => {\n props.clearProfileForm()\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n // const toggleEditSave = async (e: any) => { \n // if (isEditing) { //save\n // profileService.putAboutUs(aboutUs)\n // .then(async () => {\n // setAboutUsSaved(aboutUs)\n // setIsEditing(false) \n // setAboutUsState(aboutUsState+1)\n // handleSuccess(i18n.t('snackbar.updateSuccess'))\n // })\n // .catch((errorMessage) => {\n // handleError(i18n.t('snackbar.updateError'))\n // })\n // }\n // else { //edit\n // setIsEditing(!isEditing)\n // }\n // }\n\n // const toggleCancelEdit = (e: any) => { \n // setIsEditing(false)\n // setAboutUs(aboutUsSaved)\n // setAboutUsState(aboutUsState+1)\n // }\n\n const handleImageClick = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n\n const handleFileChange = (event: React.ChangeEvent) => {\n const file = event.target.files?.[0];\n if (file) {\n profileService.addOrUpdProfileImage(file)\n .then(async () => {\n await profileService.addOrUpdProfileImage(file)\n const reader = new FileReader();\n reader.onload = (e) => {\n if (e.target?.result) {\n props.setProfileImage(e.target.result as string)\n }\n };\n reader.readAsDataURL(file);\n handleSuccess(i18n.t('snackbar.updateSuccess'))\n })\n .catch((errorMessage) => {\n handleError(i18n.t('snackbar.updateError'))\n })\n }\n };\n\n const columns: F3MDataGridColumnProps[] = [\n { field: 'name', headerName: i18n.t('profile.name'), width: 50, sortable: false, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'email', headerName: i18n.t('profile.email'), width: 50, sortable: false, type: 'string', align: 'left', headerAlign: 'left' },\n ]\n\n const rows: F3MDataGridRowData[] = isDefined(profile.profileForm.contacts) ? profile.profileForm.contacts.map((r, i) => (\n {\n id: 'contacts-' + i,\n name: r.userName,\n email: r.userEmail\n }\n )) : []\n\n return (\n <>\n {common.clientIdByPartnerView ? \n {\n props.setViewClientProfileByPartner(null,null)\n props.push(PROFILE.CLIENTSLIST.PATH)\n }} >\n \n {i18n.t('button.goBack')}\n \n : \n <>\n }\n\n {user?.role !== undefined && PARTNER_ROLES.includes(user.role) && !common.clientIdByPartnerView ?\n \n :\n \n }\n \n \n {user?.role !== undefined && PARTNER_ROLES.includes(user.role) && !common.clientIdByPartnerView ?\n {i18n.t('profile.partnerForm')}\n :\n {i18n.t('profile.clientForm')}\n }\n\n
\n {i18n.t('profile.entityData')}\n {/*
\n \n {isEditing ? : }\n \n\n \n \n \n
*/}\n
\n\n {profile?.loadingProfileForm ?\n <>\n :\n \n \n
\n {\n const hoverContent = e.currentTarget.querySelector('.hover-content');\n if (hoverContent instanceof HTMLElement) { hoverContent.style.display = 'flex'; }\n }}\n onMouseLeave={(e) => {\n const hoverContent = e.currentTarget.querySelector('.hover-content');\n if (hoverContent instanceof HTMLElement) { hoverContent.style.display = 'none'; }\n }}\n >\n {profile.profileImage ?\n {i18n.t('profile.profilePhoto')}\n :\n \n \n \n }\n\n \n
\n \n \n \n
\n
\n\n \n
\n\n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n {/* { isEditing ? \n {\n if (isEditing) { setAboutUs(event.target.value) }\n }}\n /> \n : \n \n } */}\n
\n \n \n \n
\n }\n
\n \n )\n}\n\nexport default connector(Form)","import React, { useState } from 'react'\nimport { connect, ConnectedProps } from 'react-redux'\nimport { push } from 'connected-react-router'\n\nimport { Divider, Grid, List, ListItem, ListItemText, Typography } from '@material-ui/core'\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight'\n\n\nimport { F3MCard, F3MSnackbar, F3MSnackbarState } from '../../../components'\nimport PartnerForm from './PartnerForm'\nimport { ApplicationState } from '../../../types/store'\nimport { PARTNER_ROLES, ROUTES } from '../../../constants'\nimport useStyles from './styles'\nimport i18n from '../../../i18n';\nimport { commonOperations } from '../../../store/operations'\n\nconst mapStateToProps = (state: ApplicationState) => ({\n loginState: state.login,\n profileState: state.profile,\n commonState: state.common\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n setPreviousPath: (path: string) => dispatch(commonOperations.setPreviousPath(path)),\n push: (p: string) => dispatch(push(p))\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\nconst Profile = (props: PropsFromRedux) => {\n const { user } = props.loginState!\n const common = props.commonState!\n\n const classes = useStyles()\n\n const { PROFILE, SOFTWARE } = ROUTES\n\n const [snackbar, setSnackbar] = useState({\n open: false,\n severity: 'info',\n message: ''\n })\n\n const handleError = (message: string) => {\n setSnackbar({ open: true, severity: 'error', message: message })\n }\n\n const handleSuccess = (message: string) => {\n setSnackbar({ open: true, severity: 'success', message: message })\n }\n\n const redirect = (path: string): void => {\n props.setPreviousPath(PROFILE.FORM.PATH)\n props.push(path)\n }\n\n return (\n <>\n \n \n \n \n {user?.role !== undefined && PARTNER_ROLES.includes(user.role) && !common.clientIdByPartnerView ?\n \n \n {i18n.t('comercialCard.title')}\n \n redirect( PROFILE.CLIENTSLIST.PATH)}>\n \n \n \n \n redirect( PROFILE.LICENSINGVALUES.PATH)}>\n \n \n \n \n redirect( PROFILE.BILLINGVOLUME.PATH)}>\n \n \n \n \n \n \n \n :\n <>}\n\n {user?.role !== undefined && PARTNER_ROLES.includes(user.role) && common.clientIdByPartnerView ?\n \n \n {i18n.t('menus.software.parent')}\n \n redirect( SOFTWARE.LICENSING.PATH)}>\n \n \n \n \n redirect( SOFTWARE.INSTALLATION.PATH)}>\n \n \n \n \n redirect( SOFTWARE.UPDATES.PATH)}>\n \n \n \n \n \n \n \n :\n <>}\n\n \n \n {i18n.t('financialCard.title')}\n \n redirect( PROFILE.DEBITDOCUMENTS.PATH)}>\n \n \n \n \n {user?.role !== undefined && PARTNER_ROLES.includes(user.role) && common.clientIdByPartnerView ? \n <> \n :\n <>\n redirect( PROFILE.SETTINGS.PATH)}>\n \n \n \n \n redirect( PROFILE.SETTINGS.PATH)}>\n \n \n \n \n \n }\n \n \n \n \n \n \n )\n}\n\nexport default connector(Profile)","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n cardTitle: {\n color: theme.palette.info.main,\n },\n cardSubtitle: {\n color: theme.palette.primary.main,\n marginTop: '40px',\n marginBottom: '8px',\n },\n buttonSearch: {\n backgroundColor: theme.palette.info.main,\n color: theme.palette.common.white,\n fontSize: '12px',\n padding: '0px 5px',\n height: '32px',\n width: '100%',\n '&:hover': {\n backgroundColor: theme.palette.grey[500] \n }\n },\n gridRowSpacing: {\n [theme.breakpoints.up('md')]: {\n paddingRight: '20px',\n },\n },\n buttonSeeProfile: {\n padding: '0px'\n },\n goBack: {\n color: theme.palette.primary.main,\n marginBottom: '10px'\n },\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, Checkbox, Divider, FormControlLabel, Grid, IconButton, Typography } from '@material-ui/core'\nimport { F3MBreadcrumbs, F3MButton, F3MCard, F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData, F3MSelect, F3MTextField } from '../../../../components';\nimport theme from '../../../../assets/theme';\nimport useStyles from './styles';\nimport i18n from '../../../../i18n';\nimport { ApplicationState } from '../../../../types/store';\nimport { commonOperations, profileOperations } from '../../../../store/operations';\nimport { isDefined } from '../../../../utils';\nimport SeeProfileIcon from '@material-ui/icons/Visibility'\nimport { ROUTES } from '../../../../constants';\nimport { ArrowBack } from '@material-ui/icons';\n\nconst mapStateToProps = (state: ApplicationState) => ({\n profileState: state.profile\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n handleFilterChange: (n: string, v: any) => dispatch(profileOperations.handleFilterChange(n, v)),\n handleChangePage: (e: any, p: number) => dispatch(profileOperations.handleChangePage(e, p)),\n handleChangeRowsPerPage: (e: React.ChangeEvent) => dispatch(profileOperations.handleChangeRowsPerPage(e)),\n loadClientsList: () => dispatch(profileOperations.loadClientList()),\n getClientsFilters: () => dispatch(profileOperations.loadClientsFilters()),\n orderClientsList: (e: React.MouseEvent) => dispatch(profileOperations.orderClientsList(e)),\n clearData: () => dispatch(profileOperations.clearClientsList()),\n push: (p: string) => dispatch(push(p)),\n setViewClientProfileByPartner: (clientId: string | null, clientName: string | null) => dispatch(commonOperations.setViewClientProfileByPartner(clientId,clientName)),\n setPreviousPath: (path: string) => dispatch(commonOperations.setPreviousPath(path)),\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\nconst ClientsList = (props: PropsFromRedux) => {\n const classes = useStyles()\n const { profile } = props.profileState!\n const { PROFILE } = ROUTES\n const [resetPage, setResetPage] = useState(0);\n\n useEffect(() => {\n props.getClientsFilters()\n props.loadClientsList()\n\n return () => {\n props.clearData()\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleFilterChange = (name: string) => (value: any) => {\n if (name === 'renovateSimply') {\n props.handleFilterChange(name, value)\n } else {\n props.handleFilterChange(name, value.target.value)\n }\n }\n\n const handleFilterChangeSelect = (name: string) => (value: any) => {\n if (value.target.value === 'optionAll'){\n props.handleFilterChange(name, '')\n } else {\n props.handleFilterChange(name, value.target.value)\n }\n }\n\n const getMunicipalitiesFiltered = () => {\n if (profile.clientList.filter.district !== '') {\n return profile.clientList.filtersData.districts.find(elem => elem.district.id === profile.clientList.filter.district)?.municipalities.map((elem) => ({ 'id': elem.id, 'label': elem.name }))\n } else {\n return profile.clientList.filtersData.districts.flatMap(district => district.municipalities).map((elem) => ({ 'id': elem.id, 'label': elem.name }));\n }\n }\n\n const columns: F3MDataGridColumnProps[] = [\n { field: 'entity', headerName: i18n.t('profile.entity'), width: 40, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'nif', headerName: i18n.t('profile.nif'), width: 20, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'mobile', headerName: i18n.t('profile.mobilePhone'), width: 30, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'seeProfile', headerName: i18n.t('clientsList.seeProfile'), width: 10, sortable: false, type: 'node', align: 'center', headerAlign: 'center' },\n ]\n\n const rows: F3MDataGridRowData[] = isDefined(profile.clientList.data) ? profile.clientList.data.map((r, i) => (\n {\n id: r.clientID,\n entity: r.clientName,\n nif: r.clientVAT,\n mobile: r.clientMobile,\n seeProfile: {\n props.setViewClientProfileByPartner(r.clientID,r.clientName)\n props.setPreviousPath(PROFILE.CLIENTSLIST.PATH)\n props.push(PROFILE.FORM.PATH)\n }}>\n \n \n }\n )) : []\n\n const order = (e: React.MouseEvent) => {\n props.orderClientsList(e)\n props.loadClientsList()\n }\n\n const handleChangePage = (e: any, p: number) => {\n props.handleChangePage(e, p)\n props.loadClientsList()\n }\n\n const handleChangeRowsPerPage = (e: React.ChangeEvent) => {\n props.handleChangeRowsPerPage(e)\n props.loadClientsList()\n }\n\n return (\n <> \n {\n props.setViewClientProfileByPartner(null,null)\n props.push(PROFILE.FORM.PATH)\n }} >\n \n {i18n.t('button.goBack')}\n \n \n \n \n {i18n.t('clientsList.searchClient')}\n {i18n.t('clientsList.clientFilters')}\n \n\n \n \n \n \n \n ({ 'id': elem.id, 'label': elem.name }))}\n />\n \n \n \n \n ({ 'id': elem.district.id, 'label': elem.district.name }))}\n />\n \n \n \n \n \n props.handleFilterChange('renovateSimply', c)} name='RenovateSimply' />\n } label={i18n.t('clientsList.simplys').toLocaleUpperCase()} style={{color: theme.palette.grey[600]}}/>\n \n \n \n \n \n\n \n\n {i18n.t('common.results')}\n \n \n \n )\n}\n\nexport default connector(ClientsList)","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n cardTitleMarginBottom: {\n color: theme.palette.info.main,\n marginBottom: '30px'\n },\n cardTitle: {\n color: theme.palette.info.main,\n },\n cardSubtitle: {\n color: theme.palette.primary.main,\n marginTop: '10px',\n marginBottom: '8px',\n },\n buttonSearch: {\n backgroundColor: theme.palette.info.main,\n color: theme.palette.common.white,\n fontSize: '12px',\n padding: '0px 5px',\n height: '32px',\n [theme.breakpoints.up('md')]: {\n width: '100px',\n },\n '&:hover': {\n backgroundColor: theme.palette.grey[500] \n }\n },\n gridRowSpacing: {\n [theme.breakpoints.up('md')]: {\n paddingRight: '20px',\n },\n },\n buttonSeeMore: {\n padding: '0px'\n },\n viewDetailsText: {\n color: theme.palette.primary.main\n },\n goBack: {\n color: theme.palette.primary.main,\n marginBottom: '10px'\n },\n icons: {\n '&:hover': {\n color: theme.palette.primary.main\n }\n },\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 { Box, Button, Checkbox, Divider, FormControlLabel, Grid, IconButton, Menu, MenuItem, Tooltip, Typography } from '@material-ui/core'\nimport { F3MBreadcrumbs, F3MButton, F3MCard, F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData, F3MDatePicker, F3MSelect, F3MTextField } from '../../../../components';\nimport theme from '../../../../assets/theme';\nimport useStyles from './styles';\nimport i18n from '../../../../i18n';\nimport { ApplicationState } from '../../../../types/store';\nimport { commonOperations, licensingValuesOperations } from '../../../../store/operations';\nimport { isDefined } from '../../../../utils';\nimport { ROUTES } from '../../../../constants';\nimport { useWindowSize } from '../../../../hooks';\nimport { formatField } from '../../../../components/F3MDataGrid/functions';\nimport { ArrowBack, MoreVert } from '@material-ui/icons';\nimport { tableAsExcel } from '../../../../utils/tableAsExcel'\nimport { licenseService } from '../../../../api';\n\nconst mapStateToProps = (state: ApplicationState) => ({\n licensingValuesState: state.licensingValues,\n profileState: state.profile\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n handleFilterChange: (n: string, v: any, vName?: string) => dispatch(licensingValuesOperations.handleFilterChange(n, v, vName)),\n handleChangePageSaas: (e: any, p: number) => dispatch(licensingValuesOperations.handleChangePageSaas(e, p)),\n handleChangeRowsPerPageSaas: (e: React.ChangeEvent) => dispatch(licensingValuesOperations.handleChangeRowsPerPageSaas(e)),\n handleChangePageSimply: (e: any, p: number) => dispatch(licensingValuesOperations.handleChangePageSimply(e, p)),\n handleChangeRowsPerPageSimply: (e: React.ChangeEvent) => dispatch(licensingValuesOperations.handleChangeRowsPerPageSimply(e)),\n orderLicensingValuesSimply: (e: React.MouseEvent) => dispatch(licensingValuesOperations.orderSimply(e)),\n orderLicensingValuesSaas: (e: React.MouseEvent) => dispatch(licensingValuesOperations.orderSaas(e)),\n getClientsFilters: () => dispatch(licensingValuesOperations.loadClientsFilters()),\n loadLicensingValuesSimply: () => dispatch(licensingValuesOperations.loadLicensingValuesSimply()),\n loadLicensingValuesSaas: () => dispatch(licensingValuesOperations.loadLicensingValuesSaas()),\n clearData: () => dispatch(licensingValuesOperations.clearData()),\n push: (p: string) => dispatch(push(p)),\n setViewClientProfileByPartner: (clientId: string | null, clientName: string | null) => dispatch(commonOperations.setViewClientProfileByPartner(clientId,clientName)),\n setPreviousPath: (path: string) => dispatch(commonOperations.setPreviousPath(path)),\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\nconst LicensingValues = (props: PropsFromRedux) => {\n const classes = useStyles()\n const { licensingValues } = props.licensingValuesState!\n const { SOFTWARE, PROFILE } = ROUTES\n const [resetPage, setResetPage] = useState(0);\n const size = useWindowSize()\n const { md } = theme.breakpoints.values\n const [menuSimply, setMenuSimply] = React.useState(null)\n const [menuSaas, setMenuSaas] = React.useState(null)\n\n useEffect(() => {\n props.getClientsFilters()\n props.loadLicensingValuesSimply()\n props.loadLicensingValuesSaas()\n\n return () => {\n props.clearData()\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleFilterChange = (name: string) => (value: any) => {\n if (name === 'renovateSimply' || name === 'startDate' || name === 'endDate') {\n props.handleFilterChange(name, value)\n } else {\n props.handleFilterChange(name, value.target.value)\n }\n }\n\n const handleFilterChangeSelect = (name: string) => (value: any) => {\n if (value.target.value === 'optionAll'){\n props.handleFilterChange(name, '')\n } else if (name === 'entityType'){\n const entityTypeName = licensingValues.filtersData.typesOfEntities.find(type => type.id === value.target.value)?.name\n props.handleFilterChange(name, value.target.value, entityTypeName )\n } else if (name === 'district'){\n const districtName = licensingValues.filtersData.districts.find(elem => elem.district.id === value.target.value)?.district.name\n props.handleFilterChange(name, value.target.value, districtName )\n } else if (name === 'municipality') {\n const municipalityName = licensingValues.filtersData.districts.flatMap(district => district.municipalities).find(elem => elem.id === value.target.value)?.name\n props.handleFilterChange(name, value.target.value, municipalityName )\n }\n }\n\n const getMunicipalitiesFiltered = () => {\n if (licensingValues.filter.districtId !== '') {\n return licensingValues.filtersData.districts.find(elem => elem.district.id === licensingValues.filter.districtId)?.municipalities.map((elem) => ({ 'id': elem.id, 'label': elem.name }))\n } else {\n return licensingValues.filtersData.districts.flatMap(district => district.municipalities).map((elem) => ({ 'id': elem.id, 'label': elem.name }));\n }\n }\n\n const columnsSimply: F3MDataGridColumnProps[] = [\n { field: 'entity', headerName: i18n.t('profile.entity'), width: 55, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'endDate', headerName: i18n.t('common.endDate'), width: 15, sortable: true, type: 'date', align: 'left', headerAlign: 'left' },\n { field: 'value', headerName: i18n.t('common.value'), width: 15, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'seeMore', headerName: '', width: 15, sortable: false, type: 'node', align: 'center', headerAlign: 'center' },\n ]\n\n const rowsSimply: F3MDataGridRowData[] = isDefined(licensingValues.simplyData.data) ? licensingValues.simplyData.data.map((r, i) => (\n {\n id: r.clientID,\n entity: r.clientName,\n endDate: r.endDate,\n value: r.value + \"€\",\n seeMore: {\n props.setViewClientProfileByPartner(r.clientID,r.clientName)\n props.setPreviousPath(PROFILE.LICENSINGVALUES.PATH)\n props.push(SOFTWARE.LICENSING.PATH)\n }}>\n {i18n.t('common.viewDetails')}\n \n }\n )) : []\n\n const columnsSaas: F3MDataGridColumnProps[] = [\n { field: 'entity', headerName: i18n.t('profile.entity'), width: 30, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'product', headerName: i18n.t('licensingValues.tableSaas.product'), width: 15, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'module', headerName: i18n.t('licensingValues.tableSaas.modules'), width: 15, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'numberOfUsers', headerName: i18n.t('licensingValues.tableSaas.numberOfUsers'), width: 5, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'numberOfRecords', headerName: i18n.t('licensingValues.tableSaas.numberOfRecords'), width: 5, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'frequency', headerName: i18n.t('licensingValues.tableSaas.frequency'), width: 10, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'endDate', headerName: i18n.t('common.endDate'), width: 5, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'value', headerName: i18n.t('common.value'), width: 5, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'seeMore', headerName: '', width: 10, sortable: false, type: 'node', align: 'center', headerAlign: 'center' },\n ]\n\n const rowsSaas: F3MDataGridRowData[] = isDefined(licensingValues.saasData.data) ? licensingValues.saasData.data.map((r, i) => (\n {\n id: r.clientId + '_' + i,\n entity: r.clientName,\n product: r.product,\n module: isDefined(r.module) ? r.module : \"-\",\n numberOfUsers: r.numberOfUsers,\n numberOfRecords: r.numberOfRecords,\n frequency: isDefined(r.frequency) ? r.frequency : \"-\",\n endDate: isDefined(r.endDate) ? formatField(r.endDate, \"date\") : \"-\",\n value: isDefined(r.value) ? r.value + \"€\" : \"-\",\n seeMore: {\n props.setViewClientProfileByPartner(r.clientId,r.clientName)\n props.setPreviousPath(PROFILE.LICENSINGVALUES.PATH)\n props.push(SOFTWARE.LICENSING.PATH)\n }}>\n {i18n.t('common.viewDetails')}\n \n }\n )) : []\n\n const orderSimply = (e: React.MouseEvent) => {\n props.orderLicensingValuesSimply(e)\n props.loadLicensingValuesSimply()\n }\n\n const handleChangePageSimply = (e: any, p: number) => {\n props.handleChangePageSimply(e, p)\n props.loadLicensingValuesSimply()\n }\n\n const handleChangeRowsPerPageSimply = (e: React.ChangeEvent) => {\n props.handleChangeRowsPerPageSimply(e)\n props.loadLicensingValuesSimply()\n }\n\n const orderSaas = (e: React.MouseEvent) => {\n props.orderLicensingValuesSaas(e)\n props.loadLicensingValuesSaas()\n }\n\n const handleChangePageSaas = (e: any, p: number) => {\n props.handleChangePageSaas(e, p)\n props.loadLicensingValuesSaas()\n }\n\n const handleChangeRowsPerPageSaas = (e: React.ChangeEvent) => {\n props.handleChangeRowsPerPageSaas(e)\n props.loadLicensingValuesSaas()\n }\n\n const menuSimplyOpen = (event: React.MouseEvent) => {\n setMenuSimply(event.currentTarget)\n }\n\n const menuSimplyClose = () => {\n setMenuSimply(null)\n }\n\n const menuSaasOpen = (event: React.MouseEvent) => {\n setMenuSaas(event.currentTarget)\n }\n\n const menuSaasClose = () => {\n setMenuSaas(null)\n }\n\n const exportTableAsExcelSimply = async () => {\n menuSimplyClose()\n\n const response = await licenseService.getExcelLicensingValuesSimply(licensingValues.filter,{...licensingValues.simplyData.filter, rowsPerPage: null })\n tableAsExcel.downloadExcel(response, i18n.t('fileNames.excel.licensingValuesSimply'))\n }\n\n const exportTableAsExcelSaas = async () => {\n menuSaasClose()\n \n const response = await licenseService.getExcelLicensingValuesSaas(licensingValues.filter,{...licensingValues.saasData.filter, rowsPerPage: null })\n tableAsExcel.downloadExcel(response, i18n.t('fileNames.excel.licensingValuesSaas'))\n }\n\n return (\n <>\n { \n props.push(PROFILE.FORM.PATH)\n props.setViewClientProfileByPartner(null,null) \n }} >\n \n {i18n.t('button.goBack')}\n \n \n \n {i18n.t('licensingValues.title')}\n {i18n.t('licensingValues.clientFilters')}\n \n\n \n \n \n \n \n ({ 'id': elem.id, 'label': elem.name }))}\n />\n \n \n \n \n ({ 'id': elem.district.id, 'label': elem.district.name }))}\n />\n \n \n \n \n \n props.handleFilterChange('renovateSimply', c)} name='RenovateSimply' />\n } label={i18n.t('licensingValues.simplys').toLocaleUpperCase()} style={{color: theme.palette.grey[600]}}/>\n \n \n\n \n {i18n.t('licensingValues.dateFilter')}\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 {i18n.t('product.simply')}\n \n \n \n \n \n \n \n\n \n {i18n.t('common.exportExcel')}\n \n \n \n\n \n \n\n \n \n \n {i18n.t('product.saas')}\n \n \n \n \n \n \n \n\n \n {i18n.t('common.exportExcel')}\n \n \n \n \n \n \n \n )\n}\n\nexport default connector(LicensingValues)","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n cardTitleMarginBottom: {\n color: theme.palette.info.main,\n marginBottom: '30px'\n },\n cardTitle: {\n color: theme.palette.info.main,\n },\n cardSubtitle: {\n color: theme.palette.primary.main,\n marginTop: '10px',\n marginBottom: '8px',\n },\n buttonSearch: {\n backgroundColor: theme.palette.info.main,\n color: theme.palette.common.white,\n fontSize: '12px',\n padding: '0px 5px',\n height: '32px',\n [theme.breakpoints.up('md')]: {\n width: '100px',\n },\n '&:hover': {\n backgroundColor: theme.palette.grey[500] \n }\n },\n goBack: {\n color: theme.palette.primary.main,\n marginBottom: '10px'\n },\n buttonEdit: {\n minWidth: '20px !important',\n marginLeft: '10px' \n },\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, Divider, Typography, Box, TableContainer, Table, TableBody, TableRow, TableCell, Grid } from '@material-ui/core'\nimport { F3MBreadcrumbs, F3MButton, F3MCard, F3MChart, F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData, F3MDialog, F3MSelect, F3MSnackbar, F3MSnackbarState, F3MTextField } from '../../../../components';\nimport theme from '../../../../assets/theme';\nimport useStyles from './styles';\nimport i18n from '../../../../i18n';\nimport { ApplicationState } from '../../../../types/store';\nimport { ROUTES } from '../../../../constants';\nimport { ArrowBack, Edit } from '@material-ui/icons';\n\nimport { billingVolumeOperations } from '../../../../store/operations';\nimport { isDefined } from '../../../../utils';\nimport { billingService } from '../../../../api';\n\nconst mapStateToProps = (state: ApplicationState) => ({\n billingVolumeState: state.billingVolume\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n push: (p: string) => dispatch(push(p)),\n handleFilterChange: (n: string, v: any) => dispatch(billingVolumeOperations.handleFilterChange(n, v)),\n loadData: () => dispatch(billingVolumeOperations.loadBillingVolume()),\n setAnnualGoals: (v: string) => dispatch(billingVolumeOperations.setAnnualGoals(v)),\n clearData: () => dispatch(billingVolumeOperations.clearData())\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\nconst BillingVolume = (props: PropsFromRedux) => {\n const classes = useStyles()\n const { PROFILE } = ROUTES\n const { billingVolume } = props.billingVolumeState!\n const [modal, setModal] = useState(false)\n const [annualGoalsEdit, setAnnualGoalsEdit] = useState(billingVolume.data?.summary?.annualGoals)\n const [loading, setLoading] = useState(false)\n const [snackbar, setSnackbar] = useState({\n open: false,\n severity: 'info',\n message: ''\n })\n const [yearSelect, setYearSelect] = useState(billingVolume.filter.year)\n\n const handleError = (message: string) => {\n setSnackbar({ open: true, severity: 'error', message: message })\n }\n\n const handleSuccess = (message: string) => {\n setSnackbar({ open: true, severity: 'success', message: message })\n }\n\n useEffect(() => {\n props.loadData()\n\n return () => {\n props.clearData()\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n\n const handleFilterChange = (name: string) => (value: any) => {\n if (name === 'year'){\n setYearSelect(value.target.value as string)\n } \n }\n\n const onSearch = () => {\n props.handleFilterChange('year',yearSelect)\n props.loadData()\n }\n\n const renderValueYear = () => {\n return yearSelect\n }\n\n const calculateFluctuation = () => {\n const salesValue = parseInt(billingVolume.data.summary.salesValue)\n const annualGoals = parseInt(billingVolume.data.summary.annualGoals)\n\n if (!isNaN(salesValue) && !isNaN(annualGoals) && annualGoals !== 0){\n const fluctuation = (parseInt(billingVolume.data.summary.salesValue) / parseInt(billingVolume.data.summary.annualGoals)) * 100\n return fluctuation.toFixed(2).toString() + '%'\n } else {\n return '-'\n }\n }\n\n const previousYear = (y?: number) => {\n if (y) { \n const previousYear = y - 1\n return previousYear.toString()\n } else {\n return \"\"\n }\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: previousYear(parseInt(billingVolume.filter.year)),\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: billingVolume.data?.results.map(result => result.valuePreviousYear)\n },\n {\n label: billingVolume.filter.year,\n backgroundColor: theme.palette.info.main,\n borderColor: theme.palette.info.main,\n borderWidth: 1,\n hoverBackgroundColor: theme.palette.info.light,\n hoverBorderColor: theme.palette.info.light,\n data: billingVolume.data?.results.map(result => result.valueYear)\n }\n ]\n }\n\n const columnsResults: F3MDataGridColumnProps[] = [\n { field: 'month', headerName: i18n.t('time.months.labelSingular'), width: 40, sortable: false, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'valuePreviousYear', headerName: i18n.t('common.value')+ ' ' + previousYear(parseInt(billingVolume.filter.year)), width: 20, sortable: false, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'valueCurrentYear', headerName: i18n.t('common.value') + ' ' + billingVolume.filter.year?.toString() , width: 20, sortable: false, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'fluctuation', headerName: i18n.t('billingVolume.fluctuationWithUnity'), width: 20, sortable: false, type: 'string', align: 'left', headerAlign: 'left' },\n ]\n\n const rowsResults: F3MDataGridRowData[] = isDefined(billingVolume.data.results) ? billingVolume.data.results.map((r, i) => (\n {\n id: r.month,\n month: dataset.labels[parseInt(r.month)-1],\n valuePreviousYear: r.valuePreviousYear+ \"€\",\n valueCurrentYear: r.valueYear + \"€\",\n fluctuation: r.fluctuation\n }\n )) : []\n \n const saveAnnualGoals = async () => {\n setLoading(true)\n await billingService.putAnnualGoals(annualGoalsEdit,billingVolume.filter.year)\n .then(() => {\n props.setAnnualGoals(annualGoalsEdit)\n handleSuccess(i18n.t('snackbar.updateSuccess'))\n })\n .catch((errorMessage) => {\n handleError(i18n.t('snackbar.updateError'))\n })\n setLoading(false)\n setModal(false)\n }\n\n return (\n <>\n props.push(PROFILE.FORM.PATH)} fullWidth={false} variant='text' >\n \n {i18n.t('button.goBack')}\n \n \n \n {i18n.t('billingVolume.title')}\n {i18n.t('billingVolume.filterTitle')}\n \n \n \n \n renderValueYear()}\n onChange={handleFilterChange('year')}\n items={isDefined(billingVolume.filtersData.years) ? billingVolume.filtersData.years.map((year) => ({ id: year, label: year })) : []}\n displayAll={false}\n />\n \n \n \n \n \n \n \n \n \n \n \n\n \n {i18n.t('billingVolume.summary')}\n \n \n \n \n \n {i18n.t('billingVolume.salesValue')}\n \n \n {billingVolume.data?.summary?.salesValue}{billingVolume.data?.summary?.salesValue !== '' ? '€' : '-' }\n \n \n \n \n {i18n.t('billingVolume.annualGoals')}\n \n \n
\n {billingVolume.data?.summary?.annualGoals}{!isNaN(parseInt(billingVolume.data?.summary?.annualGoals)) ? '€' : '-'}\n setModal(true)} color=\"primary\" fullWidth={false} variant='text' >\n \n \n
\n
\n
\n \n \n {i18n.t('billingVolume.currentRunLevel')}\n \n \n {calculateFluctuation()}\n \n \n
\n
\n
\n
\n setModal(false)}\n onSave={async () => await saveAnnualGoals()}\n DialogTitleProps={{ children: i18n.t('billingVolume.modalTitle') }}\n DialogContentProps={{ children: \n
\n {i18n.t('billingVolume.annualGoals')}\n \n setAnnualGoalsEdit(e.target.value)}\n InputLabelProps = {{shrink : false}}\n /> \n
\n }}\n />\n\n \n {i18n.t('common.results')}\n \n { billingVolume.data.totalYear !== '' && \n \n \n {i18n.t('common.total') + ' ' + previousYear(parseInt(billingVolume.filter.year))}: \n {billingVolume.data.totalPreviousYear + '€'} \n | \n {i18n.t('common.total') + ' ' + billingVolume.filter.year?.toString()}: \n {billingVolume.data.totalYear + '€'}\n | \n {i18n.t('billingVolume.fluctuation')}:\n {billingVolume.data.totalFluctuation}%\n \n \n }\n \n\n \n {i18n.t('billingVolume.graphBillingVolume')}\n \n \n \n \n )\n}\n\nexport default connector(BillingVolume)","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n cardTitle: {\n color: theme.palette.primary.main,\n marginBottom: '10px'\n },\n goBack: {\n color: theme.palette.primary.main,\n marginBottom: '10px'\n },\n listItem: {\n paddingTop: '0px', \n paddingLeft: '16px'\n },\n textList: {\n fontSize: '14px', \n marginLeft: '5px'\n },\n linkForm: {\n color: theme.palette.secondary.main\n },\n}))\n\nexport default useStyles","import React from 'react'\nimport { connect, ConnectedProps } from 'react-redux';\nimport { push } from 'connected-react-router'\n\nimport { Divider, List, Typography, ListItem, Link } from '@material-ui/core'\nimport { F3MBreadcrumbs, F3MButton, F3MCard, F3MTextField } from '../../../../components';\nimport theme from '../../../../assets/theme';\nimport useStyles from './styles';\nimport i18n from '../../../../i18n';\nimport { PARTNER_ROLES, ROUTES } from '../../../../constants';\nimport { ArrowBack } from '@material-ui/icons';\nimport { ApplicationState } from '../../../../types/store';\n\nconst mapStateToProps = (state: ApplicationState) => ({\n loginState: state.login,\n commonState: state.common\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n push: (p: string) => dispatch(push(p))\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\nconst Settings = (props: PropsFromRedux) => {\n const classes = useStyles()\n const { PROFILE } = ROUTES\n const { user } = props.loginState!\n const common = props.commonState!\n\n return (\n <>\n props.push(PROFILE.FORM.PATH)} fullWidth={false} variant='text' >\n \n {i18n.t('button.goBack')}\n \n {user?.role !== undefined && PARTNER_ROLES.includes(user.role) && !common.clientIdByPartnerView ?\n \n :\n \n }\n \n {user?.role !== undefined && PARTNER_ROLES.includes(user.role) && common.clientIdByPartnerView ? \n \n {i18n.t('profile.entity')}\n \n \n : <>} \n\n \n {i18n.t('profileSettings.eletronicBilling.title')}\n \n\n {i18n.t('profileSettings.eletronicBilling.description')}\n {i18n.t('profileSettings.eletronicBilling.benefits.title')}\n \n \n • \n {i18n.t('profileSettings.eletronicBilling.benefits.benefit1')}\n \n \n • \n {i18n.t('profileSettings.eletronicBilling.benefits.benefit2')}\n \n \n • \n {i18n.t('profileSettings.eletronicBilling.benefits.benefit3')}\n \n \n • \n {i18n.t('profileSettings.eletronicBilling.benefits.benefit4')}\n \n \n • \n {i18n.t('profileSettings.eletronicBilling.benefits.benefit5')}\n \n \n • \n {i18n.t('profileSettings.eletronicBilling.benefits.benefit6')}\n \n \n • \n {i18n.t('profileSettings.eletronicBilling.benefits.benefit7')}\n \n \n • \n {i18n.t('profileSettings.eletronicBilling.benefits.benefit8')}\n \n \n • \n {i18n.t('profileSettings.eletronicBilling.benefits.benefit9')}\n \n \n • \n {i18n.t('profileSettings.eletronicBilling.benefits.benefit10')}\n \n \n\n \n {i18n.t('profileSettings.eletronicBilling.membershipForm')}\n \n \n\n\n \n \n )\n}\n\nexport default connector(Settings)","import { makeStyles, createStyles, Theme } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n cardTitle: {\n color: theme.palette.primary.main,\n },\n goBack: {\n color: theme.palette.primary.main,\n marginBottom: '10px'\n },\n textSubEletBil: {\n fontSize: 24,\n lineHeight: '28px',\n textTransform: 'none', \n color: theme.palette.info.main\n },\n textSubEletBilBold: {\n fontSize: 24,\n fontWeight: 700,\n lineHeight: '28px',\n textTransform: 'none', \n color: theme.palette.info.main,\n marginBottom: '30px'\n },\n buttonSub: {\n backgroundColor: theme.palette.info.main,\n color: theme.palette.common.white,\n fontSize: '12px',\n padding: '0px 5px',\n height: '32px',\n width: '90%',\n '&:hover': {\n backgroundColor: theme.palette.grey[500] \n }\n },\n emptyIcon: {\n color: 'inherit !important',\n overflow: 'visible',\n width: '94px',\n height: '73px'\n },\n emptyStateDocBold: {\n fontWeight: 'bold',\n textTransform: 'none', \n color: theme.palette.info.main,\n marginTop: '40px'\n },\n emptyStateBalBold: {\n fontWeight: 'bold',\n textTransform: 'none', \n color: theme.palette.info.main,\n marginTop: '70px'\n },\n defaultEmptyState: {\n fontSize: '12px',\n textTransform: 'none', \n marginTop: '5px'\n },\n \n}))\n\nexport default useStyles","import React, { useEffect } from 'react'\nimport { connect, ConnectedProps } from 'react-redux';\nimport { push } from 'connected-react-router'\n\nimport { Button, Typography, Grid, Box } from '@material-ui/core'\nimport { F3MBreadcrumbs, F3MButton, F3MCard, F3MDataGrid, F3MDataGridColumnProps, F3MDataGridRowData, F3MTextField, F3MLineChart, F3MSelect, F3MPieChart} from '../../../../components';\nimport useStyles from './styles';\nimport i18n from '../../../../i18n';\nimport { ApplicationState } from '../../../../types/store';\nimport { PARTNER_ROLES, ROUTES } from '../../../../constants';\nimport { ArrowBack, Receipt } from '@material-ui/icons';\nimport { isDefined } from '../../../../utils';\nimport { debitDocumentsOperations } from '../../../../store/operations';\nimport { EmptyState1, EmptyState2 } from '../../../../assets/icons';\n\nconst mapStateToProps = (state: ApplicationState) => ({\n loginState: state.login,\n commonState: state.common,\n debitDocumentsState: state.debitDocuments\n})\n\nconst mapDispatchToProps = (dispatch: any) => ({\n push: (p: string) => dispatch(push(p)),\n loadDebitDocumentsTable: (clientId?: string) => dispatch(debitDocumentsOperations.loadDebitDocumentsTable(clientId)),\n loadDebitDocumentsExpiredChart: (months: number, clientId?: string) => dispatch(debitDocumentsOperations.loadDebitDocumentsExpiredChart(months,clientId)),\n loadDebitDocumentsCurrentBalanceChart: (clientId?: string) => dispatch(debitDocumentsOperations.loadDebitDocumentsBalanceChart(clientId)),\n handleChangePage: (e: any, p: number) => dispatch(debitDocumentsOperations.handleChangePage(e, p)),\n handleChangeRowsPerPage: (e: React.ChangeEvent) => dispatch(debitDocumentsOperations.handleChangeRowsPerPage(e)),\n order: (e: React.MouseEvent) => dispatch(debitDocumentsOperations.order(e)),\n clearData: () => dispatch(debitDocumentsOperations.clearData()),\n handleChartFilterChange: (v: string) => dispatch(debitDocumentsOperations.handleChartFilterChange(v)),\n\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\ntype PropsFromRedux = ConnectedProps\n\nconst DebitDocuments = (props: PropsFromRedux) => {\n const classes = useStyles()\n const { PROFILE } = ROUTES\n const { user } = props.loginState!\n const common = props.commonState!\n const { debitDocuments } = props.debitDocumentsState!\n\n useEffect(() => {\n if (common.clientIdByPartnerView) {\n props.loadDebitDocumentsTable(common.clientIdByPartnerView)\n props.loadDebitDocumentsExpiredChart(parseInt(debitDocuments.chartFilter.value),common.clientIdByPartnerView)\n props.loadDebitDocumentsCurrentBalanceChart(common.clientIdByPartnerView)\n } else {\n props.loadDebitDocumentsTable()\n props.loadDebitDocumentsExpiredChart(parseInt(debitDocuments.chartFilter.value))\n props.loadDebitDocumentsCurrentBalanceChart()\n }\n\n return () => {\n props.clearData()\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleFilterChange = () => (value: any) => {\n props.handleChartFilterChange(value.target.value)\n if (common.clientIdByPartnerView) {\n props.loadDebitDocumentsExpiredChart(value.target.value,common.clientIdByPartnerView)\n } else {\n props.loadDebitDocumentsExpiredChart(value.target.value)\n }\n }\n\n const columns: F3MDataGridColumnProps[] = [\n { field: 'document', headerName: i18n.t('debitDocuments.document'), width: 15, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'docDate', headerName: i18n.t('debitDocuments.documentDate'), width: 15, sortable: true, type: 'date', align: 'left', headerAlign: 'left' },\n { field: 'dueDate', headerName: i18n.t('debitDocuments.dueDate'), width: 15, sortable: true, type: 'date', align: 'left', headerAlign: 'left' },\n { field: 'daysOverdue', headerName: i18n.t('debitDocuments.daysOverdue'), width: 15, sortable: true, type: 'string', align: 'left', headerAlign: 'left', alertColor: true },\n { field: 'initialValue', headerName: i18n.t('debitDocuments.initialValue'), width: 15, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'currentValue', headerName: i18n.t('debitDocuments.currentValue'), width: 15, sortable: true, type: 'string', align: 'left', headerAlign: 'left' },\n { field: 'nature', headerName: i18n.t('debitDocuments.nature'), width: 10, sortable: true, type: 'string', align: 'left', headerAlign: 'left' }\n ]\n\n const rows: F3MDataGridRowData[] = isDefined(debitDocuments.tableData) ? debitDocuments.tableData.debitDocuments.map((r, i) => (\n {\n id: r.document,\n document: r.document,\n docDate: r.docDate,\n dueDate: r.dueDate,\n daysOverdue: r.daysOverdue,\n initialValue: r.initialValue + \"€\",\n currentValue: r.currentValue + \"€\",\n nature: r.nature\n }\n )) : []\n\n const order = (e: React.MouseEvent) => {\n props.order(e)\n if (common.clientIdByPartnerView) {\n props.loadDebitDocumentsTable(common.clientIdByPartnerView)\n } else {\n props.loadDebitDocumentsTable()\n }\n }\n\n const handleChangePage = (e: any, p: number) => {\n props.handleChangePage(e, p)\n if (common.clientIdByPartnerView) {\n props.loadDebitDocumentsTable(common.clientIdByPartnerView)\n } else {\n props.loadDebitDocumentsTable()\n }\n }\n\n const handleChangeRowsPerPage = (e: React.ChangeEvent) => {\n props.handleChangeRowsPerPage(e)\n if (common.clientIdByPartnerView) {\n props.loadDebitDocumentsTable(common.clientIdByPartnerView)\n } else {\n props.loadDebitDocumentsTable()\n }\n }\n\n const monthLabels = [\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 const labelsChart = debitDocuments.expiredDocChartData.map(item => monthLabels[item.month - 1])\n const dataChart = debitDocuments.expiredDocChartData.map(item => item.expiredDocuments)\n\n\n const labelsPieChart = [i18n.t('debitDocuments.totalPaid'), i18n.t('debitDocuments.totalOverdue')]\n const dataPieChart = [debitDocuments.currBalanceChartData.totalPaid, debitDocuments.currBalanceChartData.totalOverdue]\n\n return (\n <>\n props.push(common.previousPath)} fullWidth={false} variant='text' >\n \n {i18n.t('button.goBack')}\n \n\n {user?.role !== undefined && PARTNER_ROLES.includes(user.role) && !common.clientIdByPartnerView ?\n \n :\n \n }\n\n {user?.role !== undefined && PARTNER_ROLES.includes(user.role) && common.clientIdByPartnerView ? \n \n {i18n.t('profile.entity')}\n \n \n : <>} \n\n \n \n \n {i18n.t('debitDocuments.subEletronicBilling')}\n {i18n.t('debitDocuments.subEletronicBillingBold')}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {i18n.t('debitDocuments.expiredDocuments')}\n \n \n ({ 'id': elem.id, 'label': elem.value }))}\n />\n \n \n \n {!debitDocuments?.loadingExpiredChart &&\n (debitDocuments.expiredDocChartData.length !== 0 ?\n \n :\n \n \n {i18n.t('debitDocuments.emptyStatesText.expiredDocumentsBold')}\n {i18n.t('debitDocuments.emptyStatesText.default')}\n \n )\n }\n\n \n \n \n \n {i18n.t('debitDocuments.currentBalance')}\n {!debitDocuments?.loadingCurrentBalance &&\n (debitDocuments.expiredDocChartData.length !== 0 ?\n <>\n \n {debitDocuments.currBalanceChartData.total}€\n \n :\n \n \n {i18n.t('debitDocuments.emptyStatesText.currentBalanceBold')}\n {i18n.t('debitDocuments.emptyStatesText.default')}\n \n )\n }\n \n \n \n \n \n\n \n {i18n.t('debitDocuments.tableTitle')}\n \n \n \n \n )\n}\n\nexport default connector(DebitDocuments)","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'\nimport Profile from '../views/home/profile'\nimport ClientsList from '../views/home/profile/ClientsList/ClientsList'\nimport LicensingValues from '../views/home/profile/LicensingValues/LicensingValues'\nimport BillingVolume from '../views/home/profile/BillingVolume/BillingVolume'\nimport Settings from '../views/home/profile/Settings/Settings'\nimport DebitDocuments from '../views/home/profile/DebitDocuments'\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 PROFILE: {\n FORM:{\n PATH: '/profile',\n COMPONENT: Profile\n },\n CLIENTSLIST:{\n PATH: '/profile/clientsList',\n COMPONENT: ClientsList\n },\n LICENSINGVALUES:{\n PATH: '/profile/licensingValues',\n COMPONENT: LicensingValues\n },\n BILLINGVOLUME:{\n PATH: '/profile/billingVolume',\n COMPONENT: BillingVolume\n },\n SETTINGS:{\n PATH: '/profile/settings',\n COMPONENT: Settings,\n ELETRONICBILLING: {\n REDIRECT: 'https://formulario.f3m.pt/2024_adesao-a-fatura-eletronica-f3m/?utm_campaign=20240711_-_faturacao_eletronica_-_reenvio&utm_medium=email&utm_source=RD+Station',\n TARGET: '_blank'\n },\n },\n DEBITDOCUMENTS:{\n PATH: '/profile/debitDocuments',\n COMPONENT: DebitDocuments,\n ELETRONICBILLING: {\n REDIRECT: 'https://formulario.f3m.pt/2024_adesao-a-fatura-eletronica-f3m/?utm_campaign=20240711_-_faturacao_eletronica_-_reenvio&utm_medium=email&utm_source=RD+Station',\n TARGET: '_blank'\n },\n },\n }\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","export const PARTNER_ROLES = [\"TECHNOLOGICAL_PARTNER\" , \"RESELLER_PARTNER\" , \"POTENCIAL_RESELLER\" \n , \"POINT_OF_SALE_PARTNER\" , \"EX_PARTNER\" , \"RESELLER_PAARTNER_ME\"]\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 loadInstallationsFromClient: async (id: string) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.APPLICATION_DOWNLOAD_INSTALLATION_CLIENT,\n params : {\n userId: id\n } \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 loadUpgradesFromClient: async (id: string) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.APPLICATION_DOWNLOAD_UPGRADE_CLIENT,\n params : {\n userId: id\n } \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 loadUpdatesFromClient: async (id: string) => {\n const response = await request({\n method: 'GET',\n url: CONFIG.API_URL + ENDPOINTS.APPLICATION_DOWNLOAD_UPDATE_CLIENT,\n params : {\n userId: id\n } \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 { ProductsSimplyRequest, ProductsSimplyResponse, ProductsSaasRequest, ProductsSaasResponse, WebProductResponse } from '../../types/services/license'\nimport { LicensingValuesFilters, LicensingValuesSaasResponse, LicensingValuesSimplyResponse, TableSaasFilter, TableSimplyFilter } from '../../types/services/licensingValues'\nimport { download, request } from '../axios'\n\nexport const licenseService = {\n loadProductsSimply: async (data: ProductsSimplyRequest) => {\n const response = await request({\n method : 'POST',\n url : CONFIG.API_URL + ENDPOINTS.LICENSING_PRODUCTS_SIMPLY,\n data : data\n })\n\n return response\n },\n\n loadProductsSimplyFromClient: async (data: ProductsSimplyRequest, id: string) => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.LICENSING_PRODUCTS_SIMPLY_CLIENT,\n params : {\n userId: id,\n page: data.page,\n rowsPerPage: data.rowsPerPage,\n sortDirection: data.sortDirection,\n sortField: data.sortField\n }\n })\n\n return response\n },\n\n loadProductsSaas: async (data: ProductsSaasRequest) => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.LICENSING_PRODUCTS_SAAS,\n params : data\n })\n\n return response\n },\n\n loadProductsSaasFromClient: async (data: ProductsSaasRequest, id : string) => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.LICENSING_PRODUCTS_SAAS_CLIENT,\n params : {\n userId: id,\n page: data.page,\n rowsPerPage: data.rowsPerPage,\n sortDirection: data.sortDirection,\n sortField: data.sortField\n }\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 loadWebProductsFromClient: async (id: string) => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.LICENSING_WEB_PRODUCTS_CLIENT,\n params: {\n userId: id\n }\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\n loadLicensingValuesSimply: async (filters: LicensingValuesFilters, filtersTable: TableSimplyFilter) => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.LICENSING_VALUES_SIMPLY,\n params : {...filters, ...filtersTable}\n })\n\n return response\n },\n\n getExcelLicensingValuesSimply: async (filters: LicensingValuesFilters, filtersTable: TableSimplyFilter) => {\n const response = await download({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.LICENSING_VALUES_SIMPLY_EXCEL,\n params : {...filters, ...filtersTable}\n })\n\n return response\n },\n\n loadLicensingValuesSaas: async (filters: LicensingValuesFilters, filtersTable: TableSaasFilter) => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.LICENSING_VALUES_SAAS,\n params : {...filters, ...filtersTable}\n })\n\n return response\n },\n\n getExcelLicensingValuesSaas: async (filters: LicensingValuesFilters, filtersTable: TableSaasFilter) => {\n const response = await download({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.LICENSING_VALUES_SAAS_EXCEL,\n params : {...filters, ...filtersTable}\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 { request } from '../axios'\nimport { CONFIG, ENDPOINTS } from '../../constants'\nimport { BillingVolumeFilters, BillingVolumeResponse } from '../../types/services/billingVolume'\n\nexport const billingService = {\n loadBillingVolume: async (params: BillingVolumeFilters) => {\n const response = await request({\n method : 'GET',\n url : CONFIG.API_URL + ENDPOINTS.BILLING,\n params : params\n })\n\n return response\n },\n\n putAnnualGoals: async (annualGoals : string, year: string) => {\n const response = await request({\n method : 'PUT',\n url : CONFIG.API_URL + ENDPOINTS.BILLING_ANNUAL_GOALS,\n params : { annualGoals, year } \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 { LicensingProductSimplyFields, LicensingProductSaasFields, SortDirection } from '../../types'\nimport { ProductsSimplyResponse, ProductsSaasResponse, WebProductResponse } from '../../types/services/license'\nimport {\n ClearData,\n HandleProductPageChange,\n HandleProductRowsPerPageChange,\n LoadProductsSimplyError,\n LoadProductsSimplyRequest,\n LoadProductsSimplySuccess,\n LoadProductsSaasError,\n LoadProductsSaasRequest,\n LoadProductsSaasSuccess,\n LoadWebProductsError,\n LoadWebProductsRequest,\n LoadWebProductsSuccess,\n OrderProduct\n} from '../../types/store/licensing'\n\nconst licensingActions = {\n loadProductsSimplyRequest: (): LoadProductsSimplyRequest => {\n return {type: 'LICENSING_LOAD_PRODUCTS_SIMPLY_REQUEST'}\n },\n\n loadProductsSimplySuccess: (products: ProductsSimplyResponse): LoadProductsSimplySuccess => {\n return {type: 'LICENSING_LOAD_PRODUCTS_SIMPLY_SUCCESS', payload: products}\n },\n\n loadProductsSimplyError: (error: string): LoadProductsSimplyError => {\n return {type: 'LICENSING_LOAD_PRODUCTS_SIMPLY_ERROR', payload: error}\n },\n\n loadProductsSaasRequest: (): LoadProductsSaasRequest => {\n return {type: 'LICENSING_LOAD_PRODUCTS_SAAS_REQUEST'}\n },\n\n loadProductsSaasSuccess: (products: ProductsSaasResponse): LoadProductsSaasSuccess => {\n return {type: 'LICENSING_LOAD_PRODUCTS_SAAS_SUCCESS', payload: products}\n },\n\n loadProductsSaasError: (error: string): LoadProductsSaasError => {\n return {type: 'LICENSING_LOAD_PRODUCTS_SAAS_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, table: string): HandleProductPageChange => {\n return {type: 'LICENSING_HANDLE_PRODUCTS_PAGE_CHANGE', payload: {page, table}}\n },\n\n handleProductRowsPerPageChange: (rowsPerPage: number, table: string): HandleProductRowsPerPageChange => {\n return {type: 'LICENSING_HANDLE_PRODUCTS_ROWS_PER_PAGE_CHANGE', payload: {rowsPerPage, table}}\n },\n\n orderProduct: (sortDirection: SortDirection, sortField: LicensingProductSimplyFields | LicensingProductSaasFields, table: string): OrderProduct => {\n return {type: 'LICENSING_PRODUCTS_ORDER', payload: {sortDirection, sortField, table}}\n }\n}\n\nexport default licensingActions","import { licenseService } from '../../api'\nimport { LicensingProductSimplyFields, LicensingProductSaasFields, 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 loadProductsSimplyError,\n loadProductsSimplyRequest,\n loadProductsSimplySuccess,\n loadProductsSaasError,\n loadProductsSaasRequest,\n loadProductsSaasSuccess,\n loadWebProductsError,\n loadWebProductsRequest,\n loadWebProductsSuccess,\n orderProduct\n} = licensingActions\n\n\nconst licensingOperations = {\n handleProductChangePage: (event: any, page: number, table: string): AppThunkAction => async (dispatch, getState) => {\n dispatch(handleProductPageChange(page,table))\n },\n\n handleProductChangeRowsPerPage: (event: React.ChangeEvent, table: string): AppThunkAction => async (dispatch, getState) => {\n dispatch(handleProductRowsPerPageChange(parseInt(event.target.value),table))\n },\n\n loadSimplyProducts: (clientId?: string): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadProductsSimplyRequest())\n\n try {\n let response\n if (clientId){\n response = await licenseService.loadProductsSimplyFromClient(getState().licensing?.productsSimply.filter!, clientId)\n } else {\n response = await licenseService.loadProductsSimply(getState().licensing?.productsSimply.filter!)\n }\n \n if(response.isSuccess) {\n dispatch(loadProductsSimplySuccess(response.result))\n } else {\n dispatch(loadProductsSimplyError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadProductsSimplyError(e.response))\n }\n },\n\n loadSaasProducts: (clientId?: string): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadProductsSaasRequest())\n\n try {\n let response\n if (clientId){\n response = await licenseService.loadProductsSaasFromClient(getState().licensing?.productsSaas.filter!, clientId)\n } else {\n response = await licenseService.loadProductsSaas(getState().licensing?.productsSaas.filter!)\n }\n\n if(response.isSuccess) {\n dispatch(loadProductsSaasSuccess(response.result))\n } else {\n dispatch(loadProductsSaasError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadProductsSaasError(e.response))\n }\n },\n\n loadWebProducts: (clientId?: string): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadWebProductsRequest())\n\n try {\n let response\n if (clientId){\n response = await licenseService.loadWebProductsFromClient(clientId)\n } else {\n response = await licenseService.loadWebProducts()\n }\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, table: string): AppThunkAction => async (dispatch, getState) => {\n e.preventDefault()\n const id = e.currentTarget.parentElement!.id\n \n let sortDirection = undefined\n let sortField = undefined\n const state = getState().licensing\n if (state) {\n if (table === 'simply'){\n ({sortDirection, sortField} = state.productsSimply.filter!)\n } else {\n ({sortDirection, sortField} = state.productsSaas.filter!)\n }\n }\n \n let newSortDirection, newField\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 if (table === 'simply'){\n dispatch(orderProduct(newSortDirection as SortDirection, newField as LicensingProductSimplyFields, 'simply'))\n } else {\n dispatch(orderProduct(newSortDirection as SortDirection, newField as LicensingProductSaasFields, 'saas'))\n }\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 { ClientsListFields, SortDirection } from '../../types'\nimport { ClientsListResponse, ProfileClientsFilterResponse, ProfileFormResponse } from '../../types/services/profile'\nimport {\n LoadProfileFormRequest,\n LoadProfileFormSuccess,\n LoadProfileFormError, \n SetProfileImage,\n LoadProfileClientsFilters,\n HandleFilterChange,\n LoadClientsListRequest,\n LoadClientsListSuccess,\n LoadClientsListError,\n HandlePageChange,\n HandleRowsPerPageChange,\n OrderClientsList,\n ClearClientsList,\n ClearProfileForm\n} from '../../types/store/profile'\n\nconst profileActions = {\n loadProfileFormRequest: (): LoadProfileFormRequest => {\n return { type: 'PROFILE_LOAD_PROFILE_FORM_REQUEST' }\n },\n\n loadProfileFormSuccess: (data: ProfileFormResponse, image: string | null): LoadProfileFormSuccess => {\n return { type: 'PROFILE_LOAD_PROFILE_FORM_SUCCESS', payload: data, image: image }\n },\n\n loadProfileFormError: (error: string): LoadProfileFormError => {\n return { type: 'PROFILE_LOAD_PROFILE_FORM_ERROR', payload: error }\n },\n\n setProfileImage: (image : string): SetProfileImage => {\n return { type: 'PROFILE_SET_PROFILE_IMAGE', payload: image }\n },\n\n loadClientsFilters: (filters : ProfileClientsFilterResponse): LoadProfileClientsFilters =>{\n return { type: 'PROFILE_LOAD_CLIENTS_FILTERS', payload: filters }\n },\n\n handleFilterChange: (data: { name: string, value: string}): HandleFilterChange => {\n return { type: 'PROFILE_HANDLE_FILTER_CHANGE', payload: data }\n },\n\n handlePageChange: (page: number): HandlePageChange => {\n return { type: 'PROFILE_HANDLE_PAGE_CHANGE', payload: page }\n },\n\n handleRowsPerPageChange: (rowsPerPage: number): HandleRowsPerPageChange => {\n return { type: 'PROFILE_HANDLE_ROWS_PER_PAGE_CHANGE', payload: rowsPerPage }\n },\n\n loadClientsListRequest: (): LoadClientsListRequest => {\n return { type: 'PROFILE_LOAD_CLIENTS_LIST_REQUEST' }\n },\n\n loadClientsListSuccess: (data: ClientsListResponse): LoadClientsListSuccess => {\n return { type: 'PROFILE_LOAD_CLIENTS_LIST_SUCCESS', payload: data }\n },\n\n loadClientsListError: (error: string): LoadClientsListError => {\n return { type: 'PROFILE_LOAD_CLIENTS_LIST_ERROR', payload: error }\n },\n \n orderClientsList: (sortDirection: SortDirection, sortField: ClientsListFields): OrderClientsList => {\n return { type: 'PROFILE_CLIENTS_LIST_ORDER', payload: { sortDirection, sortField } }\n },\n\n clearClientsList: (): ClearClientsList => {\n return { type: 'CLEAR_CLIENTS_LIST' }\n },\n\n clearProfileForm: (): ClearProfileForm => {\n return { type: 'CLEAR_PROFILE_FORM' }\n }\n}\n\nexport default profileActions","import { profileService } from '../../api/services/profileService'\nimport { AppThunkAction } from '../../types/store'\nimport { ProfileActions } from '../../types/store/profile'\nimport profileActions from '../actions/profileActions'\nimport { ClientsListFields, SortDirection } from '../../types'\n\nconst {\n loadProfileFormRequest,\n loadProfileFormSuccess,\n loadProfileFormError,\n setProfileImage,\n loadClientsFilters,\n handleFilterChange,\n loadClientsListRequest,\n loadClientsListSuccess,\n loadClientsListError,\n handlePageChange,\n handleRowsPerPageChange,\n orderClientsList,\n clearClientsList,\n clearProfileForm\n} = profileActions\n\nconst profileOperations = {\n loadProfileForm: (clientId ?: string): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadProfileFormRequest())\n\n try {\n let response\n if (clientId){\n response = await profileService.getClientProfileByPartner(clientId)\n } else {\n response = await profileService.getProfileForm()\n }\n\n if(response.isSuccess) {\n if (response.result.clientImagePath){\n const imageResponse = await profileService.loadProfileImage(response.result.clientImagePath)\n if(imageResponse) {\n const { data, headers } = imageResponse\n const blob: Blob = new Blob([data], { type: headers['content-type'] })\n const image = window.URL.createObjectURL(blob)\n dispatch(loadProfileFormSuccess(response.result,image))\n } else {\n dispatch(loadProfileFormError(response.errorMessage))\n }\n } else {\n dispatch(loadProfileFormSuccess(response.result,null))\n }\n } else {\n dispatch(loadProfileFormError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadProfileFormError(e.response))\n }\n },\n\n setProfileImage: (image: string): AppThunkAction => (dispatch) => {\n dispatch(setProfileImage(image))\n },\n\n loadClientsFilters: (): AppThunkAction => async (dispatch, getState) => {\n try {\n const response = await profileService.getProfileClientsFilters()\n\n dispatch(loadClientsFilters(response.result))\n } catch(e) {\n dispatch(loadClientsFilters({typesOfEntities: [], districts: []}))\n }\n },\n\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 loadClientList: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadClientsListRequest())\n\n try {\n const response = await profileService.loadClientsList(getState().profile?.profile.clientList.filter!)\n \n if(response.isSuccess) {\n dispatch(loadClientsListSuccess(response.result))\n } else {\n dispatch(loadClientsListError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadClientsListError(e.response))\n }\n },\n\n orderClientsList: (e: React.MouseEvent): AppThunkAction => async (dispatch, getState) => {\n e.preventDefault()\n const id = e.currentTarget.parentElement!.id\n\n const {sortDirection, sortField} = getState().profile!.profile.clientList.filter\n let newSortDirection, newField\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(orderClientsList(newSortDirection as SortDirection, newField as ClientsListFields))\n },\n\n clearClientsList : () : AppThunkAction => async (dispatch, getState) => {\n dispatch(clearClientsList())\n },\n\n clearProfileForm : () : AppThunkAction => async (dispatch, getState) => {\n dispatch(clearProfileForm())\n }\n}\n\nexport default profileOperations","import { LicensingValuesSaasFields, LicensingValuesSimplyFields, SortDirection } from '../../types'\nimport { LicensingValuesSaasResponse, LicensingValuesSimplyResponse } from '../../types/services/licensingValues'\nimport { ProfileClientsFilterResponse } from '../../types/services/profile'\nimport {\n LicensingValuesLoadClientsFilters,\n HandleFilterChange,\n HandlePageChangeSimply,\n HandleRowsPerPageChangeSimply,\n HandlePageChangeSaas,\n HandleRowsPerPageChangeSaas,\n LoadLicensingValuesSaasRequest,\n LoadLicensingValuesSaasSuccess,\n LoadLicensingValuesSaasError,\n LoadLicensingValuesSimplyRequest,\n LoadLicensingValuesSimplySuccess,\n LoadLicensingValuesSimplyError,\n OrderSaas,\n OrderSimply,\n ClearData\n} from '../../types/store/licensingValues'\n\nconst LicensingValuesActions = {\n loadClientsFilters: (filters : ProfileClientsFilterResponse): LicensingValuesLoadClientsFilters =>{\n return { type: 'LICENSING_VALUES_LOAD_CLIENTS_FILTERS', payload: filters }\n },\n\n handleFilterChange: (data: { name: string, value: string, valueName?: string}): HandleFilterChange => {\n return { type: 'LICENSING_VALUES_HANDLE_FILTER_CHANGE', payload: data }\n },\n\n handlePageChangeSimply: (page: number): HandlePageChangeSimply => {\n return { type: 'LICENSING_VALUES_HANDLE_PAGE_CHANGE_SIMPLY', payload: page }\n },\n\n handleRowsPerPageChangeSimply: (rowsPerPage: number): HandleRowsPerPageChangeSimply => {\n return { type: 'LICENSING_VALUES_HANDLE_ROWS_PER_PAGE_CHANGE_SIMPLY', payload: rowsPerPage }\n },\n\n handlePageChangeSaas: (page: number): HandlePageChangeSaas => {\n return { type: 'LICENSING_VALUES_HANDLE_PAGE_CHANGE_SAAS', payload: page }\n },\n\n handleRowsPerPageChangeSaas: (rowsPerPage: number): HandleRowsPerPageChangeSaas => {\n return { type: 'LICENSING_VALUES_HANDLE_ROWS_PER_PAGE_CHANGE_SAAS', payload: rowsPerPage }\n },\n\n loadLicensingValuesSimplyRequest: (): LoadLicensingValuesSimplyRequest => {\n return {type: 'LICENSING_VALUES_LOAD_SIMPLY_REQUEST'}\n },\n\n loadLicensingValuesSimplySuccess: (data: LicensingValuesSimplyResponse): LoadLicensingValuesSimplySuccess => {\n return {type: 'LICENSING_VALUES_LOAD_SIMPLY_SUCCESS', payload: data}\n },\n\n loadLicensingValuesSimplyError: (error: string): LoadLicensingValuesSimplyError => {\n return {type: 'LICENSING_VALUES_LOAD_SIMPLY_ERROR', payload: error}\n },\n\n loadLicensingValuesSaasRequest: (): LoadLicensingValuesSaasRequest => {\n return {type: 'LICENSING_VALUES_LOAD_SAAS_REQUEST'}\n },\n\n loadLicensingValuesSaasSuccess: (data: LicensingValuesSaasResponse): LoadLicensingValuesSaasSuccess => {\n return {type: 'LICENSING_VALUES_LOAD_SAAS_SUCCESS', payload: data}\n },\n\n loadLicensingValuesSaasError: (error: string): LoadLicensingValuesSaasError => {\n return {type: 'LICENSING_VALUES_LOAD_SAAS_ERROR', payload: error}\n },\n\n orderSimply: (sortDirection: SortDirection, sortField: LicensingValuesSimplyFields): OrderSimply => {\n return { type: 'LICENSING_VALUES_ORDER_SIMPLY', payload: { sortDirection, sortField } }\n },\n\n orderSaas: (sortDirection: SortDirection, sortField: LicensingValuesSaasFields): OrderSaas => {\n return { type: 'LICENSING_VALUES_ORDER_SAAS', payload: { sortDirection, sortField } }\n },\n\n clearData: (): ClearData => {\n return { type: 'LICENSING_VALUES_CLEAR_DATA' }\n },\n}\n\nexport default LicensingValuesActions","import { BillingVolumeResponse } from '../../types/services/billingVolume'\nimport {\n HandleFilterChange,\n LoadBillingVolumeRequest,\n LoadBillingVolumeSuccess,\n LoadBillingVolumeError,\n ClearData,\n SetAnnualGoals\n} from '../../types/store/billingVolume'\n\nconst billingVolumeActions = {\n handleFilterChange: (data: { name: string, value: string}): HandleFilterChange => {\n return { type: 'BILLING_VOLUME_HANDLE_FILTER_CHANGE', payload: data }\n },\n\n loadBillingVolumeRequest: (): LoadBillingVolumeRequest => {\n return {type: 'BILLING_VOLUME_LOAD_REQUEST'}\n },\n\n loadBillingVolumeSuccess: (data: BillingVolumeResponse): LoadBillingVolumeSuccess => {\n return {type: 'BILLING_VOLUME_LOAD_SUCCESS', payload: data}\n },\n\n loadBillingVolumeError: (error: string): LoadBillingVolumeError => {\n return {type: 'BILLING_VOLUME_LOAD_ERROR', payload: error}\n },\n\n clearData: (): ClearData => {\n return { type: 'BILLING_VOLUME_CLEAR_DATA' }\n },\n\n setAnnualGoals: (data: string): SetAnnualGoals => {\n return { type: 'BILLING_VOLUME_SET_ANNUAL_GOALS', payload: data }\n },\n}\n\nexport default billingVolumeActions","import { DebitDocumentsFields, SortDirection } from '../../types'\nimport { DebitDocumentsExpiredChartResponse, DebitDocumentsTableResponse, DebitDocumentsTotalBalanceChartResponse } from '../../types/services/debitDocuments'\nimport {\n LoadDebitDocumentsRequest,\n LoadDebitDocumentsSuccess,\n LoadDebitDocumentsError,\n LoadDebitDocumentsBalanceChartRequest,\n LoadDebitDocumentsBalanceChartSuccess,\n LoadDebitDocumentsBalanceChartError,\n LoadDebitDocumentsExpiredChartRequest,\n LoadDebitDocumentsExpiredChartSuccess,\n LoadDebitDocumentsExpiredChartError,\n HandlePageChange,\n HandleRowsPerPageChange,\n Order,\n ClearData,\n HandleChartFilterChange\n} from '../../types/store/debitDocuments'\n\nconst DebitDocumentsActions = {\n handlePageChange: (page: number): HandlePageChange => {\n return { type: 'DEBIT_DOCUMENTS_HANDLE_PAGE_CHANGE', payload: page }\n },\n\n handleRowsPerPageChange: (rowsPerPage: number): HandleRowsPerPageChange => {\n return { type: 'DEBIT_DOCUMENTS_HANDLE_ROWS_PER_PAGE_CHANGE', payload: rowsPerPage }\n },\n\n loadDebitDocumentsTableRequest: (): LoadDebitDocumentsRequest => {\n return {type: 'DEBIT_DOCUMENTS_LOAD_TABLE_REQUEST'}\n },\n\n loadDebitDocumentsTableSucess: (data: DebitDocumentsTableResponse): LoadDebitDocumentsSuccess => {\n return {type: 'DEBIT_DOCUMENTS_LOAD_TABLE_SUCCESS', payload: data}\n },\n\n loadDebitDocumentsTableError: (error: string): LoadDebitDocumentsError => {\n return {type: 'DEBIT_DOCUMENTS_LOAD_TABLE_ERROR', payload: error}\n },\n\n loadDebitDocumentsExpiredChartRequest: (): LoadDebitDocumentsExpiredChartRequest => {\n return {type: 'DEBIT_DOCUMENTS_LOAD_EXPIRED_CHART_REQUEST'}\n },\n\n loadDebitDocumentsExpiredChartSucess: (data: DebitDocumentsExpiredChartResponse[]): LoadDebitDocumentsExpiredChartSuccess => {\n return {type: 'DEBIT_DOCUMENTS_LOAD_EXPIRED_CHART_SUCCESS', payload: data}\n },\n\n loadDebitDocumentsExpiredChartError: (error: string): LoadDebitDocumentsExpiredChartError => {\n return {type: 'DEBIT_DOCUMENTS_LOAD_EXPIRED_CHART_ERROR', payload: error}\n },\n\n loadDebitDocumentsBalanceChartRequest: (): LoadDebitDocumentsBalanceChartRequest => {\n return {type: 'DEBIT_DOCUMENTS_LOAD_BALANCE_CHART_REQUEST'}\n },\n\n loadDebitDocumentsBalanceChartSucess: (data: DebitDocumentsTotalBalanceChartResponse): LoadDebitDocumentsBalanceChartSuccess => {\n return {type: 'DEBIT_DOCUMENTS_LOAD_BALANCE_CHART_SUCCESS', payload: data}\n },\n\n loadDebitDocumentsBalanceChartError: (error: string): LoadDebitDocumentsBalanceChartError => {\n return {type: 'DEBIT_DOCUMENTS_LOAD_BALANCE_CHART_ERROR', payload: error}\n },\n\n\n order: (sortDirection: SortDirection, sortField: DebitDocumentsFields): Order => {\n return { type: 'DEBIT_DOCUMENTS_ORDER', payload: { sortDirection, sortField } }\n },\n\n clearData: (): ClearData => {\n return { type: 'DEBIT_DOCUMENTS_CLEAR_DATA' }\n },\n\n handleChartFilterChange: (data: string): HandleChartFilterChange => {\n return { type: 'DEBIT_DOCUMENTS_HANDLE_CHART_FILTER_CHANGE', payload: data }\n },\n}\n\nexport default DebitDocumentsActions","import { profileService } from '../../api/services/profileService'\nimport { AppThunkAction } from '../../types/store'\nimport { licensingValuesActions } from '../actions'\nimport { LicensingValuesActions } from '../../types/store/licensingValues'\nimport { licenseService } from '../../api/services'\nimport { LicensingValuesSaasFields, LicensingValuesSimplyFields, SortDirection } from '../../types'\n\nconst {\n loadClientsFilters,\n handleFilterChange,\n handlePageChangeSaas,\n handlePageChangeSimply,\n handleRowsPerPageChangeSaas,\n handleRowsPerPageChangeSimply,\n loadLicensingValuesSaasError,\n loadLicensingValuesSaasRequest,\n loadLicensingValuesSaasSuccess,\n loadLicensingValuesSimplyError,\n loadLicensingValuesSimplyRequest,\n loadLicensingValuesSimplySuccess,\n orderSaas,\n orderSimply,\n clearData\n} = licensingValuesActions\n\nconst licensingValuesOperations = {\n loadClientsFilters: (): AppThunkAction => async (dispatch, getState) => {\n try {\n const response = await profileService.getProfileClientsFilters()\n\n dispatch(loadClientsFilters(response.result))\n } catch(e) {\n dispatch(loadClientsFilters({typesOfEntities: [], districts: []}))\n }\n },\n\n handleFilterChange: (name: string, value: any, valueName?: string): AppThunkAction => async (dispatch, getState) => { \n dispatch(handleFilterChange({name, value, valueName}))\n },\n\n handleChangePageSaas: (event: any, page: number): AppThunkAction => async (dispatch, getState) => {\n dispatch(handlePageChangeSaas(page))\n },\n\n handleChangeRowsPerPageSaas: (event: React.ChangeEvent): AppThunkAction => async (dispatch, getState) => {\n dispatch(handleRowsPerPageChangeSaas(parseInt(event.target.value)))\n },\n\n handleChangePageSimply: (event: any, page: number): AppThunkAction => async (dispatch, getState) => {\n dispatch(handlePageChangeSimply(page))\n },\n\n handleChangeRowsPerPageSimply: (event: React.ChangeEvent): AppThunkAction => async (dispatch, getState) => {\n dispatch(handleRowsPerPageChangeSimply(parseInt(event.target.value)))\n },\n\n loadLicensingValuesSimply: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadLicensingValuesSimplyRequest())\n\n try {\n const response = await licenseService.loadLicensingValuesSimply(getState().licensingValues?.licensingValues.filter!,getState().licensingValues?.licensingValues.simplyData.filter!)\n \n if(response.isSuccess) {\n dispatch(loadLicensingValuesSimplySuccess(response.result))\n } else {\n dispatch(loadLicensingValuesSimplyError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadLicensingValuesSimplyError(e.response))\n }\n },\n\n loadLicensingValuesSaas: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadLicensingValuesSaasRequest())\n\n try {\n const response = await licenseService.loadLicensingValuesSaas(getState().licensingValues?.licensingValues.filter!,getState().licensingValues?.licensingValues.saasData.filter!)\n \n if(response.isSuccess) {\n dispatch(loadLicensingValuesSaasSuccess(response.result))\n } else {\n dispatch(loadLicensingValuesSaasError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadLicensingValuesSaasError(e.response))\n }\n },\n\n orderSimply: (e: React.MouseEvent): AppThunkAction => async (dispatch, getState) => {\n e.preventDefault()\n const id = e.currentTarget.parentElement!.id\n\n const {sortDirection, sortField} = getState().licensingValues!.licensingValues.simplyData.filter\n let newSortDirection, newField\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(orderSimply(newSortDirection as SortDirection, newField as LicensingValuesSimplyFields))\n },\n\n orderSaas: (e: React.MouseEvent): AppThunkAction => async (dispatch, getState) => {\n e.preventDefault()\n const id = e.currentTarget.parentElement!.id\n\n const {sortDirection, sortField} = getState().licensingValues!.licensingValues.saasData.filter\n let newSortDirection, newField\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(orderSaas(newSortDirection as SortDirection, newField as LicensingValuesSaasFields))\n },\n\n clearData: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(clearData())\n },\n}\n\nexport default licensingValuesOperations","import { AppThunkAction } from '../../types/store'\nimport { billingVolumeActions } from '../actions'\nimport { BillingVolumeActions } from '../../types/store/billingVolume'\nimport { billingService } from '../../api'\n\nconst {\n handleFilterChange,\n loadBillingVolumeRequest,\n loadBillingVolumeSuccess,\n loadBillingVolumeError,\n clearData,\n setAnnualGoals\n} = billingVolumeActions\n\nconst billingVolumeOperations = {\n handleFilterChange: (name: string, value: any): AppThunkAction => async (dispatch, getState) => { \n dispatch(handleFilterChange({name, value}))\n },\n\n loadBillingVolume: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadBillingVolumeRequest())\n\n try {\n const response = await billingService.loadBillingVolume(getState().billingVolume?.billingVolume.filter!)\n if(response.isSuccess) {\n dispatch(loadBillingVolumeSuccess(response.result))\n } else {\n dispatch(loadBillingVolumeError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadBillingVolumeError(e.response))\n }\n },\n\n clearData: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(clearData())\n },\n\n setAnnualGoals: (value: string): AppThunkAction => async (dispatch, getState) => { \n dispatch(setAnnualGoals(value))\n },\n}\n\nexport default billingVolumeOperations","import { AppThunkAction } from '../../types/store'\nimport { debitDocumentsActions } from '../actions'\nimport { DebitDocumentsActions } from '../../types/store/debitDocuments'\nimport { DebitDocumentsFields, SortDirection } from '../../types'\nimport { debitDocumentsService } from '../../api/services/debitDocumentsService'\n\nconst {\n loadDebitDocumentsTableRequest,\n loadDebitDocumentsTableSucess,\n loadDebitDocumentsTableError,\n loadDebitDocumentsExpiredChartRequest,\n loadDebitDocumentsExpiredChartSucess,\n loadDebitDocumentsExpiredChartError,\n loadDebitDocumentsBalanceChartRequest,\n loadDebitDocumentsBalanceChartSucess,\n loadDebitDocumentsBalanceChartError,\n handlePageChange,\n handleRowsPerPageChange,\n order,\n clearData,\n handleChartFilterChange\n} = debitDocumentsActions\n\nconst debitDocumentsOperations = {\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 loadDebitDocumentsTable: (clientId?: string): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadDebitDocumentsTableRequest())\n\n try {\n let response\n if (clientId){\n response = await debitDocumentsService.loadDebitDocumentsTableFromClient(getState().debitDocuments?.debitDocuments.tableFilter!, clientId)\n } else {\n response = await debitDocumentsService.loadDebitDocumentsTable(getState().debitDocuments?.debitDocuments.tableFilter!)\n }\n \n if(response.isSuccess) {\n dispatch(loadDebitDocumentsTableSucess(response.result))\n } else {\n dispatch(loadDebitDocumentsTableError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadDebitDocumentsTableError(e.response))\n }\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().debitDocuments!.debitDocuments.tableFilter\n let newSortDirection, newField\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 DebitDocumentsFields))\n },\n\n clearData: (): AppThunkAction => async (dispatch, getState) => {\n dispatch(clearData())\n },\n\n handleChartFilterChange: (data: string): AppThunkAction => async (dispatch, getState) => { \n dispatch(handleChartFilterChange(data))\n },\n\n loadDebitDocumentsExpiredChart: (months: number, clientId?: string): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadDebitDocumentsExpiredChartRequest())\n\n try {\n let response\n if (clientId){\n response = await debitDocumentsService.loadDebitDocumentsExpiredChartFromClient(months,clientId)\n } else {\n response = await debitDocumentsService.loadDebitDocumentsExpiredChart(months)\n }\n \n if(response.isSuccess) {\n dispatch(loadDebitDocumentsExpiredChartSucess(response.result))\n } else {\n dispatch(loadDebitDocumentsExpiredChartError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadDebitDocumentsExpiredChartError(e.response))\n }\n },\n\n loadDebitDocumentsBalanceChart: (clientId?: string): AppThunkAction => async (dispatch, getState) => {\n dispatch(loadDebitDocumentsBalanceChartRequest())\n\n try {\n let response\n if (clientId){\n response = await debitDocumentsService.loadDebitDocumentsTotalBalanceFromClient(clientId)\n } else {\n response = await debitDocumentsService.loadDebitDocumentsTotalBalance()\n }\n \n if(response.isSuccess) {\n dispatch(loadDebitDocumentsBalanceChartSucess(response.result))\n } else {\n dispatch(loadDebitDocumentsBalanceChartError(response.errorMessage))\n }\n } catch(e) {\n dispatch(loadDebitDocumentsBalanceChartError(e.response))\n }\n },\n}\n\nexport default debitDocumentsOperations","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, PROFILE, 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 {/* Profile */}\n \n \n \n \n \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 { ROUTES } from '../../constants'\nimport { CommonState, CommonActions } from '../../types/store/common'\nconst { HOMEPAGE } = ROUTES\n\nconst initialState: CommonState = {\n sidebarOpen: false,\n sidebarSoftwareOpen: false,\n sidebarServicesOpen: false,\n sidebarBackofficeOpen: false,\n logoutConfirmationOpen: false,\n clientIdByPartnerView: null,\n clientNameByPartnerView: null,\n previousPath: HOMEPAGE.PATH\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 case 'COMMON_SET_VIEW_CLIENT_PROFILE_BY_PARTNER': {\n const { clientId, clientName } = action.payload\n\n return { \n ...state, \n clientIdByPartnerView: clientId,\n clientNameByPartnerView: clientName, \n }\n }\n\n case 'COMMON_SET_PREVIOUS_PATH': {\n return {\n ...state,\n previousPath: action.payload\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 { LicensingProductSimplyFields, LicensingProductSaasFields } from \"../../types\"\nimport { LicensingActions, LicensingState } from \"../../types/store/licensing\"\n\nconst initialState: LicensingState = {\n productsSimply : {\n data: [],\n filter: {\n sortDirection: 'asc',\n sortField : 'applicationName',\n page : 1,\n rowsPerPage : 5\n },\n rowCount: 0,\n endDate: '',\n value: '-',\n loading: false\n },\n productsSaas : {\n data: [],\n filter: {\n sortDirection: 'asc',\n sortField : 'product',\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 const { page, table } = action.payload\n if (table === 'simply'){\n return { \n ...state,\n productsSimply: {\n ...state.productsSimply,\n filter: {\n ...state.productsSimply.filter,\n page: page + 1\n }\n }\n }\n } else {\n return { \n ...state,\n productsSaas: {\n ...state.productsSaas,\n filter: {\n ...state.productsSaas.filter,\n page: page + 1\n }\n }\n }\n }\n }\n\n case ('LICENSING_HANDLE_PRODUCTS_ROWS_PER_PAGE_CHANGE'): {\n const { rowsPerPage, table } = action.payload\n if (table === 'simply'){\n return { \n ...state,\n productsSimply: {\n ...state.productsSimply,\n filter: {\n ...state.productsSimply.filter,\n rowsPerPage: rowsPerPage,\n page: 1\n }\n }\n }\n } else {\n return { \n ...state,\n productsSaas: {\n ...state.productsSaas,\n filter: {\n ...state.productsSaas.filter,\n rowsPerPage: rowsPerPage,\n page: 1\n }\n }\n }\n }\n }\n\n case ('LICENSING_LOAD_PRODUCTS_SIMPLY_REQUEST'): {\n return {\n ...state,\n productsSimply: {\n ...state.productsSimply,\n loading: true\n }\n }\n }\n\n case ('LICENSING_LOAD_PRODUCTS_SIMPLY_SUCCESS'): {\n const { applications, rowCount, endDate, value } = action.payload\n return {\n ...state,\n productsSimply: {\n ...state.productsSimply,\n data: applications,\n rowCount: rowCount,\n endDate: endDate,\n value: value,\n loading: false\n },\n }\n }\n\n case ('LICENSING_LOAD_PRODUCTS_SIMPLY_ERROR'): {\n return {\n ...state,\n productsSimply: {\n ...state.productsSimply,\n loading: false\n }\n }\n }\n\n case ('LICENSING_LOAD_PRODUCTS_SAAS_REQUEST'): {\n return {\n ...state,\n productsSaas: {\n ...state.productsSaas,\n loading: true\n }\n }\n }\n\n case ('LICENSING_LOAD_PRODUCTS_SAAS_SUCCESS'): {\n const { saasValues, rowCount } = action.payload\n return {\n ...state,\n productsSaas: {\n ...state.productsSaas,\n data: saasValues,\n rowCount: rowCount,\n loading: false\n },\n }\n }\n\n case ('LICENSING_LOAD_PRODUCTS_SAAS_ERROR'): {\n return {\n ...state,\n productsSaas: {\n ...state.productsSaas,\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, table } = action.payload\n if (table === 'simply'){\n const sortFieldAux = sortField as LicensingProductSimplyFields\n return {\n ...state,\n productsSimply: {\n ...state.productsSimply,\n filter: {\n ...state.productsSimply.filter,\n page: 1,\n sortDirection: sortDirection,\n sortField: sortFieldAux\n }\n }\n }\n } else {\n const sortFieldAux = sortField as LicensingProductSaasFields\n return {\n ...state,\n productsSaas: {\n ...state.productsSaas,\n filter: {\n ...state.productsSaas.filter,\n page: 1,\n sortDirection: sortDirection,\n sortField: sortFieldAux\n }\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 { ProfileFormResponse } from '../../types/services/profile'\nimport { ProfileActions, ProfileState, ClientList } from '../../types/store/profile'\n\nconst initialStateForm : ProfileFormResponse = {\n clientName: '',\n clientTelephone: '',\n clientFax: '',\n clientAddress: '',\n clientWebsite: '',\n clientMobile: '',\n clientVAT: '',\n //clientAboutUs: '',\n clientImagePath: '',\n contacts: []\n}\n\nconst initialStateClientsList : ClientList = {\n filtersData: {\n typesOfEntities: [],\n districts: []\n },\n filter: {\n clientName: '',\n entityType: '',\n district: '',\n municipality: '',\n renovateSimply: false,\n rowsPerPage: 5,\n page: 1,\n sortDirection: 'asc',\n sortField: 'entity'\n },\n data: [],\n rowCount: 0,\n loading: false,\n}\n\nconst initialState: ProfileState = {\n profile: {\n loadingProfileForm: false,\n profileForm: initialStateForm,\n profileImage: null,\n clientList: initialStateClientsList\n }\n}\n\nconst profileReducer = (state = initialState, action: ProfileActions): ProfileState => {\n switch (action.type) {\n \n case('PROFILE_LOAD_PROFILE_FORM_REQUEST'): {\n return {\n ...state,\n profile: {\n ...state.profile,\n loadingProfileForm: true\n }\n }\n }\n\n case ('PROFILE_LOAD_PROFILE_FORM_SUCCESS'): {\n const { clientAddress, clientFax, clientImagePath, clientMobile,\n clientName, clientTelephone, clientVAT, clientWebsite, contacts} = action.payload\n const image = action.image\n\n return {\n ...state,\n profile: {\n ...state.profile,\n profileForm: {\n clientName: clientName,\n clientTelephone: clientTelephone,\n clientFax: clientFax,\n clientAddress: clientAddress,\n clientWebsite: clientWebsite,\n clientMobile: clientMobile,\n clientVAT: clientVAT,\n // clientAboutUs: clientAboutUs,\n clientImagePath: clientImagePath,\n contacts: contacts\n },\n profileImage: image,\n loadingProfileForm: false\n }\n }\n }\n\n case ('PROFILE_LOAD_PROFILE_FORM_ERROR'): {\n return {\n ...state,\n profile: {\n ...state.profile,\n loadingProfileForm: false,\n profileImage: null\n }\n }\n }\n\n case ('PROFILE_SET_PROFILE_IMAGE'): {\n return {\n ...state,\n profile: {\n ...state.profile,\n profileImage: action.payload,\n }\n }\n }\n \n case ('PROFILE_LOAD_CLIENTS_FILTERS'): {\n return {\n ...state,\n profile: {\n ...state.profile,\n clientList: {\n ...state.profile.clientList,\n filtersData: action.payload,\n } \n }\n }\n }\n\n case ('PROFILE_HANDLE_FILTER_CHANGE'): {\n const {name, value} = action.payload\n\n return { \n ...state,\n profile: {\n ...state.profile,\n clientList: {\n ...state.profile.clientList,\n filter: {\n ...state.profile.clientList.filter,\n [name]: value\n } \n } \n }\n }\n }\n\n case ('PROFILE_HANDLE_PAGE_CHANGE'): {\n return { \n ...state,\n profile: {\n ...state.profile,\n clientList: {\n ...state.profile.clientList,\n filter: {\n ...state.profile.clientList.filter,\n page: action.payload + 1\n\n } \n } \n }\n }\n }\n\n case ('PROFILE_HANDLE_ROWS_PER_PAGE_CHANGE'): {\n return { \n ...state,\n profile: {\n ...state.profile,\n clientList: {\n ...state.profile.clientList,\n filter: {\n ...state.profile.clientList.filter,\n rowsPerPage: action.payload,\n page: 1\n\n } \n } \n }\n }\n }\n\n case ('PROFILE_LOAD_CLIENTS_LIST_REQUEST'): {\n return { \n ...state,\n profile: {\n ...state.profile,\n clientList: {\n ...state.profile.clientList,\n loading: true\n } \n }\n }\n }\n\n case 'PROFILE_LOAD_CLIENTS_LIST_SUCCESS': {\n const { clients, rowCount } = action.payload\n\n return { \n ...state,\n profile: {\n ...state.profile,\n clientList: {\n ...state.profile.clientList,\n data: clients,\n rowCount: rowCount,\n loading: false\n } \n }\n }\n }\n\n\n case 'PROFILE_LOAD_CLIENTS_LIST_ERROR': {\n return { \n ...state,\n profile: {\n ...state.profile,\n clientList: {\n ...state.profile.clientList,\n loading: false\n } \n }\n }\n }\n\n case ('PROFILE_CLIENTS_LIST_ORDER'): {\n return {\n ...state,\n profile: {\n ...state.profile,\n clientList: {\n ...state.profile.clientList,\n filter: {\n ...state.profile.clientList.filter,\n page: 1,\n sortDirection: action.payload.sortDirection,\n sortField: action.payload.sortField\n }\n }\n }\n }\n }\n\n case ('CLEAR_CLIENTS_LIST'): {\n return {\n ...state,\n profile: {\n ...state.profile,\n clientList: initialStateClientsList\n }\n }\n }\n\n case ('CLEAR_PROFILE_FORM'): {\n return {\n ...state,\n profile: {\n ...state.profile,\n profileForm: initialStateForm\n }\n }\n }\n\n default:\n return state\n }\n}\n\nexport default profileReducer","import { LicensingValuesActions, LicensingValuesState } from '../../types/store/licensingValues'\n\nconst initialState: LicensingValuesState = {\n licensingValues: {\n filtersData: {\n typesOfEntities: [],\n districts: []\n },\n filter: {\n clientName: '',\n entityType: '',\n district: '',\n municipality: '',\n entityTypeId: '',\n districtId: '',\n municipalityId: '',\n renovateSimply: false,\n startDate: '',//moment().format('YYYY') + '-01-01',\n endDate: '',//moment().format('YYYY-MM-DD')\n },\n simplyData: {\n filter: {\n rowsPerPage: 5,\n page: 1,\n sortDirection: 'asc',\n sortField: 'entity',\n },\n data: [],\n rowCount: 0,\n loading: false\n },\n saasData: {\n filter: {\n rowsPerPage: 5,\n page: 1,\n sortDirection: 'asc',\n sortField: 'entity',\n },\n data: [],\n rowCount: 0,\n loading: false\n }\n }\n}\n\nconst LicensingValuesReducer = (state = initialState, action: LicensingValuesActions): LicensingValuesState => {\n switch (action.type) { \n case ('LICENSING_VALUES_LOAD_CLIENTS_FILTERS'): {\n return {\n ...state,\n licensingValues: {\n ...state.licensingValues,\n filtersData: action.payload, \n }\n }\n }\n\n case ('LICENSING_VALUES_HANDLE_FILTER_CHANGE'): {\n const {name, value, valueName} = action.payload\n if (name === 'entityType' || name === 'district' || name === 'municipality') {\n return { \n ...state,\n licensingValues: {\n ...state.licensingValues,\n filter: {\n ...state.licensingValues.filter,\n [name + 'Id']: value,\n [name]: valueName\n } \n }\n }\n } else {\n return { \n ...state,\n licensingValues: {\n ...state.licensingValues,\n filter: {\n ...state.licensingValues.filter,\n [name]: value\n } \n }\n }\n }\n }\n\n case ('LICENSING_VALUES_HANDLE_PAGE_CHANGE_SAAS'): {\n return { \n ...state,\n licensingValues: {\n ...state.licensingValues,\n saasData: {\n ...state.licensingValues.saasData,\n filter: {\n ...state.licensingValues.saasData.filter,\n page: action.payload + 1\n } \n } \n }\n }\n }\n\n case ('LICENSING_VALUES_HANDLE_PAGE_CHANGE_SIMPLY'): {\n return { \n ...state,\n licensingValues: {\n ...state.licensingValues,\n simplyData: {\n ...state.licensingValues.simplyData,\n filter: {\n ...state.licensingValues.simplyData.filter,\n page: action.payload + 1\n } \n } \n }\n }\n }\n\n case ('LICENSING_VALUES_HANDLE_ROWS_PER_PAGE_CHANGE_SAAS'): {\n return { \n ...state,\n licensingValues: {\n ...state.licensingValues,\n saasData: {\n ...state.licensingValues.saasData,\n filter: {\n ...state.licensingValues.saasData.filter,\n rowsPerPage: action.payload,\n page: 1\n } \n } \n }\n }\n }\n\n case ('LICENSING_VALUES_HANDLE_ROWS_PER_PAGE_CHANGE_SIMPLY'): {\n return { \n ...state,\n licensingValues: {\n ...state.licensingValues,\n simplyData: {\n ...state.licensingValues.simplyData,\n filter: {\n ...state.licensingValues.simplyData.filter,\n rowsPerPage: action.payload,\n page: 1\n } \n } \n }\n }\n }\n\n case ('LICENSING_VALUES_LOAD_SAAS_REQUEST'):{\n return {\n ...state,\n licensingValues: {\n ...state.licensingValues,\n saasData: {\n ...state.licensingValues.saasData,\n loading: true\n } \n }\n }\n }\n\n case ('LICENSING_VALUES_LOAD_SIMPLY_REQUEST'):{\n return {\n ...state,\n licensingValues: {\n ...state.licensingValues,\n simplyData: {\n ...state.licensingValues.simplyData,\n loading: true\n } \n }\n }\n }\n\n case ('LICENSING_VALUES_LOAD_SAAS_ERROR'):{\n return {\n ...state,\n licensingValues: {\n ...state.licensingValues,\n saasData: {\n ...state.licensingValues.saasData,\n loading: false\n } \n }\n }\n }\n\n case ('LICENSING_VALUES_LOAD_SIMPLY_ERROR'):{\n return {\n ...state,\n licensingValues: {\n ...state.licensingValues,\n simplyData: {\n ...state.licensingValues.simplyData,\n loading: false\n } \n }\n }\n }\n\n case ('LICENSING_VALUES_LOAD_SAAS_SUCCESS'):{\n const { licenseValuesSaas, rowCount } = action.payload\n return {\n ...state,\n licensingValues: {\n ...state.licensingValues,\n saasData: {\n ...state.licensingValues.saasData,\n data: licenseValuesSaas,\n rowCount: rowCount,\n loading: false\n } \n }\n }\n }\n\n case ('LICENSING_VALUES_LOAD_SIMPLY_SUCCESS'):{\n const { licenseValuesSimply, rowCount } = action.payload\n return {\n ...state,\n licensingValues: {\n ...state.licensingValues,\n simplyData: {\n ...state.licensingValues.simplyData,\n data: licenseValuesSimply,\n rowCount: rowCount,\n loading: false\n } \n }\n }\n }\n\n case ('LICENSING_VALUES_ORDER_SAAS'): {\n return { \n ...state,\n licensingValues: {\n ...state.licensingValues,\n saasData: {\n ...state.licensingValues.saasData,\n filter: {\n ...state.licensingValues.saasData.filter,\n page: 1,\n sortDirection: action.payload.sortDirection,\n sortField: action.payload.sortField\n }\n } \n }\n }\n }\n\n case ('LICENSING_VALUES_ORDER_SIMPLY'): {\n return { \n ...state,\n licensingValues: {\n ...state.licensingValues,\n simplyData: {\n ...state.licensingValues.simplyData,\n filter: {\n ...state.licensingValues.simplyData.filter,\n page: 1,\n sortDirection: action.payload.sortDirection,\n sortField: action.payload.sortField\n }\n } \n }\n }\n }\n\n case ('LICENSING_VALUES_CLEAR_DATA'): {\n return initialState\n }\n\n default:\n return state\n }\n}\n\nexport default LicensingValuesReducer","import moment from 'moment'\nimport { BillingVolumeActions, BillingVolumeState } from '../../types/store/billingVolume'\n\nconst currentYear = moment().year()\n\nconst initialState: BillingVolumeState = {\n billingVolume:{\n filtersData: {\n years: [currentYear.toString(),(currentYear-1).toString(),(currentYear-2).toString()]\n },\n filter: {\n year: currentYear.toString()\n },\n data:{\n summary: {\n salesValue : '',\n annualGoals: ''\n },\n results: [],\n totalPreviousYear: '',\n totalYear: '',\n totalFluctuation: ''\n },\n loading: false\n }\n}\n\nconst billingVolumeReducer = (state = initialState, action: BillingVolumeActions): BillingVolumeState => {\n switch (action.type) { \n case ('BILLING_VOLUME_HANDLE_FILTER_CHANGE'): {\n const {name, value} = action.payload\n return { \n ...state,\n billingVolume: {\n ...state.billingVolume,\n filter: {\n ...state.billingVolume.filter,\n [name]: value\n } \n }\n }\n }\n\n case ('BILLING_VOLUME_LOAD_REQUEST'):{\n return {\n ...state,\n billingVolume: {\n ...state.billingVolume,\n loading: true\n }\n }\n }\n\n case ('BILLING_VOLUME_LOAD_ERROR'):{\n return {\n ...state,\n billingVolume: {\n ...state.billingVolume,\n loading: false\n }\n }\n }\n\n case ('BILLING_VOLUME_LOAD_SUCCESS'):{\n const { summary, results, totalPreviousYear, totalYear, totalFluctuation } = action.payload\n return {\n ...state,\n billingVolume: {\n ...state.billingVolume,\n data: {\n summary: summary,\n results: results,\n totalPreviousYear: totalPreviousYear,\n totalYear: totalYear,\n totalFluctuation: totalFluctuation\n },\n loading: false,\n }\n }\n }\n\n case ('BILLING_VOLUME_SET_ANNUAL_GOALS'): {\n return {\n ...state,\n billingVolume: {\n ...state.billingVolume,\n data: {\n ...state.billingVolume.data,\n summary:{\n ...state.billingVolume.data.summary,\n annualGoals: action.payload\n },\n }\n }\n }\n }\n\n case ('BILLING_VOLUME_CLEAR_DATA'): {\n return initialState\n }\n\n default:\n return state\n }\n}\n\nexport default billingVolumeReducer","import i18n from '../../i18n'\nimport { DebitDocumentsActions, DebitDocumentsState } from '../../types/store/debitDocuments'\n\nconst initialState: DebitDocumentsState = {\n debitDocuments: {\n chartFilter: {\n options: [{id: '1', value: i18n.t('debitDocuments.lastMonth')},\n {id: '4', value: i18n.t('debitDocuments.last4Months')},\n {id: '6', value: i18n.t('debitDocuments.last6Months')},\n {id: '12', value: i18n.t('debitDocuments.lastYear')}],\n value: '6'\n },\n tableFilter: {\n rowsPerPage: 5,\n page: 1,\n sortDirection: 'asc',\n sortField: 'dueDate',\n },\n tableData: {\n rowCount: 0,\n debitDocuments: []\n },\n expiredDocChartData: [],\n currBalanceChartData: {\n total: 0,\n totalPaid: 0,\n totalOverdue: 0\n },\n loadingTable: false,\n loadingCurrentBalance: false,\n loadingExpiredChart: false,\n }\n}\n\nconst debitDocumentsReducer = (state = initialState, action: DebitDocumentsActions): DebitDocumentsState => {\n switch (action.type) { \n case ('DEBIT_DOCUMENTS_HANDLE_PAGE_CHANGE'): {\n return { \n ...state,\n debitDocuments: {\n ...state.debitDocuments,\n tableFilter: {\n ...state.debitDocuments.tableFilter,\n page: action.payload + 1\n } \n } \n }\n }\n\n case ('DEBIT_DOCUMENTS_HANDLE_ROWS_PER_PAGE_CHANGE'): {\n return { \n ...state,\n debitDocuments: {\n ...state.debitDocuments,\n tableFilter: {\n ...state.debitDocuments.tableFilter,\n rowsPerPage: action.payload,\n page: 1\n } \n } \n }\n }\n\n case ('DEBIT_DOCUMENTS_LOAD_TABLE_REQUEST'):{\n return {\n ...state,\n debitDocuments: {\n ...state.debitDocuments,\n loadingTable: true \n } \n }\n }\n\n case ('DEBIT_DOCUMENTS_LOAD_TABLE_ERROR'):{\n return {\n ...state,\n debitDocuments: {\n ...state.debitDocuments,\n loadingTable: false \n } \n }\n }\n\n case ('DEBIT_DOCUMENTS_LOAD_TABLE_SUCCESS'):{\n const { debitDocuments, rowCount } = action.payload\n return {\n ...state,\n debitDocuments: {\n ...state.debitDocuments,\n tableData: {\n ...state.debitDocuments.tableData,\n debitDocuments: debitDocuments,\n rowCount: rowCount,\n },\n loadingTable: false \n }\n }\n }\n\n case ('DEBIT_DOCUMENTS_ORDER'): {\n return { \n ...state,\n debitDocuments: {\n ...state.debitDocuments,\n tableFilter: {\n ...state.debitDocuments.tableFilter,\n page: 1,\n sortDirection: action.payload.sortDirection,\n sortField: action.payload.sortField\n }\n }\n }\n }\n\n case ('DEBIT_DOCUMENTS_CLEAR_DATA'): {\n return initialState\n }\n\n case ('DEBIT_DOCUMENTS_HANDLE_CHART_FILTER_CHANGE'): {\n return { \n ...state,\n debitDocuments: {\n ...state.debitDocuments,\n chartFilter: {\n ...state.debitDocuments.chartFilter,\n value: action.payload\n } \n } \n }\n }\n\n case ('DEBIT_DOCUMENTS_LOAD_EXPIRED_CHART_REQUEST'): {\n return {\n ...state,\n debitDocuments: {\n ...state.debitDocuments,\n loadingExpiredChart: true \n } \n }\n }\n\n case ('DEBIT_DOCUMENTS_LOAD_EXPIRED_CHART_ERROR'): {\n return {\n ...state,\n debitDocuments: {\n ...state.debitDocuments,\n expiredDocChartData: [],\n loadingExpiredChart: false \n } \n }\n }\n\n case ('DEBIT_DOCUMENTS_LOAD_EXPIRED_CHART_SUCCESS'): {\n return {\n ...state,\n debitDocuments: {\n ...state.debitDocuments,\n expiredDocChartData: action.payload,\n loadingExpiredChart: false \n }\n }\n }\n\n case ('DEBIT_DOCUMENTS_LOAD_BALANCE_CHART_REQUEST'):{\n return {\n ...state,\n debitDocuments: {\n ...state.debitDocuments,\n loadingCurrentBalance: true \n } \n }\n }\n\n case ('DEBIT_DOCUMENTS_LOAD_BALANCE_CHART_ERROR'):{\n return {\n ...state,\n debitDocuments: {\n ...state.debitDocuments,\n loadingCurrentBalance: false \n } \n }\n }\n\n case ('DEBIT_DOCUMENTS_LOAD_BALANCE_CHART_SUCCESS'):{\n return {\n ...state,\n debitDocuments: {\n ...state.debitDocuments,\n currBalanceChartData: action.payload,\n loadingCurrentBalance: false \n } \n }\n }\n\n\n default:\n return state\n }\n}\n\nexport default debitDocumentsReducer","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 profileReducer,\n licensingValuesReducer,\n billingVolumeReducer,\n debitDocumentsReducer\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 profile : profileReducer,\n licensingValues : licensingValuesReducer,\n billingVolume : billingVolumeReducer,\n debitDocuments : debitDocumentsReducer\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":""}