{"version":3,"sources":["assets/img/collection-background.jpg","assets/npd.png","assets/img/download-export.png","assets/img/ClicktoDownload.png","assets/img/Helpicon_png.png","assets/img/WatchtheVideoTutorial_png.png","assets/img/add-to-collection.png","theme/palette.js","theme/typography.js","theme/overrides/MuiIconButton.js","theme/overrides/MuiTableCell.js","theme/overrides/MuiTableHead.js","theme/overrides/MuiTableBody.js","theme/overrides/index.js","theme/overrides/MuiButton.js","theme/overrides/MuiPaper.js","theme/overrides/MuiTypography.js","theme/overrides/MuiToggleButtonGroup.js","theme/overrides/MuiToggleButton.js","theme/overrides/MuiTableRow.js","theme/index.js","components/Api/request.js","components/Api/Api.js","context/ApplicationContext.js","components/UserAvatar/UserAvatar.js","components/Api/ReportApi.js","components/MultiSelect/MultiSelect.js","context/DataSourceContext.js","components/SearchAutoComplete/SearchAutocomplete.js","components/AutoCompleteDropdown/AutoCompleteDropdown.js","components/Checkbox/CustomCheckbox.js","components/EnhancedTable/components/EnhancedTableHeader/EnhancedTableHeader.js","context/GridContext.js","context/SearchContext.js","components/EnhancedTable/components/EnhancedTableToolbar/EnhancedTableToolbar.js","components/EnhancedTable/components/CustomTablePagination/CustomTablePaginationActions.js","components/Dropdown/Dropdown.js","components/EnhancedTable/components/CustomTablePagination/CustomTablePagination.js","utilities/dateformat.js","utilities/numberformat.js","components/EnhancedTable/components/TableData/TableRowData.js","utilities/htmldecode.js","utilities/capitalize.js","components/EnhancedTable/components/TableData/TableRowHeader.js","components/EnhancedTable/components/TableData/TableData.js","components/EnhancedTable/components/TableData/LoadingTable.js","components/EnhancedTable/components/TableData/NoData.js","components/EnhancedTable/EnhancedTable.js","components/Dimension/WindowDimension.js","components/Logo/Logo.js","components/CustomSelect/CustomSelect.js","components/SelectedSearches/SelectedSearches.js","components/EnhancedTableCommands/DeleteButton.js","components/DownloadButton/DownloadButton.js","components/Api/CollectionApi.js","components/Impersonation/components/StartImpersonation.js","services/api/Impersonation.js","components/Impersonation/components/ImpersonationSelection.js","components/Impersonation/components/ImpersonationDetails.js","components/Impersonation/Impersonation.js","Topbar/Topbar/components/Search/Search.js","Topbar/Topbar/components/DataSourceSelection/DataSourceSelection.js","Topbar/Topbar/components/AdvancedSearch/AdvancedSearch.js","Topbar/Topbar/Topbar.js","Topbar/CCTopbar/components/Search/Search.js","Topbar/CCTopbar/components/Search/AdvancedSearch/Components/AdvancedSearchForm.js","Topbar/CCTopbar/components/Search/AdvancedSearch/AdvancedSearch.js","Topbar/CCTopbar/Topbar.js","Topbar/DCTopbar/components/Search/Search.js","Topbar/DCTopbar/Topbar.js","Topbar/NotFoundTopbar/NFTopbar.js","views/FileCenter/FileCenterToolBar.js","views/ClientCenter/Components/ActionCell.js","views/ClientCenter/Components/AdvancedSearchForm.js","views/ClientCenter/Components/Search.js","views/ClientCenter/Components/ClientCenterEnhancedToolbar.js","views/ClientCenter/ClientCenter.js","views/Odata/Collections/components/Toolbar/CollectionsEnhancedToolbar.js","views/Odata/oData/Components/ActionCell.js","views/Odata/oData/Components/AdvancedSearchForm.js","views/Odata/oData/Components/Search.js","views/Odata/oData/AvailableReports.js","layouts/Layout.js","views/Odata/Collections/CollectionsLayout.js","views/Odata/OdataCollectionsToolbar.js","views/Odata/Collections/CollectionsStart.js","views/Odata/Collections/Workbooks.js","views/FileCenter/BatchReports/Components/ConfirmDialog.js","views/FileCenter/BatchReports/Components/ActionCell.js","views/FileCenter/BatchReports/Components/AdvancedSearchForm.js","views/FileCenter/BatchReports/Components/Search.js","views/FileCenter/BatchReports/Components/EnhancedToolbar.js","views/FileCenter/BatchReports/BatchReports.js","views/FileCenter/FileRepository/Components/ActionCell.js","views/FileCenter/FileRepository/Components/Search.js","views/FileCenter/FileRepository/FileRepository.js","views/FileCenter/Reports/Components/ActionCell.js","views/FileCenter/Reports/Components/AdvancedSearchForm.js","views/FileCenter/Reports/Components/Search.js","views/FileCenter/Reports/Components/EnhancedToolbar.js","views/FileCenter/Reports/Reports.js","views/Odata/ODataCollection.js","views/Odata/Collections/components/SavedCollections/ActionCell.js","views/Odata/Collections/components/SavedCollections/SavedCollections.js","views/Odata/Collections/components/RecentlyViewedCollections/RecentlyViewedCollections.js","views/Odata/Collections/components/Search.js","layouts/SideBar/Components/HelpLanguages.js","Pages.js","layouts/SideBar/SideBarNav.js","layouts/SideBar/Sidebar.js","layouts/Footer/Footer.js","layouts/Main.js","layouts/NotFound.js","layouts/LayoutCompact.js","layouts/MainWithTopbar.js","views/Odata/Collections/CollectionsHome.js","views/Odata/Collections/CollectionsLayoutCompact.js","views/Odata/Collections/CollectionsList.js","views/Odata/Collections/CollectionsListHome.js","views/Odata/Collections/CreateCollection.js","views/FileCenter/FileCenterEnhancedToolbar.js","views/FileCenter/FileCenter.js","views/FlatFileAdminTool/Components/ReportEditor.js","views/FlatFileAdminTool/Components/JsonEditor.js","views/FlatFileAdminTool/Components/EnhancedTableToolbar.js","views/FlatFileAdminTool/Components/Search.js","views/FlatFileAdminTool/Components/ActionCell.js","views/FlatFileAdminTool/Components/TargetEnvironmentDropdown.js","views/FlatFileAdminTool/Components/AdvancedSearchForm.js","views/FlatFileAdminTool/FlatFileAdminTool.js","views/DeliveryConfig/Components/Search.js","views/DeliveryConfig/Components/ActionCell.js","views/DeliveryConfig/Components/EnhancedTableToolbar.js","views/DeliveryConfig/Components/TargetEnvironmentDropdown.js","views/DeliveryConfig/DeliveryConfig.js","views/NotFound/Components/AppTile.js","views/NotFound/NotFound.js","layouts/RouteWithLayout.js","routes.js","services/authService.js","App.js","serviceWorker.js","index.js"],"names":["module","exports","white","black","npd","blue","green","orange","yellow","red","darkBlue","gray","primary","contrastText","dark","main","light","secondary","colors","success","info","warning","error","text","blueGrey","link","background","default","paper","darkGray","chart","icon","divider","tableRowDivider","contentBackground","contentText","fontFamily","h1","color","palette","fontWeight","fontSize","letterSpacing","lineHeight","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","caption","overline","textTransform","root","backgroundColor","_objectSpread","typography","borderBottom","concat","padding","head","body","borderRight","borderTop","MuiButton","label","contained","boxShadow","containedSizeSmall","outlinedSizeSmall","MuiIconButton","MuiPaper","elevation1","MuiTableCell","MuiTableHead","MuiTableBody","MuiTypography","gutterBottom","marginBottom","MuiToggleButtonGroup","MuiToggleButton","borderRadius","fade","borderLeft","marginLeft","sizeSmall","height","MuiTableRow","theme","createMuiTheme","overrides","zIndex","appBar","drawer","client","axios","create","baseURL","process","headers","CancelToken","cancelCollection","request","options","autoCancel","undefined","url","cancelToken","c","then","response","data","failed","win","window","top","redirectPath","location","origin","assign","console","debug","catch","method","res","isAuthenticated","config","status","message","Promise","reject","useApi","props","getClientCenterDataSource","getWCDataSource","getFileCenterDataSources","getFlatFileDataSource","get","getDocuments","filter","groups","group","sortJson","sortInfo","page","pageSize","token","getDataSource","key","getFlatFiles","getAppInfo","downloadCCFile","groupId","documentId","open","encodeURIComponent","createZipFile","documents","Documents","downloadZipFile","filename","getCategories","getFormats","getOutputFolderOptions","flatFile","getMoveItFolderOptions","updateReport","updates","batchReport","getUserPreference","saveUserPreference","EmailOption","emailOption","unqueueReport","getBatchedReports","getBatchedReportsForoData","getFileRepo","downloadBatchedReport","scheduleId","downloadBatchedReportZip","reports","map","r","scheduleEventId","join","downloadFileRepo","fileRepositoryId","downloadFileRepoZip","getBatchAutoSuggest","params","searchString","getFFReportAutoSuggest","getFFCreatedByAutoSuggest","getFileRepoTitleAutoSuggest","getFileRepoFilenameAutoSuggest","getTargetEnvironments","getMoveItFilters","getImmediateFrequencies","updateImmediateFrequency","UniqueId","isRunDaemon","getStatusFilters","deleteReport","report","unqueueBatchReport","getReportOutputTypes","saveRowPerPage","rowsPerPageOptions","updateFlatFileOptions","reportId","flatFileOptions","schemaId","getTitleAutoSuggest","ApplicationContext","React","createContext","useStyles","makeStyles","display","marginRight","spacing","position","active","formControl","margin","popper","container","width","nameContainer","name","notYou","fontStyle","logout","paddingLeft","dialogTitleFont","avatar","SmallAvatar","withStyles","border","Avatar","UserAvatar","classes","_React$useState","useState","_React$useState2","_slicedToArray","anchorEl","setAnchorEl","_useState","_useState2","setOpen","buttonRef","useRef","user","useContext","appInfo","_React$useState3","_React$useState4","openPrefs","setOpenPrefs","_React$useState5","_React$useState6","openMsg","setOpenMsg","_React$useState7","_React$useState8","valuePrefsDB","setValuePrefsDB","_React$useState9","_React$useState10","valuePrefs","setValuePrefs","_props$showPreference","showPreferences","api","handleClosePrefs","handleCloseMsg","event","reason","useEffect","Boolean","createElement","Fragment","IconButton","ref","onClick","current","disableRipple","className","Badge","overlap","badgeContent","invisible","isImpersonating","firstName","substring","getAvatarChar","ClickAwayListener","onClickAway","Popper","placement","Paper","Typography","variant","Link","href","Button","canImpersonate","Impersonation","Dialog","onClose","aria-labelledby","DialogTitle","id","DialogContent","FormControl","component","FormLabel","RadioGroup","aria-label","value","onChange","target","FormControlLabel","control","Radio","DialogActions","option","Snackbar","anchorOrigin","vertical","horizontal","autoHideDuration","action","size","CloseIcon","useReportApi","getAll","pagingInfo","scheduleIds","autoSuggestReportName","keyword","autoCompleteGroupLabel","autoCompleteGroupList","paddingBottom","paddingTop","autoCompleteItem","textOverflow","overflow","whiteSpace","autoCompleteOption","maxHeight","input","flex","inputRoot","paddingRight","autoCompleteOutlineRoot","borderColor","common","tag","maxWidth","MultiSelect","inputTerm","handleAutoCompleteValueOnChange","handleOnEnter","_props$freeSolo","handleTextBoxOnChange","freeSolo","_props$placeholder","handleOnFocus","handleOnBlur","placeholder","_props$outlined","outlined","_props$hideClearButto","hideClearButton","rest","_objectWithoutProperties","_excluded","initialValue","Autocomplete","Object","multiple","defaultValue","filterSelectedOptions","autoComplete","clearOnEscape","getOptionLabel","disableClearable","groupLabel","groupUl","ChipProps","renderInput","TextField","InputProps","disableUnderline","inputProps","maxLength","autoCompleteRoot","fullWidth","DataSourceContext","SearchAutocomplete","setOptions","handleSearchRedirect","GetAutoSuggestOptions","_props$optionKey","optionKey","_props$optionId","optionId","length","result","Array","prototype","forEach","call","item","push","style","filterOptions","x","disableOpenOnFocus","inputValue","onKeyPress","onFocus","onBlur","renderOption","matches","match","parts","parse","part","index","highlight","AutoCompleteDropdown","_props$inputClasses","inputClasses","_props$label","_defineProperty","backgroundImage","outline","outlineOffset","checkedIcon","content","indeterminateIcon","CustomCheckbox","_props$tooltip","tooltip","Tooltip","title","Checkbox","clsx","EnhancedTableHeader","columns","order","orderBy","onRequestSort","numSelected","rowCount","onSelectAllClick","customHeaderComponent","noLeadingCheckbox","getSortField","headCell","sortField","field","TableHead","tableHead","TableRow","TableCell","indeterminate","checked","string","type","charAt","toUpperCase","slice","disablePadding","sortDirection","disableSort","TableSortLabel","tableSortLabelRoot","tableSortLabelIcon","iconDirectionAsc","tableSortLabelIconDirectionAsc","iconDirectionDesc","tableSortLabelIconDirectionDesc","direction","property","headCellLabelSorted","visuallyHidden","GridContext","SearchContext","lighten","minWidth","previous","transform","next","fontSizeSmall","CustomTablePaginationActions","forwardRef","backIconButtonProps","count","nextIconButtonProps","onChangePage","rowsPerPage","other","useTheme","disabled","PlayArrowIcon","Math","ceil","popperClose","pointerEvents","dropdown","textAlign","listStyle","backgroundClip","menuList","popperResponsive","breakpoints","down","float","marginTop","dropdownHeader","minHeight","cursor","dropdownItem","transition","clear","blackHover","primaryHover","dangerHover","dropdownItemRTL","dropdownDividerItem","buttonIcon","caret","verticalAlign","caretActive","caretRTL","noLiPadding","CustomDropdown","handleClose","param","handleCloseAway","contains","buttonText","dropdownList","buttonProps","dropup","hoverColor","left","rtlActive","caretClasses","Icon","aria-owns","aria-haspopup","currentTarget","disablePortal","Grow","in","transformOrigin","MenuList","role","MenuItem","prop","Divider","selected","defaultProps","pxToRem","flexGrow","toolbar","spacer","flexShrink","selectRoot","select","textAlignLast","selectIcon","menuItem","actions","rowsPerPageButton","defaultRowsPerPageOptions","CustomTablePagination","colSpan","_props$ActionsCompone","ActionsComponent","colSpanProp","_props$component","Component","onChangeRowsPerPage","_props$rowsPerPageOpt","_props$SelectProps","SelectProps","native","Toolbar","min","dateFormat","format","Moment","numberFormat","locale","formatOptions","Intl","NumberFormat","TableRowData","handleClick","isSelected","isRowHighlighted","row","keyName","ActionCell","actionCallback","localClasses","renderData","column","str","totalLength","fileNamelength","currency","showTooltip","tooltipField","RouterLink","tableCellLink","to","route","replace","dec","String","fromCharCode","callback","maximumFractionDigits","sizeRenderer","CustomCheckBox","Box","isChecked","tableRow","tableRowHighlight","tabIndex","tableCell","TableRowHeaderData","groupKey","desc","a","b","stableSort","array","cmp","stabilizedThis","el","sort","getSorting","TableData","rows","mode","enablePaging","totalCount","handleReportEdit","rowKeyProperty","remote","renderRowData","tableCellString","tableCellNumber","tableCellDate","renderLocalSortedData","renderLocalSortedDataWithPaging","TableRowHeader","renderRowHeader","LoadingTable","TableBody","_toConsumableArray","e","i","Skeleton","animation","getLoadingRow","NoData","rowSpan","align","valign","Info","getNoDataRow","borderCollapse","borderSpacing","captionSide","stickyHeader","compoundToolbar","flexWrap","table","tableWrapper","overflowX","clip","_props$mode","_props$defaultOrder","defaultOrder","defaultOrderBy","_props$totalCount","_props$page","_props$rowsPerPage","_props$enablePaging","_props$loading","loading","FileCenterToolbar","callerKey","FileCenterToolbarProps","EnhancedTableToolbarProps","EnhancedTableToolbar","_props$commands","commands","_props$persistSelecti","persistSelection","_props$isRowHighlight","setOrder","setOrderBy","setPage","setRowsPerPage","idsSelected","setIdsSelected","_React$useContext","rowsSelected","setRowsSelected","selectedCount","selectionModel","setSelectionModel","isFunction","functionToCheck","toString","indexOf","selectedIndex","newSelected","selection","_","flatten","reduce","rv","cloneElement","newPage","parseInt","Table","newSelecteds","n","hasSort","isDesc","newOrder","newOrderBy","tableBody","getData","getWindowDimensions","_window","innerWidth","innerHeight","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","addEventListener","removeEventListener","mixins","img","Logo","logo","npdlogo","rel","src","alt","selectEmpty","selectDisplayStyle","selectItemStyle","popOverStyle","selectPopupLabel","menuRoot","searchInput","CustomSelect","setKeyName","valueColumn","keyColumn","_props$showSearch","showSearch","context","selectOpen","setSelectOpen","filterValue","setFilterValue","dataSourceSelectedKey","setDataSourceSelectedKey","Select","find","stopPropagation","preventDefault","selectMenu","onOpen","renderValue","MenuProps","getContentAnchorEl","list","onKeyDown","d","focusable","viewBox","aria-hidden","toLocaleLowerCase","SelectedSearches","searches","prefixText","refineTable","refineTableCol3","refineTableCol1","iconButton","handleDelete","ClearIcon","refineTableCol2","flexDirection","alignItems","deleteConfirmationWrapper","buttonLabel","cancelButton","deleteButton","DeleteButton","onDelete","setIsDelete","DownloadButton","useCollectionService","downloadCollection","Id","createNewBundle","batchRequest","getBundle","add","deleteAll","keys","deleteISBN","deleteAllISBN","updateSort","sortMode","exportCollection","salesDateFrom","salesDateTo","selectAll","selectedIsbn","unSelectedIsbn","unselected","responseType","exportCollections","addBySearch","addByAdvancedSearch","addFromCollection","startImpersonating","startImpersonatingText","StartImpersonation","setView","path","mdiIncognito","ImpersonateService","impersonateUser","username","impersonateCompany","company","removeImpersonation","UserCompanyToggle","switchBase","opacity","transitions","thumb","track","focusVisible","_ref","Switch","focusVisibleClassName","topLabel","wrapper","toggleCompanyLabelSelected","toggleCompanyLabel","toggleUserLabelSelected","toggleUserLabel","inputControl","disabledbutton","ImpersonationSelection","companyImpersonation","impersonationType","setImpersonationType","_useState3","impersonating","impersonateAsCompany","impersonateAsUser","_useState4","setName","_useState5","_useState6","isSaving","setIsSaving","enqueueSnackbar","useSnackbar","isUserImpersonation","SetImpersonation","msg","ImpersonationService","parent","impersonationFailed","infoValue","infoWrapper","fill","department","changeButton","ImpersonationDetails","getImpersonateAsDepartments","departments","split","impersonateAsDepartment","view","shape","hr","searchIcon","menuItemSelected","Search","handleSearchTypeChange","handleSearch","handleClearClick","searchTypes","setInputTerm","searchType","_props$showClearButto","showClearButton","setActive","Grid","stype","Name","orientation","setSearchType","Close","SearchIcon","DataSourceSelection","dataSources","setDataSources","appKey","iconOpenRoot","iconRoot","AdvanceSeachButton","gridContainer","textBox","popoverRoot","AdvancedSearch","setBadgeCount","searchContext","AdvancedSearchForm","AdvancedSearchFormProps","filterCount","Popover","up","brand","dataSourceSelection","avatarBtnActive","profileLabel","shiftRight","Topbar","onSidebarOpen","brandName","setBackdrop","RightComponent","setMainHeaderRef","AppBar","Hidden","mdUp","MenuIcon","toLowerCase","closeButton","popperPaper","formControlLast","dense","endAdornment","pageTitle","search","justifyContent","useAutocompleteStyle","useHistory","searchTitle","setSearchTitle","setFilterCount","setDataSource","setModule","v","refresh","NFTopbar","toggleButtonGroupRoot","buttonSelected","buttonRoot","grey","FileCenterToolBar","tableView","setTableView","messageComponent","useLocation","history","appContext","tab","query","Redirect","hasFCAccess","ToggleButtonGroup","exclusive","hasCCAccess","ToggleButton","isSharedAccountImpersonation","useStyle","colorError","colorSuccess","_useSnackbar","closeSnackbar","handler","showOnRow","isExists","DownloadIcon","colorPrimary","Error","renderAction","_props$categories","categories","_props$formats","formats","_props$columns","setTitle","category","setCategory","setFormat","startdate","setStartdate","enddate","setEnddate","_React$useState11","_React$useState12","_React$useState13","orderByDirection","_React$useState14","setOrderByDirection","_React$useState15","_React$useState16","setPageSize","setFilters","shouldClear","log","ids","xs","OutlinedInput","MuiPickersUtilsProvider","utils","MomentUtils","KeyboardDatePicker","autoOk","inputVariant","InputAdornmentProps","positionEnd","date","disableFuture","term","document","getElementById","focus","SearchBase","alignRight","multidownload","gridContext","reportOutputTypeId","GenerateSelectedSearches","BatchIcon","RefreshIcon","alignSelf","ClientCenter","setRows","setLoading","setTotalCount","formatFilters","setFormatFilters","categoryFilters","setCategoryFilters","_React$useState17","_React$useState18","_React$useState19","_React$useState20","_React$useState21","_React$useState22","_React$useState23","_React$useState24","_React$useState25","_React$useState26","_React$useState27","_React$useState28","_React$useState29","_React$useState30","_useState7","_useState8","loadClientCenter","dateFrom","dateTo","categoryIds","formatIds","Provider","EnhancedTable","groupKeyId","newPageSize","ClientCenterEnhancedToolbar","enableZipCC","maxMultiFiledownload","notiKey","persist","notFound","found","item1","item2","alignLeft","CollectionsEnhancedToolbar","command","isEnabled","outputType","AddBoxTwoTone","statusId","DeleteIcon","UnqueueIcon","setReportName","AvailableReports","toolbarProps","EnhancedToolbar","folderName","setFolderName","reportName","batchStartdate","setBatchStartdate","batchEnddate","setBatchEnddate","availableReports","setAvailableReports","publicInd","setPublicInd","dataSourceContext","loadBatchedReports","statusIdNotIn","startRunDateFrom","startRunDateTo","createCollection","banner","backgroundRepeat","backgroundSize","dataSourceText","bannerTitle","bannerSubtitle","buttonPanel","contentPanel","addButton","disabledButton","headerTitle","tooltipWrapper","tooltipHeader","breadcrumb","breadcrumbArrow","editButton","ViewLayout","showToolbar","showAdd","allowAdd","children","bannerClass","dataSourceWeek","showBreadcrumb","breadcrumbText","breadcrumbLink","breadcrumbText2","breadcrumbLink2","showDataSourceTooltip","showDivider","showEdit","allowEdit","allowExport","exportTypes","onExport","onAdd","onEdit","hideDataSourceLabel","exportButtonProps","headerComponents","justify","backgroundPosition","BackgroundImage","CollectionsLayout","service","predicate","styleProp","iconStyleProp","OdataCollectionToolbar","messageProps","headerText","bannerSubtitle1","footerText","buttonBlue","paperLong","shortPaper","shortPaper1","fragment","visibility","shortPaper2","shortPaper3","shortPaper4","paperShortHight","buttonNoMargin","greenSubtitle","solidLine","CollectionsStart","pillProps","handleOpenHelp","help","windowOptions","elevation","class","HelpIcon","WatchTutorialIcon","Workbooks","collections","setCollections","CollectionsHome","wbLoading","toolBarProps","deleteBtn","ConfirmDialog","openDialog","confirmBody","okHandler","cancelHandler","disableElevation","runStatuses","setOpenDialog","setAction","showConfirmDialog","createdBy","s","_props$reportOutputTy","reportOutputTypesFilters","_props$statusFilters","statusFilters","batchedBy","setBatchedBy","batchStatus","setBatchStatus","handleChange","columnName","scheduleStatus","displayName","reportOutputType","icons","multidelete","Delete","BatchReports","batchReports","setBatchedReports","_React$useState31","_React$useState32","setStatusFilters","_React$useState33","_React$useState34","setReportOutputTypesFilters","enableZipFC","setFileName","FileRepo","fileRepo","setFileRepo","fileName","loadFileRepo","iconBtn","hidden","flexItem","flatfileFormatOptions","TableActions","handleDialogClose","handleDialogOpen","handleBatchClick","eventTypeId","reportOutputTypeID","immediateDeliveryInd","reportOutputOption","isFlatfile","notifyUser","priority","handleBatchEveryReleaseClick","isRunOnEachDataRelease","handleUnqueueClick","unqueueStatus","scheduleEventIds","isDisabled","canDownload","isPendingOrRunning","tooltipAlt","BatchLater","RemoveIcon","aria-describedby","DialogContentText","autoFocus","lastModifiedStartdate","setLastModifiedStartdate","lastModifiedEnddate","setLastModifiedEnddate","createdStartdate","setCreatedStartdate","createdEnddate","setCreatedEnddate","setStatus","setReports","dialogText","setDialogText","rpts","batch","handleBatch","targetEnvKey","handleBatchOnDataLoad","handleUnQueue","Reports","_React$useState35","_React$useState36","_React$useState37","_React$useState38","reportApi","loadAllReports","lastModifiedTo","lastModifiedFrom","batchDateTo","batchDateFrom","createdFrom","createdTo","limit","greenMessage","FileCenter","isFirstRun","Collection","FileCenterEnhancedToolbar","ExceloData","createdUserName","tableCellNameLink","tableCellTitle","tableCellCount","cellCount","exportContainer","toggleContainer","toggleIcon","closeIcon","boxSizing","tableSelectionCell","textFieldInputRoot","textFieldInput","textFieldFocused","borderWidth","textFieldStartAdornmentRoot","notchedOutline","w3p","w7p","w10p","w105","w10","SavedCollections","onChangeSelectionModel","setColumns","getColumns","dataset","enableExport","enableSelection","enableDelete","DeleteCommand","cardContent","_props$searchTypeOpti","searchTypeOptions","resolve","iconWrapper","menuPaper","HelpLanguages","openHelp","setOpenHelp","refGuide","setRefGuide","passwordGuide","setPasswordGuide","_useState9","_useState10","fcGuide","setfcGuide","_useState11","_useState12","batchGuide","setBatchGuide","_useState13","_useState14","selectedItem","setSelectedItem","anchorRef","helpUrlHelper","setTimeout","urls","handleGuidesOpen","prevOpen","aria-controls","FontAwesomeIcon","HelpOutlineIcon","anchorPosition","autoFocusItem","Slide","timeout","mountOnEnter","unmountOnExit","Pages","HomeIcon","isVisibleKey","FileCenterIcon","userColl","AdminToolIcon","DeliveryConfigIcon","DecisionKey","landingPage","navigation","List","CustomRouterLink","NavLink","activeClassName","activeclassname","SideBarNav","k","ListItem","disableGutters","decisionKeyUrl","HelpSection","drawerPaper","nav","Sidebar","CssBaseline","Drawer","anchor","footer","version","Footer","copyright","backdrop","overlay","bottom","right","notistack","Main","notistackRef","createRef","onClickDismiss","SnackbarProvider","maxSnack","SideBar","NF","NotFound","headerSubtitle","textDecoration","headerDivider","divider2","LayoutCompact","_props$onAdd","subTitle","bannerComponent","Fab","AddIcon","recentPanel","listPanel","CollectionsLayoutCompact","selections","hasOwnProperty","isSelectionModel","isArray","CollectionsList","fields","collection","setInitialLoad","useParams","CollectionsListHome","buttonDisabled","popupbuttonDisabled","popupLabel","popupInputs","popupButtons","saveButton","viewButton","selectInput","inputDisabled","inputError","inputName","inputFocused","inputNotchedOutline","inputAdornedStart","inputAdornment","inputAdornmentHidden","starIcon","starBox","titleCount","HtmlTooltip","BootstrapInput","focused","InputBase","CreateCollection","_props$hideTitle","searchParams","hideTitle","_useContext","collectionApi","dataSourceSelectedInfo","isSaved","setIssaved","collectionList","setCollectionList","selectedCollection","setSelectedCollection","collectionName","setCollectionName","collectionNameErrorMsg","setCollectionNameErrorMsg","setSavedId","StarIcon","iconSizeSmall","startIcon","displayEmpty","helperText","formInputRoot","adornedStart","createdByEnddate","setCreatedByEnddate","createdByStartdate","setCreatedByStartdate","showDownload","metaHeader","metadataTitle","fieldLabel","fieldValue","fieldCell","detailContainer","defaultDelimiterOptions","ReportEditor","_props$row","delimiter","setDilimiter","compression","setCompression","lf","setLf","unSuppressedAttributes","setUnSuppressedAttributes","attrAtEnd","setAttrAtEnd","setImmediateDeliveryInd","appendDateToFile","setAppendDateToFile","appendSchema","setAppendSchema","moveItFolders","setMoveItFolders","outputFolder","setOutputFolder","outputFolderOptions","setOutputFolderOptions","moveItFolderOptions","setMoveItFolderOptions","isTbValid","setIsTbValid","openEditorDialog","setOpenEditorDialog","moduleName","rDelimiter","crlf","appendDate","unSuppressAttributes","attributeAtEnd","regularFlatFileShare","ffOptions","moveITFolders","xl","lg","sm","CheckBox","f","getOptionDisabled","noOptionsText","arrow","col2Width","Cancel","del","zipped","UnSuppressAttributes","Save","isSU","JsonEditor","jsonObj","json","JSON","ifJson","ajv","Ajv","allErrors","verbose","disableSave","setDisableSave","newJson","setNewJson","Editor","newObj","stringify","onError","handleEdit","scheduleEventTypeId","summarySourceTypeId","summarySchemaName","limitEndDateId","timePeriodKey","setCreatedBy","setAppendDate","setZipped","val","setDelimiter","moveItShare","setMoveItShare","uniqueId","EditIcon","isRemoveFromQueueDisabled","TargetEnvironmentDropdown","setSelected","setTargetEnvKey","targets","setTargets","adornedEnd","checkBoxOptions","moveItFilters","setMoveItFilters","useStylesAgain","showEditor","hideEditor","topbarHolder","FlatFileAdminTool","flatFiles","setFlatFiles","editRow","setEditRow","editing","setEditing","editReportLoading","_React$useState39","_React$useState40","_React$useState41","_React$useState42","_React$useState43","_React$useState44","_React$useState45","_React$useState46","_React$useState47","_React$useState48","_React$useState49","_React$useState50","_React$useState51","_React$useState52","_React$useState53","_React$useState54","buildUpdates","getReport","onCheckboxClick","errorMessage","loadFlatFiles","oldRow","batchToDate","batchFromDate","Collapse","lastRunDurationInSec","currentRunDuration","dataSource","setImmediateFrequencies","summarySource","setSummarySource","rootFolder","setRootFolder","runDaemon","setRunDaemon","loadDataSources","dsId","DCTopbar","alignContent","AppTile","labelText","Card","raised","CardContent","cardRoot","RouteWithLayout","_props$layout","secure","layout","Layout","MainLayout","Route","render","matchProps","Routes","exact","from","home","hasCollectionsAccess","ODataCollection","WorkbooksListView","hasFFAAccess","DeliveryConfig","Auth","setIsAuthenticated","lastName","setAppInfo","hasAccess","windowRedirect","LinearProgress","App","_Component","_classCallCheck","_callSuper","arguments","_inherits","_createClass","ThemeProvider","BrowserRouter","basename","hostname","ReactDOM","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.6dee77e7.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/collection-background.c0f7a1c4.jpg\";","module.exports = __webpack_public_path__ + \"static/media/npd.27fbdb88.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAASpJREFUSA3tVD9Lw1AQv3fGr+BQCk71a7h0cZMOQsG90OGl7eAudH+8EAjZXBx1cHTv4NLOXYug36C2kHfNpQbyoskrdNAhB0d+f+5PckMAmmguULyAClSfs6i5sOcqsHzCC4sfQPCAmqNKmgXO8/39iYIguIyi6Kz8qqyxV9bL3PkFxjOfX5vNm9a6kzczZo29XKt6OheMhqMlIN0boBmAaXNmONUyr2ryt167QGl9x3VjOX4ggbdE0M8yxayxl9cw/i1qFwDQNI7jU26cSPnq4cmAkzFre4+mjKui9ldBQIv1dn2VNr/wACnlY3FQ5hHMi1oZ1y4Q6E3IJE9Kqy4AvtvNpk0GblCInq3bTNj0JwvD8HybJNcCTMtyBXwg4bPv+ytLb8i/u8AOWsRrarRCU2oAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAAsCAYAAAD1s+ECAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQflAgUCMjF4aQPmAAAAB3RFWHRBdXRob3IAqa7MSAAAAAx0RVh0RGVzY3JpcHRpb24AEwkhIwAAAAp0RVh0Q29weXJpZ2h0AKwPzDoAAAAOdEVYdENyZWF0aW9uIHRpbWUANfcPCQAAAAl0RVh0U29mdHdhcmUAXXD/OgAAAAt0RVh0RGlzY2xhaW1lcgC3wLSPAAAACHRFWHRXYXJuaW5nAMAb5ocAAAAHdEVYdFNvdXJjZQD1/4PrAAAACHRFWHRDb21tZW50APbMlr8AAAAGdEVYdFRpdGxlAKju0icAAAJqSURBVGhD7ZZNbxJRFIZfDGsKHYIbEmhs3bRxlkUTY0131oU1LhoVF/6Bwi/R/gFMihoXrePe9MON0iXJlHRRUwhsxAGGLgmJcmaOFYYPZe7AhGSe5GbuPTMnee7k3A/frw6YUa7xcybx5N3Ck3cLT94tPHm3mGl5R68H7XYb59/PUavV0Wg0jFgoFIIkzWPxxiL8fr8RcwrH5DVNw9GXY1QqFY70Eo1Gcf/eGsLhMEfEcUQ+l8vh20mOR6O5vZpAIpHgkRjCNV8qlQaKS5JkNCv0LeU4gZB8q9UySsVKMBjEi+dJo1HfCuVQrihC8sVi8WphjgPlUK4oQvK6rnOvF4rvvs1iN5sd+Y0oQvJaTeNeLxsPNsyySSY50s+w3HEQXrDd0D7u8/lwUbzgyGQRkg9LvXs2HVK08xYKBY4Mx5prByH5QTsJcXNpiXvmvj6IYbnjICQfj8eN49+KfEvmnnmyWqEcyhVF+ISlA+fjJ4VH/8fjR5uIxWI8so/wgiWJYaUxCPrWCXHCu5j9YWavxG7g6CE1bTx5t/Dk3cKT/xfV4wz2VB44iG15Vcng8AcPUMXhm31MwG8kE/jzp9jbeY1X1JRTjjHqPjJKpxnvuydvDwH5S+Q/sOTOe+QvzaiqfAbWU0hvp/AsdNYn2NTn8bDzLr21gOJXy+TGREA+AHnLlExvP4Uc4HCH8oE5qXf5Muo/OcjMLSwjQp3rEQT0aqfg7DOBsumeVApPVjjMNBs8G/UM5WDEnIhNHJdf2VxF/aqc+ut6Tj8x3x00Id9Z5qg9pnurpAWr3cXLNZH//ZcJlM30mOH7PPAbl/4EqqL6TFQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","import { colors } from '@material-ui/core';\n\nconst white = '#FFFFFF';\nconst black = '#000000';\n\n//const npdBlue = '#0078BE';\n//const npdGreen = '#82C341';\n//const npdOrange = '#EC7A08';\n//const npdYellow = '#F0AB00';\n//const npdRed = '#822433';\n//const npdDarkBlue = '#00517D';\n//const npdGray = '#8E908F';\n\nconst npdBlue = '#4E106F';\nconst npdGreen = '#FDD900';\nconst npdOrange = '#EF2A79';\nconst npdYellow = '#FDD900';\nconst npdRed = '#EF2A79';\nconst npdDarkBlue = '#000000';\nconst npdGray = '#000000';\n\nexport default {\n black,\n white,\n npd: {\n blue: npdBlue,\n green: npdGreen,\n orange: npdOrange,\n yellow: npdYellow,\n red: npdRed,\n darkBlue: npdDarkBlue,\n gray: npdGray\n },\n primary: {\n contrastText: white,\n dark: npdDarkBlue,\n main: npdBlue,\n light: '#99C9E5'\n },\n secondary: {\n contrastText: white,\n dark: colors.blue[900],\n main: '#99C9E5',\n light: colors.blue['A400']\n },\n success: {\n contrastText: white,\n dark: colors.green[900],\n main: colors.green[600],\n light: colors.green[400]\n },\n info: {\n contrastText: white,\n dark: colors.blue[900],\n main: colors.blue[600],\n light: colors.blue[400]\n },\n warning: {\n contrastText: white,\n dark: colors.orange[900],\n main: colors.orange[600],\n light: colors.orange[400]\n },\n error: {\n contrastText: white,\n dark: colors.red[900],\n main: colors.red[600],\n light: colors.red[400]\n },\n text: {\n primary: colors.blueGrey[700],\n secondary: colors.blueGrey[600],\n link: colors.blue[600]\n },\n background: {\n default: '#FCFDFE',\n paper: white,\n darkGray: '#565A5C'\n },\n chart: [\n\n ],\n icon: colors.blueGrey[600],\n divider: '#F8F8F8',\n tableRowDivider: '#D8D8D8',\n gray: npdGray,\n contentBackground: '#f2f8fb',\n contentText: '#565A5C'\n};\n","import palette from './palette';\n\nexport default {\n fontFamily: 'Calibri,Candara,Segoe,Optima,Arial,sans-serif;',\n h1: {\n color: palette.text.primary,\n fontWeight: 500,\n fontSize: '35px',\n letterSpacing: '-0.24px',\n lineHeight: '40px'\n },\n h2: {\n color: palette.text.primary,\n fontWeight: 'lighter',\n fontSize: '26px',\n letterSpacing: '0.5px',\n lineHeight: '33px'\n },\n h3: {\n color: palette.text.primary,\n fontWeight: 500,\n fontSize: '24px',\n letterSpacing: '-0.06px',\n lineHeight: '28px'\n },\n h4: {\n color: palette.text.primary,\n fontWeight: 500,\n fontSize: '20px',\n letterSpacing: '-0.06px',\n lineHeight: '24px'\n },\n h5: {\n color: palette.text.primary,\n fontWeight: 500,\n fontSize: '16px',\n letterSpacing: '-0.05px',\n lineHeight: '20px'\n },\n h6: {\n color: palette.text.primary,\n fontWeight: 600,\n fontSize: '12px',\n letterSpacing: '-0.05px',\n lineHeight: '20px'\n },\n subtitle1: {\n color: palette.text.primary,\n fontSize: '16px',\n letterSpacing: '-0.05px',\n lineHeight: '25px'\n },\n subtitle2: {\n color: palette.text.secondary,\n fontWeight: 400,\n fontSize: '14px',\n letterSpacing: '-0.05px',\n lineHeight: '21px'\n },\n body1: {\n color: palette.text.primary,\n fontSize: '14px',\n letterSpacing: '-0.05px',\n lineHeight: '21px'\n },\n body2: {\n color: palette.text.secondary,\n fontSize: '12px',\n letterSpacing: '-0.04px',\n lineHeight: '18px'\n },\n button: {\n color: palette.text.primary,\n fontSize: '14px'\n },\n caption: {\n color: palette.text.secondary,\n fontSize: '11px',\n letterSpacing: '0.33px',\n lineHeight: '13px'\n },\n overline: {\n color: palette.text.secondary,\n fontSize: '11px',\n fontWeight: 500,\n letterSpacing: '0.33px',\n lineHeight: '13px',\n textTransform: 'uppercase'\n }\n};\n","import palette from '../palette';\n\nexport default {\n root: {\n color: palette.icon,\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n }\n }\n};\n","import palette from '../palette';\nimport typography from '../typography';\n\nexport default {\n root: {\n ...typography.body1,\n borderBottom: `1px solid ${palette.divider}`,\n padding: 8\n }, \n head: {\n borderBottom: `1px solid ${palette.tableRowDivider}` \n },\n body: {\n borderRight: `1px solid ${palette.tableRowDivider}`,\n \"&:last-child\": {\n borderRight: 'none'\n }\n }\n};\n","import palette from '../palette';\n\nexport default {\n root: {\n backgroundColor: palette.background.default,\n borderTop: `1px solid ${palette.tableRowDivider}` \n }\n};\n","import palette from '../palette';\n\nexport default {\n root: {\n backgroundColor: palette.primary.contrastText \n }\n};\n","import MuiButton from './MuiButton';\nimport MuiIconButton from './MuiIconButton';\nimport MuiPaper from './MuiPaper';\nimport MuiTableCell from './MuiTableCell';\nimport MuiTableHead from './MuiTableHead';\nimport MuiTableBody from './MuiTableBody';\nimport MuiTypography from './MuiTypography';\nimport MuiToggleButtonGroup from './MuiToggleButtonGroup';\nimport MuiToggleButton from './MuiToggleButton';\nimport MuiTableRow from './MuiTableRow'\n\nexport default {\n MuiButton,\n MuiIconButton,\n MuiPaper,\n MuiTableCell,\n MuiTableHead,\n MuiTableBody,\n MuiTypography,\n MuiToggleButtonGroup,\n MuiToggleButton,\n MuiTableRow\n};\n","export default {\n label: {\n textTransform: 'none'\n },\n contained: {\n boxShadow:\n '0 1px 1px 0 rgba(0,0,0,0.14), 0 2px 1px -1px rgba(0,0,0,0.12), 0 1px 3px 0 rgba(0,0,0,0.20)',\n backgroundColor: '#FFFFFF'\n },\n\n containedSizeSmall: {\n fontWeight: 'bold',\n fontSize: 12\n },\n\n outlinedSizeSmall: {\n fontWeight: 'bold',\n fontSize: 12\n }\n};\n","export default {\n elevation1: {\n boxShadow: '0 0 0 1px rgba(63,63,68,0.05), 0 1px 3px 0 rgba(63,63,68,0.15)'\n }\n};\n","export default {\n gutterBottom: {\n marginBottom: 8\n }\n};\n","export default { \n};\n","import palette from '../palette';\nimport { fade } from '@material-ui/core/styles';\n\nexport default {\n root: {\n borderRadius: 14,\n color: palette.text.primary,\n backgroundColor: palette.white,\n textTransform: 'none',\n\n '&$selected': {\n color: palette.primary.contrastText,\n backgroundColor: palette.primary.main,\n '&:hover': {\n backgroundColor: fade(palette.primary.main, 0.15),\n },\n '& + &': {\n borderLeft: 0,\n marginLeft: 0,\n },\n },\n },\n\n sizeSmall: {\n height: 24,\n fontSize: 12,\n fontWeight: 'bold', \n },\n \n};\n","import palette from '../palette';\n\nexport default {\n root: {\n '&$selected': {\n backgroundColor: palette.background.default\n },\n '&:hover': {\n backgroundColor: palette.contentBackground\n },\n '&$hover': {\n '&:hover': {\n backgroundColor: palette.contentBackground\n }\n }\n }\n};\n","import { createMuiTheme } from '@material-ui/core';\n\nimport palette from './palette';\nimport typography from './typography';\nimport overrides from './overrides';\n\nconst theme = createMuiTheme({\n palette,\n typography,\n overrides,\n zIndex: {\n appBar: 1200,\n drawer: 1100\n }\n});\n\nexport default theme;\n","import axios from 'axios';\n\n/**\n * Create an Axios Client with defaults\n */\nconst client = axios.create({\n baseURL: process.env.REACT_APP_API_URL,\n headers: { 'Cache-Control': 'no-cache', 'Pragma': 'no-cache' },\n});\n\n\n/**\n * Request Wrapper with default success/error actions\n */\nconst request = function (options) {\n const onSuccess = function (response) {\n if (response.data.failed)\n {\n let win = window.top || window,\n redirectPath = win.location.origin;\n\n redirectPath = redirectPath + '/error';\n win.location.assign(redirectPath);\n }\n console.debug('Request Successful!', response);\n return response;\n }\n\n const onError = function (error) {\n client({\n url: '/account/isAuthenticated',\n method: 'GET'\n }).then((res) => {\n //if the error is due to authorization, redirect to login page.\n if (!res.data.isAuthenticated){\n let win = window.top || window,\n redirectPath = win.location.origin;\n\n redirectPath = redirectPath + '/home';\n win.location.assign(redirectPath);\n }\n });\n\n console.error('Request Failed:', error.config);\n\n if (error.response) {\n // Request was made but server responded with something\n // other than 2xx\n console.error('Status:', error.response.status);\n console.error('Data:', error.response.data);\n console.error('Headers:', error.response.headers);\n\n } else {\n // Something else happened while setting up the request\n // triggered the error\n console.error('Error Message:', error.message);\n }\n\n return Promise.reject(error.response || error.message);\n }\n\n if (options.autoCancel !== false) {\n if (cancelCollection[options.url] != undefined) {\n cancelCollection[options.url]();\n }\n options.cancelToken = new CancelToken(function executor(c) {\n // An executor function receives a cancel function as a parameter\n cancelCollection[options.url] = c;\n });\n }\n\n return client(options)\n .then(onSuccess)\n .catch(onError);\n}\n\nvar CancelToken = axios.CancelToken;\nvar cancelCollection = {};\n\nexport default request;","import request from './request'\n\nconst useApi = props => {\n \n\n //General Calls\n const get = (url) => {\n return request(url)\n };\n\n const isAuthenticated = () => {\n return request({\n url: '/account/isAuthenticated',\n method: 'GET'\n }); \n };\n const getAppInfo = () => {\n return request({\n url: 'account/getAppInfo',\n method: 'GET'\n });\n };\n const getDataSource = (key) => {\n switch(key){\n case 'cc': return getClientCenterDataSource();\n case 'fc': return getFileCenterDataSources();\n case 'ffa': return getFlatFileDataSource();\n case 'wc': return getWCDataSource();\n }\n };\n//Client Center Calls\n\n const downloadCCFile = (groupId, documentId, token) => {\n window.open('api/document/'+groupId+'/download/'+documentId+'?token='+encodeURIComponent(token)+'', '_blank', '', true);\n };\n\n const createZipFile = (documents) => {\n return request({\n url: 'api/document/createzip',\n method: 'POST',\n data: {\n Documents: documents\n }\n });\n };\n\n const downloadZipFile = (filename) => {\n window.open('api/document/downloadzip?filename='+encodeURIComponent(filename)+'', '_blank', '', true);\n };\n\n const getClientCenterDataSource = () => {\n return request({\n url: 'api/datasource/get',\n method: 'GET'\n });\n };\n\n const getWCDataSource = () => {\n return request({\n url: 'api/datasource/wc/get',\n method: 'GET'\n });\n };\n\n const getFormats = (token) => {\n return request({\n url: 'api/filter/formats',\n method: 'POST',\n data: {\n token: token\n }\n });\n }\n const getCategories = (token) => {\n return request({\n url: 'api/filter/categories',\n method: 'POST',\n data: {\n token: token\n }\n });\n }\n const getDocuments = (options) => {\n return request({\n url: 'api/document/list/paging',\n method: 'POST',\n data: {\n filter: options.filter,\n groups: options.group,\n sortJson: options.sortInfo,\n page: options.page,\n pageSize: options.pageSize,\n token: options.token\n }\n });\n };\n\n const getUserPreference = () => {\n return request({\n url: 'api/userpreference/get', \n method: 'GET'\n });\n }\n\n const saveRowPerPage = (options) => {\n return request({\n url: 'api/userpreference/save/rowperpage', \n method: 'POST',\n data: {\n rowsPerPageOptions: options.rowsPerPageOptions\n }\n });\n }\n\n const saveUserPreference = (options) => {\n return request({\n url: 'api/userpreference/post', \n method: 'POST',\n data: {\n EmailOption: options.emailOption\n }\n });\n }\n\n const getTitleAutoSuggest = (key) => {\n return request({\n url: 'api/document/autosuggest/title',\n method: 'GET',\n params: {\n searchString: key\n }\n })\n }\n\n //File center calls\n \n const getFileCenterDataSources = () => {\n return request({\n url: 'api/datasource/fc/get',\n method: 'GET'\n });\n };\n\n const getBatchedReports = (options) => {\n return request({\n url: 'api/filecenter/batchedreports',\n method: 'POST',\n data: {\n page: options.page,\n pageSize: options.pageSize,\n filter: options.filter,\n sortJson: options.sortInfo,\n token: options.token\n }\n });\n }\n\n const getBatchedReportsForoData = (options) => {\n return request({\n url: 'api/filecenter/batchedreportsodata',\n method: 'POST',\n data: {\n page: options.page,\n pageSize: options.pageSize,\n filter: options.filter,\n sortJson: options.sortInfo,\n token: options.token\n }\n });\n }\n\n const getFileRepo = (options) => {\n return request({\n url: 'api/filecenter/filerepositories',\n method: 'POST',\n data: {\n page: options.page,\n pageSize: options.pageSize,\n sortJson: options.sortInfo,\n filter: options.filter,\n token: options.token\n }\n });\n };\n\n const getBatchAutoSuggest = (key) => {\n return request({\n url: 'api/filecenter/autosuggest/batch',\n method: 'GET',\n params: {\n searchString: key\n }\n })\n }\n\n const getFileRepoTitleAutoSuggest = (key) => {\n return request({\n url: 'api/filecenter/autosuggest/title',\n method: 'GET',\n params: {\n searchString: key\n }\n })\n }\n\n const getFileRepoFilenameAutoSuggest = (key) => {\n return request({\n url: 'api/filecenter/autosuggest/filename',\n method: 'GET',\n params: {\n searchString: key\n }\n })\n }\n\n const downloadBatchedReport = (scheduleId, token) => {\n window.open('api/filecenter/batchedreports/download/'+scheduleId+'?token='+ encodeURIComponent(token), '_blank', '', true);\n }\n\n const downloadBatchedReportZip = (reports) => {\n var request = reports.map(r => r.scheduleEventId + \":\" + encodeURIComponent(r.token))\n \n window.open('api/filecenter/batchedreports/download/zip?r='+ request.join(), '_blank', '', true);\n }\n\n const downloadFileRepoZip = (reports) => {\n var request = reports.map(r => r.fileRepositoryId + \":\" + encodeURIComponent(r.token))\n \n window.open('api/filecenter/filerepositories/download/zip?r='+ request.join(), '_blank', '', true);\n }\n\n const downloadFileRepo = (fileRepositoryId, token) => {\n window.open('api/filecenter/filerepositories/download/'+fileRepositoryId+'?token='+ encodeURIComponent(token), '_blank', '', true);\n }\n\n const deleteReport = (report) => {\n return request({\n url: 'api/filecenter/deletereport',\n method: 'POST', \n data: report\n });\n }\n\n const unqueueBatchReport = (flatFile) => {\n return request({\n url: 'api/filecenter/unqueuereport',\n method: 'POST', \n data: flatFile\n });\n }\n\n const getReportOutputTypes = (flatFile) => {\n return request({\n url: 'api/filecenter/getReportOutputTypes',\n method: 'POST', \n });\n }\n \n\n //Flat File calls\n const getFlatFileDataSource = () => {\n return request({\n url: 'api/datasource/ffa/get',\n method: 'GET'\n });\n };\n\n const getFlatFiles = (options) => {\n return request({\n url: 'api/FlatFileAdmin/list/paging',\n method: 'POST',\n data: {\n page: options.page,\n pageSize: options.pageSize,\n sortJson: options.sortInfo,\n filter: options.filter,\n token: options.token\n }\n });\n };\n\n const getOutputFolderOptions = (flatFile) => {\n return request({\n url:'api/FlatFileAdmin/outputfolderoptions',\n method: 'POST',\n data: flatFile\n });\n };\n\n const getMoveItFolderOptions = (flatFile) => {\n return request({\n url: 'api/FlatFileAdmin/moveitfolderoptions', \n method: 'POST',\n data: flatFile\n });\n };\n\n const updateReport = (flatFile, updates) => {\n return request({\n url: 'api/FlatFileAdmin/updatereport', \n method: 'POST', \n data: {flatFile, updates}\n });\n }\n\n const batchReport = (flatFile) => {\n return request({\n url: 'api/FlatFileAdmin/batchreport',\n method: 'POST',\n data: flatFile\n });\n }\n\n const unqueueReport = (flatFile) => {\n return request({\n url: 'api/FlatFileAdmin/unqueuereport',\n method: 'POST', \n data: flatFile\n });\n }\n\n const getFFReportAutoSuggest = (key) => {\n return request({\n url: 'api/FlatFileAdmin/autosuggest/reportName',\n method: 'GET',\n params: {\n searchString: key\n }\n })\n }\n \n const getFFCreatedByAutoSuggest = (key) => {\n return request({\n url: 'api/FlatFileAdmin/autosuggest/createdBy',\n method: 'GET',\n params: {\n searchString: key\n }\n })\n }\n\n const getTargetEnvironments = () => {\n return request({\n url: 'api/FlatFileAdmin/environments',\n method: 'GET'\n })\n }\n\n const getMoveItFilters = () => {\n return request({\n url: 'api/FlatFileAdmin/moveitfolderfilters',\n method: 'GET'\n })\n }\n\n /*\n const getImmediateFrequencies = () => {\n return request({\n url: 'api/FlatFileAdmin/getimmediatefrequencies',\n method: 'GET'\n })\n }\n */\n\n const getImmediateFrequencies = (options) => {\n return request({\n url: 'api/FlatFileAdmin/getimmediatefrequencies',\n method: 'POST',\n data: {\n page: options.page,\n pageSize: options.pageSize,\n sortJson: options.sortInfo,\n filter: options.filter,\n token: options.token\n }\n });\n };\n\n const updateImmediateFrequency = (UniqueId, isRunDaemon) => {\n return request({\n url: 'api/FlatFileAdmin/updateimmediatefrequency', \n method: 'POST', \n data: {\n UniqueId: UniqueId, \n isRunDaemon: isRunDaemon\n }\n });\n }\n\n const getStatusFilters = () => {\n return request({\n url: 'api/FlatFileAdmin/statusfilters',\n method: 'GET'\n })\n }\n\n const updateFlatFileOptions = (reportId, flatFileOptions, schemaId) => {\n return request({\n url: 'api/FlatFileAdmin/saveFFOptions',\n method: 'POST',\n data: {\n reportId: reportId,\n flatFileOptions: flatFileOptions,\n schemaId: schemaId\n }\n })\n }\n\n return {\n get, \n getDocuments, \n getDataSource, \n getFlatFiles, \n isAuthenticated, \n getAppInfo, \n downloadCCFile, \n createZipFile,\n downloadZipFile,\n getCategories, \n getFormats, \n getFlatFileDataSource, \n getOutputFolderOptions, \n getMoveItFolderOptions, \n updateReport,\n batchReport,\n getUserPreference,\n saveUserPreference,\n unqueueReport,\n getBatchedReports,\n getBatchedReportsForoData,\n getFileRepo,\n downloadBatchedReport,\n downloadBatchedReportZip,\n downloadFileRepo,\n downloadFileRepoZip,\n getBatchAutoSuggest,\n getFFReportAutoSuggest,\n getFFCreatedByAutoSuggest,\n getFileRepoTitleAutoSuggest,\n getFileRepoFilenameAutoSuggest,\n getTargetEnvironments,\n getMoveItFilters,\n getImmediateFrequencies,\n updateImmediateFrequency,\n getStatusFilters,\n deleteReport,\n unqueueBatchReport,\n getReportOutputTypes,\n saveRowPerPage,\n updateFlatFileOptions,\n getTitleAutoSuggest\n };\n}\n\nexport default useApi;","import React from 'react'\n\nconst ApplicationContext = React.createContext(null);\n\nexport default ApplicationContext;","import React, { useEffect, useState } from 'react';\nimport useApi from 'components/Api/Api';\n\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport ApplicationContext from 'context/ApplicationContext';\n\n// @material-ui/core components\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport { Button, Avatar, Badge, Popper, ClickAwayListener, Typography, Link } from '@material-ui/core';\nimport Paper from '@material-ui/core/Paper';\n\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\n\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Radio from '@material-ui/core/Radio';\nimport RadioGroup from '@material-ui/core/RadioGroup';\n\nimport Snackbar from '@material-ui/core/Snackbar';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormLabel from '@material-ui/core/FormLabel';\n\nimport { Impersonation } from 'components';\n\nconst useStyles = makeStyles(theme => ({\n\n root: {\n display: 'flex',\n marginRight: theme.spacing(1.5),\n padding: theme.spacing(1),\n position: 'relative',\n //height: 64,\n borderRadius: 0, \n },\n\n active: {\n backgroundColor: '#32404E',\n '&:hover': {\n backgroundColor: '#32404E' \n }\n },\n\n formControl: {\n margin: theme.spacing(3)\n },\n\n popper: {\n backgroundColor: 'transparent',\n zIndex: 1000\n },\n paper: {\n margin: theme.spacing(0),\n backgroundColor: '#fff'\n },\n\n container: {\n width: '100%',\n padding: 0\n },\n nameContainer: {\n padding: 15\n },\n name: {\n color: '#000000'\n },\n notYou:{\n color:'#C6C6C6',\n fontStyle: 'italic'\n }, \n logout: {\n color:'#4E106F',\n fontStyle: 'italic',\n paddingLeft:'3px'\n },\n dialogTitleFont: {\n color: '#000000',\n fontWeight: '500',\n padding: '2px 15px',\n fontSize: 24\n },\n avatar: {\n color: '#fff',\n backgroundColor: theme.palette.primary.main,\n width: theme.spacing(4),\n height: theme.spacing(4)\n }\n}));\n\nconst SmallAvatar = withStyles(theme => ({\n root: {\n width: 16,\n height: 16,\n border: `2px solid ${theme.palette.background.paper}`,\n },\n}))(Avatar);\n\nUserAvatar.propTypes = {\n\n};\n\nexport default function UserAvatar(props) {\n\n const classes = useStyles();\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [open, setOpen] = useState(false);\n const buttonRef = React.useRef(null);\n const { appInfo } = React.useContext(ApplicationContext);\n const user = appInfo.user;\n const [openPrefs, setOpenPrefs] = React.useState(false);\n const [openMsg, setOpenMsg] = React.useState(false);\n const [valuePrefsDB, setValuePrefsDB] = React.useState('0');\n const [valuePrefs, setValuePrefs] = React.useState('0');\n const { showPreferences= false } = props;\n\n // Get Email Notification Preference\n const api = useApi();\n // useEffect(() => {\n // api.getUserPreference().then(res => {\n // setValuePrefsDB(res.data.emailOption);\n // setValuePrefs(res.data.emailOption);\n // })\n // }, []);\n\n const handleClickOpenPrefs = () => {\n api.getUserPreference().then(res => {\n setValuePrefsDB(res.data.emailOption);\n setValuePrefs(res.data.emailOption);\n });\n setOpenPrefs(true);\n };\n\n const handleClosePrefs = () => {\n setValuePrefs(valuePrefsDB);\n setOpenPrefs(false);\n };\n\n const handleApplyPrefs = () => {\n // Save Email Notification Preference\n let option = {emailOption: valuePrefs}\n api.saveUserPreference(option);\n setValuePrefs(valuePrefsDB);\n setOpenPrefs(false);\n setOpenMsg(true);\n }\n\n const handleClick = event => {\n if (anchorEl) {\n setAnchorEl(null);\n } else {\n setAnchorEl(buttonRef.current);\n }\n };\n\n const handleCloseAway = event => {\n\n if (!openPrefs) {\n setAnchorEl(null);\n }\n\n };\n\n const handleCloseMsg = (event, reason) => {\n if (reason === 'clickaway') {\n return;\n }\n\n setOpenMsg(false);\n };\n \n const handleChange = event => {\n setValuePrefs(event.target.value);\n };\n\n useEffect(() => {\n setOpen(Boolean(anchorEl));\n }, [anchorEl])\n \n const onComputesStyle = data => {\n let parent=buttonRef.current;\n data.styles.top = parent.offsetHeight;\n data.styles.left = window.innerWidth-data.popper.width;\n\n return data;\n };\n\n const getAvatarChar = () => {\n var name = user.firstName;\n return name ? name.substring(0, 1) : '';\n }\n\n const getAvatarTooltip = () => {\n var toolTip = '';\n if (user) {\n if (user.isAuthenticated) {\n if (user.isImpersonating) {\n toolTip = {'You are currently impersonating... '}{'User:'} {user.impersonateAsUser}{'Company:'} {user.impersonateAsCompany}{'Department:'} {user.impersonateAsDepartment};\n }\n else {\n toolTip = {'You are currently logged in... '}{'User:'} {user.username}{'Company:'} {user.company}{'Department:'} {user.department};\n }\n }\n }\n return toolTip;\n }\n\n return (\n <>\n \n } invisible={!user.isImpersonating}>\n {getAvatarChar()}\n \n \n\n \n \n \n \n \n \n Hello {user.firstName},\n \n \n \n not you?\n \n Sign out\n \n \n\n {showPreferences && \n Preferences\n }\n \n \n {(user.canImpersonate) ? : ''}\n \n \n \n\n \n Edit Client Center Preferences\n \n \n File Posted Notification:\n \n } label=\"Don't notify\" />\n } label=\"Notify when my files are posted\" />\n \n \n \n \n \n Cancel\n \n \n Apply\n \n \n \n\n \n \n\n \n \n \n \n \n }\n />\n\n >\n );\n}","import request from './request'\nconst useReportApi = () => {\n const getAll = (options) => {\n return request({\n url: 'api/report/list',\n method: 'POST',\n data: {\n pagingInfo: options.pagingInfo,\n filter: options.filter,\n },\n \n });\n };\n\n const autoSuggestReportName = (keyword) => {\n return request({\n url: 'api/report/autosuggest/report',\n method: 'GET',\n params: {\n searchString: keyword\n }\n });\n }\n\n const batchReport = (flatFile) => {\n // alert(flatFile);\n return request({\n url: 'api/Report/batchreport',\n method: 'POST',\n data: flatFile\n });\n };\n\n const unqueueReport = (flatFile) => {\n return request({\n url: 'api/report/unqueuereport',\n method: 'POST', \n data: flatFile\n });\n };\n\n const downloadBatchedReport = (scheduleIds, token) => {\n window.open('api/filecenter/batchedreports/downloadfromids?scheduleIds='+scheduleIds+'&token='+ encodeURIComponent(token), '_blank', '', true);\n };\n\n const isAuthenticated = () => {\n return request({\n url: '/account/isAuthenticated',\n method: 'GET'\n }); \n };\n\n return {\n getAll,\n batchReport,\n unqueueReport,\n downloadBatchedReport,\n isAuthenticated, \n autoSuggestReportName \n };\n}\n \n \n\n\nexport default useReportApi;","import React from 'react';\n// @material-ui/core components\nimport { makeStyles } from '@material-ui/core/styles';\nimport { TextField } from '@material-ui/core';\nimport { Autocomplete } from \"@material-ui/lab\";\nimport useApi from 'components/Api/Api'\nimport parse from 'autosuggest-highlight/parse';\nimport match from 'autosuggest-highlight/match';\n\nconst useStyles = makeStyles(theme => ({\n autoCompleteGroupLabel: {\n fontWeight: 600,\n borderBottom: `1px solid ${theme.palette.tableRowDivider}`,\n padding: '0px 3px',\n margin: '5px 10px',\n height: 20,\n lineHeight: '10px'\n },\n autoCompleteGroupList: {\n paddingBottom: 10,\n paddingTop: 3,\n paddingLeft: 3\n },\n autoCompleteItem: {\n color: theme.palette.npd.blue,\n width: '100%',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n },\n autoCompleteOption: {\n fontSize: 12,\n margin: 0,\n padding: '1px 10px'\n },\n paper: {\n borderRadius: '0px 0px 4px 4px',\n margin: '1px 0',\n '& > ul':\n {\n maxHeight: '50vh'\n },\n boxShadow: theme.palette.boxShadow\n },\n input: {\n marginLeft: theme.spacing(1),\n flex: 1,\n fontSize: 14\n },\n inputRoot: {\n paddingRight: 0\n },\n autoCompleteOutlineRoot: {\n border: 'solid 1px #a6a6a6',\n borderRadius: 4,\n '&:hover': {\n border: 'solid 1px',\n borderColor: theme.palette.common.black\n },\n '&:focus': {\n border: 'solid 2px',\n borderColor: theme.palette.npd.blue\n }\n },\n tag: {\n //margin: 3,\n height: 24,\n maxWidth: 'calc(100% - 30px)',\n fontSize: 12\n },\n label: {\n marginRight:6,\n overflow:\"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace:'nowrap',\n display: 'inline-block'\n }\n}));\n\n\n\nfunction MultiSelect(props) {\n const { \n inputTerm,\n options, \n handleOnEnter, \n handleAutoCompleteValueOnChange,\n handleTextBoxOnChange, \n freeSolo = true,\n handleOnFocus,\n handleOnBlur,\n placeholder = 'Search',\n outlined = false,\n hideClearButton = true,\n ...rest\n } = props;\n const classes = useStyles();\n \n let initialValue = inputTerm;\n\n React.useEffect(() => {\n initialValue = inputTerm;\n }, [inputTerm]);\n\n return (\n option}\n disableClearable={hideClearButton}\n onChange={handleAutoCompleteValueOnChange}\n classes={{tag: classes.tag , paper:classes.paper, input: classes.input, inputRoot: classes.inputRoot, option: classes.autoCompleteOption, groupLabel: classes.autoCompleteGroupLabel, groupUl: classes.autoCompleteGroupList }}\n ChipProps={{size: 'small', classes:{label: classes.label} }}\n renderInput={params => (\n \n )}\n /> \n );\n}\n\n\nexport default MultiSelect;","import React from 'react';\nconst DataSourceContext = React.createContext(null);\nexport default DataSourceContext;","import React from 'react';\n// @material-ui/core components\nimport { makeStyles } from '@material-ui/core/styles';\nimport { TextField } from '@material-ui/core';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport { useApi } from 'components';\nimport DataSourceContext from 'context/DataSourceContext';\nimport parse from 'autosuggest-highlight/parse';\nimport match from 'autosuggest-highlight/match';\n\nconst useStyles = makeStyles(theme => ({\n autoCompleteGroupLabel: {\n fontWeight: 600,\n borderBottom: `1px solid ${theme.palette.tableRowDivider}`,\n padding: '0px 3px',\n margin: '5px 10px',\n height: 20,\n lineHeight: '10px'\n },\n autoCompleteGroupList: {\n\n },\n autoCompleteItem: {\n color: theme.palette.primary.main,\n width: '100%',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n },\n autoCompleteOption: {\n fontSize: 12,\n margin: 0,\n padding: '1px 10px'\n },\n paper: {\n borderRadius: '0px 0px 4px 4px',\n margin: '1px 0',\n '& > ul':\n {\n maxHeight: '50vh'\n },\n boxShadow: theme.palette.boxShadow\n },\n input: {\n marginLeft: theme.spacing(1),\n flex: 1,\n fontSize: 14\n },\n inputRoot: {\n paddingRight: 0\n }\n}));\n\n\n\nfunction SearchAutocomplete(props) {\n const {\n inputTerm,\n options,\n setOptions,\n handleOnEnter,\n handleTextBoxOnChange,\n handleSearchRedirect,\n handleAutoCompleteValueOnChange,\n handleOnFocus,\n handleOnBlur,\n GetAutoSuggestOptions,\n optionKey = 'keyword',\n optionId = 'id'\n } = props;\n const classes = useStyles();\n const context = React.useContext(DataSourceContext);\n const service = useApi();\n let initialValue = inputTerm;\n\n React.useEffect(() => {\n if (inputTerm === '') {\n setOptions([]);\n handleSearchRedirect(inputTerm, '')\n return undefined;\n }\n\n if (inputTerm.length > 3) {\n GetAutoSuggestOptions(inputTerm)\n .then(response => {\n const res = response.data;\n var result = [];\n Array.prototype.forEach.call(res, item => {\n result.push({ keyword: item[optionKey], id: item[optionId] })\n });\n //setOptions([{}]);\n setOptions([...result]);\n });\n }\n else {\n setOptions([]);\n }\n }, [inputTerm]);\n\n return (\n (typeof option === 'string' ? option : option.description)}\n filterOptions={x => x}\n options={options}\n autoComplete={true}\n clearOnEscape={true}\n freeSolo\n disableOpenOnFocus\n disableClearable\n inputValue={initialValue}\n onChange={handleAutoCompleteValueOnChange}\n classes={{ paper: classes.paper, input: classes.input, inputRoot: classes.inputRoot, option: classes.autoCompleteOption, groupLabel: classes.autoCompleteGroupLabel, groupUl: classes.autoCompleteGroupList }}\n renderInput={params => (\n \n )}\n getOptionLabel={(x) => x.keyword ? x.keyword : ''}\n renderOption={option => {\n const matches = match(option.keyword, inputTerm);\n const parts = parse(option.keyword, matches);\n\n return (\n {\n handleSearchRedirect(option.keyword, option.id)\n }} className={classes.autoCompleteItem}>\n {parts.map((part, index) => (\n \n {part.text}\n \n ))}\n \n );\n }}\n />\n );\n}\n\nexport default SearchAutocomplete;","import React from 'react';\n// @material-ui/core components\nimport { makeStyles } from '@material-ui/core/styles';\nimport { TextField } from '@material-ui/core';\nimport { Autocomplete } from \"@material-ui/lab\";\n\nconst useStyles = makeStyles(theme => ({\n autoCompleteGroupLabel: {\n fontWeight: 600,\n borderBottom: `1px solid ${theme.palette.tableRowDivider}`,\n padding: '0px 3px',\n margin: '5px 10px',\n height: 20,\n lineHeight: '10px'\n },\n autoCompleteGroupList: {\n paddingBottom: 10,\n paddingTop: 3,\n \n },\n autoCompleteItem: {\n color: theme.palette.npd.blue,\n width: '100%',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n },\n autoCompleteOption: {\n fontSize: 12,\n margin: 0,\n padding: '1px 10px'\n },\n paper: {\n borderRadius: '0px 0px 4px 4px',\n margin: '1px 0',\n '& > ul':\n {\n maxHeight: '50vh'\n },\n boxShadow: theme.palette.boxShadow\n },\n input: {\n marginLeft: theme.spacing(1),\n flex: 1,\n fontSize: 12,\n },\n autoCompleteOutlineRoot: {\n border: 'solid 1px #a6a6a6',\n borderRadius: 4,\n '&:hover': {\n border: 'solid 1px',\n borderColor: theme.palette.common.black\n },\n '&:focus': {\n border: 'solid 2px',\n borderColor: theme.palette.npd.blue\n }\n },\n tag: {\n margin: 3,\n height: 24\n }\n}));\n\nfunction AutoCompleteDropdown(props) {\n const {\n inputTerm,\n options,\n handleOnEnter,\n handleAutoCompleteValueOnChange,\n handleTextBoxOnChange,\n freeSolo = true,\n handleOnFocus,\n handleOnBlur,\n placeholder = 'Search',\n outlined = false,\n hideClearButton = true,\n inputClasses = {},\n label = 'name',\n ...rest\n } = props;\n const classes = useStyles();\n let initialValue = inputTerm;\n\n React.useEffect(() => {\n initialValue = inputTerm;\n }, []);\n\n return (\n option.name}\n //filterOptions={x => x}\n options={options}\n autoComplete={true}\n clearOnEscape={true}\n freeSolo={freeSolo}\n disableOpenOnFocus\n disableClearable={hideClearButton}\n inputValue={initialValue}\n onChange={handleAutoCompleteValueOnChange}\n classes={{ tag: classes.tag, paper: classes.paper, input: inputClasses.input ? inputClasses.input : classes.input, inputRoot: inputClasses.inputRoot, option: classes.autoCompleteOption, groupLabel: classes.autoCompleteGroupLabel, groupUl: classes.autoCompleteGroupList }}\n renderInput={params => (\n \n )}\n getOptionLabel={(x) => x[label] === undefined ? '' : x[label]}\n />\n );\n}\n\n\nexport default AutoCompleteDropdown;","import React from 'react';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Checkbox, Tooltip } from '@material-ui/core';\n\nconst useStyles = makeStyles({\n root: {\n '&:hover': {\n backgroundColor: 'transparent',\n },\n padding: 0,\n margin: 5\n },\n icon: {\n borderRadius: 3,\n width: 16,\n height: 16,\n boxShadow: 'inset 0 0 0 1px rgba(16,22,26,.2), inset 0 -1px 0 rgba(16,22,26,.1)',\n backgroundColor: '#f5f8fa',\n backgroundImage: 'linear-gradient(180deg,hsla(0,0%,100%,.8),hsla(0,0%,100%,0))',\n '$root.Mui-focusVisible &': {\n outline: '2px auto rgba(19,124,189,.6)',\n outlineOffset: 2,\n },\n 'input:hover ~ &': {\n backgroundColor: '#ebf1f5',\n },\n 'input:disabled ~ &': {\n boxShadow: 'inset 0 0 0 1px rgba(16,22,26,.1), inset 0 -1px 0 rgba(16,22,26,.05)',\n backgroundColor: '#f5f8fa',\n },\n },\n checkedIcon: {\n backgroundColor: '#FF9971',\n backgroundImage: 'linear-gradient(180deg,hsla(0,0%,100%,.1),hsla(0,0%,100%,0))',\n '&:before': {\n display: 'block',\n width: 16,\n height: 16,\n backgroundImage:\n \"url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath\" +\n \" fill-rule='evenodd' clip-rule='evenodd' d='M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 \" +\n \"1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z' fill='%23fff'/%3E%3C/svg%3E\\\")\",\n content: '\"\"',\n },\n 'input:hover ~ &': {\n backgroundColor: '#FF9971',\n },\n 'input:disabled ~ &': {\n backgroundColor: '#AAA',\n backgroundImage:\n \"url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath\" +\n \" fill-rule='evenodd' clip-rule='evenodd' d='M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 \" +\n \"1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z' fill='#AAA'/%3E%3C/svg%3E\\\")\",\n },\n },\n indeterminateIcon: {\n backgroundColor: '#FF9971',\n backgroundImage: 'linear-gradient(180deg,hsla(0,0%,100%,.1),hsla(0,0%,100%,0))',\n '&:before': {\n display: 'block',\n width: 16,\n height: 16,\n backgroundImage:\n \"url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='5 5 14 14'%3E%3Cpath\" +\n \" fill-rule='evenodd' clip-rule='evenodd' d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM7 11h10v2H7z'\" +\n \" fill='%23fff'/%3E%3C/svg%3E\\\")\",\n content: '\"\"',\n },\n 'input:hover ~ &': {\n backgroundColor: '#FF9971',\n },\n },\n});\n\nexport default function CustomCheckbox(props) {\n const { tooltip = '' } = props;\n const classes = useStyles();\n\n return (\n \n }\n indeterminateIcon={}\n icon={}\n inputProps={{ 'aria-label': 'decorative checkbox' }}\n {...props}\n />\n \n );\n}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\nimport { TableHead, TableRow, TableCell, TableSortLabel } from '@material-ui/core';\nimport CustomCheckbox from 'components/Checkbox/CustomCheckbox'\n\nconst capitalize = (string) => {\n return string.charAt(0).toUpperCase() + string.slice(1);\n};\n\nexport default function EnhancedTableHeader(props) {\n const { classes, columns, order, orderBy, onRequestSort, numSelected, rowCount, onSelectAllClick, customHeaderComponent,noLeadingCheckbox } = props;\n \n const createSortHandler = property => event => {\n onRequestSort(event, property);\n };\n\n const getSortField = headCell => {\n return Boolean(headCell.sortField) ? headCell.sortField : headCell.field;\n };\n\n return (\n \n \n {(noLeadingCheckbox!=='true')?\n \n 0 && numSelected < rowCount}\n checked={numSelected === rowCount}\n onChange={onSelectAllClick}\n inputProps={{ 'aria-label': 'select all Reports' }}\n />\n :null}\n {columns.map(headCell => (\n \n\n {!headCell.disableSort ? \n {orderBy === getSortField(headCell) ? ({headCell.label}) : headCell.label}\n {orderBy === getSortField(headCell) ? (\n \n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\n \n ) : null}\n : headCell.label}\n \n ))}\n \n {(customHeaderComponent !== null) ? customHeaderComponent : ''}\n \n );\n}\n\nEnhancedTableHeader.propTypes = {\n classes: PropTypes.object.isRequired,\n columns: PropTypes.array.isRequired,\n numSelected: PropTypes.number.isRequired,\n rowCount: PropTypes.number.isRequired,\n onRequestSort: PropTypes.func.isRequired,\n order: PropTypes.oneOf(['asc', 'desc']),\n orderBy: PropTypes.string\n};","import React from 'react'\n\nconst GridContext = React.createContext(null);\n\nexport default GridContext;","import React from 'react'\n\nconst SearchContext = React.createContext(null);\n\nexport default SearchContext;","import React, { Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\nimport { makeStyles, lighten } from '@material-ui/core/styles';\n\nimport { Toolbar, Typography, Tooltip, IconButton } from '@material-ui/core';\nimport {LibraryAdd as BatchIcon, DynamicFeed as BatchLater, LayersClear as RemoveIcon} from '@material-ui/icons';\n\nimport {GridContext} from 'context';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n },\n highlight:{\n color: theme.palette.secondary.main,\n backgroundColor: lighten(theme.palette.secondary.light, 0.75),\n },\n \n title: {\n flex: '1 1 100%',\n },\n}));\n\n\n\nexport default function EnhancedTableToolbar(props) {\n const classes = useStyles();\n const { numSelected,commands = [] } = props;\n const gridContext = React.useContext(GridContext)\n \n const handleBatch = (event) => {\n \n };\n const handleBatchOnDataLoad = (event) => {\n\n };\n const handleUnQueue = (event) => {\n\n };\n \n return (\n \n { \n commands.map((command, index) => {\n return {command} ;\n })\n }\n {numSelected > 0 ? (\n \n {numSelected} reports selected\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\nEnhancedTableToolbar.propTypes = {\n numSelected: PropTypes.number.isRequired,\n};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport { Button } from '@material-ui/core';\nimport { PlayArrow as PlayArrowIcon } from '@material-ui/icons';\n\nconst useStyles = makeStyles(theme => ({\n button: {\n padding: '4px 6px',\n minWidth: 20,\n marginRight: 3,\n backgroundColor: 'white',\n border: 'none',\n '&:disabled':\n {\n border: 'none'\n },\n '&:hover':\n {\n border: 'none'\n }\n },\n previous: {\n transform: 'scale(-1,1)'\n },\n next: {\n },\n\n fontSizeSmall: {\n fontSize: '16px'\n }\n}));\n\nconst CustomTablePaginationActions = React.forwardRef(function TablePaginationActions(props, ref) {\n const {\n backIconButtonProps,\n count,\n nextIconButtonProps,\n onChangePage,\n page,\n rowsPerPage,\n ...other\n } = props;\n\n const classes = useStyles();\n const theme = useTheme();\n\n const handleBackButtonClick = event => {\n onChangePage(event, page - 1);\n };\n\n const handleNextButtonClick = event => {\n onChangePage(event, page + 1);\n };\n\n return (\n \n \n \n \n = Math.ceil(count / rowsPerPage)}\n color=\"primary\"\n className={clsx(theme.direction === 'rtl' ? classes.previous : classes.next, classes.button)}\n {...nextIconButtonProps}\n >\n \n \n \n );\n});\n\nCustomTablePaginationActions.propTypes = {\n /**\n * Props applied to the back arrow [`IconButton`](/api/icon-button/) element.\n */\n backIconButtonProps: PropTypes.object,\n /**\n * The total number of rows.\n */\n count: PropTypes.number.isRequired,\n /**\n * Props applied to the next arrow [`IconButton`](/api/icon-button/) element.\n */\n nextIconButtonProps: PropTypes.object,\n /**\n * Callback fired when the page is changed.\n *\n * @param {object} event The event source of the callback.\n * @param {number} page The page selected.\n */\n onChangePage: PropTypes.func.isRequired,\n /**\n * The zero-based index of the current page.\n */\n page: PropTypes.number.isRequired,\n /**\n * The number of rows per page.\n */\n rowsPerPage: PropTypes.number.isRequired,\n};\n\nexport default CustomTablePaginationActions;","import React from \"react\";\n// nodejs library that concatenates classes\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport MenuList from \"@material-ui/core/MenuList\";\nimport ClickAwayListener from \"@material-ui/core/ClickAwayListener\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Grow from \"@material-ui/core/Grow\";\nimport Divider from \"@material-ui/core/Divider\";\nimport Icon from \"@material-ui/core/Icon\";\nimport Popper from \"@material-ui/core/Popper\";\nimport Button from \"@material-ui/core/Button\";\nimport clsx from 'clsx';\n\nconst useStyles = makeStyles(theme => ({\n popperClose: {\n pointerEvents: \"none\"\n },\n dropdown: {\n borderRadius: \"2px\",\n border: \"0\",\n boxShadow: \"0 2px 5px 0 rgba(0, 0, 0, 0.26)\",\n top: \"100%\",\n zIndex: \"1000\", \n padding: \"0\",\n margin: \"0\",\n fontSize: \"14px\",\n textAlign: \"left\",\n listStyle: \"none\",\n backgroundColor: \"#fff\",\n backgroundClip: \"padding-box\"\n },\n menuList: {\n padding: \"0\"\n },\n popperResponsive: {\n zIndex: \"1200\",\n [theme.breakpoints.down(\"sm\")]: {\n zIndex: \"1640\",\n position: \"static\",\n float: \"none\",\n width: \"auto\",\n marginTop: \"0\",\n backgroundColor: \"transparent\",\n border: \"0\",\n boxShadow: \"none\",\n color: \"black\"\n }\n },\n dropdownHeader: {\n display: \"block\", \n padding: \"2px 12px\", \n fontSize: \"12px\", \n whiteSpace: \"nowrap\",\n fontWeight: \"bold\",\n marginTop: \"10px\",\n minHeight: \"unset\",\n textAlign: 'left',\n \"&:hover,&:focus\": {\n backgroundColor: \"transparent\",\n cursor: \"auto\"\n }\n },\n dropdownItem: { \n fontSize: \"12px\",\n padding: \"2px 12px\",\n margin: \"0\",\n borderRadius: \"2px\",\n position: \"relative\",\n transition: \"all 150ms linear\",\n display: \"block\",\n clear: \"both\",\n fontWeight: \"400\",\n height: \"fit-content\",\n color: theme.palette.primary.main,\n whiteSpace: \"nowrap\",\n minHeight: \"unset\"\n },\n blackHover: {\n \"&:hover\": {\n boxShadow:\n \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(33, 33, 33, 0.4)\",\n backgroundColor: \"#212121\",\n color: \"#fff\"\n }\n },\n primaryHover: {\n \"&:hover\": {\n backgroundColor: theme.palette.primary.main,\n color: \"#FFFFFF\" \n }\n }, \n dangerHover: {\n \"&:hover\": {\n backgroundColor: theme.palette.primary.main,\n color: \"#FFFFFF\" \n }\n }, \n dropdownItemRTL: {\n textAlign: \"right\"\n },\n dropdownDividerItem: {\n margin: \"5px 0\",\n backgroundColor: \"rgba(0, 0, 0, 0.12)\",\n height: \"1px\",\n overflow: \"hidden\"\n },\n buttonIcon: {\n width: \"20px\",\n height: \"20px\"\n },\n caret: {\n transition: \"all 150ms ease-in\",\n display: \"inline-block\",\n width: \"0\",\n height: \"0\",\n marginLeft: \"4px\",\n verticalAlign: \"middle\",\n borderTop: \"4px solid\",\n borderRight: \"4px solid transparent\",\n borderLeft: \"4px solid transparent\"\n },\n caretActive: {\n transform: \"rotate(180deg)\"\n },\n caretRTL: {\n marginRight: \"4px\"\n }, \n noLiPadding: {\n padding: \"0\"\n }\n}));\n\nexport default function CustomDropdown(props) {\n const [anchorEl, setAnchorEl] = React.useState(null);\n \n const handleClick = event => {\n if (anchorEl && anchorEl.contains(event.target)) {\n setAnchorEl(null);\n } else {\n setAnchorEl(event.currentTarget);\n }\n };\n const handleClose = param => {\n setAnchorEl(null);\n if (props && props.onClick) {\n props.onClick(param);\n }\n };\n const handleCloseAway = event => {\n if (anchorEl.contains(event.target)) {\n return;\n }\n setAnchorEl(null);\n };\n const classes = useStyles();\n const {\n buttonText,\n buttonIcon,\n dropdownList,\n buttonProps,\n dropup,\n dropdownHeader,\n caret,\n hoverColor,\n left,\n rtlActive,\n noLiPadding,\n pageSize\n } = props;\n const caretClasses = clsx({\n [classes.caret]: true,\n [classes.caretActive]: Boolean(anchorEl),\n [classes.caretRTL]: rtlActive\n });\n const dropdownItem = clsx({\n [classes.dropdownItem]: true,\n [classes[hoverColor + \"Hover\"]]: true,\n [classes.noLiPadding]: noLiPadding,\n [classes.dropdownItemRTL]: rtlActive\n });\n let icon = null;\n switch (typeof buttonIcon) {\n case \"object\":\n icon = ;\n break;\n case \"string\":\n icon = {props.buttonIcon};\n break;\n default:\n icon = null;\n break;\n }\n return (\n \n \n \n {icon}\n {buttonText !== undefined ? buttonText : null}\n {caret ? : null}\n \n \n \n {() => (\n \n \n \n \n {dropdownHeader !== undefined ? (\n \n {dropdownHeader}\n \n ) : null}\n {dropdownList.map((prop, key) => {\n if (prop.divider) {\n return (\n handleClose(\"divider\")}\n className={classes.dropdownDividerItem}\n />\n );\n }\n return (\n handleClose(prop)}\n className={dropdownItem}\n selected={pageSize === prop}\n > \n {prop.label ? prop.label : prop}\n \n );\n })}\n \n \n \n \n )}\n \n \n );\n}\n\nCustomDropdown.defaultProps = {\n caret: true,\n hoverColor: \"primary\"\n};\n\nCustomDropdown.propTypes = {\n hoverColor: PropTypes.oneOf([\n \"black\",\n \"primary\",\n \"info\",\n \"success\",\n \"warning\",\n \"danger\",\n \"rose\"\n ]),\n buttonText: PropTypes.node,\n buttonIcon: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n dropdownList: PropTypes.array,\n buttonProps: PropTypes.object,\n dropup: PropTypes.bool,\n dropdownHeader: PropTypes.node,\n rtlActive: PropTypes.bool,\n caret: PropTypes.bool,\n left: PropTypes.bool,\n noLiPadding: PropTypes.bool,\n // function that retuns the selected item\n onClick: PropTypes.func\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { chainPropTypes } from '@material-ui/utils';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { MenuItem, TableCell, Toolbar, Typography } from '@material-ui/core';\nimport CustomTablePaginationActions from './CustomTablePaginationActions';\n\nimport CustomDropdown from 'components/Dropdown/Dropdown';\n//import { numberFormat } from 'utils';\n\nexport const useStyles = makeStyles(theme => ({\n /* Styles applied to the root element. */\n root: {\n color: theme.palette.text.primary,\n fontSize: theme.typography.pxToRem(14),\n paddingBottom: 5,\n // Increase the specificity to override TableCell.\n '&:last-child': {\n padding: 0,\n \n },\n flexGrow: 1\n },\n /* Styles applied to the Toolbar component. */\n toolbar: {\n minHeight: 25,\n paddingRight: 2,\n paddingLeft: 0,\n\n },\n /* Styles applied to the spacer element. */\n spacer: {\n flex: '1 1 100%',\n },\n /* Styles applied to the caption Typography components if `variant=\"caption\"`. */\n caption: {\n flexShrink: 0,\n },\n /* Styles applied to the Select component root element. */\n selectRoot: {\n // `.selectRoot` should be merged with `.input` in v5.\n marginRight: 32,\n marginLeft: 8,\n },\n /* Styles applied to the Select component `select` class. */\n select: {\n paddingLeft: 8,\n paddingRight: 24,\n textAlign: 'right',\n textAlignLast: 'right', // Align on Chrome.\n },\n /* Styles applied to the Select component `icon` class. */\n selectIcon: {\n top: 1,\n },\n /* Styles applied to the `InputBase` component. */\n input: {\n color: 'inherit',\n fontSize: 'inherit',\n flexShrink: 0,\n },\n /* Styles applied to the MenuItem component. */\n menuItem: {},\n /* Styles applied to the internal `TablePaginationActions` component. */\n actions: {\n minWidth: 62,\n flex: 1,\n marginLeft: 20,\n display: 'flex'\n },\n\n rowsPerPageButton: {\n marginLeft: 20,\n marginRight: 10,\n padding: 1,\n fontWeight: 'bold',\n backgroundColor: 'white',\n border: 'none',\n '&:hover':\n {\n border: 'none'\n }\n }\n}));\nconst defaultRowsPerPageOptions = [10, 25, 50, 75, 100, 200, 500];\n\n/**\n * A `TableCell` based component for placing inside `TableFooter` for pagination.\n */\nconst CustomTablePagination = React.forwardRef(function CustomTablePagination(props, ref) {\n const {\n ActionsComponent = CustomTablePaginationActions,\n backIconButtonProps,\n className,\n colSpan: colSpanProp,\n component: Component = TableCell,\n count,\n nextIconButtonProps,\n onChangePage,\n onChangeRowsPerPage,\n page,\n rowsPerPage,\n rowsPerPageOptions = defaultRowsPerPageOptions,\n SelectProps = {},\n toolbar,\n ...other\n } = props;\n\n const classes = useStyles();\n let colSpan;\n\n if (Component === TableCell || Component === 'td') {\n colSpan = colSpanProp || 1000; // col-span over everything\n }\n\n const MenuItemComponent = SelectProps.native ? 'option' : MenuItem;\n\n return (\n \n \n \n { toolbar !== undefined ? props.toolbar : '' }\n \n {rowsPerPageOptions.length > 1 && (\n \n View\n \n )}\n {rowsPerPageOptions.length > 1 && (\n \n )}\n \n {/* {count === 0 ? 0 : (page - 1) * rowsPerPage + 1}-{Math.min(count, (page) * rowsPerPage)} of {count} */}\n of {count}\n \n \n \n \n );\n});\n\nCustomTablePagination.propTypes = {\n /**\n * The component used for displaying the actions.\n * Either a string to use a DOM element or a component.\n */\n ActionsComponent: PropTypes.elementType,\n /**\n * Props applied to the back arrow [`IconButton`](/api/icon-button/) component.\n */\n backIconButtonProps: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * @ignore\n */\n colSpan: PropTypes.number,\n /**\n * The component used for the root node.\n * Either a string to use a DOM element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The total number of rows.\n */\n count: PropTypes.number.isRequired,\n /**\n * Props applied to the next arrow [`IconButton`](/api/icon-button/) element.\n */\n nextIconButtonProps: PropTypes.object,\n /**\n * Callback fired when the page is changed.\n *\n * @param {object} event The event source of the callback.\n * @param {number} page The page selected.\n */\n onChangePage: PropTypes.func.isRequired,\n /**\n * Callback fired when the number of rows per page is changed.\n *\n * @param {object} event The event source of the callback.\n */\n onChangeRowsPerPage: PropTypes.func,\n /**\n * The zero-based index of the current page.\n */\n page: chainPropTypes(PropTypes.number.isRequired, props => {\n const { count, page, rowsPerPage } = props;\n const newLastPage = Math.max(1, Math.ceil(count / rowsPerPage));\n if (count > 0 && (page < 1 || page > newLastPage)) {\n return new Error(\n 'Material-UI: the page prop of a TablePagination is out of range ' +\n `(1 to ${newLastPage}, but page is ${page}).`,\n );\n }\n return null;\n }),\n /**\n * The number of rows per page.\n */\n rowsPerPage: PropTypes.number.isRequired,\n /**\n * Customizes the options of the rows per page select field. If less than two options are\n * available, no select field will be displayed.\n */\n rowsPerPageOptions: PropTypes.array,\n /**\n * Props applied to the rows per page [`Select`](/api/select/) element.\n */\n SelectProps: PropTypes.object,\n};\n\nexport default CustomTablePagination;","import React from 'react';\nimport Moment from 'react-moment';\n\nexport const dateFormat = (value, format) => {\n if (!Boolean(value)) {\n return null;\n }\n \n if (!Boolean(format)) {\n format = 'YYYY-MM-DD';\n }\n\n return {value};\n};","export const numberFormat = (value, locale, formatOptions) =>\n new Intl.NumberFormat(locale, formatOptions).format(value);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { TableRow, TableCell, Box, Tooltip, Link } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport format from 'string-format';\nimport { NavLink as RouterLink } from 'react-router-dom';\nimport CustomCheckBox from 'components/Checkbox/CustomCheckbox'\nimport { numberFormat, dateFormat, capitalize,htmlDecode } from 'utilities';\n\nconst useStyles = makeStyles(() => ({\n link: {\n cursor: 'pointer'\n }\n}));\n\nconst sizeRenderer = (value) => {\n const formatOptions = { style: 'decimal', maximumFractionDigits: 2 }\n let size = '0 B';\n if (!value)\n return size;\n if (value < 1024) {\n size = numberFormat(value, \"en-US\", formatOptions);\n return size + ' B';\n }\n else if (value < 1048576) {\n size = numberFormat((value / 1024), \"en-US\", formatOptions);\n return size + ' KB';\n }\n else if (value < 1073741824) {\n size = numberFormat((value / 1048576), \"en-US\", formatOptions);\n return size + ' MB';\n }\n else {\n size = numberFormat((value / 1073741824), \"en-US\", formatOptions);\n return size + ' GB';\n }\n}\n\nexport default function TableRowData(props) {\n const {\n classes,\n columns,\n handleClick,\n isSelected,\n isRowHighlighted,\n row,\n keyName,\n ActionCell,\n actionCallback,\n noLeadingCheckbox\n } = props;\n\n const localClasses = useStyles();\n\n const renderData = (column, row) => {\n let data;\n const value = row[column.field];\n const totalLength = column.fileNamelength;\n switch (column.type) {\n case 'string':\n if (value !== undefined && value.length > totalLength)\n data = {value.substring(0, totalLength) + \"...\"}\n else\n data = value;\n break;\n case 'number':\n data = value === '' ? '' : numberFormat(value, 'en-US', column.formatOptions);\n break;\n case 'currency':\n if (!Boolean(column.currency)) {\n column.currency = 'USD';\n }\n data = numberFormat(value, 'en-US', { style: 'currency', currency: column.currency });\n break;\n case 'date':\n if (column.showTooltip && row[column.tooltipField] !== undefined && row[column.tooltipField] !== \"\")\n data = \n \n {dateFormat(value, column.format)}\n \n \n else \n data = dateFormat(value, column.format);\n break;\n case 'selectiveLinkWithTooltip': \n if (column.showTooltip && row[column.tooltipField])\n data = \n \n column.onClick(event, keyName)}>{value}\n \n \n \n else \n data = {value};\n break;\n case 'link':\n if (column.onClick === undefined)\n\n data = {htmlDecode(row[column.field])};\n else\n if (value !== undefined && value.length > 40)\n data = \n \n column.onClick(event, keyName)}>{value.substring(0, 40) + \"...\"}\n \n \n \n else\n data = column.onClick(event, keyName)}>{value}\n ;\n break;\n case 'action':\n data = \n break;\n case 'size':\n data = sizeRenderer(value);\n break;\n case 'bool':\n data = column.onClick(event, keyName, column.field)}\n >;\n break;\n default:\n data = '';\n break;\n };\n\n if (Boolean(column.tooltip)) {\n return {data};\n }\n else {\n return data;\n }\n };\n\n var isChecked = isSelected(keyName);\n return (\n handleClick(event, keyName)}\n tabIndex={-1}>\n {(noLeadingCheckbox!=='true')?\n \n {}}\n />\n :null}\n\n {columns.map(column => {\n const cells = \n {renderData(column, row)}\n \n return cells;\n })}\n \n );\n}\n\nTableRowData.propTypes = {\n classes: PropTypes.object.isRequired,\n columns: PropTypes.array.isRequired,\n row: PropTypes.object,\n keyName: PropTypes.any.isRequired\n};","\nexport function htmlDecode(str) {\n if (str === undefined || str === null || typeof str !== \"string\")\n return str;\n return str.replace(/(\\d+);/g, function (match, dec) {\n return String.fromCharCode(dec);\n });\n};\n\n","// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word a the sentence.\n// We only handle the first word.\nexport function capitalize(string) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof string !== 'string') {\n throw new Error('Material-UI: capitalize(string) expects a string argument.');\n }\n }\n\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx'\n\nimport { TableRow, TableCell, Typography } from '@material-ui/core';\n\n//import { dateFormat } from 'utils/index';\n\nexport default function TableRowHeaderData(props) {\n const {\n columns,\n groupKey,\n classes,\n rowCount\n } = props;\n\n\n return (\n \n \n {groupKey} ({rowCount})\n \n \n );\n}\n\nTableRowHeaderData.propTypes = {\n columns: PropTypes.array.isRequired,\n groupKey: PropTypes.string.isRequired,\n rowCount: PropTypes.number.isRequired\n};","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport TableRowData from './TableRowData';\nimport TableRowHeader from './TableRowHeader'\n\nfunction desc(a, b, orderBy) {\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\nfunction stableSort(array, cmp) {\n if (array == null) {\n return [];\n }\n const stabilizedThis = array.map((el, index) => [el, index]);\n stabilizedThis.sort((a, b) => {\n const order = cmp(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\nfunction getSorting(order, orderBy) {\n return order === 'desc' ? (a, b) => desc(a, b, orderBy) : (a, b) => -desc(a, b, orderBy);\n}\n\nexport default function TableData(props) {\n const {\n classes,\n columns,\n rows,\n mode,\n order,\n orderBy,\n enablePaging,\n totalCount,\n handleClick,\n handleReportEdit,\n page,\n rowsPerPage,\n isSelected,\n isRowHighlighted,\n groupKey,\n rowKeyProperty, \n ActionCell,\n actionCallback,\n noLeadingCheckbox\n } = props;\n\n const remote = mode === 'remote';\n \n const renderRowHeader = (groupKey, columns) =>{\n if (groupKey !== 'undefined')\n return \n };\n const renderRowData = (columns, row) => {\n return \n ;\n };\n\n const renderData = (columns, rows) => {\n if (remote) {\n return rows.map(row => renderRowData(columns, row));\n }\n else {\n if (enablePaging) {\n return renderLocalSortedDataWithPaging(rows);\n }\n else {\n return renderLocalSortedData(rows);\n }\n }\n };\n\n const renderLocalSortedData = rows => {\n return stableSort(rows, getSorting(order, orderBy))\n .map((row, index) => renderRowData(columns, row));\n };\n\n\n const renderLocalSortedDataWithPaging = rows => {\n return stableSort(rows, getSorting(order, orderBy))\n .slice((page - 1) * rowsPerPage, (page - 1) * rowsPerPage + rowsPerPage)\n .map((row, index) => renderRowData(columns, row));\n };\n \n return [renderRowHeader(groupKey, columns) , renderData(columns, rows)];\n};\n\nTableData.propTypes = {\n classes: PropTypes.object.isRequired,\n columns: PropTypes.array.isRequired,\n rows: PropTypes.array.isRequired,\n\n rowKeyProperty: PropTypes.string,\n\n mode: PropTypes.oneOf(['local', 'remote']),\n\n order: PropTypes.oneOf(['asc', 'desc']),\n orderBy: PropTypes.string,\n\n enablePaging: PropTypes.bool,\n totalCount: PropTypes.number,\n page: PropTypes.number,\n rowsPerPage: PropTypes.number\n};","import React from 'react'\n\nimport {TableRow, TableBody, TableCell} from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\n\nconst getLoadingRow = (colSpan, index) => {\n return \n}\n\nexport default function LoadingTable(props){\n\n const {colSpan, rowCount} = props;\n return (\n \n {[...Array(rowCount)].map((e, i) => getLoadingRow(colSpan, i))}\n );\n \n};","import React from 'react'\n\nimport {TableRow, TableBody, TableCell, Typography} from '@material-ui/core';\nimport {Info} from '@material-ui/icons'\n\nconst getNoDataRow = (colSpan, rowSpan, height) => {\n return Your datasource or filter selection returned no data. Please Update your selection.\n}\n\nexport default function NoData(props){\n\n const {colSpan, rowCount, height} = props;\n return (\n \n {getNoDataRow(colSpan, rowCount, height)}\n );\n \n};","//core components\nimport React, {useState} from 'react'\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport _ from 'lodash';\n//material UI components\nimport { withStyles } from '@material-ui/core/styles';\nimport { Paper, Table, TableBody } from '@material-ui/core';\n\n//custom components\nimport { EnhancedTableHeader, CustomTablePagination, TableData, LoadingTable, NoData } from './components';\nimport GridContext from 'context/GridContext'\n\nexport const styles = theme => (\n {\n\n /* Styles applied to the root element. */\n root: {\n display: 'table',\n width: '100%',\n borderCollapse: 'collapse',\n borderSpacing: 0,\n marginLeft: 0,\n '& caption': {\n ...theme.typography.body2,\n padding: theme.spacing(2),\n color: theme.palette.text.secondary,\n textAlign: 'left',\n captionSide: 'bottom',\n },\n },\n /* Styles applied to the root element if `stickyHeader={true}`. */\n stickyHeader: {\n borderCollapse: 'separate',\n },\n /* Styles applied to the paper wrapper of the table. */\n paper: {\n width: '98%',\n marginLeft: 30,\n backgroundColor: 'transparent',\n boxShadow: 'none',\n marginBottom: theme.spacing(2),\n minHeight: 200,\n },\n\n compoundToolbar:{\n display: 'flex',\n flexWrap: 'nowrap',\n width: '100%',\n padding: '2px',\n //backgroundColor: 'black',\n },\n /* Styles applied to the table. */\n table: {\n minWidth: 750,\n \n },\n /* Styles applied to the table wrapper. */\n tableWrapper: {\n overflowX: 'auto'\n },\n /* Styles to visually hide. */\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n\n tableHead: {\n backgroundColor: 'transparent',\n },\n tableSortLabelRoot: {\n },\n tableSortLabelIcon: {\n fontSize: 14,\n backgroundColor: theme.palette.background.paper,\n border: '1px solid #979797',\n borderRadius: '100%'\n },\n tableSortLabelIconDirectionDesc: {\n },\n tableSortLabelIconDirectionAsc: {\n },\n\n headCellLabelSorted: {\n fontWeight: 'bold',\n color: theme.palette.primary.main\n },\n\n headCell: {\n fontSize: 12,\n lineHeight: '14px'\n },\n\n tableCell: {\n fontSize: 12,\n color: '#565A5C',\n lineHeight: '14px'\n },\n tableCellString: {\n },\n tableCellNumber: {\n textAlign: 'right'\n },\n tableCellDate: {\n },\n tableCellLink: {\n color: theme.palette.primary.main\n }\n });\n\nconst groupBy = (xs, key) => {\n return xs.reduce(function (rv, x) {\n (rv[x[key]] = rv[x[key]] || []).push(x);\n return rv;\n }, {});\n};\n\nconst EnhancedTable = (props) => {\n const {\n classes,\n className,\n columns,\n rows,\n rowKeyProperty,\n title,\n mode = 'local',\n defaultOrder = 'asc',\n defaultOrderBy,\n totalCount = 0,\n page = 1,\n rowsPerPage = 50,\n enablePaging = false,\n onChangePage,\n onChangeRowsPerPage,\n onRequestSort,\n toolbar,\n customHeaderComponent,\n groupKey,\n ActionCell,\n actionCallback,\n noLeadingCheckbox,\n rowsPerPageOptions,\n handleReportEdit,\n loading = true,\n callerKey,\n FileCenterToolbar,\n FileCenterToolbarProps, \n EnhancedTableToolbarProps,\n EnhancedTableToolbar,\n commands = [],\n height,\n persistSelection = false,\n isRowHighlighted = () => { return false; }\n } = props;\n\n const remote = mode === 'remote';\n const [order, setOrder] = React.useState(defaultOrder);\n const [orderBy, setOrderBy] = React.useState(defaultOrderBy);\n const [pageState, setPage] = React.useState(page);\n const [rowsPerPageState, setRowsPerPage] = React.useState(rowsPerPage);\n const [idsSelected, setIdsSelected] = React.useState([]);\n const { rowsSelected, setRowsSelected } = React.useContext(GridContext);\n\n const [selectionModel, setSelectionModel] = useState({\n selected: [],\n selectedCount: 0\n });\n // const [selectionModel, setSelectionModel] = useState({\n // remote: remote ? rows.length < totalCount : remote,\n // selectAll: false,\n // selected: [],\n // unselected: [],\n // selectedCount: 0\n // });\n\n const isFunction = functionToCheck => {\n return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';\n }\n\n React.useEffect(() => {\n setIdsSelected(rowsSelected.map((i) => i[rowKeyProperty]));\n setSelectionModel({\n selected: rowsSelected, \n selectedCount: rowsSelected.length \n }); \n\n }, [rowsSelected]);\n\n React.useEffect(() => {\n setOrderBy(defaultOrderBy);\n setOrder(defaultOrder);\n }, [defaultOrderBy, defaultOrder])\n\n const handleRequestSort = (event, property) => {\n const hasSort = Boolean(orderBy);\n const isDesc = orderBy === property && order === 'desc';\n const newOrder = (!hasSort || isDesc) ? 'asc' : 'desc';\n const newOrderBy = (hasSort && isDesc) ? null : property;\n\n setOrder(newOrder);\n setOrderBy(newOrderBy);\n\n if (remote && onRequestSort !== null && isFunction(onRequestSort)) {\n onRequestSort({\n order: newOrder,\n orderBy: newOrderBy\n });\n }\n };\n const handleChangePage = (event, newPage) => {\n setPage(newPage);\n\n if (remote && onChangePage !== null && isFunction(onChangePage)) {\n onChangePage(newPage);\n }\n };\n const handleChangeRowsPerPage = value => {\n\n setPage(1);\n let rowsPerPage = parseInt(value, 10);\n setRowsPerPage(rowsPerPage);\n\n if (remote && onChangeRowsPerPage !== null && isFunction(onChangeRowsPerPage)) {\n onChangeRowsPerPage(rowsPerPage);\n }\n };\n const isSelected = (id) => {\n return idsSelected.indexOf(id) !== -1\n };\n\n const handleSelectAllClick = event => {\n if (event.target.checked) {\n const newSelecteds = rows.map(n => n[rowKeyProperty]);\n setIdsSelected(newSelecteds);\n setRowsSelected(rows);\n return;\n }\n setIdsSelected([]);\n setRowsSelected([])\n };\n\n const getCommandsWithModel = () => {\n return commands.map(c => {\n return React.cloneElement(c, {\n selectionModel: selectionModel\n });\n });\n }\n\n const handleClick = (event, id) => {\n const selectedIndex = idsSelected.indexOf(id);\n let newSelected = [];\n\n if (selectedIndex === -1) {\n newSelected = newSelected.concat(idsSelected, id);\n \n } else if (selectedIndex === 0) {\n newSelected = newSelected.concat(idsSelected.slice(1));\n } else if (selectedIndex === idsSelected.length - 1) {\n newSelected = newSelected.concat(idsSelected.slice(0, -1));\n } else if (selectedIndex > 0) {\n newSelected = newSelected.concat(\n idsSelected.slice(0, selectedIndex),\n idsSelected.slice(selectedIndex + 1),\n );\n }\n setIdsSelected(newSelected);\n if (persistSelection)\n {\n if (selectedIndex === -1)\n setRowsSelected(rowsSelected.concat(rows.filter((r) => id === r[rowKeyProperty])));\n else\n setRowsSelected(rowsSelected.filter((r) => r[rowKeyProperty] !== id));\n }\n else {\n var selection = _.flatten(_.map(newSelected, function(item){\n return _.filter(rows, (r) => r[rowKeyProperty] === item );\n }));\n\n setRowsSelected(selection);\n }\n };\n \n let groups = [];\n if (rows !== undefined && rows.length > 0) {\n if (groupKey !== 'undefined')\n groups = groupBy(rows, groupKey);\n else\n groups = rows;\n }\n \n const showToolBar = enablePaging || commands.length > 0;\n const getData = (groups) => {\n let tableBody = [];\n for (var group in groups) {\n tableBody.push(\n \n )\n }\n if (groups.length === 0){\n tableBody = \n }\n return tableBody;\n };\n\n return (\n \n \n \n \n {FileCenterToolbar &&\n \n \n }\n {\n enablePaging &&\n \n }\n \n {EnhancedTableToolbar && //callerKey &&\n \n }\n \n \n \n \n {loading ? : getData(groups)}\n \n \n \n \n );\n};\n\nEnhancedTable.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n\n title: PropTypes.string.isRequired,\n rowKeyProperty: PropTypes.string.isRequired,\n\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n field: PropTypes.string,\n type: PropTypes.oneOf(['number', 'currency', 'string', 'date', 'link', 'action', 'size', 'bool', 'selectiveLinkWithTooltip']),\n format: PropTypes.string, //Used for type number or date\n label: PropTypes.string\n })\n ).isRequired,\n rows: PropTypes.array.isRequired,\n\n defaultOrder: PropTypes.oneOf(['asc', 'desc']),\n defaultOrderBy: PropTypes.string,\n\n enablePaging: PropTypes.bool,\n mode: PropTypes.oneOf(['local', 'remote']),\n\n /* Server mode (remote) properties */\n onChangePage: PropTypes.func,\n onChangeRowsPerPage: PropTypes.func,\n onRequestSort: PropTypes.func,\n\n totalCount: PropTypes.number,\n page: PropTypes.number,\n rowsPerPage: PropTypes.number\n\n};\nexport default withStyles(styles, { name: 'EnhancedTable' })(EnhancedTable);","import { useState, useEffect } from 'react';\n\nfunction getWindowDimensions() {\n const { innerWidth: width, innerHeight: height } = window;\n return {\n width,\n height\n };\n}\n\nexport default function useWindowDimensions() {\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return windowDimensions;\n}","\nimport React from 'react';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport logo from 'assets/npd.png';\n\nconst useStyles = makeStyles(theme => ({\n toolbar: theme.mixins.toolbar,\n img: {\n width: 110,\n margin: '0px 0px'\n }\n}));\n\nconst defaultUrl = 'https://www.npd.com';\nconst defaultImageUrl = {logo};\nconst defaultImageUrl2 = process.env.REACT_APP_ROUTE_BASENAME + '/assets/npd.png';\nconst Logo = props => {\n const classes = useStyles();\n const npdlogo = { url: defaultUrl, imageUrl: defaultImageUrl };\n return (\n \n \n \n \n \n );\n};\n\nLogo.propTypes = {\n};\n\nexport default Logo;","import React, { useState } from \"react\";\n// @material-ui/core components\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\nimport { Select, MenuItem, Link } from '@material-ui/core';\n\nimport { useApi } from 'components';\n\nimport { DataSourceContext } from 'context';\n\nconst useStyles = makeStyles(theme => ({\n select: {\n color: theme.palette.primary.contrastText,\n fontSize: 12,\n paddingRight: theme.spacing(3),\n paddingLeft: theme.spacing(1),\n fontWeight: 300,\n borderRadius: 12,\n border: `2px solid ${theme.palette.primary.contrastText}`,\n '&:focus': {\n borderRadius: 12,\n border: `2px solid ${theme.palette.primary.contrastText}`\n }\n },\n selectIcon: {\n color: theme.palette.primary.contrastText,\n\n },\n selectEmpty: {\n marginTop: theme.spacing(2),\n },\n selectDisplayStyle: {\n color: theme.palette.white,\n fontSize: 12,\n lineHeight: 0.5,\n margin: 0,\n fontWeight: 600,\n minHeight: 'auto'\n },\n selectItemStyle: {\n color: theme.palette.primary.main,\n fontWeight: '500',\n padding: '5px 25px 0px 10px',\n fontSize: 12\n },\n popOverStyle: {\n marginTop: 0,\n marginLeft: 0,\n borderRadius: 12,\n boxShadow: theme.palette.boxShadow\n },\n selectPopupLabel: {\n fontSize: 12,\n fontFamily: theme.typography.fontFamily,\n color: theme.palette.primary.main,\n fontWeight: 600,\n height: 15,\n padding: '9px 3px 9px 10px',\n },\n menuRoot: {\n padding: '5px 0px'\n },\n searchInput: {\n border: 0,\n color: theme.palette.primary.main,\n fontWeight: '500',\n padding: '5px 25px 10px 10px',\n fontSize: 12,\n outline: 'none',\n width: '100%',\n '&: focus': {\n outline: 'none'\n }\n\n }\n}));\n\nexport default function CustomSelect(props) {\n const classes = useStyles();\n const theme = useTheme(); \n const {options, keyName, setKeyName, valueColumn, keyColumn, showSearch = false, ...rest} = props;\n const context = React.useContext(DataSourceContext);\n const [selectOpen, setSelectOpen] = React.useState(false);\n const [filterValue, setFilterValue] = React.useState('');\n const dataSourceSelectedKey = context.dataSourceSelectedKey;\n const setDataSourceSelectedKey = context.setDataSourceSelectedKey;\n\n const handleChange = event => {\n event.stopPropagation();\n event.preventDefault();\n if (event.target !== undefined && event.target.value !==undefined){\n setKeyName(event.target.value);\n setSelectOpen(false);\n }\n };\n\n const getSelectedValue = () => {\n return options.find((item) => item[keyColumn] === keyName) ? keyName : '';\n };\n\n const filterOptions = (e) => {\n setFilterValue(e.target.value);\n }\n\n const showOption = (item) => \n {\n if (item[keyColumn] === keyName) return false;\n if (filterValue === '') return true;\n if (item[valueColumn].toLocaleLowerCase().indexOf(filterValue.toLocaleLowerCase()) > -1 ) return true;\n return false;\n }\n\n const preventDefault = event => event.preventDefault();\n return (\n {setSelectOpen(true)}}\n onClose={() => {setFilterValue(''); setSelectOpen(false)}}\n disableUnderline={true}\n renderValue={selected => {\n var select = options.find((item) => item[keyColumn] === selected);\n if (select)\n return select[valueColumn];\n else\n return '';\n }}\n onBlur={() => {setSelectOpen(false)}}\n MenuProps={{\n anchorOrigin: {\n vertical: \"top\",\n horizontal: \"left\"\n },\n getContentAnchorEl: null,\n classes: {\n list: classes.menuRoot,\n paper: classes.popOverStyle\n }\n }}\n >\n \n {showSearch && \n event.stopPropagation())} \n onClick={(event => event.stopPropagation())} \n onFocus={(event => event.stopPropagation())}>\n\n \n }\n {options.map(d => (\n (d[keyColumn] === keyName) ? {d[valueColumn]}\n \n : ''))}\n {options.map(d => (\n (showOption(d) ? {d[valueColumn]} : '')\n ))}\n \n );\n}\n\nCustomSelect.propTypes = {\n};\n","import React from 'react';\nimport {IconButton, Typography, Chip, Box} from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles';\nimport {Clear as ClearIcon} from '@material-ui/icons'\n\nconst useStyles = makeStyles(theme => ({\n \n }));\n\nexport default function SelectedSearches(props){\n const { searches, prefixText = \"Selected Searches:\" } = props;\n const classes = useStyles();\n \n const handleClick = () => {\n\n }\n \n return(\n \n \n {\n searches.length > 0 &&\n \n Selected Searches\n \n }\n {searches.length > 0 && searches.map((item) =>\n \n { item.handleDelete()}>}\n {item.key}\n {item.value}\n \n )}\n \n \n\n // \n // {searches.length > 0 ? {prefixText} : }\n // {\n // searches.map(item => item.handleDelete()} />)\n // }\n // \n );\n\n}","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Button, Typography } from '@material-ui/core';\nimport Delete from '@material-ui/icons/Delete';\n\nimport { red } from '@material-ui/core/colors';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n },\n\n deleteConfirmationWrapper: {\n padding: '4px 8px 4px 4px',\n flex: 1,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n '& > *': {\n marginRight: theme.spacing(1)\n },\n },\n button:{\n fontSize: 12,\n fontWeight: 600,\n color: theme.palette.text.secondary,\n },\n buttonLabel: {\n lineHeight: '20px',\n fontWeight: 'bold',\n textTransform: 'uppercase'\n },\n\n cancelButton: {\n fontSize: 12,\n padding:'1px 10px',\n border: 'solid 1px #acacac',\n '&:hover': {\n backgroundColor: theme.palette.white,\n },\n },\n\n deleteButton: {\n fontSize: 12,\n color: '#ffffff',\n padding:'1px 10px',\n backgroundColor: theme.palette.error.main,\n\n '&:hover': {\n backgroundColor: theme.palette.error.main,\n },\n },\n\n}));\n\nconst DeleteIcon = (props) => {\n return \n};\n\n\nconst DeleteButton = props => {\n const { selectionModel, onDelete } = props;\n const classes = useStyles();\n const [isDelete, setIsDelete] = useState(false);\n\n\n useEffect(() => {\n if (selectionModel.selectedCount === 0)\n setIsDelete(false);\n }, [selectionModel])\n\n\n const handleDelete = () => {\n setIsDelete(false);\n onDelete(selectionModel);\n \n }\n\n return (\n \n{/* {!isDelete && (\n }\n onClick={() => setIsDelete(true)}\n disabled={selectionModel.selectedCount == 0}\n >\n Delete\n \n )}\n {isDelete && (\n \n \n Are you Sure? \n setIsDelete(false)} classes={{ root: classes.cancelButton, label: classes.buttonLabel }} disableElevation disableRipple>\n Cancel\n \n Delete\n \n )} */}\n \n )\n}\n\nDeleteButton.propTypes = {\n hasSelection: PropTypes.bool,\n onDelete: PropTypes.func\n}\n\nexport default DeleteButton\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { makeStyles } from '@material-ui/core/styles';\nimport { IconButton } from '@material-ui/core';\nimport DownloadIcon from 'assets/img/download-export.png';\n\n\n//import DownloadIcon from 'assets/npd.png'\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n backgroundColor: theme.palette.white,\n borderRadius: 4,\n padding: 0,\n border: '1px solid #D8D8D8'\n }\n}));\nfunction DownloadButton(props) {\n const { onClick } = props;\n const classes = useStyles();\n return (\n \n \n \n )\n}\n\nDownloadButton.propTypes = {\n onClick: PropTypes.func.isRequired\n}\n\nexport default DownloadButton\n\n","import React from 'react';\nimport request from './request'\nimport DataSourceContext from 'context/DataSourceContext';\n\nconst useCollectionService = () => {\n const context = React.useContext(DataSourceContext);\n\n const downloadCollection = (Id, token,name) => {\n window.open('api/workbookcollections/download/'+Id+'?token='+ encodeURIComponent(token) + '&name=' + encodeURIComponent(name), '_blank', '', true);\n }\n\n const getAll = (options) => {\n return request({\n url: 'api/workbookcollections/getallcollections',\n method: 'POST',\n data: {\n page: options.page,\n pageSize: options.pageSize,\n filter: options.filter,\n sortJson: options.sortInfo,\n token: context.dataSourceSelectedKey\n },\n\n // headers: { 'DataSource': context.dataSourceSelectedKey }\n });\n \n };\n const getBundle = (options) => {\n return request({\n url: `/api/workbookcollections/getbundle`,\n method: 'POST',\n data: {\n page: options.page,\n pageSize: options.pageSize,\n filter: options.filter,\n sortJson: options.sortInfo,\n token: options.token,\n id: options.id\n }\n });\n };\n \n const getBundle2 = (options) => {\n return request({\n url: `/api/workbookcollections/getbundle/${options.id}?token=${context.dataSourceSelectedKey}`,\n method: 'GET',\n params: {\n from: options.from,\n pageSize: options.pageSize,\n sortMode: options.sortMode,\n sortField: options.sortField\n\n }\n });\n };\n\n const createNewBundle = (options, name) => {\n //alert(options.name);\n return request({\n url: 'api/workbookcollections/saveabundle',\n method: 'POST',\n data: {batchRequest:options,name:name}\n });\n }\n\n const deleteAll = (keys) => {\n return request({\n url: '/api/workbookcollections/deletecollections',\n method: 'POST',\n data: keys\n });\n };\n\n\n const updateSort = (option) => {\n return request({\n url: `/api/collections/${option.id}`,\n method: 'PUT',\n params: {\n sortMode: option.sortMode,\n sortField: option.sortField\n },\n headers: {\n 'Content-Type': 'application/json',\n 'DataSource': context.dataSourceSelectedKey\n }\n });\n };\n\n const add = (data) => {\n return request({\n url: `/api/collections/`,\n method: 'POST',\n data: data,\n headers: {\n 'Content-Type': 'application/json',\n 'DataSource': context.dataSourceSelectedKey\n }\n });\n };\n\n const addBySearch = (data) => {\n return request({\n url: `/api/collections/search`,\n method: 'POST',\n data: data,\n headers: {\n 'Content-Type': 'application/json',\n 'DataSource': context.dataSourceSelectedKey\n }\n });\n };\n\n const addByAdvancedSearch = (data) => {\n return request({\n url: `/api/collections/advancedsearch`,\n method: 'POST',\n data: data,\n headers: {\n 'Content-Type': 'application/json',\n 'DataSource': context.dataSourceSelectedKey\n }\n });\n };\n\n const addFromCollection = (data) => {\n return request({\n url: `/api/collections/fromcollection`,\n method: 'POST',\n data: data,\n headers: {\n 'Content-Type': 'application/json',\n 'DataSource': context.dataSourceSelectedKey\n }\n });\n };\n\n\n\n const exportCollection = (id, option, salesDateFrom, salesDateTo) => {\n return request({\n url: `/api/export/collections/${id}`,\n method: 'POST',\n data: {\n selectAll: (option && option.selectionModel) ? option.selectionModel.selectAll : false,\n selectedIsbn: (option && option.selectionModel) ? option.selectionModel.selected : [],\n unSelectedIsbn: (option && option.selectionModel) ? option.selectionModel.unselected : [],\n\n salesDateFrom: salesDateFrom,\n salesDateTo: salesDateTo\n },\n responseType: 'blob',\n headers: { 'DataSource': context.dataSourceSelectedKey }\n });\n };\n\n const exportCollections = (option) => {\n return request({\n url: `/api/export/collections`,\n method: 'POST',\n data: {\n list: option.list || []\n },\n responseType: 'blob',\n headers: { 'DataSource': context.dataSourceSelectedKey }\n });\n };\n\n const deleteISBN = (option) => {\n return request({\n url: `/api/collections/delete/${option.id}/isbn`,\n method: 'POST',\n data:option.selectionModel,\n headers: {\n 'Content-Type': 'application/json',\n 'DataSource': context.dataSourceSelectedKey\n }\n });\n };\n const deleteAllISBN = (option) => {\n return request({\n url: `/api/collections/delete/${option.id}/isbn/all`,\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'DataSource': context.dataSourceSelectedKey\n }\n });\n };\n\n return {downloadCollection, createNewBundle, getBundle, add, getAll, deleteAll, deleteISBN, deleteAllISBN, updateSort, exportCollection, exportCollections, addBySearch, addByAdvancedSearch, addFromCollection }\n}\n\nexport default useCollectionService;","import React, { useEffect, useState } from 'react';\n\nimport _ from 'lodash';\n// @material-ui/core components\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport Icon from '@mdi/react'\nimport { mdiIncognito } from '@mdi/js'\n\nconst useStyles = makeStyles(theme => ({\n\n root: {\n padding: 2,\n },\n startImpersonating: {\n paddingLeft: 5,\n display: 'flex',\n '& span': {\n color: theme.palette.text.link,\n fontSize: 20\n }\n },\n startImpersonatingText: {\n color: '#4E106F',\n fontSize: 12,\n margin: 5,\n cursor: 'pointer'\n },\n icon: {\n background: '#F2F2F2',\n borderRadius: 4,\n padding: 2,\n margin: 0,\n height: 28,\n }\n\n}));\n\nexport default function StartImpersonation(props) {\n const { setView } = props;\n const classes = useStyles();\n \n const onClick = () => {\n setView('select');\n }\n\n return (\n \n \n \n \n \n Start impersonating\n \n \n );\n}\n","import request from 'components/Api/request'\n\nconst impersonateUser = (username) => {\n return request({\n url: `/api/account/impersonateuser`,\n method: 'GET',\n params: {\n username: username\n }\n });\n};\n\nconst impersonateCompany = (company) => {\n return request({\n url: `/api/account/impersonatecompany`,\n method: 'GET',\n params: {\n company: company\n }\n });\n};\n\nconst removeImpersonation = () => {\n return request({\n url: `/api/account/removeimpersonation`,\n method: 'GET'\n });\n};\n\nconst ImpersonateService = {\n impersonateUser,\n impersonateCompany,\n removeImpersonation\n}\n\nexport default ImpersonateService;","import React, { useState } from 'react';\n// @material-ui/core components\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport { Button, TextField, Switch } from '@material-ui/core';\nimport { ImpersonationService } from 'services/api';\nimport { useSnackbar } from 'notistack';\n\nconst UserCompanyToggle = withStyles((theme) => ({\n root: {\n width: 34,\n height: 18,\n padding: 0\n },\n switchBase: {\n margin: 1,\n padding: 1,\n '&$checked': {\n transform: 'translateX(16px)',\n backgroundColor: theme.palette.common.white,\n '& + $track': {\n borderRadius: 26 / 2,\n border: `1px solid #979797`,\n backgroundColor: '#fff',\n opacity: 1,\n transition: theme.transitions.create(['background-color', 'border']),\n },\n },\n '&$focusVisible $thumb': {\n color: '#FF9971',\n border: '6px solid #fff',\n boxShadow: 'none'\n },\n },\n thumb: {\n color: '#FF9971',\n width: 14,\n height: 14,\n boxShadow: 'none'\n },\n disabled: {\n '& span > span': {\n color: 'unset'\n }\n },\n track: {\n borderRadius: 26 / 2,\n border: `1px solid #979797`,\n backgroundColor: '#fff',\n opacity: 1,\n transition: theme.transitions.create(['background-color', 'border']),\n },\n checked: {\n },\n focusVisible: {},\n}))(({ classes, ...props }) => {\n return (\n \n );\n});\n\nconst useStyles = makeStyles(theme => ({\n\n root: {\n padding: '10px 15px',\n },\n startImpersonating: {\n display: 'flex',\n '& span': {\n color: theme.palette.text.link,\n fontSize: 20,\n }\n },\n\n topLabel: {\n color: theme.palette.text.primary,\n fontSize: 12,\n },\n wrapper: {\n margin: '10px 0px'\n },\n toggleCompanyLabelSelected: {\n padding: '1px 10px 0px 0px',\n color: theme.palette.primary.main,\n fontWeight: 600\n },\n toggleCompanyLabel: {\n padding: '1px 10px 0px 0px',\n color: theme.palette.npd.gray\n },\n toggleUserLabelSelected: {\n padding: '1px 10px 0px 10px',\n color: theme.palette.primary.main,\n fontWeight: 600\n },\n toggleUserLabel: {\n padding: '1px 10px 0px 10px',\n color: theme.palette.npd.gray\n },\n inputControl: {\n width: 187,\n padding: 8,\n fontSize: 12\n },\n button: {\n minWidth: 202\n },\n disabledbutton: {\n color: `${theme.palette.white} !important`,\n backgroundColor: `${theme.palette.tableRowDivider} !important`\n },\n\n}));\n\nexport default function ImpersonationSelection(props) {\n const { user } = props;\n const classes = useStyles();\n const [impersonationType, setImpersonationType] = useState(user.companyImpersonation ? 'company' : 'user');\n const [name, setName] = useState( user.impersonating ? (user.companyImpersonation ? user.impersonateAsCompany : user.impersonateAsUser) : '');\n const [isSaving, setIsSaving] = useState(false);\n const { enqueueSnackbar } = useSnackbar();\n\n const onToggleChange = (event, value) => {\n if (isUserImpersonation())\n setImpersonationType('company');\n else\n setImpersonationType('user');\n }\n \n const isUserImpersonation = () => {\n return impersonationType === 'user';\n }\n\n const getPlaceholder = () => {\n return impersonationType === 'user' ? 'add username' : 'add company or company/department';\n }\n\n const onChangeName = (event) => {\n setName(event.target.value);\n }\n\n const onKeyPress = (e) => {\n if (e.key === 'Enter') {\n SetImpersonation();\n }\n }\n\n const SetImpersonation = () => {\n setIsSaving(true);\n if (isUserImpersonation()) {\n var msg = 'Impersonating user failed.';\n ImpersonationService.impersonateUser(name).then(response => {\n if (response.status === 200)\n window.parent.location = window.parent.location.href;\n else\n impersonationFailed(msg);\n }).catch(e => {\n impersonationFailed(msg);\n });\n }\n else {\n var msg = 'Impersonating company failed.';\n ImpersonationService.impersonateCompany(name).then(response => {\n if (response.status === 200)\n window.parent.location = window.parent.location.href;\n else\n impersonationFailed(msg);\n }).catch(e => {\n impersonationFailed(msg);\n });\n }\n }\n\n const impersonationFailed = (msg) => {\n enqueueSnackbar(msg, { variant: 'warning' });\n setIsSaving(false);\n }\n\n return (\n \n \n Select user/company to impersonate\n \n\n \n Company\n \n User\n \n\n \n \n \n \n SetImpersonation()} >Start Impersonating\n \n \n );\n}\n","import React, { useEffect, useState } from 'react';\n\nimport _ from 'lodash';\n// @material-ui/core components\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Button, Tooltip } from '@material-ui/core';\nimport Icon from '@mdi/react';\nimport { mdiIncognito } from '@mdi/js';\nimport { ImpersonationService } from 'services/api';\nimport { useSnackbar } from 'notistack';\n\nconst useStyles = makeStyles(theme => ({\n\n root: {\n padding: '10px 15px',\n backgroundColor: theme.palette.background.darkGray,\n borderRadius: '0px 0px 4px 4px'\n },\n topLabel: {\n color: theme.palette.white,\n fontSize: 12,\n },\n wrapper: {\n margin: '10px 0px'\n },\n info: {\n display: 'flex',\n minWidth: 169,\n minHeight: 20,\n backgroundColor: theme.palette.white,\n borderRadius: 4,\n margin: '0px 5px'\n },\n infoValue: {\n flex: '1',\n padding: 5\n },\n infoWrapper: {\n display: 'flex',\n margin: '10px 0px',\n '& svg': {\n fill: theme.palette.white\n }\n },\n department: {\n fontSize: 9,\n display: 'block',\n lineHeight: '10px'\n },\n changeButton: {\n color: theme.palette.text.link,\n fontSize: 12,\n margin: 5,\n cursor: 'pointer'\n },\n button: {\n minWidth: 129,\n color: theme.palette.white,\n border: `1px solid ${theme.palette.white}`,\n background: 'transparent',\n padding: '0px 10px',\n fontWeight: 400\n },\n\n}));\n\nexport default function ImpersonationDetails(props) {\n const { setView, user } = props;\n const classes = useStyles();\n const [isSaving, setIsSaving] = useState(false);\n const { enqueueSnackbar } = useSnackbar();\n\n const CancelImpersonation = () => {\n setIsSaving(true);\n ImpersonationService.removeImpersonation().then(response => {\n window.parent.location = window.parent.location.href;\n }).catch(e => {\n enqueueSnackbar('Canceling impersonation failed.', { variant: 'warning' });\n setIsSaving(false);\n });\n }\n\n const ChangeImpersonation = () => {\n if (!isSaving)\n setView('select');\n }\n\n const getImpersonateAsDepartments = () => {\n //return first few and do ellipsis if more\n var departments = _.split(user.impersonateAsDepartment, ';');\n if (departments.length > 4) {\n departments = _.slice(departments, 0, 3);\n departments.push('...');\n }\n return departments.map((x, i) => {\n return ({x})\n });\n };\n\n return (\n \n \n You are currently impersonating\n \n \n \n \n \n \n \n {user.isImpersonating && (\n \n {user.impersonateAsUser && user.impersonateAsUser.length ? \n \n {user.impersonateAsUser}\n {user.impersonateAsCompany}\n \n \n {getImpersonateAsDepartments()}\n \n \n \n : \n \n {user.impersonateAsCompany}\n \n \n {getImpersonateAsDepartments()}\n \n \n \n }\n \n )}\n \n ChangeImpersonation()}>Change\n \n \n \n CancelImpersonation()} >Cancel Impersonating\n \n \n );\n}\n","import React, { useState } from 'react';\n\nimport _ from 'lodash';\n// @material-ui/core components\nimport { makeStyles } from '@material-ui/core/styles';\nimport { StartImpersonation, ImpersonationSelection, ImpersonationDetails } from './components/'\nimport { ApplicationContext } from 'context';\n\nconst useStyles = makeStyles(theme => ({\n\n root: {\n padding: 0,\n borderTop: `1px solid ${theme.palette.tableRowDivider}`,\n minWidth: 242\n }\n}));\n\nexport default function Impersonation(props) {\n\n const classes = useStyles();\n const { appInfo } = React.useContext(ApplicationContext);\n const user = appInfo.user;\n const [view, setView] = useState( user.isImpersonating ? 'details' : 'start');\n\n return (\n \n {\n view == 'start' ? \n : ''\n }\n {\n view == 'select' ? \n : ''\n }\n {\n view == 'details' ? \n : ''\n }\n \n );\n}\n","import React, { useState, useEffect, useContext } from 'react';\nimport PropTypes from 'prop-types'\n\nimport clsx from 'clsx';\nimport {SearchAutocomplete} from 'components';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Select, MenuItem, Divider, Grid, Button, IconButton } from '@material-ui/core';\nimport { Search as SearchIcon, Close, ArrowDropDown as ArrowDropDownIcon, Cached } from '@material-ui/icons'\nimport {SearchContext} from 'context';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: 460,\n margin: '0 0 0 30px',\n padding: 0,\n border: '1px solid #D8D8D8',\n borderRadius: theme.shape.borderRadius,\n height: 33,\n\n '&:hover': {\n borderColor: theme.palette.primary.main,\n }\n },\n\n active: {\n borderColor: theme.palette.primary.main\n },\n\n hr: {\n margin: 0,\n height: 30,\n },\n iconButton: {\n marginRight: 3,\n marginLeft: 5,\n padding: '1px 1px',\n minWidth: 30,\n boxShadow: 'none',\n borderRadius: 2\n },\n searchIcon: {\n width: 18\n },\n select: {\n paddingTop: 7,\n paddingLeft: theme.spacing(1),\n width: 70\n },\n selectDisplayStyle: {\n color: theme.palette.primary.main,\n fontWeight: '600',\n fontSize: 12,\n },\n selectItemStyle: {\n color: theme.palette.primary.main,\n fontWeight: '300',\n fontSize: 12,\n paddingLeft: theme.spacing(1),\n paddingTop: 0,\n paddingBottom: 0\n\n },\n popOverStyle: {\n width: 85,\n borderRadius: '0 0 4px 4px',\n boxShadow: '0 4px 10px -4px rgba(187,206,219,0.44)'\n },\n menuItemSelected: {\n backgroundColor: 'transparent !important;',\n fontWeight: '600',\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.14) !important;'\n }\n }\n}));\n\n\n\nexport default function Search(props) {\n const classes = useStyles();\n const searchContext = React.useContext(SearchContext);\n const {\n handleSearchTypeChange,\n handleTextBoxOnChange,\n handleAutoCompleteValueOnChange,\n handleOnEnter,\n handleSearch,\n handleClearClick,\n GetAutoSuggestOptions,\n searchTypes,\n inputTerm,\n setInputTerm,\n searchType,\n showClearButton = true,\n optionKey = 'keyword',\n optionId= 'id'\n } = props;\n\n const [options, setOptions] = React.useState([]);\n const [active, setActive] = useState(false);\n\n const onClearClick = () => {\n setInputTerm('');\n if (handleClearClick)\n handleClearClick();\n }\n\n return (\n \n \n {searchTypes.map(stype => (\n {stype.Name}\n ))}\n \n \n setActive(true)}\n handleOnBlur={() => setActive(false)}\n handleTextBoxOnChange={handleTextBoxOnChange}\n handleSearchRedirect={handleSearch}\n handleAutoCompleteValueOnChange={handleAutoCompleteValueOnChange}\n GetAutoSuggestOptions={GetAutoSuggestOptions}\n />\n {(showClearButton && inputTerm !== '') ?\n \n \n : ''\n }\n \n \n \n \n\n );\n}\n\n\nSearch.propTypes = {\n handleSearchTypeChange: PropTypes.func.isRequired,\n handleTextBoxOnChange: PropTypes.func.isRequired,\n handleAutoCompleteValueOnChange: PropTypes.func.isRequired,\n handleOnEnter: PropTypes.func.isRequired,\n handleSearch: PropTypes.func.isRequired,\n GetAutoSuggestOptions: PropTypes.func.isRequired,\n searchTypes: PropTypes.array.isRequired,\n inputTerm: PropTypes.string,\n setInputTerm: PropTypes.func.isRequired,\n searchType: PropTypes.number\n};\n","import React, { useState } from \"react\";\n\nimport { useApi, CustomSelect } from 'components';\nimport { DataSourceContext } from 'context';\n\nexport default function DataSourceSelection(props) {\n const api = useApi();\n const context = React.useContext(DataSourceContext);\n\n const dataSourceSelectedKey = context.dataSourceSelectedKey;\n const setDataSourceSelectedKey = context.setDataSourceSelectedKey;\n const [dataSources, setDataSources] = useState([]);\n \n // load only once \n React.useEffect(() => {\n api.getDataSource(context.appKey).then(res => {\n setDataSources(res.data);\n if (res.data.length)\n setDataSourceSelectedKey(res.data[0].token)\n })}, []);\n \n\n const preventDefault = event => event.preventDefault();\n return (\n \n );\n}\n\nDataSourceSelection.propTypes = {\n};\n","import React, {useEffect, useState} from 'react'\nimport PropTypes from 'prop-types';\n//material ui components\nimport { makeStyles } from '@material-ui/core/styles';\nimport {Popover, Tooltip, Button, IconButton, Badge} from '@material-ui/core';\n//custom components\nimport {SearchContext, DataSourceContext} from 'context'\nimport useApi from 'components/Api/Api'\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1,\n },\n typography: {\n padding: theme.spacing(2)\n },\n iconOpenRoot:{\n color: theme.palette.common.white,\n backgroundColor: theme.palette.npd.darkBlue,\n borderRadius: 0,\n height: 48,\n width: 48,\n '&:hover':{\n color: theme.palette.common.white,\n backgroundColor: theme.palette.npd.darkBlue,\n }\n },\n iconRoot:{\n height: 48,\n width: 48,\n },\n button:{\n width: 150,\n color: theme.palette.npd.blue,\n '&:hover':{\n boxShadow: '0px 5px 10px 1px rgba(0,0,0,.15)',\n fontWeight: 600\n }\n },\n AdvanceSeachButton: {\n height: 32,\n width: 79,\n marginLeft: 15,\n lineHeight: '10px',\n letterSpacing: 0.3,\n fontSize: 10, \n fontWeight: 'bold'\n },\n gridContainer:{\n padding: theme.spacing(1)\n },\n textBox: {\n height:33,\n width: '100%',\n padding:8\n },\n popoverRoot: {\n backgroundColor: 'rgba(0,0,0,.2)'\n }\n \n }));\n\nexport default function AdvancedSearch(props){\n const classes = useStyles();\n \n const [open, setOpen] = useState(false);\n const [badgeCount, setBadgeCount] = React.useState(0);\n const searchContext = React.useContext(SearchContext);\n const buttonRef = React.useRef(null);\n const {rowsPerPageOptions, columns, AdvancedSearchForm, AdvancedSearchFormProps} = props;\n\n const handleClose = (event) => {\n setOpen(false);\n };\n \n useEffect(() => {\n setBadgeCount(searchContext.filterCount)\n }, [searchContext.filterCount]);\n\n const handleClick = event => {\n setOpen(!open);\n };\n\n return (\n \n \n \n Advanced Search\n \n \n \n \n \n );\n}\n\nAdvancedSearch.propTypes = {\n AdvancedSearchForm: PropTypes.func.isRequired\n};","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { AppBar, Toolbar, Badge, Hidden, IconButton, Avatar, Box, Divider } from '@material-ui/core';\n\nimport MenuIcon from '@material-ui/icons/Menu';\n\nimport { UserAvatar } from 'components';\nimport { DataSourceSelection, AdvancedSearch} from './components';\n\nconst drawerWidth = 100;\nconst useStyles = makeStyles(theme => ({\n root: {\n boxShadow: 'none',\n backgroundColor: theme.palette.common.white,\n zIndex: 1000,\n height: 48,\n [theme.breakpoints.up('md')]: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth\n }\n },\n toolbar: {\n paddingLeft: 0,\n paddingRight:0\n },\n brand: {\n backgroundColor: theme.palette.background.default,\n textAlign: 'center',\n // paddingTop: 23,\n paddingLeft: 5,\n borderRight: `1px solid #F7F7F7`,\n fontSize: 15,\n fontWeight: '600',\n color: '#565A5C',\n width: 150,\n // height: 64,\n\n //cursor: 'pointer'\n },\n flexGrow: {\n flexGrow: 1\n },\n avatar: {\n marginLeft: theme.spacing(2),\n color: '#fff',\n backgroundColor: theme.palette.primary.main,\n },\n dataSourceSelection: {\n backgroundColor: theme.palette.primary.dark,\n minHeight: 31\n },\n avatarBtnActive:{\n backgroundColor: '#32404E',\n },\n profileLabel: {\n color: theme.palette.white,\n fontWeight: 600,\n fontSize: 12,\n marginRight : 23,\n marginLeft : 10\n },\n shiftRight:{\n flexGrow: 1\n }\n}));\n\nconst Topbar = props => {\n const { className, onSidebarOpen, setBackdrop, brandName, AdvancedSearchForm, AdvancedSearchFormProps, Search, RightComponent } = props;\n const classes = useStyles();\n const [mainHeaderRef, setMainHeaderRef] = React.useState(null);\n \n return (\n \n \n {brandName}\n \n \n {AdvancedSearchForm && }\n \n \n \n \n \n \n \n \n \n DATA SOURCE \n \n {RightComponent &&\n }\n \n \n );\n};\n\nTopbar.propTypes = {\n className: PropTypes.string,\n onSidebarOpen: PropTypes.func,\n AdvancedSearchForm: PropTypes.func,\n setBackdrop: PropTypes.func\n};\n\nexport default Topbar;\n","import React, { useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport PropTypes from 'prop-types'\nimport clsx from 'clsx';\nimport axios from 'axios';\n\nimport { AutoCompleteDropdown as SearchAutocomplete } from 'components';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Grid, Button, IconButton, Select, MenuItem, Divider } from '@material-ui/core';\nimport { Close,ArrowDropDown as ArrowDropDownIcon, Cached } from '@material-ui/icons';\nimport { SearchContext } from 'context';\nimport SearchIcon from '@material-ui/icons/Search';\n\nconst useAutocompleteStyle = makeStyles(theme => ({\n inputRoot: {\n height: 32,\n paddingRight: 0\n },\n input: {\n height: 12,\n marginLeft: theme.spacing(1),\n flex: 1,\n fontSize: 14,\n }\n}))\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: 460,\n margin: '0 0 0 30px',\n padding: 0,\n border: '1px solid #D8D8D8',\n borderRadius: theme.shape.borderRadius,\n height: 33,\n\n '&:hover': {\n borderColor: theme.palette.primary.main,\n }\n },\n\n active: {\n borderColor: theme.palette.primary.main\n },\n\n hr: {\n margin: 0,\n height: 20,\n },\n iconButton: {\n marginRight: 3,\n marginLeft: 5,\n padding: '1px 1px',\n minWidth: 30,\n boxShadow: 'none',\n borderRadius: 2\n },\n searchIcon: {\n width: 18,\n\n },\n select: {\n paddingTop: 7,\n paddingLeft: theme.spacing(1),\n width: 70\n },\n selectDisplayStyle: {\n color: theme.palette.primary.main,\n fontWeight: '600',\n fontSize: 12,\n },\n selectItemStyle: {\n color: theme.palette.primary.main,\n fontWeight: '300',\n fontSize: 12,\n paddingLeft: theme.spacing(1),\n paddingTop: 0,\n paddingBottom: 0\n\n },\n popOverStyle: {\n width: 85,\n borderRadius: '0 0 4px 4px',\n boxShadow: '0 4px 10px -4px rgba(187,206,219,0.44)'\n },\n menuItemSelected: {\n backgroundColor: 'transparent !important;',\n fontWeight: '600',\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.14) !important;'\n }\n },\n\n closeButton: {\n color: theme.palette.action.disabled\n }\n}));\n\n\n\nexport default function Search(props) {\n const classes = useStyles();\n const history = useHistory();\n const context = React.useContext(SearchContext);\n\n const [inputTerm, setInputTerm] = useState('');\n const [active, setActive] = useState(false);\n\n const handleTextBoxOnChange = (e, v) => {\n setInputTerm(e.target.value);\n };\n\n const handleAutoCompleteValueOnChange = (e, v) => {\n setInputTerm(e.target.value);\n };\n\n const handleOnEnter = event => {\n if (event.key === 'Enter') {\n handleSearchClick();\n }\n };\n\n const handleSearchClick = () => {\n if (inputTerm !== context.searchTitle) {\n context.setSearchTitle(inputTerm);\n if (inputTerm === '') {\n context.setFilterCount(0);\n }\n else {\n context.setFilterCount(1);\n context.setPage(1);\n }\n }\n\n };\n\n const handleClearClick = () => {\n if (context.searchTitle !== '')\n context.setFilterCount(--context.filterCount);\n\n setInputTerm('');\n context.setSearchTitle('');\n };\n const searchTypes = [{Name: 'Title ', id: 0}];\n const [searchType, setSearchType] = useState(0);\n const handleSearchTypeChange = event => { setSearchType(event.target.value); };\n\n\n return (\n \n \n {searchTypes.map(stype => (\n {stype.Name}\n ))}\n \n \n setActive(true)}\n handleOnBlur={() => setActive(false)}\n handleTextBoxOnChange={handleTextBoxOnChange}\n handleAutoCompleteValueOnChange={handleAutoCompleteValueOnChange}\n inputClasses={useAutocompleteStyle()}\n />\n {(inputTerm !== '') ?\n \n \n : ''\n }\n \n \n \n \n\n );\n}\n\nvar CancelToken = axios.CancelToken;\nvar cancel;\n\n\nSearch.propTypes = {\n searchType: PropTypes.number\n};\n","import React from 'react'\nimport { AutoCompleteDropdown as SearchAutocomplete } from 'components'\nimport { makeStyles } from '@material-ui/core/styles';\nimport { FormControl, Select, Box, OutlinedInput, Button, Divider, Typography, Grid } from '@material-ui/core';\nimport { SearchContext } from 'context'\nimport { MuiPickersUtilsProvider, KeyboardDatePicker } from '@material-ui/pickers';\nimport MomentUtils from '@date-io/moment';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1,\n },\n typography: {\n padding: theme.spacing(2)\n },\n iconOpenRoot: {\n color: theme.palette.common.white,\n backgroundColor: theme.palette.npd.darkBlue,\n borderRadius: 0,\n height: 48,\n width: 48,\n '&:hover': {\n color: theme.palette.common.white,\n backgroundColor: theme.palette.npd.darkBlue,\n }\n },\n iconRoot: {\n height: 48,\n width: 48,\n },\n button: {\n width: 150,\n color: theme.palette.npd.blue,\n '&:hover': {\n boxShadow: '0px 5px 10px 1px rgba(0,0,0,.15)',\n fontWeight: 600\n }\n },\n gridContainer: {\n padding: theme.spacing(1)\n },\n popperPaper: {\n width: 450,\n height: 330,\n padding: theme.spacing(1),\n textAlign: 'center',\n whiteSpace: 'nowrap',\n marginBottom: theme.spacing(1),\n },\n textBox: {\n height: 33,\n width: '100%',\n '&:input': {\n padding: 8\n }\n },\n formControl: {\n width: '100%',\n paddingRight: 5\n },\n formControlLast: {\n width: '100%'\n },\n select: {\n padding: 8,\n width: '100%'\n },\n dense: {\n padding: 0,\n margin: 0,\n '& > div > input': {\n padding: 8\n }\n },\n endAdornment: {\n padding: 0,\n '& > button': {\n padding: 0\n }\n }\n}));\n\nexport default function AdvancedSearchForm(props) {\n const classes = useStyles();\n const { categories, formats, rowsPerPageOptions, columns, handleClose } = props;\n const searchContext = React.useContext(SearchContext);\n\n const [title, setTitle] = React.useState(searchContext.searchTitle);\n const [category, setCategory] = React.useState(searchContext.category);\n const [format, setFormat] = React.useState(searchContext.format);\n const [startdate, setStartdate] = React.useState(searchContext.startdate);\n const [enddate, setEnddate] = React.useState(searchContext.enddate);\n const [orderBy, setOrderBy] = React.useState(searchContext.orderBy);\n const [orderByDirection, setOrderByDirection] = React.useState(searchContext.orderByDirection);\n const [pageSize, setPageSize] = React.useState(searchContext.pageSize);\n\n const handleTitleChange = (event) => {\n setTitle(event.target.value);\n }\n const handleCategoryChange = (event, value) => {\n if (value !== undefined && value.ids !== undefined)\n setCategory(value);\n }\n const handleFormatChange = (event, value) => {\n if (value !== undefined && value.ids !== undefined)\n setFormat(value);\n }\n const handleFormatTextBoxChange = (event) => {\n if (event !== undefined && event.target !== undefined)\n setFormat({ name: event.target.value });\n }\n const handleCategoryTextBoxChange = (event) => {\n if (event !== undefined && event.target !== undefined)\n setCategory({ name: event.target.value });\n }\n const handleOrderByChange = (event) => {\n setOrderBy(event.target.value);\n }\n const handleOrderByDirectionChange = (event) => {\n setOrderByDirection(event.target.value);\n }\n const handlePageSizeChange = (event) => {\n setPageSize(event.target.value);\n }\n\n const setFilterCount = (value) => {\n let count = 0;\n if (value !== undefined && value !== '')\n searchContext.setFilterCount(value);\n else {\n if (title !== '')\n count++;\n if (format.name !== '')\n count++;\n if (category.name !== '')\n count++;\n if (startdate !== null && startdate !== undefined)\n count++;\n if (enddate !== null && enddate !== undefined)\n count++;\n\n searchContext.setFilterCount(count);\n }\n }\n const onApplyClick = () => {\n setFilters(false);\n searchContext.setPage(1);\n setFilterCount();\n handleClose();\n }\n\n const onClearClick = () => {\n setTitle('');\n setEnddate(null);\n setStartdate(null);\n setFormat({ name: '', ids: '' });\n setCategory({ name: '', ids: '' });\n setFilterCount(0);\n setFilters(true);\n }\n\n const setFilters = (shouldClear) => {\n if (shouldClear) {\n searchContext.setSearchTitle('');\n searchContext.setCategory({ name: '', ids: '' });\n searchContext.setFormat({ name: '', ids: '' });\n searchContext.setStartdate(null);\n searchContext.setEnddate(null);\n }\n else {\n searchContext.setSearchTitle(title);\n searchContext.setCategory(category);\n searchContext.setFormat(format);\n searchContext.setStartdate(startdate);\n searchContext.setEnddate(enddate);\n searchContext.setOrderBy(orderBy);\n searchContext.setOrderByDirection(orderByDirection);\n searchContext.setPageSize(pageSize);\n }\n }\n return (\n \n \n \n \n Clear\n \n \n Apply\n \n \n \n \n \n \n \n Title\n \n \n \n \n \n \n \n \n \n Category\n \n \n item === searchContext.category) || { name: '' }}\n getOptionLabel={option => option.name}\n options={categories}\n placeholder='All Categories'\n outlined={true}\n freeSolo={false}\n />\n \n \n \n \n \n \n Format\n \n \n item === searchContext.format) || { name: '' }}\n getOptionLabel={option => option.name}\n options={formats}\n placeholder='All Formats'\n outlined={true}\n freeSolo={false}\n />\n \n \n \n \n \n \n \n Date Released\n \n \n setStartdate(date)}\n />\n \n \n \n setEnddate(date)}\n />\n \n \n \n \n \n \n \n Sort / Limit\n \n \n \n \n {columns.map(item => { return !item.disableSort ? {item.label} : '' })}\n \n \n \n \n \n \n Desc\n Asc\n \n \n \n \n /\n \n \n \n \n {rowsPerPageOptions.map(item => { return {item} })}\n \n \n \n \n \n \n );\n}","import React, {useEffect, useState} from 'react'\nimport { makeStyles } from '@material-ui/core/styles';\nimport {Popover, Tooltip, Button, Badge} from '@material-ui/core';\nimport {FilterList as FilterListIcon} from '@material-ui/icons';\n\nimport AdvancedSearchForm from './Components/AdvancedSearchForm'\nimport {SearchContext, DataSourceContext} from 'context'\nimport {useApi} from 'components'\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1,\n },\n typography: {\n padding: theme.spacing(2)\n },\n iconOpenRoot:{\n color: theme.palette.common.white,\n backgroundColor: theme.palette.npd.blue,\n borderRadius: 0,\n height: 32,\n width: 32,\n marginLeft:5,\n '&:hover':{\n color: theme.palette.common.white,\n backgroundColor: theme.palette.npd.blue,\n }\n },\n iconRoot:{\n height: 32,\n width: 32,\n marginLeft:5\n },\n button:{\n width: 150,\n color: theme.palette.npd.blue,\n '&:hover':{\n boxShadow: '0px 5px 10px 1px rgba(0,0,0,.15)',\n fontWeight: 600\n }\n },\n gridContainer:{\n padding: theme.spacing(1)\n },\n textBox: {\n height:33,\n width: '100%',\n padding:8\n },\n popoverRoot: {\n backgroundColor: 'rgba(0,0,0,.2)'\n },\n AdvanceSeachButton: {\n height: 32,\n width: 79,\n marginLeft: 15,\n lineHeight: '10px',\n letterSpacing: 0.3,\n fontSize: 10, \n fontWeight: 'bold'\n },\n \n }));\n\nexport default function AdvancedSearch(props){\n const classes = useStyles();\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [open, setOpen] = useState(false);\n const [badgeCount, setBadgeCount] = React.useState(0);\n const searchContext = React.useContext(SearchContext);\n const buttonRef = React.useRef(null);\n const {rowsPerPageOptions, columns} = props;\n\n const handleClose = (event) => {\n setAnchorEl(null);\n };\n const datasourceContext = React.useContext(DataSourceContext);\n const [formats, setFormat] = React.useState([]);\n const [categories, setCategories] = React.useState([]);\n const api = useApi();\n\n useEffect(() => {\n if (datasourceContext.dataSourceSelectedKey !== '') {\n api.getFormats(datasourceContext.dataSourceSelectedKey).then(res => {\n setFormat(res.data);\n });\n api.getCategories(datasourceContext.dataSourceSelectedKey).then(res => {\n setCategories(res.data);\n });\n }\n }, [datasourceContext.dataSourceSelectedKey]);\n \n useEffect(() => {\n setOpen(Boolean(anchorEl));\n }, [anchorEl])\n\n useEffect(() => {\n setBadgeCount(searchContext.filterCount)\n }, [searchContext.filterCount]);\n\n const handleClick = event => {\n if (anchorEl) {\n setAnchorEl(null);\n } else {\n setAnchorEl(buttonRef.current);\n }\n };\n\n return (\n \n\n \n \n Advanced Search\n \n\n\n\n {/* \n \n \n \n */}\n\n\n \n \n \n \n );\n}","//core\nimport React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { useSnackbar } from 'notistack';\n//material ui\nimport { makeStyles } from '@material-ui/core/styles';\nimport { AppBar, Toolbar, Hidden, Box, Divider,IconButton } from '@material-ui/core';\n//custom components\nimport useApi from 'components/Api/Api';\nimport { DataSourceSelection, Search, AdvancedSearch } from './components';\nimport { UserAvatar } from 'components';\nimport { GridContext, ApplicationContext } from 'context';\nimport MenuIcon from '@material-ui/icons/Menu';\n\nconst drawerWidth = 100;\nconst useStyles = makeStyles(theme => ({\n root: {\n boxShadow: 'none',\n backgroundColor: theme.palette.white,\n zIndex: 1000,\n height: 40,\n [theme.breakpoints.up('sm')]: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth\n }\n },\n toolbar: {\n paddingLeft: 0,\n paddingRight: 0\n },\n pageTitle: {\n color: theme.palette.primary.contrastText\n },\n brand: {\n backgroundColor: theme.palette.background.default,\n textAlign: 'center',\n // paddingTop: 23,\n borderRight: `1px solid #F7F7F7`,\n fontSize: 15,\n fontWeight: '600',\n color: '#565A5C',\n width: 140,\n },\n flexGrow: {\n flexGrow: 1\n },\n avatar: {\n marginLeft: theme.spacing(2),\n color: '#fff',\n backgroundColor: theme.palette.primary.main,\n },\n\n dataSourceSelection: {\n backgroundColor: theme.palette.primary.dark,\n minHeight: 31\n },\n avatarBtnActive: {\n backgroundColor: '#32404E',\n },\n search: {\n position: 'relative',\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.common.white,\n marginLeft: 0,\n width: '100%',\n [theme.breakpoints.up('sm')]: {\n marginLeft: theme.spacing(1),\n width: 'auto',\n },\n },\n searchIcon: {\n width: theme.spacing(7),\n height: '100%',\n position: 'absolute',\n pointerEvents: 'none',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'red'//theme.palette.primary.main\n },\n iconRoot: {\n margin: 3\n },\n\nshiftRight:{\n flexGrow: 1\n},\n profileLabel: {\n color: theme.palette.white,\n fontWeight: 600,\n fontSize: 12,\n marginRight : 23,\n marginLeft : 10\n }\n}));\n\nconst Topbar = props => {\n const { onSidebarOpen,className, dataSources, dataSourceSelectedKey, handleDataSourceChange, rowsPerPageOptions, columns, refresh, RightComponent, ...rest } = props;\n const { rowsSelected: rowsSelected } = React.useContext(GridContext);\n const appContext = React.useContext(ApplicationContext);\n const classes = useStyles();\n const api = useApi();\n const [mainHeaderRef, setMainHeaderRef] = React.useState(null);\n const { enqueueSnackbar } = useSnackbar();\n\n return (\n \n \n Client Center\n \n {/*SEARCH TITLE*/} \n \n \n\n \n {/*\n \n */}\n \n \n \n \n \n \n \n \n DATA SOURCE\n \n \n {RightComponent &&\n }\n \n \n );\n};\n\nTopbar.propTypes = {\n className: PropTypes.string,\n onSidebarOpen: PropTypes.func,\n\n setBackdrop: PropTypes.func\n};\n\nexport default Topbar;\n","import React, { useState, useEffect, useContext } from 'react';\n\nimport { useHistory } from 'react-router-dom';\nimport PropTypes from 'prop-types'\nimport clsx from 'clsx';\nimport axios from 'axios';\n\nimport { AutoCompleteDropdown as SearchAutocomplete } from 'components';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Grid, Button, IconButton, Select, MenuItem, Divider } from '@material-ui/core';\nimport { Close,ArrowDropDown as ArrowDropDownIcon, Cached } from '@material-ui/icons';\nimport { SearchContext } from 'context';\nimport SearchIcon from '@material-ui/icons/Search';\n\nconst useAutocompleteStyle = makeStyles(theme => ({\n inputRoot: {\n height: 32,\n paddingRight: 0\n },\n input: {\n height: 12,\n marginLeft: theme.spacing(1),\n flex: 1,\n fontSize: 14,\n }\n}))\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: 460,\n margin: '0 0 0 30px',\n padding: 0,\n border: '1px solid #D8D8D8',\n borderRadius: theme.shape.borderRadius,\n height: 33,\n\n '&:hover': {\n borderColor: theme.palette.primary.main,\n }\n },\n\n active: {\n borderColor: theme.palette.primary.main\n },\n\n hr: {\n margin: 0,\n height: 20,\n },\n iconButton: {\n marginRight: 3,\n marginLeft: 5,\n padding: '1px 1px',\n minWidth: 30,\n boxShadow: 'none',\n borderRadius: 2\n },\n searchIcon: {\n width: 18,\n\n },\n select: {\n paddingTop: 7,\n paddingLeft: theme.spacing(1),\n width: 70\n },\n selectDisplayStyle: {\n color: theme.palette.primary.main,\n fontWeight: '600',\n fontSize: 12,\n },\n selectItemStyle: {\n color: theme.palette.primary.main,\n fontWeight: '300',\n fontSize: 12,\n paddingLeft: theme.spacing(1),\n paddingTop: 0,\n paddingBottom: 0\n\n },\n popOverStyle: {\n width: 85,\n borderRadius: '0 0 4px 4px',\n boxShadow: '0 4px 10px -4px rgba(187,206,219,0.44)'\n },\n menuItemSelected: {\n backgroundColor: 'transparent !important;',\n fontWeight: '600',\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.14) !important;'\n }\n },\n\n closeButton: {\n color: theme.palette.action.disabled\n }\n}));\n\nexport default function Search(props) {\n const classes = useStyles();\n const history = useHistory();\n const context = React.useContext(SearchContext);\n \n const {\n //handleSearch,\n GetAutoSuggestOptions,\n showClearButton = true\n } = props;\n \n const [inputTerm, setInputTerm] = useState('');\n const [active, setActive] = useState(false);\n const [options, setOptions] = React.useState([]);\n\n const handleTextBoxOnChange = (e, v) => {\n setInputTerm(e.target.value);\n };\n \n const handleAutoCompleteValueOnChange = (e, v) => {\n setInputTerm(e.target.value);\n };\n\n const handleOnEnter = event => {\n if (event.key === 'Enter') {\n handleSearch();\n }\n };\n\n const handleSearch = () => {\n if (inputTerm !== context.searchTitle) {\n context.setSearchTitle(inputTerm);\n if (inputTerm === '') {\n context.setFilterCount(0);\n context.setDataSource('');\n context.setModule('');\n }\n else {\n context.setPage(1);\n context.setFilterCount(1);\n if (searchType === 0){\n context.setDataSource(inputTerm);\n context.setModule('');\n }\n else {\n context.setDataSource('');\n context.setModule(inputTerm);\n } \n }\n }\n };\n\n const handleClearClick = () => {\n if (context.searchTitle !== '')\n context.setFilterCount(--context.filterCount);\n\n setInputTerm('');\n context.setSearchTitle('');\n };\n \n const searchTypes = [{Name: 'Data Source ', id: 0},{Name: 'Module ', id: 1}];\n const [searchType, setSearchType] = useState(0);\n const handleSearchTypeChange = event => { setSearchType(event.target.value); };\n\n return (\n \n \n {searchTypes.map(stype => (\n {stype.Name}\n ))}\n \n \n setActive(true)}\n handleOnBlur={() => setActive(false)}\n handleTextBoxOnChange={handleTextBoxOnChange}\n handleSearchRedirect={handleSearch}\n handleAutoCompleteValueOnChange={handleAutoCompleteValueOnChange}\n GetAutoSuggestOptions={GetAutoSuggestOptions}\n inputClasses={useAutocompleteStyle()}\n />\n {(inputTerm !== '') ?\n \n \n : ''\n }\n \n \n \n \n\n );\n}\n\nvar CancelToken = axios.CancelToken;\nvar cancel;\n\nSearch.propTypes = {\n handleSearchTypeChange: PropTypes.func.isRequired,\n handleTextBoxOnChange: PropTypes.func.isRequired,\n handleAutoCompleteValueOnChange: PropTypes.func.isRequired,\n handleOnEnter: PropTypes.func.isRequired,\n handleSearch: PropTypes.func.isRequired,\n GetAutoSuggestOptions: PropTypes.func.isRequired,\n searchTypes: PropTypes.array.isRequired,\n inputTerm: PropTypes.string,\n setInputTerm: PropTypes.func.isRequired,\n searchType: PropTypes.number \n};\n","//core\nimport React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { useSnackbar } from 'notistack';\n//material ui\nimport { makeStyles } from '@material-ui/core/styles';\nimport { AppBar, Toolbar, Hidden, Box, Divider,IconButton } from '@material-ui/core';\n//custom components\nimport useApi from 'components/Api/Api';\nimport { Search } from './components';\nimport { UserAvatar } from 'components';\nimport { GridContext, ApplicationContext } from 'context';\nimport MenuIcon from '@material-ui/icons/Menu';\n\nconst drawerWidth = 100;\nconst useStyles = makeStyles(theme => ({\n root: {\n boxShadow: 'none',\n backgroundColor: theme.palette.white,\n zIndex: 1000,\n height: 40,\n [theme.breakpoints.up('sm')]: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth\n }\n },\n toolbar: {\n paddingLeft: 0,\n paddingRight: 0\n },\n pageTitle: {\n color: theme.palette.primary.contrastText\n },\n brand: {\n backgroundColor: theme.palette.background.default,\n textAlign: 'center',\n // paddingTop: 23,\n paddingLeft: 5,\n borderRight: `1px solid #F7F7F7`,\n fontSize: 15,\n fontWeight: '600',\n color: '#565A5C',\n width: 150,\n },\n flexGrow: {\n flexGrow: 1\n },\n avatar: {\n marginLeft: theme.spacing(2),\n color: '#fff',\n backgroundColor: theme.palette.primary.main,\n },\n\n dataSourceSelection: {\n backgroundColor: theme.palette.primary.dark,\n minHeight: 31\n },\n avatarBtnActive: {\n backgroundColor: '#32404E',\n },\n search: {\n position: 'relative',\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.common.white,\n marginLeft: 0,\n width: '100%',\n [theme.breakpoints.up('sm')]: {\n marginLeft: theme.spacing(1),\n width: 'auto',\n },\n },\n searchIcon: {\n width: theme.spacing(7),\n height: '100%',\n position: 'absolute',\n pointerEvents: 'none',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'red'//theme.palette.primary.main\n },\n iconRoot: {\n margin: 3\n },\n\nshiftRight:{\n flexGrow: 1\n},\n profileLabel: {\n color: theme.palette.white,\n fontWeight: 600,\n fontSize: 12,\n marginRight : 23,\n marginLeft : 100\n }\n}));\n\nconst Topbar = props => {\n const { onSidebarOpen, className, brandName, rowsPerPageOptions, columns, refresh, RightComponent, ...rest } = props;\n const { rowsSelected: rowsSelected } = React.useContext(GridContext);\n const appContext = React.useContext(ApplicationContext);\n const classes = useStyles();\n const api = useApi();\n const [mainHeaderRef, setMainHeaderRef] = React.useState(null);\n const { enqueueSnackbar } = useSnackbar();\n\n return (\n \n \n {brandName}\n \n {/*SEARCH TITLE*/} \n \n \n \n {/*\n \n */}\n \n \n \n \n \n \n \n \n \n {RightComponent &&\n }\n \n \n );\n};\n\nTopbar.propTypes = {\n className: PropTypes.string,\n onSidebarOpen: PropTypes.func,\n setBackdrop: PropTypes.func\n};\n\nexport default Topbar;\n","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {Logo} from 'components'\nimport { AppBar, Toolbar, Box, Divider } from '@material-ui/core';\nimport { UserAvatar } from 'components';\n\nconst drawerWidth = 0;\nconst useStyles = makeStyles(theme => ({\n root: {\n boxShadow: 'none',\n backgroundColor: theme.palette.common.white,\n zIndex: 1000,\n height: 40,\n [theme.breakpoints.up('md')]: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth\n }\n },\n toolbar: {\n paddingLeft: 0,\n paddingRight:0\n },\n brand: {\n backgroundColor: theme.palette.background.default,\n textAlign: 'center',\n // paddingTop: 23,\n borderRight: `1px solid #F7F7F7`,\n fontSize: 15,\n fontWeight: '600',\n color: '#565A5C',\n width: 140,\n // height: 64,\n\n //cursor: 'pointer'\n },\n flexGrow: {\n flexGrow: 1\n },\n avatar: {\n marginLeft: theme.spacing(2),\n color: '#fff',\n backgroundColor: theme.palette.primary.main,\n },\n dataSourceSelection: {\n backgroundColor: theme.palette.primary.dark,\n minHeight: 31\n },\n avatarBtnActive:{\n backgroundColor: '#32404E',\n },\n profileLabel: {\n color: theme.palette.white,\n fontWeight: 600,\n fontSize: 12,\n marginRight : 23,\n marginLeft : 100\n }\n}));\n\nconst NFTopbar = props => {\n const { className, ...rest } = props;\n const classes = useStyles();\n const [mainHeaderRef, setMainHeaderRef] = React.useState(null);\n \n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nNFTopbar.propTypes = {\n className: PropTypes.string,\n};\n\nexport default NFTopbar;\n","//core components\nimport React, { useEffect} from 'react'\nimport { useLocation, useHistory } from 'react-router-dom';\nimport {ApplicationContext} from 'context';\nimport query from 'query-string';\n//material ui components\nimport { makeStyles, lighten } from '@material-ui/core/styles';\nimport { ToggleButtonGroup, ToggleButton } from '@material-ui/lab';\nimport {Tooltip} from '@material-ui/core'\n\n\nconst useStyles = makeStyles(theme => ({\n toolbar: { \n paddingLeft: 20,\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n flexGrow: 2,\n },\n toggleButtonGroupRoot: {\n backgroundColor: 'transparent'\n },\n buttonSelected: {\n fill: `${theme.palette.white} !important`,\n backgroundColor: `${theme.palette.primary.main} !important`\n },\n buttonRoot: {\n height: 25,\n fill: '#455a64',\n borderRadius: 18,\n borderColor: theme.palette.grey,\n width: 130,\n fontSize: 12,\n margin:1,\n marginLeft: 1\n },\n flex: {\n flexGrow: 2,\n },\n iconButton:{\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.common.white,\n marginLeft: 10,\n '&:hover': {\n backgroundColor: theme.palette.npd.darkBlue\n },\n '&:disabled':{\n backgroundColor: lighten(theme.palette.npd.gray, .7)\n }\n }\n}));\n\nfunction FileCenterToolBar(props) {\n const { tableView, setTableView, messageComponent} = props;\n const classes = useStyles();\n const location = useLocation();\n const history = useHistory();\n const appContext = React.useContext(ApplicationContext);\n \n const handleToggleButtonChange = (event, value) => {\n //Do not allow to untoggle\n if (value !== undefined && value !== null)\n {\n setTableView(value);\n Redirect(value); \n }\n }\n \n useEffect(() => {\n if (location.search){\n const tab = query.parse(location.search);\n setTableView(tab.tab);\n }\n }, [location])\n \nconst Redirect = (value) => {\n if (value=='doc')\n history.push(`/clientcenter`);\n else if (value === 'odata') \n history.push(`/filecenter?tab=odata`);\t \n else if (value === 'batch') \n history.push(`/filecenter`);\n else if (value == 'reports')\n history.push(`/filecenter?tab=reports`)\n else \n history.push(`/filecenter?tab=repo`);\n};\n\n return (\n \n {appContext.appInfo.user.hasFCAccess && \n \n {appContext.appInfo.user.hasCCAccess && \n \n \n Client Center\n \n \n } \n \n \n Batch Reports\n \n \n \n \n File Repository\n \n \n {(appContext.appInfo.user.isSharedAccountImpersonation) &&\n \n \n My Reports\n \n \n }\n\n \n }\n {messageComponent}\n \n \n )\n}\n\nexport default FileCenterToolBar;","import React from 'react';\n//material ui components\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport {GetApp as DownloadIcon, Error } from '@material-ui/icons';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {useApi} from 'components';\nimport { useSnackbar } from 'notistack';\n\nconst useStyle = makeStyles(theme => ({\n root: {\n padding: '0 2px',\n fontSize: '1rem',\n '& > span > svg':{\n fontSize: '1.2rem',\n }\n },\n colorError: {\n color: theme.palette.npd.orange\n },\n colorSuccess: {\n color: theme.palette.npd.green\n }\n\n})); \nconst renderAction = (row, action, classes, keyName) => {\n let item;\n switch (action.name) {\n case 'download':\n if (!action.showOnRow) break;\n if (!row.isExists)\n item = \n \n \n \n \n else\n item = \n action.handler(keyName)}>\n \n \n \n break;\n default:\n item = ;\n break;\n };\n return item;\n}\n\nexport default function ActionCell(props){\n const {keyName, row} = props; \n const api = useApi();\n const {enqueueSnackbar, closeSnackbar} = useSnackbar();\n const classes = useStyle();\n \n const handleDownLoadClick = documentId => {\n \n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated)\n api.downloadCCFile(row.groupId, row.documentId, row.token, row.title)\n });\n };\n\n const actions = [{name: 'download', handler: handleDownLoadClick, tooltip: 'Click to Download', showOnRow: true}];\n\n return (\n \n {actions.map(action => {\n return renderAction(row, action, classes, keyName);\n })} \n \n \n );\n\n}","import React from 'react'\nimport { AutoCompleteDropdown as SearchAutocomplete } from 'components'\nimport { makeStyles } from '@material-ui/core/styles';\nimport {Close as CloseIcon} from '@material-ui/icons';\nimport { FormControl, Select, Box, OutlinedInput, Button, Divider, Typography, Grid, IconButton } from '@material-ui/core';\nimport { SearchContext } from 'context'\nimport { MuiPickersUtilsProvider, KeyboardDatePicker } from '@material-ui/pickers';\nimport MomentUtils from '@date-io/moment';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1,\n },\n typography: {\n padding: theme.spacing(2)\n },\n iconOpenRoot:{\n color: theme.palette.common.white,\n backgroundColor: theme.palette.npd.darkBlue,\n borderRadius: 0,\n height: 48,\n width: 48,\n '&:hover':{\n color: theme.palette.common.white,\n backgroundColor: theme.palette.npd.darkBlue,\n }\n },\n iconRoot:{\n height: 48,\n width: 48,\n },\n button:{\n margin: 10\n },\n gridContainer:{\n padding: '3px 10px',\n },\n popperPaper:{\n width: 550,\n height: 300,\n padding: theme.spacing(1),\n textAlign: 'center',\n whiteSpace: 'nowrap',\n marginBottom: theme.spacing(1),\n },\n textBox: {\n height:30,\n width: '100%',\n fontSize: 12,\n '&:input':{\n padding: \"0px 5px\"\n }\n },\n formControl:{\n width: '100%',\n paddingRight: 5\n },\n formControlLast:{\n width: '100%'\n },\n select: {\n padding: 8,\n fontSize: 12,\n width: '100%'\n },\n dense: {\n padding: 0,\n margin: 0,\n paddingRight: 2,\n width: '50%',\n '& > div > input':{\n padding: 8,\n fontSize: 12\n }\n },\n endAdornment: {\n padding: 0,\n '& > button':{\n padding: 0\n }\n },\n }));\n\nexport default function AdvancedSearchForm(props) {\n const classes = useStyles();\n const { categories = [], formats = [], rowsPerPageOptions = [], columns = [], handleClose } = props;\n const searchContext = React.useContext(SearchContext);\n\n const [title, setTitle] = React.useState(searchContext.searchTitle);\n const [category, setCategory] = React.useState(searchContext.category);\n const [format, setFormat] = React.useState(searchContext.format);\n const [startdate, setStartdate] = React.useState(searchContext.startdate);\n const [enddate, setEnddate] = React.useState(searchContext.enddate);\n const [orderBy, setOrderBy] = React.useState(searchContext.orderBy);\n const [orderByDirection, setOrderByDirection] = React.useState(searchContext.orderByDirection);\n const [pageSize, setPageSize] = React.useState(searchContext.pageSize);\n\n const handleTitleChange = (event) => {\n setTitle(event.target.value);\n }\n const handleCategoryChange = (event, value) => {\n if (value !== undefined && value.ids !== undefined)\n setCategory(value);\n }\n const handleFormatChange = (event, value) => {\n if (value !== undefined && value.ids !== undefined)\n setFormat(value);\n }\n const handleFormatTextBoxChange = (event) => {\n if (event !== undefined && event.target !== undefined)\n setFormat({ name: event.target.value });\n }\n const handleCategoryTextBoxChange = (event) => {\n if (event !== undefined && event.target !== undefined)\n setCategory({ name: event.target.value });\n }\n const handleOrderByChange = (event) => {\n setOrderBy(event.target.value);\n }\n const handleOrderByDirectionChange = (event) => {\n setOrderByDirection(event.target.value);\n }\n const handlePageSizeChange = (event) => {\n setPageSize(event.target.value);\n }\n\n const onApplyClick = () => {\n setFilters(false);\n searchContext.setPage(1);\n \n handleClose();\n }\n\n const onClearClick = () => {\n setTitle('');\n setEnddate(null);\n setStartdate(null);\n setFormat({ name: '', ids: '' });\n setCategory({ name: '', ids: '' });\n setFilters(true);\n }\n\n const setFilters = (shouldClear) => {\n if (shouldClear) {\n console.log(searchContext);\n console.log(format);\n console.log(category);\n searchContext.setSearchTitle('');\n searchContext.setCategory({ name: '', ids: '' });\n searchContext.setFormat({ name: '', ids: '' });\n searchContext.setStartdate(null);\n searchContext.setEnddate(null);\n }\n else {\n searchContext.setSearchTitle(title);\n searchContext.setCategory(category);\n searchContext.setFormat(format);\n searchContext.setStartdate(startdate);\n searchContext.setEnddate(enddate);\n searchContext.setOrderBy(orderBy);\n searchContext.setOrderByDirection(orderByDirection);\n searchContext.setPageSize(pageSize);\n }\n }\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Title\n \n \n \n \n Format\n item === searchContext.format) || { name: '' }}\n getOptionLabel={option => option.name}\n options={formats}\n placeholder='All Formats'\n outlined={true}\n freeSolo={false}\n />\n \n \n \n \n \n \n Category\n item === searchContext.category) || { name: '' }}\n getOptionLabel={option => option.name}\n options={categories}\n placeholder='All Categories'\n outlined={true}\n freeSolo={false}\n />\n \n \n \n Date Released\n \n setStartdate(date)}\n />\n \n \n setEnddate(date)}\n />\n \n \n\n \n \n \n \n \n \n \n \n \n OrderBy Column\n \n orderBy === item.label || orderBy === item.field).field}\n >\n {columns.map(item => { return !item.disableSort ? {item.label} : '' })}\n \n \n \n\n \n Direction\n \n \n Desc\n Asc\n \n \n \n\n \n Page Size\n \n \n {rowsPerPageOptions.map(item => { return {item}})}\n \n \n \n \n \n\n \n \n \n \n Clear\n Apply\n \n \n \n \n\n \n // \n // \n // \n // \n // \n // Clear\n // \n // \n // Apply\n // \n // \n // \n // \n // \n // \n // \n // Title\n // \n // \n // \n // \n // \n // \n // \n // \n // \n // Category\n // \n // \n // item === searchContext.category) || { name: '' }}\n // getOptionLabel={option => option.name}\n // options={categories}\n // placeholder='All Categories'\n // outlined={true}\n // freeSolo={false}\n // />\n // \n // \n // \n // \n // \n // \n // Format\n // \n // \n // item === searchContext.format) || { name: '' }}\n // getOptionLabel={option => option.name}\n // options={formats}\n // placeholder='All Formats'\n // outlined={true}\n // freeSolo={false}\n // />\n // \n // \n // \n // \n // \n // \n // \n // Date Released\n // \n // \n // setStartdate(date)}\n // />\n // \n // \n // \n // setEnddate(date)}\n // />\n // \n // \n // \n // \n // \n // \n // \n // Sort / Limit\n // \n // \n // \n // \n // {columns.map(item => { return !item.disableSort ? {item.label} : '' })}\n // \n // \n // \n // \n // \n // \n // Desc\n // Asc\n // \n // \n // \n // \n // /\n // \n // \n // \n // \n // {rowsPerPageOptions.map(item => { return {item} })}\n // \n // \n // \n // \n // \n // \n // \n );\n}","import React, { useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport PropTypes from 'prop-types'\nimport clsx from 'clsx';\nimport {useApi} from 'components';\n\nimport {Search as SearchBase} from 'Topbar/Topbar/components'\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Grid, Button, IconButton, Select, MenuItem, Divider } from '@material-ui/core';\nimport { Close,ArrowDropDown as ArrowDropDownIcon, Cached } from '@material-ui/icons';\nimport { SearchContext } from 'context';\nimport SearchIcon from '@material-ui/icons/Search';\n\nconst useAutocompleteStyle = makeStyles(theme => ({\n inputRoot: {\n height: 32,\n paddingRight: 0\n },\n input: {\n height: 12,\n marginLeft: theme.spacing(1),\n flex: 1,\n fontSize: 14,\n }\n}))\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: 460,\n margin: '0 0 0 30px',\n padding: 0,\n border: '1px solid #D8D8D8',\n borderRadius: theme.shape.borderRadius,\n height: 33,\n\n '&:hover': {\n borderColor: theme.palette.primary.main,\n }\n },\n\n active: {\n borderColor: theme.palette.primary.main\n },\n\n hr: {\n margin: 0,\n height: 20,\n },\n iconButton: {\n marginRight: 3,\n marginLeft: 5,\n padding: '1px 1px',\n minWidth: 30,\n boxShadow: 'none',\n borderRadius: 2\n },\n searchIcon: {\n width: 18,\n\n },\n select: {\n paddingTop: 7,\n paddingLeft: theme.spacing(1),\n width: 70\n },\n selectDisplayStyle: {\n color: theme.palette.primary.main,\n fontWeight: '600',\n fontSize: 12,\n },\n selectItemStyle: {\n color: theme.palette.primary.main,\n fontWeight: '300',\n fontSize: 12,\n paddingLeft: theme.spacing(1),\n paddingTop: 0,\n paddingBottom: 0\n\n },\n popOverStyle: {\n width: 85,\n borderRadius: '0 0 4px 4px',\n boxShadow: '0 4px 10px -4px rgba(187,206,219,0.44)'\n },\n menuItemSelected: {\n backgroundColor: 'transparent !important;',\n fontWeight: '600',\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.14) !important;'\n }\n },\n\n closeButton: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst searchTypes = [{Name: 'Title', id: 0}];\n\nexport default function Search(props) {\n const [inputTerm, setInputTerm] = useState('');\n const [searchType, setSearchType] = useState(0);\n const handleSearchTypeChange = event => { setSearchType(event.target.value); };\n const searchContext = React.useContext(SearchContext);\n const api = useApi();\n const handleTextBoxOnChange = (e, v) => {\n setInputTerm(e.target.value);\n };\n\n const handleAutoCompleteValueOnChange = (e, v) => {\n setInputTerm(e.target.value);\n if (typeof v === 'object') {\n setInputTerm(v.keyword);\n }\n handleSearch(v.keyword, v.searchType);\n };\n\n const handleOnEnter = event => {\n if (event.key === 'Enter') {\n searchContext.setSearchTitle(event.target.value);\n }\n };\n\n const handleSearch = (term, stype) => {\n if (typeof term === 'object') {\n term = null;\n }\n\n var searchIcon = document.getElementById('searchIcon');\n if (Boolean(searchIcon)) {\n searchIcon.focus();\n }\n\n if (term !== '' || inputTerm.length > 0) {\n searchContext.setSearchTitle(term || inputTerm);\n searchContext.setPage(1);\n } \n };\n\n\n\n return (\n \n )\n}\n\nSearch.propTypes = {\n \n};\n","//core components\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n//material ui components\nimport { makeStyles, lighten } from '@material-ui/core/styles';\nimport { Toolbar, Typography, Tooltip, IconButton, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Button, Grid } from '@material-ui/core';\nimport {GetApp as BatchIcon, Cached as RefreshIcon} from '@material-ui/icons';\n//custom components\nimport {GridContext, SearchContext} from 'context';\nimport {useApi, SelectedSearches} from 'components';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n flexGrow:10,\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n justifyContent: 'flex-end'\n },\n highlight:{\n color: theme.palette.primary.main,\n backgroundColor: lighten(theme.palette.secondary.light, 0.75),\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n justifyContent: 'flex-end'\n },\n icon: {\n padding:'1px 5px 1px 1px',\n //margin: '0px 3px 3px 3px',\n fontSize:'23px',\n //lineHeight: '24px'\n }, \n title: {\n paddingRight: theme.spacing(3),\n fontSize:'12px',\n //flex: '1 1 100%',\n },\n alignRight: {\n textAlign: 'end'\n },\n}));\n\nexport default function EnhancedTableToolbar(props) {\n const classes = useStyles();\n const { multidownload, refresh } = props;\n const [rowsSelected, setRowsSelected] = React.useState(0);\n const gridContext = React.useContext(GridContext)\n const searchContext = React.useContext(SearchContext)\n \n const GenerateSelectedSearches = () => {\n let searches = [];\n\n if (searchContext.searchTitle !== undefined && searchContext.searchTitle !== '')\n searches.push({key:\"Title\", value : searchContext.searchTitle, handleDelete: () => {searchContext.setSearchTitle(''); }});\n\n if (searchContext.category !== undefined && searchContext.category.name !== '' && searchContext.category !== '')\n searches.push({key:\"Category: \", value: searchContext.category.name, handleDelete: () => {searchContext.setCategory({ name: '', ids: '' }); }});\n\n if (searchContext.format !== undefined && searchContext.format.name !== '' && searchContext.format.reportOutputTypeId !== 0)\n searches.push({key:\"Format: \", value: searchContext.format.name, handleDelete: () => {searchContext.setFormat({ name: '', ids: '' }); }});\n\n if (searchContext.startdate !== undefined && searchContext.startdate !== null)\n searches.push({key:\"Date Released From: \" , value: searchContext.startdate.format(\"MM/DD/YYYY\"), handleDelete: () => {searchContext.setStartdate(null); }});\n \n if (searchContext.enddate !== undefined && searchContext.enddate !== null)\n searches.push({key:\"Date Released To: \" , value: searchContext.enddate.format(\"MM/DD/YYYY\"), handleDelete: () => {searchContext.setEnddate(null); }});\n \n \n return searches;\n}\n\n React.useEffect(() => {\n setRowsSelected(gridContext.rowsSelected.length);\n }, [gridContext.rowsSelected])\n\n return (\n \n \n \n \n \n \n {rowsSelected > 0 ? (\n \n {rowsSelected} items selected\n \n ) : (\n \n \n \n )}\n \n \n \n \n multidownload()} aria-label=\"download\" color=\"primary\" disabled={rowsSelected === 0}>\n \n \n \n \n \n \n refresh()} aria-label=\"refresh\" color=\"primary\">\n \n \n \n \n \n \n \n );\n};\n\nEnhancedTableToolbar.propTypes = {\n refresh: PropTypes.func.isRequired,\n multidownload: PropTypes.func.isRequired\n};","import React, { useEffect, useState, useRef } from 'react';\n// @material-ui/core components\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Grid } from '@material-ui/core';\n// custom components\nimport useApi from 'components/Api/Api'\nimport { EnhancedTable, useWindowDimensions } from 'components'\nimport { DataSourceContext, SearchContext, GridContext, ApplicationContext } from 'context'\nimport { Topbar } from 'Topbar'\nimport FileCenterToolBar from '../FileCenter/FileCenterToolBar';\nimport {ClientCenterEnhancedToolbar, Search, AdvancedSearchForm, ActionCell} from './Components'\nimport { useSnackbar } from 'notistack';\nimport { Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '100%',\n backgroundColor: theme.palette.contentBackground,\n margin: 0\n },\n table: {\n minWidth: 500,\n },\n tableWrapper: {\n overflowX: 'auto',\n },\n message: {\n paddingLeft: 20,\n alignSelf: 'center',\n color: theme.palette.text.primary,\n fontWeight:'bold'\n } \n}));\n\nconst columns = [{field: 'title', type: 'string', label: 'Title', disableSort: false, fileNamelength: 60}, \n{ field: 'category', type: 'string', label: 'Category', disableSort: false}, \n{ field: 'format', type: 'string', label: 'Format', disableSort: false}, \n{ field: 'docDate', type: 'date', label: 'Date Released', sortField: 'Date Released', format: 'MM-DD-YYYY', disableSort: false}, \n{ field: 'size', type: 'size', label: 'Size', disableSort: true}, \n{ field: 'action', type: 'action', label: '', disableSort: true}]\n\nconst rowsPerPageOptions = [10, 25, 50, 75, 100, 200, 500];\n\nexport default function ClientCenter() {\n const api = useApi();\n const appContext = React.useContext(ApplicationContext);\n\n const [rows, setRows] = React.useState([]);\n const [loading, setLoading] = React.useState(true);\n const [totalCount, setTotalCount] = React.useState(0);\n const [page, setPage] = React.useState(1);\n const [dataSources, setDataSources] = useState([]);\n const [formatFilters, setFormatFilters] = useState([]);\n const [categoryFilters, setCategoryFilters] = useState([]);\n const [dataSourceSelectedKey, setDataSourceSelectedKey] = React.useState('');\n const [rowsSelected, setRowsSelected] = React.useState([]);\n\n const [searchTitle, setSearchTitle] = React.useState('');\n const [category, setCategory] = React.useState({ name: '', ids: '' });\n const [format, setFormat] = React.useState({ name: '', ids: '' });\n const [startdate, setStartdate] = React.useState(null);\n const [enddate, setEnddate] = React.useState(null);\n const [orderBy, setOrderBy] = React.useState('Date Released');\n const [orderByDirection, setOrderByDirection] = React.useState('desc');\n const [pageSize, setPageSize] = React.useState(appContext.appInfo.user.rowsPerPage || 25);\n const [filterCount, setFilterCount] = React.useState(0);\n \n const [tableView, setTableView] = useState('doc');\n const {enqueueSnackbar, closeSnackbar} = useSnackbar();\n\n document.title = \"Client Center\";\n\n const onRequestSort = order => {\n setOrderBy(order.orderBy);\n setOrderByDirection(order.order)\n }\n\n const onChangePage = (newPage) => {\n setPage(newPage);\n }\n const onPageSizeChange = (newPageSize) => {\n setPage(1);\n api.saveRowPerPage({rowsPerPageOptions: newPageSize});\n appContext.appInfo.user.rowsPerPage = newPageSize;\n setPageSize(newPageSize);\n }\n\n const handleRefreshClick = () => {\n setPage(1);\n setRows([]);\n setTotalCount(0);\n setRowsSelected([]);\n loadClientCenter();\n };\n\n useEffect(() => {\n if (dataSourceSelectedKey !== '') {\n api.getCategories(dataSourceSelectedKey).then(res => {\n setCategoryFilters(res.data);\n });\n api.getFormats(dataSourceSelectedKey).then(res => {\n setFormatFilters(res.data);\n });\n }\n }, [dataSourceSelectedKey]);\n\n const loadClientCenter = () => {\n\n if (dataSourceSelectedKey !== \"\") {\n let filter = {\n dateFrom: (startdate === null || startdate === undefined) ? null : startdate.format(\"MM/DD/YYYY\"),\n dateTo: (enddate === null || enddate === undefined) ? null : enddate.format(\"MM/DD/YYYY\"),\n categoryIds: category.ids,\n formatIds: format.ids,\n title: searchTitle\n };\n let sortInfo = '';\n if (orderBy !== '' && orderBy !== undefined && orderBy !== null) {\n const orderCol = columns.find((item) => orderBy === item.label || orderBy === item.field).field;\n sortInfo = \"[{'Property': '\" + orderCol + \"' , 'direction' : '\" + orderByDirection + \"' }]\";\n }\n\n let option = {\n filter: filter,\n group: { \"property\": \"summarySourceName\", \"direction\": \"asc\" },\n page: page,\n pageSize: pageSize,\n sortInfo: sortInfo,\n token: dataSourceSelectedKey\n }\n setLoading(true);\n api.getDocuments(option).then(res => {\n setRows(res.data.data);\n setPage(res.data.page);\n setTotalCount(res.data.totalCount);\n setPageSize(res.data.pageSize);\n setLoading(false);\n })\n }\n \n };\n\n useEffect(() => {\n loadClientCenter();\n setPage(1);\n }, [dataSourceSelectedKey]);\n\n useEffect(() => {\n loadClientCenter();\n }, [searchTitle, startdate, enddate, orderBy, orderByDirection, pageSize, page, category.ids, format.ids]);\n\n const classes = useStyles();\n const appKey = 'cc';\n\n const handleMultiDownloadClick = () => {\n if (rowsSelected.length > appContext.appInfo.maxMultiFiledownload)\n enqueueSnackbar(\"You can only download maximum of \" + appContext.appInfo.maxMultiFiledownload + \" files at a time.\", { variant: 'warning' });\n else {\n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated) {\n let notFound = '';\n rowsSelected.map((r) => {\n if (r.isExists)\n api.downloadCCFile(r.groupId, r.documentId, r.token, r.title)\n else if (notFound !== '')\n notFound += ', ' + r.title;\n else\n notFound += r.title;\n });\n if (notFound !== '')\n enqueueSnackbar(\"Following files were not found: \" + notFound, { variant: 'warning' });\n }\n });\n }\n }; \n\n const handleZipMultiDownloadClick = () => {\n if (rowsSelected.length > appContext.appInfo.maxMultiFiledownload)\n enqueueSnackbar(\"You can only download maximum of \" + appContext.appInfo.maxMultiFiledownload + \" files at a time.\", { variant: 'warning' });\n else {\n var notiKey = enqueueSnackbar(\"Processing...\", { \n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'right'\n }, \n variant: 'info',\n persist: true\n });\n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated) {\n let notFound = '';\n let found = []\n rowsSelected.map((r) => {\n if (r.isExists)\n found.push(r);\n else if (notFound !== '')\n notFound += ', ' + r.title;\n else\n notFound += r.title;\n });\n api.createZipFile(found).then(res => {\n if (res.data.item1)\n api.downloadZipFile(res.data.item2);\n closeSnackbar(notiKey);\n });\n if (notFound !== '')\n enqueueSnackbar(\"Following files were not found: \" + notFound, { variant: 'warning' });\n }\n });\n }\n }; \n const handleMultiDownloadClick1 = () => {\n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated){\n let notFound = [];\n rowsSelected.map((r) => {\n if (r.isExists)\n api.downloadFileRepo(r.fileRepositoryId, r.token)\n else \n notFound.push(r.displayName);\n });\n if (notFound.length !== 0)\n enqueueSnackbar(\"Following files were not found: \" + notFound.toString(), { variant: 'warning' });\n }\n });\n } \n return (\n \n \n \n \n \n \n \n Select one or more of your files to download.}}\n EnhancedTableToolbar={ClientCenterEnhancedToolbar}\n EnhancedTableToolbarProps={{refresh: handleRefreshClick, multidownload: appContext.appInfo.user.enableZipCC ? handleZipMultiDownloadClick : handleMultiDownloadClick}}\n persistSelection={true}\n />\n \n \n \n \n );\n}\n","//core components\nimport React, {Fragment, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n//material ui components\nimport { makeStyles, lighten } from '@material-ui/core/styles';\nimport { Toolbar, Typography, Tooltip, IconButton, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Button, Grid } from '@material-ui/core';\nimport { GetApp as BatchIcon, Cached as RefreshIcon } from '@material-ui/icons';\n//custom components\nimport { GridContext, SearchContext } from 'context';\nimport { SelectedSearches } from 'components';\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n flexGrow: 10,\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n justifyContent: 'flex-end'\n },\n highlight: {\n color: theme.palette.primary.main,\n backgroundColor: lighten(theme.palette.secondary.light, 0.75),\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n justifyContent: 'flex-end'\n },\n icon: {\n padding: '1px 5px 1px 1px',\n //margin: '0px 3px 3px 3px',\n fontSize: '23px',\n //lineHeight: '24px'\n },\n title: {\n paddingRight: theme.spacing(3),\n fontSize: '12px',\n //flex: '1 1 100%',\n },\n alignRight: {\n textAlign: 'end'\n },\n alignLeft: {\n textAlign: 'start'\n },\n}));\n\nexport default function CollectionsEnhancedToolbar(props) {\n const classes = useStyles();\n const { refresh, commands = [] } = props;\n const [rowsSelected, setRowsSelected] = React.useState(0);\n const gridContext = React.useContext(GridContext)\n \n const [selectionModel, setSelectionModel] = useState({\n selected: [],\n selectedCount: 0\n });\n\n React.useEffect(() => {\n setRowsSelected(gridContext.rowsSelected.length);\n setSelectionModel({\n selected: gridContext.rowsSelected,\n selectedCount: gridContext.rowsSelected.length\n });\n\n }, [gridContext.rowsSelected])\n\n const getCommandsWithModel = () => {\n return commands.map(c => {\n return React.cloneElement(c, {\n selectionModel: selectionModel\n });\n });\n }\n\n return (\n \n \n\n \n {commands ? (\n \n { \n getCommandsWithModel().map((command, index) => {\n return {command} ;\n })\n }\n \n ) : ()\n }\n \n \n {rowsSelected > 0 ? (\n \n {rowsSelected} item(s) selected\n \n ) : (\n \n\n \n )}\n \n \n \n \n refresh()} aria-label=\"refresh\" color=\"primary\">\n \n \n \n \n \n \n \n );\n};\n\nCollectionsEnhancedToolbar.propTypes = {\n refresh: PropTypes.func.isRequired,\n multidownload: PropTypes.func.isRequired\n};","import React from 'react';\nimport { useSnackbar } from 'notistack';\n//material ui components\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport { AddBoxTwoTone , GetApp as DownloadIcon, Error, DeleteForever as DeleteIcon, CancelScheduleSend as UnqueueIcon } from '@material-ui/icons';\n//import {AddToPhotosTwoToneIcon as AddCollectionIcon} from '@material-ui/icons/AddToPhotosTwoTone';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport {useApi} from 'components'\nimport {ApplicationContext} from 'context';\n\n\nconst useStyle = makeStyles(theme => ({\n root: {\n padding: '0 2px',\n fontSize: '1rem',\n '& > span > svg':{\n fontSize: '1.2rem',\n }\n },\n colorError: {\n color: theme.palette.npd.orange\n },\n colorSuccess: {\n color: theme.palette.npd.green\n }\n\n})); \nconst renderAction = (row, action, classes, keyName) => {\n let item;\n switch (action.name) {\n case 'add':\n item = \n \n action.handler(keyName)} disabled={!row.isExists}>\n \n \n \n \n break;\n case 'delete': item = \n \n action.handler(keyName)} classes={{root: classes.root}} size='small' disabled={!action.isEnabled(row.statusId)}>\n \n \n \n \n break;\n case 'unqueue': item = \n \n action.handler(keyName)} classes={{root: classes.root}} size='small' disabled={!action.isEnabled(row.statusId)}>\n \n \n \n \n break;\n default:\n item = ;\n break;\n };\n return item;\n}\n\nexport default function ActionCell(props){\n const {keyName, row, callback} = props;\n const api = useApi();\n const classes = useStyle();\n const appContext = React.useContext(ApplicationContext);\n const { enqueueSnackbar } = useSnackbar();\n \n const canDelete = (status) => {\n return status !== 1 && status !== 2 && status !==7 && row.createdUserName === appContext.appInfo.user.username;\n }\n const canRemoveFromQueue = (status) => {\n return status === 1 || status === 2 || status === 7 && row.createdUserName === appContext.appInfo.user.username;\n }\n const canDownload = (status, outputType) => {\n return ((status === 6 || status === 14 || status === 15 || status === 16 || status === 17) && outputType !== 9);\n }\n\n const handleDownLoadClick = () => {\n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated)\n api.downloadBatchedReport(row.scheduleEventId, row.token);\n });\n };\n\n const handleDeleteClick = () => {\n api.deleteReport([row]).then((res) => {\n if (callback)\n callback();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n }\n\n const handleUnqueueClick = () => {\n api.unqueueBatchReport([row]).then((res) => {\n if (callback)\n callback();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n }\n const actions = [{name: 'add', handler: handleDownLoadClick, tooltip: 'Add to Bundle', showOnRow: true, isEnabled: canDownload}\n ]\n \n return (\n \n {actions.map(action => {\n return renderAction(row, action, classes, keyName);\n })} \n \n \n );\n\n}","import React from 'react'\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {FormControl, Select, Box, OutlinedInput, Button, Divider, Typography, Grid} from '@material-ui/core';\nimport {SearchContext} from 'context'\nimport {MuiPickersUtilsProvider, KeyboardDatePicker } from '@material-ui/pickers';\nimport MomentUtils from '@date-io/moment';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1,\n },\n typography: {\n padding: theme.spacing(2)\n },\n iconOpenRoot:{\n color: theme.palette.common.white,\n backgroundColor: theme.palette.npd.darkBlue,\n borderRadius: 0,\n height: 48,\n width: 48,\n '&:hover':{\n color: theme.palette.common.white,\n backgroundColor: theme.palette.npd.darkBlue,\n }\n },\n iconRoot:{\n height: 48,\n width: 48,\n },\n button:{\n width: 150,\n color: theme.palette.npd.blue,\n '&:hover':{\n boxShadow: '0px 5px 10px 1px rgba(0,0,0,.15)',\n fontWeight: 600\n }\n },\n gridContainer:{\n padding: theme.spacing(1)\n },\n popperPaper:{\n width: 450,\n height: 280,\n padding: theme.spacing(1),\n textAlign: 'center',\n whiteSpace: 'nowrap',\n marginBottom: theme.spacing(1),\n },\n textBox: {\n height:33,\n width: '100%',\n '&:input':{\n padding: 8\n }\n },\n formControl:{\n width: '100%',\n paddingRight: 5\n },\n formControlLast:{\n width: '100%'\n },\n select: {\n padding: 8,\n width: '100%'\n },\n dense: {\n padding: 0,\n margin: 0,\n '& > div > input':{\n padding: 8\n }\n },\n endAdornment: {\n padding: 0,\n '& > button':{\n padding: 0\n }\n }\n }));\n \nexport default function AdvancedSearchForm(props){\n const classes = useStyles();\n const {rowsPerPageOptions, columns, handleClose} = props;\n const searchContext = React.useContext(SearchContext);\n\n const [reportName, setReportName] = React.useState(searchContext.reportName);\n const [folderName, setFolderName] = React.useState(searchContext.folderName);\n const [batchStartdate, setBatchStartdate] = React.useState(searchContext.batchStartdate);\n const [batchEnddate, setBatchEnddate] = React.useState(searchContext.batchEnddate);\n const [orderBy, setOrderBy] = React.useState(searchContext.orderBy);\n const [orderByDirection, setOrderByDirection] = React.useState(searchContext.orderByDirection);\n const [pageSize, setPageSize] = React.useState(searchContext.pageSize);\n\n const handleOrderByChange = (event) => {\n setOrderBy(event.target.value);\n }\n const handleOrderByDirectionChange = (event) => {\n setOrderByDirection(event.target.value);\n }\n const handlePageSizeChange = (event) => {\n setPageSize(event.target.value);\n }\n\n const onApplyClick = () => {\n setFilters(false);\n handleClose();\n }\n \n const onClearClick = () => {\n setFolderName('');\n setReportName('');\n setBatchEnddate(null);\n setBatchStartdate(null);\n setFilters(true);\n }\n const handleChange = (event, columnName) => {\n var value = event.target.value;\n switch(columnName){\n case 'folderName': setFolderName(value); break;\n case 'reportName': setReportName(value); break;\n }\n }\n const setFilters = (shouldClear) => {\n if (shouldClear){\n searchContext.setReportName('');\n searchContext.setFolderName('');\n searchContext.setBatchStartdate(null);\n searchContext.setBatchEnddate(null);\n }\n else{\n searchContext.setReportName(reportName);\n searchContext.setFolderName(folderName);\n searchContext.setBatchStartdate(batchStartdate);\n searchContext.setBatchEnddate(batchEnddate);\n searchContext.setOrderBy(orderBy);\n searchContext.setOrderByDirection(orderByDirection);\n searchContext.setPageSize(pageSize);\n }\n }\n return (\n \n \n \n \n Clear\n \n \n Apply\n \n \n \n \n \n \n \n Folder Name\n \n \n handleChange(event, 'folderName')} classes={{root: classes.textBox}} variant='outlined'>\n \n \n \n \n \n \n \n Report Name\n \n \n handleChange(event, 'reportName')} classes={{root: classes.textBox}} variant='outlined'>\n \n \n \n\n {/* \n \n \n Batched By\n \n \n handleChange(event, 'batchedBy')} classes={{root: classes.textBox}} variant='outlined'>\n \n \n */}\n\n \n \n \n \n Batched On\n \n \n setBatchStartdate(date)}\n />\n \n \n \n setBatchEnddate(date)}\n />\n \n \n \n \n \n \n \n Sort / Limit\n \n \n \n \n {columns.map(item => { return !item.disableSort ? {item.label} : ''})}\n \n \n \n \n \n \n Desc\n Asc\n \n \n \n \n /\n \n \n \n \n {rowsPerPageOptions.map(item => { return {item}})}\n \n \n \n \n \n \n );\n}\n\nAdvancedSearchForm.propTypes = {\n rowsPerPageOptions: PropTypes.array,\n columns: PropTypes.array.isRequired,\n handleClose: PropTypes.func\n};","import React, { useState } from 'react';\nimport {SearchContext} from 'context';\nimport {useApi} from 'components'\nimport {Search as SearchBase} from 'Topbar/Topbar/components'\n\nconst searchTypes = [{Name: 'Name', id: 0}];\n\nexport default function Search(props) {\n const [inputTerm, setInputTerm] = useState('');\n const [searchType, setSearchType] = useState(0);\n const handleSearchTypeChange = event => { setSearchType(event.target.value); };\n const searchContext = React.useContext(SearchContext);\n const api = useApi();\n const handleTextBoxOnChange = (e, v) => {\n setInputTerm(e.target.value);\n };\n\n const handleAutoCompleteValueOnChange = (e, v) => {\n setInputTerm(e.target.value);\n if (typeof v === 'object') {\n setInputTerm(v.keyword);\n }\n handleSearch(v.keyword, v.searchType);\n };\n\n const handleOnEnter = event => {\n if (event.key === 'Enter') {\n searchContext.setReportName(event.target.value);\n }\n };\n\n const handleSearch = (term, stype) => {\n if (typeof term === 'object') {\n term = null;\n }\n\n var searchIcon = document.getElementById('searchIcon');\n if (Boolean(searchIcon)) {\n searchIcon.focus();\n }\n\n if (term !== undefined || inputTerm.length > 0) {\n searchContext.setReportName(term || inputTerm);\n searchContext.setPage(1);\n } \n };\n\n return (\n \n \n );\n}\n\n\nSearch.propTypes = {\n};\n","import React from \"react\";\nimport { useSnackbar } from 'notistack';\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { Grid } from '@material-ui/core'\n// custom components\nimport { EnhancedTable, useApi, useWindowDimensions } from 'components';\nimport { SearchContext, DataSourceContext, GridContext } from 'context';\nimport { Topbar } from 'Topbar';\nimport { AdvancedSearchForm, Search, ActionCell } from './Components'\n//import CreateCollection from 'views/WorkbookCollections/CreateCollection';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '100%',\n backgroundColor: theme.palette.contentBackground,\n padding: '0px',\n margin: '0px'\n }\n}));\n//lastViewDate\nconst columns = [{ field: 'folderName', type: 'string', label: 'Folder Name' },\n{ field: 'reportName', type: 'string', label: 'Report Name' },\n{ field: 'runDate', type: 'date', label: 'Batched On', format: 'MM-DD-YYYY hh:mm A' },\n{ field: 'createdUserName', type: 'string', label: 'Batched By' },\n{ field: 'publicInd', type: 'string', label: 'Public' },\n{ field: 'statusName', type: 'selectiveLinkWithTooltip', label: 'Status', showTooltip: true, onClick: () => {}, tooltipField:'tooltip' },\n{ field: 'expiredDate', type: 'date', label: 'Expires On', format: 'MM-DD-YYYY hh:mm A' },\n{ field: 'reportOutputType', type: 'string', label: 'Format', disableSort: true },\n{ field: 'lastViewDate', type: 'date', label: 'Last Accessed', format: 'MM-DD-YYYY' }]\n\nconst rowsPerPageOptions = [10, 25, 50, 75, 100, 200, 500];\n\nexport default function AvailableReports(props) {\n const { Toolbar, toolbarProps, EnhancedToolbar,messageComponent } = props;\n //searchcontext\n const [pageSize, setPageSize] = React.useState(25);\n const [orderBy, setOrderBy] = React.useState('reportName');\n const [orderByDirection, setOrderByDirection] = React.useState('asc');\n const [folderName, setFolderName] = React.useState('');\n const [reportName, setReportName] = React.useState('');\n const [batchStartdate, setBatchStartdate] = React.useState(null);\n const [batchEnddate, setBatchEnddate] = React.useState(null);\n const [totalCount, setTotalCount] = React.useState(0);\n const [rowsSelected, setRowsSelected] = React.useState([]);\n const [page, setPage] = React.useState(1);\n const [availableReports, setAvailableReports] = React.useState([]);\n const [loading, setLoading] = React.useState(false);\n const [publicInd, setPublicInd] = React.useState('');\n const { enqueueSnackbar } = useSnackbar();\n const api = useApi();\n const dataSourceContext = React.useContext(DataSourceContext);\n\n const handleBatchMultiDownloadClick = () => {\n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated) {\n let notFound = [];\n rowsSelected.map((r) => {\n if (r.isExists)\n api.downloadBatchedReport(r.scheduleEventId, r.token)\n else\n notFound.push(r.reportName);\n });\n if (notFound.length !== 0)\n enqueueSnackbar(\"Following files were not found: \" + notFound.toString(), { variant: 'warning' });\n }\n });\n }\n\n React.useEffect(() => {\n setLoading(true);\n loadBatchedReports();\n }, [pageSize, page, orderByDirection, orderBy, dataSourceContext.dataSourceSelectedKey, reportName, folderName, batchStartdate, batchEnddate])\n\n const loadBatchedReports = () => {\n setLoading(true);\n let sortInfo = '';\n if (orderBy !== '' && orderBy !== undefined && orderBy !== null) {\n const orderCol = columns.find((item) => orderBy === item.label || orderBy === item.field).field;\n sortInfo = \"[{'Property': '\" + orderCol + \"' , 'direction' : '\" + orderByDirection + \"' }]\";\n }\n let filter = {\n statusIdNotIn: \"3\",\n reportName: reportName,\n folderName: folderName,\n startRunDateFrom: (batchStartdate === null || batchStartdate === undefined) ? null : batchStartdate.format(\"MM/DD/YYYY\"),\n startRunDateTo: (batchEnddate === null || batchEnddate === undefined) ? null : batchEnddate.format(\"MM/DD/YYYY\"),\n };\n\n let options = { page: page, pageSize: pageSize, filter: filter, sortInfo: sortInfo, token: dataSourceContext.dataSourceSelectedKey }\n\n if (dataSourceContext.dataSourceSelectedKey !== '') {\n api.getBatchedReportsForoData(options).then(res => {\n setAvailableReports(res.data.data);\n setPage(res.data.page);\n setPageSize(res.data.pageSize);\n setTotalCount(res.data.totalCount);\n setLoading(false);\n })\n }\n }\n\n const onChangePage = (newPage) => {\n setPage(newPage);\n }\n const onPageSizeChange = (newPageSize) => {\n setPageSize(newPageSize);\n }\n const onRequestSort = order => {\n setOrderBy(order.orderBy);\n setOrderByDirection(order.order)\n }\n const classes = useStyles();\n return (\n \n \n \n \n \n \n ]}\n />\n \n \n \n );\n}\n\nAvailableReports.propTypes = {\n\n}\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\n\n// @material-ui/core components\nimport { Typography, Grid, Divider, Button } from '@material-ui/core';\nimport { Add as AddIcon, Edit as EditIcon } from '@material-ui/icons';\nimport Fab from '@material-ui/core/Fab';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { NavLink as RouterLink } from 'react-router-dom';\n// components\n//import { ExportButtonPro, InfoTooltip } from 'components';\nimport { DataSourceContext } from 'context';\n\n//services\nimport { dateFormat } from 'utilities';\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n },\n banner: {\n height: 125,\n width: '100%',\n padding: '20px 0px',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n },\n dataSourceText: {\n fontSize: 11,\n textAlign: 'center',\n lineHeight: '20px',\n height: 24,\n color: theme.palette.text.primary\n },\n bannerTitle: {\n fontSize: 28,\n textAlign: 'center',\n lineHeight: '30px',\n color: theme.palette.text.primary\n },\n bannerSubtitle: {\n fontSize: 13,\n textAlign: 'left',\n lineHeight: '20px',\n color: theme.palette.text.primary,\n \n paddingRight: 150,\n paddingLeft: 150,\n },\n buttonPanel: {\n width: '100%',\n height: 0,\n textAlign: 'right',\n paddingRight: 20\n },\n contentPanel: {\n padding: `40px ${theme.spacing(4)}px 0 ${theme.spacing(4)}px`,\n width: '100%'\n },\n addButton: {\n color: theme.palette.white,\n width: 40,\n height: 40,\n top: '-20px',\n backgroundColor: theme.palette.npd.green,\n boxShadow: 'none',\n '&:hover':\n {\n backgroundColor: theme.palette.npd.green,\n boxShadow: 'none',\n transform: 'scale(1.2)',\n transition: 'all .3s ease-in-out'\n }\n },\n disabledButton: {\n color: `${theme.palette.white} !important`,\n backgroundColor: `${theme.palette.tableRowDivider} !important`\n },\n\n headerTitle: {\n flexGrow: 1,\n fontSize: 20,\n fontWeight: 'bold',\n lineHeight: '24px',\n color: '#353638',\n paddingBottom: 10\n },\n\n divider: {\n backgroundColor: 'rgba(216,216,216,0.42)'\n },\n\n tooltipWrapper: {\n display: 'flex',\n flexDirection: 'column',\n padding: 5,\n alignItems: 'center'\n },\n\n tooltip: {\n fontSize: 12,\n color: theme.palette.text.secondary\n },\n\n tooltipHeader: {\n fontWeight: 'bold'\n },\n\n breadcrumb: {\n fontSize: 12,\n fontWeight: 'bold',\n lineHeight: '14px',\n color: '#8E908F'\n },\n breadcrumbArrow: {\n paddingLeft: '5px',\n },\n editButton:{\n\n }\n}));\n\nexport default function ViewLayout(props) {\n const {\n showToolbar,\n showAdd,\n allowAdd,\n children,\n title,\n dataSourceWeek,\n showBreadcrumb,\n breadcrumbText,\n breadcrumbLink,\n breadcrumbText2,\n breadcrumbLink2,\n bannerClass,\n showDataSourceTooltip,\n showDivider,\n showEdit = false,\n allowEdit = false,\n allowExport = false,\n bannerTitle,\n bannerSubtitle,\n exportTypes,\n onExport = () => { },\n onAdd = () => { },\n onEdit = () => { },\n hideDataSourceLabel = false,\n exportButtonProps = {},\n headerComponents = null\n } = props;\n\n\n const classes = useStyles();\n const context = React.useContext(DataSourceContext);\n\n return (\n \n \n \n Welcome to Bundles\n \n Bundles enables you to group together and download DecisionKey® Batch Reports within or across all data sources you have access to. \n Reports are downloaded to a single MS Excel workbook. \n \n \n\n \n\n \n {children}\n \n \n \n \n );\n}\n\nViewLayout.propTypes = {\n children: PropTypes.element,\n dataSourceWeek: PropTypes.string,\n showDataSourceTooltip: PropTypes.bool,\n showBreadcrumb: PropTypes.bool,\n showDivider: PropTypes.bool,\n showToolbar: PropTypes.bool,\n showAdd: PropTypes.bool,\n allowAdd: PropTypes.bool,\n breadcrumbText: PropTypes.string,\n breadcrumbLink: PropTypes.string,\n bannerTitle: PropTypes.string,\n bannerSubtitle: PropTypes.string,\n exportTitle: PropTypes.string,\n onExport: PropTypes.func,\n onAdd: PropTypes.func,\n exportButtonProps: PropTypes.object,\n};\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useHistory } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/core/styles';\n\n// components\nimport BackgroundImage from 'assets/img/collection-background.jpg';\n\n\nimport DataSourceContext from 'context/DataSourceContext';\nimport { default as ViewLayout } from 'layouts/Layout';\n//services\nimport { useCollectionService } from 'components';\n//import { captureEvent } from 'utils';\n//import FileSaver from 'file-saver';\n\n\nconst useStyles = makeStyles(theme => ({\n banner: {\n backgroundPosition: '0% 70%',\n backgroundImage: `url(${BackgroundImage})`\n },\n}\n));\n\nexport default function CollectionsLayout(props) {\n const { setLoading, selectionModel, ...rest } = props;\n const context = React.useContext(DataSourceContext);\n const classes = useStyles();\n const service = useCollectionService();\n\n const handleExport = (option) => {\n setLoading(true);\n var param = {};\n param.list = (option.id === 1 && selectionModel.selected) ? selectionModel.selected : []\n service.exportCollections(param).then(response => {\n const fileNameHeader = \"x-bookscan-filename\";\n const suggestedFileName = response.headers[fileNameHeader];\n const effectiveFileName = (suggestedFileName === undefined ? \"my_collections.xls\" : suggestedFileName);\n // Let the user save the file.\n //FileSaver.saveAs(new Blob([response.data]), effectiveFileName);\n setLoading(false);\n });\n //captureEvent({ category: 'Collections', action: 'Global Export', label: option.label + ' - ' + option.format });\n };\n\n\n return (\n \n !(selectionModel.selectedCount > 0) },\n { id: 2, format: 'xlsx', label: 'Export All' }\n ]}\n onExport={handleExport}\n showAdd={false}\n exportButtonProps={{\n styleProp: { top: '-16px', marginRight: 10, backgroundColor: 'transparent' },\n iconStyleProp: { height: 34 }\n }} \n {...rest}>\n\n );\n}\n\nCollectionsLayout.propTypes = {\n children: PropTypes.element,\n title: PropTypes.string,\n dataSourceWeek: PropTypes.string,\n showDataSourceTooltip: PropTypes.bool,\n showBreadcrumb: PropTypes.bool,\n showDivider: PropTypes.bool,\n showToolbar: PropTypes.bool,\n allowAdd: PropTypes.bool\n};\n","//core components\nimport React, { useEffect} from 'react'\nimport { useLocation, useHistory } from 'react-router-dom';\nimport {ApplicationContext} from 'context';\nimport query from 'query-string';\n//material ui components\nimport { makeStyles, lighten } from '@material-ui/core/styles';\nimport { ToggleButtonGroup, ToggleButton } from '@material-ui/lab';\nimport {Typography} from '@material-ui/core'\n\n\nconst useStyles = makeStyles(theme => ({\n toolbar: {\n marginLeft: 0,\n paddingLeft: 20,\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n flexGrow: 2,\n },\n toggleButtonGroupRoot: {\n backgroundColor: 'transparent'\n },\n buttonSelected: {\n fill: `${theme.palette.white} !important`,\n backgroundColor: `${theme.palette.primary.main} !important`\n },\n buttonRoot: {\n height: 25,\n fill: '#455a64',\n borderRadius: 18,\n borderColor: theme.palette.grey,\n width: 130,\n fontSize: 12,\n margin:1,\n marginLeft: 1\n },\n flex: {\n flexGrow: 2,\n },\n iconButton:{\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.common.white,\n marginLeft: 10,\n '&:hover': {\n backgroundColor: theme.palette.npd.darkBlue\n },\n '&:disabled':{\n backgroundColor: lighten(theme.palette.npd.gray, .7)\n }\n }\n}));\n\nexport default function OdataCollectionToolbar(props) {\n const { view, setView, messageComponent,messageProps} = props;\n const classes = useStyles();\n const location = useLocation();\n const history = useHistory();\n const appContext = React.useContext(ApplicationContext);\n \n useEffect(() => {\n if (location.search){\n const tab = query.parse(location.search);\n if (tab.v !== undefined && tab.v !==null && tab.v !== \"null\")\n setView(tab.v);\n }\n }, [location])\n\n const handleToggleButtonChange = (event, value) => {\n //Do not allow to untoggle\n //if (value !== null && value !== undefined)\n history.push('/collection?v='+value)\n //alert(messageProps + ' ' + view);\n }\n\n\n return (\n \n {appContext.appInfo.user.hasFCAccess && \n \n \n Bundles\n \n \n Batch Reports\n \t \n \n \n }\n {(view == 'collection' && messageProps) ? '' : messageComponent}\n \n \n )\n}\n","import React, { Fragment } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Paper, Grid, Typography} from '@material-ui/core';\nimport AddtoCollection from 'assets/img/add-to-collection.png';\nimport CollectionsLayout from './CollectionsLayout';\nimport OdataCollectionToolbar from '../OdataCollectionsToolbar'\nimport Link from '@material-ui/core/Link';\nimport {ToggleButton } from '@material-ui/lab';\nimport DownloadIcon from 'assets/img/ClicktoDownload.png';\nimport HelpIcon from 'assets/img/Helpicon_png.png';\n//import { faInfoCircle as HelpIcon } from '@fortawesome/free-solid-svg-icons'\nimport WatchTutorialIcon from 'assets/img/WatchtheVideoTutorial_png.png';\nimport {ApplicationContext} from 'context';\nimport Button from '@material-ui/core/Button';\n//import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(5.6),\n marginLeft:30,\n marginRight:30\n },\n headerText: {\n fontWeight: 'bold',\n fontSize: 16,\n lineHeight: '20px',\n color: theme.palette.text.secondary\n },\n bannerSubtitle: {\n fontSize: 13,\n // textAlign: 'left',\n lineHeight: '30px',\n color: theme.palette.text.primary,\n\n },\n bannerSubtitle1: {\n fontSize: 13,\n textAlign: 'left',\n lineHeight: '30px',\n color: theme.palette.text.primary,\n \n paddingRight: 300,\n paddingLeft: 300,\n },\n\n footerText: {\n fontWeight: 300,\n fontSize: 16,\n lineHeight: '18px',\n color: theme.palette.text.secondary,\n textAlign:'center'\n },\n img:{\n paddingBottom:'px'\n },\n compoundToolbar:{\n display: 'flex',\n flexWrap: 'nowrap',\n width: '100%',\n padding: '2px',\n backgroundColor: '#f2f8fb',\n marginLeft:30\n }, \n buttonRoot: {//\n height: 25,\n fill: '#455a64',\n borderRadius: '0px 18px 18px 0px',\n borderColor: theme.palette.grey,\n width: 130,\n fontSize: 12,\n margin:1,\n marginLeft: 1,\n textAlign: 'center'\n },\n buttonBlue: {\n height: 30,\n //fill: '#455a64',\n borderRadius: 3,\n borderColor: theme.palette.grey,\n width: 100,\n fontSize: 12,\n margin:1,\n marginLeft: 1,\n textAlign: 'center',\n backgroundColor: theme.palette.primary.main,\n fontWeight: 'bold',\n color: '#FFF',\n // width: 94,\n // height: 36,\n // fontSize: 10,\n // backgroundColor: theme.palette.primary.main,\n // marginLeft: 18,\n '&:hover': {\n fontWeight: 'bold',\n color: '#FFF',\n //width: 94,\n //height: 36,\n //fontSize: 10,\n backgroundColor: theme.palette.primary.main,\n //marginLeft: 18,\n }\n }, \n paperLong: {\n height: 30,\n fill: '#455a64',\n width: 600,\n fontSize: 13,\n textAlign: 'left'\n }, \n paper: {\n height: 30,\n //lineHeight: '30px',\n fill: '#455a64',\n //borderRadius: 1,\n //borderColor: theme.palette.grey,\n width: 550,\n fontSize: 13,\n //margin:1,\n //marginLeft: 1,\n textAlign: 'left'\n }, \n shortPaper: {\n height: 30,\n //lineHeight: '30px',\n fill: '#455a64',\n width: 30,\n fontSize: 13,\n textAlign: 'left'\n }, \n shortPaper1: {\n height: 30,\n //lineHeight: '30px',\n fill: '#455a64',\n width: 90,\n fontSize: 13,\n textAlign: 'left'\n },\n fragment:{\n height: 30,\n visibility: 'hidden',\n } ,\n shortPaper2: {\n height: 30,\n //lineHeight: '30px',\n fill: '#455a64',\n width: 450,\n fontSize: 13,\n textAlign: 'left'\n },\n shortPaper3: {\n height: 100,\n //lineHeight: '30px',\n fill: '#455a64',\n width:140,\n fontSize: 13,\n textAlign: 'center'\n },\n shortPaper4: {\n height:60,\n //lineHeight: '30px',\n fill: '#455a64',\n width: 450,\n fontSize: 13,\n textAlign: 'left',\n borderLeft: '3px solid #D3D3D3',\n },\n paperShortHight: {\n height: 10,\n //lineHeight: '30px',\n \n width: 600,\n },\n buttonNoMargin:{\n margin: 0,\n },\n \ngreenSubtitle:{\n color: theme.palette.npd.green,\n},\nsolidLine: {\n borderTop: '3px solid red',\n color: '#D3D3D3',\n fill: '#D3D3D3',\n backgroundColor: '#D3D3D3',\n borderColor: '#D3D3D3',\n}\n}));\n\n\nexport default function CollectionsStart(props) {\n const {pillProps,messageProps} = props;\n const classes = useStyles();\n const history = useHistory();\n\n\n const helpUrl = 'https://www.npd.com';\n const tutorialUrl = 'https://www.npd.com';\n const appContext = React.useContext(ApplicationContext).appInfo;\n\n const handleToggleButtonChange = (event, value) => {\n history.push(`/collection?v=odata`);\n if (value !== undefined && value !== null)\n {\n \n }\n };\n\n const handleOpenHelp = event => {\n \n window.open(helpUrl, \"_blank\", appContext.help.windowOptions);\n //setOpen(false);\n };\n const handleOpenTutorial = event => {\n \n window.open(tutorialUrl, \"_blank\", appContext.help.windowOptions);\n //setOpen(false);\n };\n return (\n \n \n \n \n \n \n\n \n \n \n\n \n \n You currently have no Bundles, so let’s get started! \n \n \n \n \n 1\n \n \n Batch your reports in DecisionKey.\n \n \n {/* 1. Batch your reports in DecisionKey. */}\n \n \n \n \n 2.\n \n \n Click the above \n \n Batch Reports\n \t\n tab to select reports. \n \n \n\n \n \n \n \n 3.\n \n \n Click ★ Add to Bundle to create a Bundle. \n \n \n \n {/* 3. Click ⭐Add to Bundle to create a Bundle. */}\n \n \n \n \n 4.\n \n \n Click \n \n View Bundles\n \t \n to display the Bundle list. \n \n \n\n \n \n \n \n 5.\n \n \n \n \n \n \n \n downloads a Bundle to a single MS Excel workbook.\n \n \n\n \n {/* \n \n\n \n 6.\n \n\n \n Once your DecisionKey data has been updated, click Data > Refresh All in the workbook to update report data for the available data source(s). \n \n \n */}\n \n \n \n \n \n \n \n \n\n \n Need more Help?\n \n\n \n \n\n\n\n \n \n \n \n \n \n \n \n \n\n \n Bundles Reference Guide\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {/* \n \n Click the Batch Reports|Ready tab to create a new Bundle. \n Click the Batch Reports tab to create a new Bundle.\n \n */}\n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n// @material-ui/core components\nimport { makeStyles, Grid } from \"@material-ui/core\";\nimport _ from 'lodash';\n//services\nimport { useCollectionService } from 'components';\nimport { Topbar } from 'Topbar';\nimport {Search} from 'views/Odata/Collections/components'\n//contexts\n//import DataSourceContext from 'context/DataSourceContext';\nimport CollectionsStart from './CollectionsStart';\nimport CollectionsHome from './CollectionsHome';\n\n// from Filecenter:\nimport { DataSourceContext, SearchContext } from 'context';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n\n }\n}));\n\nexport default function Workbooks(props) {\n /*************************************************************************** */\n const {pillProps} = props;\n const service = useCollectionService();\n const [collections, setCollections] = useState([]);\n\n const dataSourceContext = React.useContext(DataSourceContext);\n\n //searchcontext\n const [totalCount, setTotalCount] = React.useState(0);\n const [pageSize, setPageSize] = React.useState(25);\n const [page, setPage] = React.useState(1);\n const [orderBy, setOrderBy] = React.useState('createdDate');\n const [orderByDirection, setOrderByDirection] = React.useState('desc');\n const [reportName, setReportName] = React.useState('');\n const [loading, setLoading] = React.useState(true);\nconst hideMessage = true;\n const getData = () => {\n let sortInfo = '';\n if (orderBy !== '' && orderBy !== undefined && orderBy !== null) {\n sortInfo = \"[{'Property': '\" + orderBy + \"' , 'direction' : '\" + orderByDirection + \"' }]\";\n }\n let filter = {\n reportName: Boolean(reportName) ? reportName : null,\n };\n let options = { page: page, pageSize: pageSize, filter: filter, sortInfo: sortInfo }\n setLoading(true);\n service.getAll(options).then(response => {\n if (response.data !== null || response.data.data.length > 0) {\n setCollections(response.data.data);\n setPage(response.data.page);\n setPageSize(response.data.pageSize);\n setTotalCount(response.data.totalCount);\n setLoading(false);\n }\n });\n };\n\n useEffect(() => {\n if (Boolean(dataSourceContext.dataSourceSelectedKey))\n getData();\n\n }, [dataSourceContext.dataSourceSelectedKey, reportName,pageSize, page, orderBy, orderByDirection ]);//[dataSourceSelectedKey]\n\n\n const renderCollectionScreen = () => {\n return (collections.length > 0 || loading || reportName) ? \n : \n };\n\n\n return (\n \n \n \n \n {renderCollectionScreen()}\n \n \n );\n}\n","import React from \"react\";\nimport {Dialog, DialogTitle, DialogContent, DialogActions, Button} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\"\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n\n },\n deleteBtn: {\n backgroundColor: theme.palette.npd.orange,\n '&:hover':{\n backgroundColor: theme.palette.npd.red,\n }\n }\n}))\nexport default function ConfirmDialog(props){\n const {openDialog, confirmBody, okHandler, cancelHandler} = props;\n const classes = useStyles();\n return ( \n \n \n Are you sure?\n \n \n {confirmBody()}\n \n \n Yes\n Cancel\n \n );\n}","import React from 'react';\nimport { useSnackbar } from 'notistack';\n//material ui components\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport {GetApp as DownloadIcon, Error, DeleteForever as DeleteIcon, CancelScheduleSend as UnqueueIcon } from '@material-ui/icons';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {useApi} from 'components'\nimport {ApplicationContext} from 'context';\nimport ConfirmDialog from './ConfirmDialog';\n\nconst useStyle = makeStyles(theme => ({\n root: {\n padding: '0 2px',\n fontSize: '1rem',\n '& > span > svg':{\n fontSize: '1.2rem',\n }\n },\n colorError: {\n color: theme.palette.npd.orange\n },\n colorSuccess: {\n color: theme.palette.npd.green\n }\n\n})); \nconst renderAction = (row, action, classes, keyName) => {\n let item;\n switch (action.name) {\n case 'download':\n item = \n \n action.handler(keyName)} disabled={!row.isExists}>\n \n \n \n \n break;\n case 'delete': item = \n \n action.handler(keyName)} classes={{root: classes.root}} size='small' disabled={!action.isEnabled(row.statusId)}>\n \n \n \n \n break;\n case 'unqueue': item = \n \n action.handler(keyName)} classes={{root: classes.root}} size='small' disabled={!action.isEnabled(row.statusId)}>\n \n \n \n \n break;\n default:\n item = ;\n break;\n };\n return item;\n}\n/*\nSCHEDULE_STATUS\t STATUS_NAME\t STATUS_DESCRIPTION\n1\t Pending\t Pending\n2\t Running...\t Running...\n7\t On New Data Load\t On New Data Load\n12\t Pending\t Azure Batch Pending\n13\t Flat File Running\t Flat File Running\n19\t Pending on Hadoop Injection\t Pending on Hadoop Injection\n20\t Running...\t Report Runner Complete\n21\t Running...\t Exporter Pending\n22\t Running...\t Exporter Running\n*/\nconst runStatuses = [1, 2, 7, 12, 13, 19, 20, 21, 22];\n\nexport default function ActionCell(props){\n const {keyName, row, callback} = props;\n const [openDialog, setOpenDialog] = React.useState(false);\n const [action, setAction] = React.useState(\"delete\");\n const api = useApi();\n const classes = useStyle();\n const appContext = React.useContext(ApplicationContext);\n const { enqueueSnackbar } = useSnackbar();\n \n const canDelete = (status) => {\n return status !== 1 && status !== 2 && status !==7 && status !==20 && status !==21 && status !==22 && row.createdBy.toLowerCase() === appContext.appInfo.user.username.toLowerCase();\n }\n const canRemoveFromQueue = (status) => {\n const canRemove = runStatuses.find(s => status === s) !== undefined;\n return canRemove && row.createdBy.toLowerCase() === appContext.appInfo.user.username.toLowerCase();\n }\n const canDownload = (status, outputType) => {\n return ((status === 6 || status === 14 || status === 15 || status === 16 || status === 17) && outputType !== 9);\n }\n\n const handleDownLoadClick = () => {\n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated)\n api.downloadBatchedReport(row.scheduleEventId, row.token);\n });\n };\n\n const handleDeleteClick = () => {\n api.deleteReport([row]).then((res) => {\n if (callback)\n callback();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n }\n const getSeletedReports = () => {\n switch(action){\n case \"delete\": return (<>Are you sure you want to delete this report? {row.reportName}>);\n case \"unqueue\": return (<>Are you sure you want to remove this report from the batch queue? {row.reportName}>);\n default: return (<>Are you sure you want to delete these reports? {row.reportName}>);\n }\n \n }\n const handleUnqueueClick = () => {\n api.unqueueBatchReport([row]).then((res) => {\n if (callback)\n callback();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n }\n const showConfirmDialog = (key) => {\n setAction(key)\n setOpenDialog(true);\n }\n const actions = [{name: 'download', handler: handleDownLoadClick, tooltip: 'Click to Download', showOnRow: true, isEnabled: canDownload},\n {name: 'delete', handler: () => showConfirmDialog(\"delete\"), tooltip: 'Click to Delete', showOnRow: true, isEnabled: canDelete},\n {name: 'unqueue', handler: () => showConfirmDialog(\"unqueue\"), tooltip: 'Remove from Queue', showOnRow: true, isEnabled: canRemoveFromQueue}\n ]\n \n return (\n \n {actions.map(action => {\n return renderAction(row, action, classes, keyName);\n })}\n {setOpenDialog(false)}}\n >\n \n \n );\n\n}","import React from 'react'\nimport PropTypes from 'prop-types';\nimport MomentUtils from '@date-io/moment';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport {FormControl, Select, Box, OutlinedInput, Button, Divider, Typography, Grid, IconButton} from '@material-ui/core';\nimport {MuiPickersUtilsProvider, KeyboardDatePicker } from '@material-ui/pickers';\nimport {Close as CloseIcon} from '@material-ui/icons'\n\nimport {SearchContext} from 'context'\nimport {useApi, AutoCompleteDropdown as SearchAutocomplete} from 'components'\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1,\n },\n typography: {\n padding: theme.spacing(2)\n },\n iconOpenRoot:{\n color: theme.palette.common.white,\n backgroundColor: theme.palette.npd.darkBlue,\n borderRadius: 0,\n height: 48,\n width: 48,\n '&:hover':{\n color: theme.palette.common.white,\n backgroundColor: theme.palette.npd.darkBlue,\n }\n },\n iconRoot:{\n height: 48,\n width: 48,\n },\n button:{\n margin: 10\n },\n gridContainer:{\n padding: '3px 10px',\n },\n popperPaper:{\n width: 550,\n height: 380,\n padding: theme.spacing(1),\n textAlign: 'center',\n whiteSpace: 'nowrap',\n marginBottom: theme.spacing(1),\n },\n textBox: {\n height:30,\n width: '100%',\n fontSize: 12,\n '&:input':{\n padding: \"0px 5px\"\n }\n },\n formControl:{\n width: '100%',\n paddingRight: 5\n },\n formControlLast:{\n width: '100%'\n },\n select: {\n padding: 8,\n fontSize: 12,\n width: '100%'\n },\n dense: {\n padding: 0,\n margin: 0,\n paddingRight: 2,\n width: '50%',\n '& > div > input':{\n padding: 8,\n fontSize: 12\n }\n },\n endAdornment: {\n padding: 0,\n '& > button':{\n padding: 0\n }\n },\n }));\n \nexport default function AdvancedSearchForm(props){\n const classes = useStyles();\n const {rowsPerPageOptions = [], columns = [], handleClose, reportOutputTypesFilters = [], statusFilters = []} = props;\n const searchContext = React.useContext(SearchContext);\n const api = useApi();\n\n const [reportName, setReportName] = React.useState(searchContext.reportName);\n const [folderName, setFolderName] = React.useState(searchContext.folderName);\n const [batchStartdate, setBatchStartdate] = React.useState(searchContext.batchStartdate);\n const [batchEnddate, setBatchEnddate] = React.useState(searchContext.batchEnddate);\n const [batchedBy, setBatchedBy] = React.useState(searchContext.batchedBy);\n const [batchStatus, setBatchStatus] = React.useState(searchContext.batchStatus);\n const [format, setFormat] = React.useState(searchContext.format);\n \n const [orderBy, setOrderBy] = React.useState(searchContext.orderBy);\n const [orderByDirection, setOrderByDirection] = React.useState(searchContext.orderByDirection);\n const [pageSize, setPageSize] = React.useState(searchContext.pageSize);\n\n const handleOrderByChange = (event) => {\n setOrderBy(event.target.value);\n }\n const handleOrderByDirectionChange = (event) => {\n setOrderByDirection(event.target.value);\n }\n const handlePageSizeChange = (event) => {\n setPageSize(event.target.value);\n }\n\n const onApplyClick = () => {\n setFilters(false);\n handleClose();\n }\n \n const onClearClick = () => {\n setFolderName('');\n setReportName('');\n setBatchEnddate(null);\n setBatchStartdate(null);\n setFilters(true);\n setBatchStatus({scheduleStatus: 0, displayName: ''});\n setBatchedBy('');\n setFormat({reportOutputTypeId: 0, reportOutputType: \"\"});\n }\n const handleChange = (event, columnName) => {\n var value = event.target.value;\n switch(columnName){\n case 'folderName': setFolderName(value); break;\n case 'reportName': setReportName(value); break;\n case 'batchedBy': setBatchedBy(value); break;\n }\n }\n\n const handleFormatChange = (event, value) => {\n \n }\n\n const setFilters = (shouldClear) => {\n if (shouldClear){\n searchContext.setReportName('');\n searchContext.setFolderName('');\n searchContext.setBatchStartdate(null);\n searchContext.setBatchEnddate(null);\n searchContext.setBatchStatus({scheduleStatus: 0, displayName: ''});\n searchContext.setBatchedBy('');\n searchContext.setFormat({reportOutputTypeId: 0, reportOutputType: \"\"});\n }\n else{\n searchContext.setReportName(reportName);\n searchContext.setFolderName(folderName);\n searchContext.setBatchStartdate(batchStartdate);\n searchContext.setBatchEnddate(batchEnddate);\n searchContext.setBatchStatus(batchStatus);\n searchContext.setBatchedBy(batchedBy);\n searchContext.setFormat(format)\n searchContext.setOrderBy(orderBy);\n searchContext.setOrderByDirection(orderByDirection);\n searchContext.setPageSize(pageSize);\n searchContext.setPage(1);\n }\n }\n return (\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Folder Name\n handleChange(event, 'folderName')} classes={{root: classes.textBox}} variant='outlined'>\n \n \n \n Batched By\n handleChange(event, 'batchedBy')} classes={{root: classes.textBox}} variant='outlined'>\n \n\n \n Format\n {if (event !== undefined && event.target !== undefined) setFormat({ reportOutputType: event.target.value })}}\n handleAutoCompleteValueOnChange={(event, value) => {if (value !== undefined && value.reportOutputTypeId !== undefined) setFormat(value)}}\n inputTerm={format.reportOutputType}\n defaultValue={reportOutputTypesFilters.find((item) => item === searchContext.format) || { reportOutputType: '', reportOutputTypeId: '0' }}\n getOptionLabel={item => item.reportOutputTypeId}\n options={reportOutputTypesFilters}\n placeholder=''\n outlined={true}\n freeSolo={false}\n label = \"reportOutputType\"\n />\n {/* \n setFormat(reportOutputTypesFilters.find(i => i.reportOutputTypeId === event.target.value))}\n classes={{root: classes.select}}\n value={format.reportOutputTypeId}\n >\n { reportOutputTypesFilters.map(item => {item.reportOutputType})}\n \n */}\n \n\n \n \n \n \n \n Report Name\n handleChange(event, 'reportName')} classes={{root: classes.textBox}} variant='outlined'>\n \n \n \n Status\n {if (event !== undefined && event.target !== undefined) setBatchStatus({ displayName: event.target.value })}}\n handleAutoCompleteValueOnChange={(event, value) => {if (value !== undefined && value.scheduleStatus !== undefined) setBatchStatus(value)}}\n inputTerm={batchStatus.displayName}\n defaultValue={statusFilters.find((item) => item === searchContext.batchStatus) || { displayName: '', scheduleStatus: '0' }}\n options={statusFilters}\n placeholder=''\n outlined={true}\n freeSolo={false}\n label = \"displayName\"\n />\n {/* \n setBatchStatus(statusFilters.find(i => i.scheduleStatus.toString() === event.target.value.toString()))}\n classes={{root: classes.select}}\n value={batchStatus.scheduleStatus}\n >\n { statusFilters.map(item => {item.displayName})}\n \n */}\n \n\n \n Batched On\n \n setBatchStartdate(date)}\n />\n \n \n setBatchEnddate(date)}\n />\n \n \n\n \n \n \n \n \n \n \n \n \n OrderBy Column\n \n \n {columns.map(item => { return !item.disableSort ? {item.label} : ''})}\n \n \n \n\n \n Direction\n \n \n Desc\n Asc\n \n \n \n\n \n Page Size\n \n \n {rowsPerPageOptions.map(item => { return {item}})}\n \n \n \n \n \n\n \n \n \n \n Clear\n Apply\n \n \n \n \n\n\n // \n // \n // \n // \n // \n // Clear\n // \n // \n // Apply\n // \n // \n // \n // \n // \n // \n // \n // Folder Name\n // \n // \n // handleChange(event, 'folderName')} classes={{root: classes.textBox}} variant='outlined'>\n // \n // \n // \n \n // \n // \n // \n // Report Name\n // \n // \n // handleChange(event, 'reportName')} classes={{root: classes.textBox}} variant='outlined'>\n // \n // \n // \n\n // {/* \n // \n // \n // Batched By\n // \n // \n // handleChange(event, 'batchedBy')} classes={{root: classes.textBox}} variant='outlined'>\n // \n // \n // */}\n\n // \n // \n // \n // \n // Batched On\n // \n // \n // setBatchStartdate(date)}\n // />\n // \n // \n // \n // setBatchEnddate(date)}\n // />\n // \n // \n // \n // \n // \n // \n // \n // Sort / Limit\n // \n // \n // \n // \n // {columns.map(item => { return !item.disableSort ? {item.label} : ''})}\n // \n // \n // \n // \n // \n // \n // Desc\n // Asc\n // \n // \n // \n // \n // /\n // \n // \n // \n // \n // {rowsPerPageOptions.map(item => { return {item}})}\n // \n // \n // \n // \n // \n // \n // \n );\n}\n\nAdvancedSearchForm.propTypes = {\n rowsPerPageOptions: PropTypes.array,\n columns: PropTypes.array.isRequired,\n handleClose: PropTypes.func\n};","import React, { useState } from 'react';\nimport {SearchContext} from 'context';\nimport {useApi} from 'components'\nimport {Search as SearchBase} from 'Topbar/Topbar/components'\n\nconst searchTypes = [{Name: 'Report Name', id: 0}];\n\nexport default function Search(props) {\n const [inputTerm, setInputTerm] = useState('');\n const [searchType, setSearchType] = useState(0);\n const handleSearchTypeChange = event => { setSearchType(event.target.value); };\n const searchContext = React.useContext(SearchContext);\n const api = useApi();\n const handleTextBoxOnChange = (e, v) => {\n setInputTerm(e.target.value);\n };\n\n const handleAutoCompleteValueOnChange = (e, v) => {\n setInputTerm(e.target.value);\n if (typeof v === 'object') {\n setInputTerm(v.keyword);\n }\n handleSearch(v.keyword, v.searchType);\n };\n\n const handleOnEnter = event => {\n if (event.key === 'Enter') {\n searchContext.setReportName(event.target.value);\n }\n };\n\n const handleSearch = (term, stype) => {\n if (typeof term === 'object') {\n term = null;\n }\n\n var searchIcon = document.getElementById('searchIcon');\n if (Boolean(searchIcon)) {\n searchIcon.focus();\n }\n\n if (term !== undefined || inputTerm.length > 0) {\n searchContext.setReportName(term || inputTerm);\n searchContext.setPage(1);\n } \n };\n\n return (\n \n \n );\n}\n\n\nSearch.propTypes = {\n};\n","//core components\nimport React, {useState} from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n//material ui components\nimport { makeStyles, lighten } from '@material-ui/core/styles';\nimport { Typography, Tooltip, IconButton, Button, Grid, Dialog, DialogTitle, DialogContent, DialogActions } from '@material-ui/core';\nimport { GetApp as BatchIcon, Cached as RefreshIcon, Delete } from '@material-ui/icons';\n//custom components\nimport { GridContext, SearchContext } from 'context';\nimport { SelectedSearches } from 'components';\nimport ConfirmDialog from './ConfirmDialog';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n flexGrow: 10,\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n color: theme.palette.primary.main,\n backgroundColor: lighten(theme.palette.secondary.light, 0.75),\n },\n icons: {\n display:'flex',\n },\n icon: {\n padding: '1px 5px 1px 1px',\n fontSize: '23px',\n },\n title: {\n paddingRight: theme.spacing(3),\n fontSize: '12px',\n },\n deleteBtn: {\n backgroundColor: theme.palette.npd.orange,\n '&:hover':{\n backgroundColor: theme.palette.npd.red,\n }\n }\n}));\n\nexport default function EnhancedTableToolbar(props) {\n const classes = useStyles();\n const { multidownload, refresh, multidelete} = props;\n const {rowsSelected, setRowsSelected} = React.useContext(GridContext);\n const [openDialog, setOpenDialog] = React.useState(false);\n const searchContext = React.useContext(SearchContext);\n\n\n const GenerateSelectedSearches = () => {\n let searches = [];\n\n if (searchContext.reportName !== undefined && searchContext.reportName !== '')\n searches.push({ key: \"Report Name\", value: searchContext.reportName, handleDelete: () => { searchContext.setReportName(''); } });\n\n if (searchContext.folderName !== undefined && searchContext.folderName !== '')\n searches.push({ key: \"Folder Name: \", value: searchContext.folderName, handleDelete: () => { searchContext.setFolderName(''); } });\n\n if (searchContext.batchStatus !== undefined && searchContext.batchStatus.scheduleStatus !== undefined && searchContext.batchStatus.scheduleStatus !== 0)\n searches.push({ key: \"Status: \", value: searchContext.batchStatus.displayName, handleDelete: () => { searchContext.setBatchStatus({ scheduleStatus: 0, displayName: \"\" }); } });\n\n if (searchContext.batchedBy !== undefined && searchContext.batchedBy !== '')\n searches.push({ key: \"Batched By: \", value: searchContext.batchedBy, handleDelete: () => { searchContext.setBatchedBy(''); } });\n\n if (searchContext.format !== undefined && searchContext.format.reportOutputTypeId !== undefined && searchContext.format.reportOutputTypeId !== 0)\n searches.push({ key: \"Format: \", value: searchContext.format.reportOutputType, handleDelete: () => { searchContext.setFormat({ reportOutputTypeId: 0, reportOutputType: \"\" }); } });\n\n if (searchContext.batchEnddate !== undefined && searchContext.batchEnddate !== null)\n searches.push({ key: \"Batch To: \", value: searchContext.batchEnddate.format(\"MM/DD/YYYY\"), handleDelete: () => { searchContext.setBatchEnddate(null); } });\n\n if (searchContext.batchStartdate !== undefined && searchContext.batchStartdate !== null)\n searches.push({ key: \"Batch From: \", value: searchContext.batchStartdate.format(\"MM/DD/YYYY\"), handleDelete: () => { searchContext.setBatchStartdate(null); } });\n return searches;\n }\n\n const getSeletedReports = () => {\n return (<>Are you sure you want to delete these reports? {rowsSelected.map(r => {r.reportName})} >);\n }\n\n const onRefresh = () => \n {\n if (isFunction(refresh))\n {\n refresh();\n setRowsSelected([]);\n }\n }\n\n const handleMultiDelete = () => {\n multidelete(); \n setOpenDialog(false)\n }\n\n const isFunction = functionToCheck => {\n return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';\n }\n\n return (\n \n \n \n \n \n \n {(rowsSelected.length > 0) &&\n \n {rowsSelected.length} item(s) selected\n \n }\n {/* spans are for disabled tooltips */}\n \n multidownload()} aria-label=\"download\" color=\"primary\" disabled={rowsSelected.length === 0}>\n \n \n \n \n \n \n \n \n \n setOpenDialog(true)} aria-label=\"delete\" color=\"primary\" disabled={rowsSelected.length === 0}>\n \n \n \n \n {setOpenDialog(false)}}\n >\n \n {/* \n \n Are you sure?\n \n \n Are you sure you want to delete these reports:\n {getSeletedReports()}\n \n \n Yes\n setOpenDialog(false)}>Cancel\n \n */}\n \n );\n};\n\nEnhancedTableToolbar.propTypes = {\n refresh: PropTypes.func.isRequired,\n multidownload: PropTypes.func.isRequired\n};","import React from \"react\";\nimport { useSnackbar } from 'notistack';\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { Grid } from '@material-ui/core'\n// custom components\nimport { EnhancedTable, useApi, useWindowDimensions } from 'components';\nimport { SearchContext, DataSourceContext, GridContext, ApplicationContext } from 'context';\nimport { Topbar } from 'Topbar';\nimport { AdvancedSearchForm, Search, ActionCell, EnhancedToolbar } from './Components'\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '100%',\n backgroundColor: theme.palette.contentBackground,\n padding: '0px',\n margin: '0px'\n }\n}));\n//lastViewDate\nconst columns = [{ field: 'folderName', type: 'string', label: 'Folder Name' },\n{ field: 'reportName', type: 'string', label: 'Report Name' },\n{ field: 'runDate', type: 'date', label: 'Batched On', format: 'MM-DD-YYYY hh:mm A' },\n{ field: 'createdUserName', type: 'string', label: 'Batched By' },\n{ field: 'statusName', type: 'selectiveLinkWithTooltip', label: 'Status', showTooltip: true, onClick: () => {}, tooltipField:'tooltip' },\n{ field: 'expiredDate', type: 'date', label: 'Expires On', format: 'MM-DD-YYYY hh:mm A' },\n{ field: 'reportOutputType', type: 'string', label: 'Format', disableSort: true },\n{ field: 'lastViewDate', type: 'date', label: 'Last Accessed', format: 'MM-DD-YYYY' },\n{ field: 'action', type: 'action', label: '', disableSort: true }]\n\nconst rowsPerPageOptions = [10, 25, 50, 75, 100, 200, 500];\n\nexport default function BatchReports(props) {\n const { Toolbar, toolbarProps } = props;\n //searchcontext\n const [pageSize, setPageSize] = React.useState(25);\n const [orderBy, setOrderBy] = React.useState('reportName');\n const [orderByDirection, setOrderByDirection] = React.useState('asc');\n \n const [folderName, setFolderName] = React.useState('');\n const [reportName, setReportName] = React.useState('');\n const [batchStartdate, setBatchStartdate] = React.useState(null);\n const [batchEnddate, setBatchEnddate] = React.useState(null);\n const [batchedBy, setBatchedBy] = React.useState('');\n const [batchStatus, setBatchStatus] = React.useState({scheduleStatus: 0, displayName: \"\"});\n const [format, setFormat] = React.useState({reportOutputTypeId: 0, reportOutputType: \"\"});\n \n const [totalCount, setTotalCount] = React.useState(0);\n const [rowsSelected, setRowsSelected] = React.useState([]);\n const [page, setPage] = React.useState(1);\n const [batchReports, setBatchedReports] = React.useState([]);\n const [loading, setLoading] = React.useState(false);\n\n const [statusFilters, setStatusFilters] = React.useState([]);\n const [reportOutputTypesFilters, setReportOutputTypesFilters] = React.useState([]);\n\n const dataSourceContext = React.useContext(DataSourceContext);\n const gridContext = React.useContext(GridContext);\n const appContext = React.useContext(ApplicationContext);\n\n const { enqueueSnackbar } = useSnackbar();\n const api = useApi();\n\n const handleMultiDeleteClick = () => {\n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated) {\n api.deleteReport(rowsSelected).then((res) => {\n setRowsSelected([]);\n loadBatchedReports();\n if (res.data)\n enqueueSnackbar(res.data, { \n variant: 'error', \n autoHideDuration: 10000\n });\n });\n }\n });\n }\n\n const handleBatchMultiDownloadClick = () => {\n if (rowsSelected.length > appContext.appInfo.maxMultiFiledownload)\n enqueueSnackbar(\"You can only download maximum of \" + appContext.appInfo.maxMultiFiledownload + \" files at a time.\", { variant: 'warning' });\n else {\n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated) {\n let notFound = [];\n rowsSelected.map((r) => {\n if (r.isExists)\n api.downloadBatchedReport(r.scheduleEventId, r.token)\n else\n notFound.push(r.reportName);\n });\n if (notFound.length !== 0)\n enqueueSnackbar(\"Following files were not found: \" + notFound.toString(), { variant: 'warning' });\n }\n });\n }\n }\n\n const handleZipBatchMultiDownloadClick = () => {\n if (rowsSelected.length > appContext.appInfo.maxMultiFiledownload)\n enqueueSnackbar(\"You can only download maximum of \" + appContext.appInfo.maxMultiFiledownload + \" files at a time.\", { variant: 'warning' });\n else {\n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated) {\n let notFound = [];\n let found = [];\n rowsSelected.map((r) => {\n if (r.isExists)\n found.push(r);\n else\n notFound.push(r.reportName);\n });\n if (found.length > 0)\n {\n if (found.length === 1)\n api.downloadBatchedReport(found[0].scheduleEventId, found[0].token)\n else \n api.downloadBatchedReportZip(found);\n }\n \n if (notFound.length !== 0)\n enqueueSnackbar(\"Following files were not found: \" + notFound.toString(), { variant: 'warning' });\n }\n });\n }\n }\n\n React.useEffect(() => {\n api.getStatusFilters().then(res => {\n if (res && res.data)\n setStatusFilters(res.data);\n });\n }, []);\n\n React.useEffect(() => {\n api.getReportOutputTypes().then(res => {\n if (res && res.data)\n setReportOutputTypesFilters(res.data);\n });\n }, []);\n\n React.useEffect(() => {\n loadBatchedReports();\n setPage(1);\n }, [dataSourceContext.dataSourceSelectedKey])\n\n React.useEffect(() => {\n \n loadBatchedReports();\n }, [pageSize, page, batchedBy, batchStatus, orderByDirection, format, orderBy, reportName, folderName, batchStartdate, batchEnddate])\n\n const loadBatchedReports = () => {\n \n //setRowsSelected([]);\n let sortInfo = '';\n if (orderBy !== '' && orderBy !== undefined && orderBy !== null) {\n const orderCol = columns.find((item) => orderBy === item.label || orderBy === item.field).field;\n sortInfo = \"[{'Property': '\" + orderCol + \"' , 'direction' : '\" + orderByDirection + \"' }]\";\n }\n let filter = {\n reportName: reportName,\n folderName: folderName,\n startRunDateFrom: (batchStartdate === null || batchStartdate === undefined) ? null : batchStartdate.format(\"MM/DD/YYYY\"),\n startRunDateTo: (batchEnddate === null || batchEnddate === undefined) ? null : batchEnddate.format(\"MM/DD/YYYY\"),\n };\n if (batchStatus.scheduleStatus !== '0') filter.statusId = batchStatus.scheduleStatus;\n if (batchedBy !== '') filter.createdBy = batchedBy;\n if (format.reportOutputTypeId !== '0') filter.reportOutputTypeId = format.reportOutputTypeId;\n \n let options = { page: page, pageSize: pageSize, filter: filter, sortInfo: sortInfo, token: dataSourceContext.dataSourceSelectedKey }\n\n if (dataSourceContext.dataSourceSelectedKey !== '') {\n setLoading(true);\n api.getBatchedReports(options).then(res => {\n setBatchedReports(res.data.data);\n setPage(res.data.page);\n setPageSize(res.data.pageSize);\n setTotalCount(res.data.totalCount);\n setLoading(false);\n })\n }\n }\n\n const onChangePage = (newPage) => {\n setPage(newPage);\n }\n const onPageSizeChange = (newPageSize) => {\n setPage(1);\n api.saveRowPerPage({rowsPerPageOptions: newPageSize});\n appContext.appInfo.user.rowsPerPage = newPageSize;\n setPageSize(newPageSize);\n }\n const onRequestSort = order => {\n setOrderBy(order.orderBy);\n setOrderByDirection(order.order)\n }\n const classes = useStyles();\n return (\n \n \n \n \n \n \n \n {/**/}\n \n \n \n \n \n\n );\n}\n\nBatchReports.propTypes = {\n\n}\n","import React from 'react';\n//material ui components\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport {GetApp as DownloadIcon, Error } from '@material-ui/icons';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {useApi} from 'components'\n\nconst useStyle = makeStyles(theme => ({\n root: {\n padding: '0 2px',\n fontSize: '1rem',\n '& > span > svg':{\n fontSize: '1.2rem',\n }\n },\n colorError: {\n color: theme.palette.npd.orange\n },\n colorSuccess: {\n color: theme.palette.npd.green\n }\n\n})); \nconst renderAction = (row, action, classes, keyName) => {\n let item;\n switch (action.name) {\n case 'download':\n if (!action.showOnRow) break;\n if (!row.isExists)\n item = \n \n \n \n \n else\n item = \n action.handler(keyName)}>\n \n \n \n break;\n default:\n item = ;\n break;\n };\n return item;\n}\n\nexport default function ActionCell(props){\n const {keyName, row} = props;\n const api = useApi();\n const classes = useStyle();\n \n const handleDownLoadClick = documentId => {\n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated)\n api.downloadFileRepo(row.fileRepositoryId, row.token);\n });\n };\n const actions = [{name: 'download', handler: handleDownLoadClick, tooltip: 'Click to Download', showOnRow: true}]\n \n return (\n \n {actions.map(action => {\n return renderAction(row, action, classes, keyName);\n })} \n \n );\n\n}","import React, { useState } from 'react';\nimport {SearchContext} from 'context';\nimport {useApi} from 'components'\nimport {Search as SearchBase} from 'Topbar/Topbar/components'\n\nconst searchTypes = [{Name: 'File', id: 0}];\n\nexport default function Search(props) {\n const [inputTerm, setInputTerm] = useState('');\n const [searchType, setSearchType] = useState(0);\n const handleSearchTypeChange = event => { setSearchType(event.target.value); };\n const searchContext = React.useContext(SearchContext);\n const api = useApi();\n const handleTextBoxOnChange = (e, v) => {\n setInputTerm(e.target.value);\n };\n\n const handleAutoCompleteValueOnChange = (e, v) => {\n setInputTerm(e.target.value);\n if (typeof v === 'object') {\n setInputTerm(v.keyword);\n }\n handleSearch(v.keyword, v.searchType);\n };\n\n const handleOnEnter = event => {\n if (event.key === 'Enter') {\n handleSearch(event.target.value)\n }\n };\n\n const handleSearch = (term, stype) => {\n if (typeof term === 'object') {\n term = null;\n }\n\n var searchIcon = document.getElementById('searchIcon');\n if (Boolean(searchIcon)) {\n searchIcon.focus();\n }\n\n if (term !== undefined || inputTerm.length > 0) {\n searchContext.setTitle('');\n searchContext.setFileName(term || inputTerm);\n searchContext.setPage(1); \n // if (searchType === 0){\n // searchContext.setFileName('');\n // searchContext.setTitle(term || inputTerm);\n // searchContext.setPage(1);\n // }\n // else {\n // searchContext.setTitle('');\n // searchContext.setFileName(term || inputTerm);\n // searchContext.setPage(1);\n // }\n } \n };\n\n return (\n \n \n );\n}\n\n\nSearch.propTypes = {\n};\n","import React from \"react\";\nimport { useSnackbar } from 'notistack';\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport {Grid} from '@material-ui/core';\n// custom components\nimport {EnhancedTable, useApi, useWindowDimensions} from 'components';\nimport {SearchContext, DataSourceContext, GridContext, ApplicationContext} from 'context';\nimport {Search, ActionCell } from './Components'\nimport {Topbar} from 'Topbar';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '100%',\n backgroundColor: theme.palette.contentBackground,\n padding: '0px',\n margin: 0\n }\n}));\n\nconst columns = [\n {\n field: 'fileName',\n type: 'string',\n label: 'File',\n },{\n field: 'description',\n type: 'string',\n label: 'Description'\n},{\n field: 'action',\n type: 'action',\n label: ''\n}]\n\nexport default function FileRepo(props) {\n const { Toolbar, toolbarProps, EnhancedToolbar } = props;\n const [totalCount, setTotalCount] = React.useState(0);\n const [rowsSelected, setRowsSelected] = React.useState([]);\n const [page, setPage] = React.useState(1);\n const [pageSize, setPageSize] = React.useState(25);\n const [fileRepo, setFileRepo] = React.useState([]);\n const [orderBy, setOrderBy] = React.useState('fileName');\n const [orderByDirection, setOrderByDirection] = React.useState('desc');\n const [loading, setLoading] = React.useState(false);\n const [title, setTitle] = React.useState('');\n const [fileName, setFileName] = React.useState('');\n\n const dataSourceContext = React.useContext(DataSourceContext);\n const appContext = React.useContext(ApplicationContext);\n \n const {enqueueSnackbar} = useSnackbar();\n const api = useApi();\n\n React.useEffect(() => {\n loadFileRepo();\n setPage(1);\n }, [dataSourceContext.dataSourceSelectedKey]);\n\n React.useEffect(() => {\n //setLoading(true);\n loadFileRepo();\n }, [pageSize, page, orderByDirection, orderBy, title, fileName])\n\n const handleZipRepoMultiDownloadClick = () => {\n if (rowsSelected.length > appContext.appInfo.maxMultiFiledownload)\n enqueueSnackbar(\"You can only download maximum of \" + appContext.appInfo.maxMultiFiledownload + \" files at a time.\", { variant: 'warning' });\n else {\n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated){\n let notFound = [];\n let found = [];\n rowsSelected.map((r) => {\n if (r.isExists)\n found.push(r);\n //\n else \n notFound.push(r.displayName);\n });\n\n if (found.length > 0)\n {\n if (found.length === 1)\n api.downloadFileRepo(found[0].fileRepositoryId, found[0].token);\n else \n api.downloadFileRepoZip(found);\n }\n if (notFound.length !== 0)\n enqueueSnackbar(\"Following files were not found: \" + notFound.toString(), { variant: 'warning' });\n }\n });\n }\n }\n\n const handleRepoMultiDownloadClick = () => {\n if (rowsSelected.length > appContext.appInfo.maxMultiFiledownload)\n enqueueSnackbar(\"You can only download maximum of \" + appContext.appInfo.maxMultiFiledownload + \" files at a time.\", { variant: 'warning' });\n else {\n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated){\n let notFound = [];\n rowsSelected.map((r) => {\n if (r.isExists)\n api.downloadFileRepo(r.fileRepositoryId, r.token)\n else \n notFound.push(r.displayName);\n });\n if (notFound.length !== 0)\n enqueueSnackbar(\"Following files were not found: \" + notFound.toString(), { variant: 'warning' });\n }\n });\n }\n }\n\n const handleDownLoadClick = uniqueId => {\n const document = fileRepo.find((row) => {\n return row.uniqueId === uniqueId;\n });\n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated)\n api.downloadFileRepo(document.fileRepositoryId, document.token);\n });\n };\n\n const actions = [{\n name: 'download',\n handler: handleDownLoadClick,\n tooltip: 'Click to Download',\n keyColumn: 'uniqueId',\n showOnRow: true\n }];\n \n const loadFileRepo = () => {\n \n //setRowsSelected([]);\n \n let sortInfo = '';\n if (orderBy !== '' && orderBy !== undefined && orderBy !== null) {\n const orderCol = columns.find((item) => orderBy === item.label || orderBy === item.field).field;\n sortInfo = \"[{'Property': '\" + orderCol + \"' , 'direction' : '\" + orderByDirection + \"' }]\";\n }\n let filter = {\n displayName: title,\n fileName: fileName\n };\n\n let options = {page: page, pageSize: pageSize, token: dataSourceContext.dataSourceSelectedKey, filter: filter, sortInfo: sortInfo}\n \n if (dataSourceContext.dataSourceSelectedKey !== ''){\n setLoading(true);\n api.getFileRepo(options).then(res => {\n setFileRepo(res.data.data);\n setPage(res.data.page);\n setPageSize(res.data.pageSize);\n setTotalCount(res.data.totalCount);\n setLoading(false);\n })}\n }\n\n const onChangePage = (newPage) => {\n setPage(newPage);\n }\n const onPageSizeChange = (newPageSize) => {\n setPage(1);\n api.saveRowPerPage({rowsPerPageOptions: newPageSize});\n appContext.appInfo.user.rowsPerPage = newPageSize;\n setPageSize(newPageSize);\n }\n const onRequestSort = order => {\n setOrderBy(order.orderBy);\n setOrderByDirection(order.order)\n }\n\n const classes = useStyles();\n return (\n \n \n \n \n \n \n \n {/**/}\n \n \n \n \n \n \n\n );\n}\n","import React from 'react';\nimport { useSnackbar } from 'notistack';\nimport clsx from 'clsx';\n//material ui components\nimport { IconButton, Tooltip, Button, FormControl, Select, DialogActions, Dialog, DialogContent, DialogContentText, DialogTitle } from '@material-ui/core';\nimport {GetApp as DownloadIcon,Send as BatchIcon, Today as BatchLater, CancelScheduleSend as RemoveIcon } from '@material-ui/icons';\nimport { makeStyles } from '@material-ui/core/styles';\n//custom components\nimport {useReportApi} from 'components'\nimport {DataSourceContext} from 'context'\n\nconst useStyle = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexDirection:'row',\n },\n iconBtn: {\n padding: '0 2px',\n fontSize: '1rem',\n '& > span > svg':{\n fontSize: '1.2rem',\n }\n },\n colorError: {\n color: theme.palette.npd.orange\n },\n colorSuccess: {\n color: theme.palette.npd.green\n },\n hidden:{\n display:\"none\"\n },\n flexItem: {\n flexGrow: 1\n },\n select: {\n padding: 5, \n fontSize: 12,\n marginTop: -2\n },\n})); \nconst renderAction = (row, action, classes, keyName) => {\n let item;\n switch (action.name) {\n case 'download':\n item = \n \n action.handler(keyName)} disabled={!action.isDisabled(row.statusId)}>\n \n \n \n \n break; \n case 'batch':\n if (!action.showOnRow) break;\n item = \n \n action.handler(\"batch\")}>\n \n \n \n \n break;\n case 'batchEveryRelease':\n if (!action.showOnRow) break;\n item = \n \n action.handler(\"batchnextload\")}>\n \n \n \n \n break;\n case 'removeBatch':\n if (!action.showOnRow) break;\n item = \n \n action.handler(\"remove\", 1)} size='small'>\n \n \n \n \n break;\n case 'refresh':\n if (!action.showOnRow) break;\n break;\n default:\n item = ;\n break;\n };\n return item;\n}\nconst formatOptions = [{name:\"Formatted Excel\", key: 261}, {name:\"Unformatted Excel\", key:1285}, {name:\"CSV\", key: 2}]\nconst flatfileFormatOptions = [{name:\"Flat file\", key: 9}]\n\nexport default function TableActions(props){\n \n const {keyName, row, callback} = props;\n const classes = useStyle();\n const context = React.useContext(DataSourceContext);\n const [action, setAction] = React.useState(\"\");\n const [openDialog, setOpenDialog] = React.useState(false);\n const [format, setFormat] = React.useState({name:\"Formatted Excel\", key: 261})\n const api = useReportApi();\n const { enqueueSnackbar } = useSnackbar();\n \n const handleDialogClose = () => setOpenDialog(false);\n\n const handleDialogOpen = (action) => {\n setAction(action);\n setOpenDialog(true);\n }\n\n const handleDialogAction = () => {\n switch(action){\n case 'batch': handleBatchClick(); break;\n case 'batchnextload': handleBatchEveryReleaseClick(); break;\n case 'remove': handleUnqueueClick(1); break;\n default: break;\n }\n }\n\n const handleDownLoadClick = () => {\n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated)\n api.downloadBatchedReport(row.scheduleEventIds, row.token);\n });\n }\n\n const canDownload = () => {\n return row.canDownload;\n } \n\n const handleBatchClick = () => {\n const data = {\n eventTypeId: 1,\n status: 1,\n reportId: row.reportId,\n reportOutputTypeID: row.immediateDeliveryInd ? 4 : (format.key === 2 ? 2 : 5),\n reportOutputOption: row.isFlatfile ? 9 : format.key,\n notifyUser: true,\n createdBy: row.createdBy,\n priority: 1\n\n }\n api.batchReport([data]).then((res) => {\n if (callback)\n callback();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n }\n \n const handleBatchEveryReleaseClick = () => {\n if (row.isRunOnEachDataRelease) {\n handleUnqueueClick(7);\n return;\n }\n \n const data = {\n eventTypeId: 2,\n status: 1,\n reportId: row.reportId,\n reportOutputTypeID: row.immediateDeliveryInd ? 4 : (format.key === 2 ? 2 : 5),\n reportOutputOption: row.isFlatfile ? 9 : format.key,\n notifyUser: true,\n createdBy: row.createdBy,\n priority: 1\n }\n api.batchReport([data]).then((res) => {\n if (callback)\n callback();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n }\n \n const handleUnqueueClick = (status) => {\n row.unqueueStatus = status;\n api.unqueueReport([row]).then((res) => {\n if (callback)\n callback();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n }\n \n const isRemoveFromQueueDisabled = () => {\n return !row.isPendingOrRunning;\n }\n\n const isBatchNowDisabled = () => {\n return row.isPendingOrRunning;\n } \n const isBatchOnNewDataloadDisabled = (scheduleStatus) => {\n return row.isRunOnEachDataRelease;\n }\n\n const actions = \n [{name: 'download', handler: handleDownLoadClick, tooltip: 'Click to Download', showOnRow: true, isDisabled: canDownload},\n {name: 'removeBatch', handler: handleDialogOpen, isDisabled: isRemoveFromQueueDisabled, tooltip: 'Remove from Queue', keyColumn: 'reportId', showOnRow: true},\n {name: 'batch', handler: handleDialogOpen, isDisabled: isBatchNowDisabled, tooltip: 'Batch It Now', keyColumn: 'reportId', showOnRow: true}, \n {name: 'batchEveryRelease', handler: handleDialogOpen, isDisabled: isBatchOnNewDataloadDisabled, tooltip: 'Batch It With Every Data Release', tooltipAlt: 'Remove from Queue', keyColumn: 'reportId',showOnRow: true}]\n \n return (\n \n {actions.map(action => {\n return renderAction(row, action, classes, keyName);\n })}\n \n {\"Batch Report\"}\n \n \n {action === \"batch\" || (action === \"batchnextload\" && !row.isRunOnEachDataRelease) ? \n <>Please select your file format: \n \n setFormat(formatOptions.find(x => x.key.toString() === event.target.value))}\n value={format.key}\n classes={{root: classes.select}}\n >\n { \n row.isFlatfile ? \n flatfileFormatOptions.map(item => { return {item.name}}) :\n formatOptions.map(item => { return {item.name}})\n }\n \n ? > : \n <>Are you sure you want to remove this report from the batch queue?>\n }\n \n \n \n \n {action === \"batch\" || (action === \"batchnextload\" && !row.isRunOnEachDataRelease) ? \"Batch\" : \"Remove\"}\n \n \n Cancel\n \n \n \n \n );\n}","import React from 'react'\nimport PropTypes from 'prop-types';\nimport MomentUtils from '@date-io/moment';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport {Box, OutlinedInput, Button, Divider, Grid, IconButton} from '@material-ui/core';\nimport {MuiPickersUtilsProvider, KeyboardDatePicker } from '@material-ui/pickers';\nimport {Close as CloseIcon} from '@material-ui/icons'\n\nimport {SearchContext} from 'context'\nimport {useApi, AutoCompleteDropdown as SearchAutocomplete} from 'components'\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1,\n },\n typography: {\n padding: theme.spacing(2)\n },\n iconOpenRoot:{\n color: theme.palette.common.white,\n backgroundColor: theme.palette.npd.darkBlue,\n borderRadius: 0,\n height: 48,\n width: 48,\n '&:hover':{\n color: theme.palette.common.white,\n backgroundColor: theme.palette.npd.darkBlue,\n }\n },\n iconRoot:{\n height: 48,\n width: 48,\n },\n button:{\n margin: 10\n },\n gridContainer:{\n padding: '3px 10px',\n },\n popperPaper:{\n width: 550,\n height: 300,\n padding: theme.spacing(1),\n textAlign: 'center',\n whiteSpace: 'nowrap',\n marginBottom: theme.spacing(1),\n },\n textBox: {\n height:30,\n width: '100%',\n fontSize: 12,\n '&:input':{\n padding: \"0px 5px\"\n }\n },\n formControl:{\n width: '100%',\n paddingRight: 5\n },\n formControlLast:{\n width: '100%'\n },\n select: {\n padding: 8,\n fontSize: 12,\n width: '100%'\n },\n dense: {\n padding: 0,\n margin: 0,\n paddingRight: 2,\n width: '50%',\n '& > div > input':{\n padding: 8,\n fontSize: 12\n }\n },\n endAdornment: {\n padding: 0,\n '& > button':{\n padding: 0\n }\n },\n }));\n \nexport default function AdvancedSearchForm(props){\n const classes = useStyles();\n const {handleClose, statusFilters = []} = props;\n const searchContext = React.useContext(SearchContext);\n \n const [reportName, setReportName] = React.useState(searchContext.reportName);\n const [folderName, setFolderName] = React.useState(searchContext.folderName);\n const [lastModifiedStartdate, setLastModifiedStartdate] = React.useState(searchContext.lastModifiedStartdate);\n const [lastModifiedEnddate, setLastModifiedEnddate] = React.useState(searchContext.lastModifiedEnddate);\n const [createdStartdate, setCreatedStartdate] = React.useState(searchContext.createdStartdate);\n const [createdEnddate, setCreatedEnddate] = React.useState(searchContext.createdEnddate);\n const [batchStartdate, setBatchStartdate] = React.useState(searchContext.batchStartdate);\n const [batchEnddate, setBatchEnddate] = React.useState(searchContext.batchEnddate);\n const [status, setStatus] = React.useState(searchContext.batchStatus);\n const [format, setFormat] = React.useState(searchContext.format);\n\n\n const onApplyClick = () => {\n setFilters(false);\n handleClose();\n }\n \n const onClearClick = () => {\n setFolderName('');\n setReportName('');\n setLastModifiedEnddate(null);\n setLastModifiedStartdate(null);\n setCreatedEnddate(null);\n setCreatedStartdate(null);\n setBatchEnddate(null);\n setBatchStartdate(null);\n setFilters(true);\n setStatus({scheduleStatus: 0, displayName: ''});\n setFormat({reportOutputTypeId: 0, reportOutputType: \"\"});\n }\n const handleChange = (event, columnName) => {\n var value = event.target.value;\n switch(columnName){\n case 'folderName': setFolderName(value); break;\n case 'reportName': setReportName(value); break;\n }\n }\n\n const handleFormatChange = (event, value) => {\n \n }\n\n const setFilters = (shouldClear) => {\n if (shouldClear){\n searchContext.setReportName('');\n searchContext.setFolderName('');\n searchContext.setBatchEnddate(null);\n searchContext.setBatchStartdate(null);\n searchContext.setLastModifiedStartdate(null);\n searchContext.setLastModifiedEnddate(null);\n searchContext.setCreatedEnddate(null);\n searchContext.setCreatedStartdate(null);\n searchContext.setBatchStatus({scheduleStatus: 0, displayName: ''});\n searchContext.setFormat({reportOutputTypeId: 0, reportOutputType: \"\"});\n }\n else{\n searchContext.setReportName(reportName);\n searchContext.setFolderName(folderName);\n searchContext.setBatchEnddate(batchEnddate);\n searchContext.setBatchStartdate(batchStartdate);\n searchContext.setLastModifiedStartdate(lastModifiedStartdate);\n searchContext.setLastModifiedEnddate(lastModifiedEnddate);\n searchContext.setCreatedEnddate(createdEnddate);\n searchContext.setCreatedStartdate(createdStartdate);\n searchContext.setBatchStatus(status);\n searchContext.setFormat(format)\n }\n }\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Folder Name\n handleChange(event, 'folderName')} classes={{root: classes.textBox}} variant='outlined'>\n \n \n \n Status\n {if (event !== undefined && event.target !== undefined) setStatus({ displayName: event.target.value })}}\n handleAutoCompleteValueOnChange={(event, value) => {if (value !== undefined && value.scheduleStatus !== undefined) setStatus(value)}}\n inputTerm={status.displayName}\n defaultValue={statusFilters.find((item) => item === searchContext.status) || { displayName: '', scheduleStatus: '0' }}\n options={statusFilters}\n placeholder=''\n outlined={true}\n freeSolo={false}\n label = \"displayName\"\n />\n \n \n Created On\n \n setCreatedStartdate(date)}\n />\n \n \n setCreatedEnddate(date)}\n />\n \n \n \n \n \n \n \n Report Name\n handleChange(event, 'reportName')} classes={{root: classes.textBox}} variant='outlined'>\n \n \n \n Last Modified On\n \n setLastModifiedStartdate(date)}\n />\n \n \n setLastModifiedEnddate(date)}\n />\n \n \n\n \n Batched On\n \n setBatchStartdate(date)}\n />\n \n \n setBatchEnddate(date)}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n Clear\n Apply\n \n \n \n \n \n);\n}\n\nAdvancedSearchForm.propTypes = {\n rowsPerPageOptions: PropTypes.array,\n columns: PropTypes.array.isRequired,\n handleClose: PropTypes.func\n};","import React, { useState } from 'react';\nimport {SearchContext} from 'context';\nimport {useReportApi} from 'components'\nimport {Search as SearchBase} from 'Topbar/Topbar/components'\n\nconst searchTypes = [{Name: 'Report Name', id: 0}];\n\nexport default function Search(props) {\n const [inputTerm, setInputTerm] = useState('');\n const [searchType, setSearchType] = useState(0);\n const handleSearchTypeChange = event => { setSearchType(event.target.value); };\n const searchContext = React.useContext(SearchContext);\n const api = useReportApi();\n const handleTextBoxOnChange = (e, v) => {\n setInputTerm(e.target.value);\n };\n\n const handleAutoCompleteValueOnChange = (e, v) => {\n setInputTerm(e.target.value);\n if (typeof v === 'object') {\n setInputTerm(v.keyword);\n }\n handleSearch(v.keyword, v.searchType);\n };\n\n const handleOnEnter = event => {\n if (event.key === 'Enter') {\n handleSearch(event.target.value)\n }\n };\n\n const handleSearch = (term, stype) => {\n if (typeof term === 'object') {\n term = null;\n }\n\n var searchIcon = document.getElementById('searchIcon');\n if (Boolean(searchIcon)) {\n searchIcon.focus();\n }\n\n if (term !== undefined || inputTerm.length > 0) {\n searchContext.setReportName(term || inputTerm);\n searchContext.setPage(1); \n } \n };\n\n return (\n \n \n );\n}\n\n\nSearch.propTypes = {\n};\n","//core components\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n//material ui components\nimport { makeStyles, lighten } from '@material-ui/core/styles';\nimport { Typography, Tooltip, IconButton, Button, Grid, Dialog, DialogTitle, DialogContent, DialogActions,DialogContentText, Select, FormControl } from '@material-ui/core';\nimport {GetApp as DownloadIcon,Send as BatchIcon, Today as BatchLater, CancelScheduleSend as RemoveIcon, Cached as RefreshIcon } from '@material-ui/icons';\nimport { useSnackbar } from 'notistack';\n//custom components\nimport { GridContext, SearchContext, DataSourceContext } from 'context';\nimport { SelectedSearches,useReportApi } from 'components';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n flexGrow: 10,\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n color: theme.palette.primary.main,\n backgroundColor: lighten(theme.palette.secondary.light, 0.75),\n },\n icons: {\n display:'flex',\n },\n icon: {\n padding: '1px 5px 1px 1px',\n fontSize: '23px',\n },\n title: {\n paddingRight: theme.spacing(3),\n fontSize: '12px',\n },\n deleteBtn: {\n backgroundColor: theme.palette.npd.orange,\n '&:hover':{\n backgroundColor: theme.palette.npd.red,\n }\n },\n formControlLast:{\n //width: '100%'\n},\nselect: {\n padding: 5, \n fontSize: 12,\n marginTop: -2\n},\n}));\n\nconst formatOptions = [{name:\"Formatted Excel\", key: 261}, {name:\"Unformatted Excel\", key:1285}, {name:\"CSV\", key: 2}]\n\nexport default function EnhancedTableToolbar(props) {\n const classes = useStyles();\n const { multidownload, refresh, multidelete} = props;\n const {rowsSelected, setRowsSelected} = React.useContext(GridContext);\n const [openDialog, setOpenDialog] = React.useState(false);\n const searchContext = React.useContext(SearchContext);\n const [reports, setReports] = React.useState([]);\n const [action, setAction] = React.useState('');\n const gridContext = React.useContext(GridContext);\n const dataSourceContext = React.useContext(DataSourceContext);\n const [dialogText, setDialogText] = React.useState('');\n const [format, setFormat] = React.useState({name:\"Formatted Excel\", key: 261})\n const { enqueueSnackbar } = useSnackbar();\n const api = useReportApi()\n\n const GenerateSelectedSearches = () => {\n let searches = [];\n\n if (searchContext.reportName !== undefined && searchContext.reportName !== '')\n searches.push({ key: \"Report Name\", value: searchContext.reportName, handleDelete: () => { searchContext.setReportName(''); } });\n\n if (searchContext.folderName !== undefined && searchContext.folderName !== '')\n searches.push({ key: \"Folder Name: \", value: searchContext.folderName, handleDelete: () => { searchContext.setFolderName(''); } });\n\n if (searchContext.batchStatus !== undefined && searchContext.batchStatus.scheduleStatus !== undefined && searchContext.batchStatus.scheduleStatus !== 0)\n searches.push({ key: \"Status: \", value: searchContext.batchStatus.displayName, handleDelete: () => { searchContext.setBatchStatus({ scheduleStatus: 0, displayName: \"\" }); } });\n\n if (searchContext.batchedBy !== undefined && searchContext.batchedBy !== '')\n searches.push({ key: \"Batched By: \", value: searchContext.batchedBy, handleDelete: () => { searchContext.setBatchedBy(''); } });\n\n if (searchContext.format !== undefined && searchContext.format.reportOutputTypeId !== undefined && searchContext.format.reportOutputTypeId !== 0)\n searches.push({ key: \"Format: \", value: searchContext.format.reportOutputType, handleDelete: () => { searchContext.setFormat({ reportOutputTypeId: 0, reportOutputType: \"\" }); } });\n\n if (searchContext.batchStartdate !== undefined && searchContext.batchStartdate !== null)\n searches.push({ key: \"Batch From: \", value: searchContext.batchStartdate.format(\"MM/DD/YYYY\"), handleDelete: () => { searchContext.setBatchStartdate(null); } });\n\n if (searchContext.batchEnddate !== undefined && searchContext.batchEnddate !== null)\n searches.push({ key: \"Batch To: \", value: searchContext.batchEnddate.format(\"MM/DD/YYYY\"), handleDelete: () => { searchContext.setBatchEnddate(null); } });\n\n if (searchContext.createdStartdate !== undefined && searchContext.createdStartdate !== null)\n searches.push({ key: \"Created From: \", value: searchContext.createdStartdate.format(\"MM/DD/YYYY\"), handleDelete: () => { searchContext.setCreatedStartdate(null); } });\n\n if (searchContext.createdEnddate !== undefined && searchContext.createdEnddate !== null)\n searches.push({ key: \"Created To: \", value: searchContext.createdEnddate.format(\"MM/DD/YYYY\"), handleDelete: () => { searchContext.setCreatedEnddate(null); } });\n\n if (searchContext.lastModifiedStartdate !== undefined && searchContext.lastModifiedStartdate !== null)\n searches.push({ key: \"Last Modified From: \", value: searchContext.lastModifiedStartdate.format(\"MM/DD/YYYY\"), handleDelete: () => { searchContext.setLastModifiedStartdate(null); } });\n\n if (searchContext.lastModifiedEnddate !== undefined && searchContext.lastModifiedEnddate !== null)\n searches.push({ key: \"Last Modified To: \", value: searchContext.lastModifiedEnddate.format(\"MM/DD/YYYY\"), handleDelete: () => { searchContext.setLastModifiedEnddate(null); } });\n\n return searches;\n }\n\n const getSeletedReports = () => {\n return (<>Are you sure you want to delete these reports? {rowsSelected.map(r => {r.reportName})} >);\n }\n\n const onRefresh = () => \n {\n if (isFunction(refresh))\n {\n refresh();\n setRowsSelected([]);\n }\n }\n\n const handleMultiDelete = () => {\n multidelete(); \n setOpenDialog(false)\n }\n\n const isFunction = functionToCheck => {\n return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';\n }\n\n const handleDialogClose = () => setOpenDialog(false);\n\n const handleDialogOpen = (action) => {\n setAction(action);\n const rpts = gridContext.rowsSelected.map((report) => {\n return report.reportName; \n }); \n setReports(rpts);\n switch(action){\n case 'batch': setDialogText('batch the following reports as '); break;\n case 'batchnextload': setDialogText('batch the following reports with every data release as '); break;\n case 'remove': setDialogText('remove the following reports from queue'); break;\n default: break;\n }\n\n setOpenDialog(true);\n }\n \n const handleDialogAction = () => {\n switch(action){\n case 'batch': handleBatch(); break;\n case 'batchnextload': handleBatchOnDataLoad(); break;\n case 'remove': handleUnQueue(); break;\n default: break;\n }\n }\n\n const batch = (data, callback) => {\n api.batchReport(data).then((res) => {\n if (callback)\n callback();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n }\n \n const handleBatch = () => {\n var rows = []\n gridContext.rowsSelected.map((row) => {\n //row.scheduleEventTypeId = 1;\n const data = {\n reportName: row.reportName,\n reportId: row.reportId,\n eventTypeId: 1,\n status: 1,\n reportOutputTypeID: row.immediateDeliveryInd ? 4 : (format.key === 2 ? 2 : 5),\n reportOutputOption: row.isFlatfile ? 9 : format.key,\n notifyUser: true,\n createdBy: row.createdBy,\n priority: 1,\n schemaId: dataSourceContext.targetEnvKey\n\n\n }\n rows.push(data);\n });\n\n batch(rows, refresh);\n handleDialogClose();\n };\n const handleBatchOnDataLoad = () => {\n var rows = []\n gridContext.rowsSelected.map((row) => {\n //row.scheduleEventTypeId = 2;\n const data = {\n reportName: row.reportName,\n reportId: row.reportId,\n eventTypeId: 2,\n status: 1,\n reportOutputTypeID: row.immediateDeliveryInd ? 4 : (format.key === 2 ? 2 : 5),\n reportOutputOption: row.isFlatfile ? 9 : format.key,\n notifyUser: true,\n createdBy: row.createdBy,\n priority: 1,\n schemaId: dataSourceContext.targetEnvKey\n }\n rows.push(data);\n });\n batch(rows, refresh);\n handleDialogClose();\n };\n const handleUnQueue = () => {\n gridContext.rowsSelected.map(r => {r.unqueueStatus = \"1, 2, 12\"});\n api.unqueueReport(gridContext.rowsSelected).then((res) => {\n handleDialogClose();\n if (refresh)\n refresh();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n }; \n\n return (\n \n \n \n \n \n \n {(rowsSelected.length > 0) &&\n \n {rowsSelected.length} item(s) selected\n \n }\n {/* spans are for disabled tooltips */}\n \n \n \n \n \n \n multidownload()} aria-label=\"download\" color=\"primary\" disabled={rowsSelected.length === 0}>\n \n \n \n\n \n \n handleDialogOpen('batch')} aria-label=\"copy\" color=\"primary\" disabled={rowsSelected.length === 0}>\n \n \n \n \n \n \n handleDialogOpen('batchnextload')} aria-label=\"edit\" color=\"primary\" disabled={rowsSelected.length === 0}>\n \n \n \n \n \n \n handleDialogOpen('remove')} aria-label=\"delete\" color=\"primary\" disabled={rowsSelected.length === 0}>\n \n \n \n \n{/* \n setOpenDialog(true)} aria-label=\"delete\" color=\"primary\" disabled={rowsSelected.length === 0}>\n \n \n */}\n \n \n {\"Are you sure?\"}\n \n \n \n \n Are you sure you want to {dialogText} \n {action != \"remove\" && \n \n setFormat(formatOptions.find(x => x.key.toString() === event.target.value))}\n value={format.key}\n classes={{root: classes.select}}\n >\n {formatOptions.map(item => { return {item.name}})}\n \n }? \n {reports.map((r, i) => {\n const data = {i + 1}. {r} {r.isFlatfile ? \"[Flatfile]\" : \"\"};\n return data;\n\n })}\n \n \n \n \n Yes\n \n \n No\n \n \n \n\n\n\n\n\n\n\n\n{/* {setOpenDialog(false)}}\n >\n */}\n\n\n {/* \n \n Are you sure?\n \n \n Are you sure you want to delete these reports:\n {getSeletedReports()}\n \n \n Yes\n setOpenDialog(false)}>Cancel\n \n */}\n \n \n );\n};\n\nEnhancedTableToolbar.propTypes = {\n refresh: PropTypes.func.isRequired,\n multidownload: PropTypes.func.isRequired\n};","import React from \"react\";\nimport { useSnackbar } from 'notistack';\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport {Grid} from '@material-ui/core';\n// custom components\nimport {EnhancedTable, useApi, useReportApi, useWindowDimensions} from 'components';\nimport {SearchContext, DataSourceContext, GridContext, ApplicationContext} from 'context';\nimport {Search, ActionCell, AdvancedSearchForm,EnhancedToolbar } from './Components'\nimport {Topbar} from 'Topbar';\nimport {dateFormat} from 'utilities'\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '100%',\n backgroundColor: theme.palette.contentBackground,\n padding: '0px',\n margin: 0\n }\n}));\n\nconst columns = [\n {\n field: 'folderName',\n type: 'string',\n label: 'Folder Name'\n },\n {\n field: 'reportName',\n type: 'string',\n label: 'Report Name',\n },\n {\n field: 'createdBy',\n type: 'string',\n label: 'Created By'\n},\n\n{\n field: 'createdDate',\n type: 'date',\n label: 'Created Date',\n format: 'MM-DD-YYYY hh:mm A'\n},\n{\n field: 'updatedDate',\n type: 'date',\n label: 'Last Modified Date',\n format: 'MM-DD-YYYY hh:mm A'\n},\n{\n field: 'batchDate',\n type: 'date',\n label: 'Batched On',\n format: 'MM-DD-YYYY hh:mm A'\n},\n{\n field: 'statusNames',\n type: 'string',\n label: 'Batch Status'\n},\n{\n field: 'action',\n type: 'action',\n label: ''\n}]\n\nexport default function Reports(props) {\n const { Toolbar, toolbarProps } = props;\n const [totalCount, setTotalCount] = React.useState(0);\n const [rowsSelected, setRowsSelected] = React.useState([]);\n const [page, setPage] = React.useState(1);\n const [pageSize, setPageSize] = React.useState(25);\n const [fileRepo, setFileRepo] = React.useState([]);\n const [orderBy, setOrderBy] = React.useState('reportName');\n const [orderByDirection, setOrderByDirection] = React.useState('desc');\n const [loading, setLoading] = React.useState(false);\n \n const [reportName, setReportName] = React.useState('');\n const [folderName, setFolderName] = React.useState('');\n const [lastModifiedStartdate, setLastModifiedStartdate] = React.useState(null);\n const [lastModifiedEnddate, setLastModifiedEnddate] = React.useState(null);\n const [createdStartdate, setCreatedStartdate] = React.useState(null);\n const [createdEnddate, setCreatedEnddate] = React.useState(null);\n const [batchStartdate, setBatchStartdate] = React.useState(null);\n const [batchEnddate, setBatchEnddate] = React.useState(null);\n const [batchStatus, setBatchStatus] = React.useState('');\n const [format, setFormat] = React.useState('');\n\n const [statusFilters, setStatusFilters] = React.useState([]);\n\n const dataSourceContext = React.useContext(DataSourceContext);\n const appContext = React.useContext(ApplicationContext);\n \n const {enqueueSnackbar} = useSnackbar();\n const api = useApi();\n const reportApi = useReportApi();\n\n React.useEffect(() => {\n setLoading(true);\n loadAllReports();\n }, [pageSize, page, orderByDirection, orderBy, dataSourceContext.dataSourceSelectedKey, reportName, folderName, batchStatus, batchEnddate, batchStartdate, lastModifiedStartdate, lastModifiedEnddate, createdStartdate, createdEnddate])\n\n// const canDownload = (r) => {\n// return ((r.statusId === 6 || r.statusId === 14 || r.statusId === 15 || r.statusId === 16 || r.statusId === 17) && r.reportOutputTypeId !== 9);\n// } \n const handleZipRepoMultiDownloadClick = () => {\n if (rowsSelected.length > appContext.appInfo.maxMultiFiledownload)\n enqueueSnackbar(\"You can only download maximum of \" + appContext.appInfo.maxMultiFiledownload + \" files at a time.\", { variant: 'warning' });\n else {\n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated){\n let notFound = [];\n let found = [];\n rowsSelected.map((r) => {\n if (r.canDownload)\n found.push(r);\n //\n else \n notFound.push(r.displayName);\n });\n\n if (found.length > 0)\n {\n if (found.length === 1)\n api.downloadBatchedReport(found[0].scheduleEventId, found[0].token);\n else \n api.downloadFileRepoZip(found);\n }\n if (notFound.length !== 0)\n enqueueSnackbar(\"Following files were not found: \" + notFound.toString(), { variant: 'warning' });\n }\n });\n }\n }\n\n const handleReportMultiDownloadClick = () => {\n if (rowsSelected.length > appContext.appInfo.maxMultiFiledownload)\n enqueueSnackbar(\"You can only download maximum of \" + appContext.appInfo.maxMultiFiledownload + \" files at a time.\", { variant: 'warning' });\n else {\n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated){\n let notFound = [];\n rowsSelected.map((r) => {\n if (r.canDownload)\n reportApi.downloadBatchedReport(r.scheduleEventIds, r.token)\n else \n notFound.push(r.reportName);\n });\n if (notFound.length !== 0)\n enqueueSnackbar(\"Following files were not found: \" + notFound.toString(), { variant: 'warning' });\n }\n });\n }\n }\n\n const refresh = () =>{\n setRowsSelected([]);\n loadAllReports();\n }\n \n const loadAllReports = () => {\n setLoading(true);\n console.log(dateFormat(createdStartdate, \"mm/dd/yyyy\"))\n let filter = {\n reportName: reportName,\n folderName: folderName,\n lastModifiedTo: lastModifiedEnddate !== null ? lastModifiedEnddate.format(\"MM/DD/YYYY 11:59A\") : null,\n lastModifiedFrom: lastModifiedStartdate !== null ? lastModifiedStartdate.format(\"MM/DD/YYYY\") : null,\n batchDateTo: batchEnddate !== null ? batchEnddate.format(\"MM/DD/YYYY 11:59A\") : null,\n batchDateFrom: batchStartdate !== null ? batchStartdate.format(\"MM/DD/YYYY\") : null,\n createdFrom: createdStartdate !== null ? createdStartdate.format(\"MM/DD/YYYY\") : null,\n createdTo: createdEnddate !== null ? createdEnddate.format(\"MM/DD/YYYY 11:59A\") : null,\n batchStatus: batchStatus.displayName,\n token: dataSourceContext.dataSourceSelectedKey\n };\n\n let pagingInfo = {\n page: page,\n limit: pageSize,\n orderBy: orderBy,\n orderByDirection: orderByDirection\n };\n\n let options = {\n pagingInfo: pagingInfo,\n filter: filter\n }\n \n if (dataSourceContext.dataSourceSelectedKey !== ''){\n reportApi.getAll(options).then(res => {\n setFileRepo(res.data.data);\n setPage(res.data.page);\n setPageSize(res.data.pageSize);\n setTotalCount(res.data.totalCount);\n setLoading(false);\n })}\n }\n\n const onChangePage = (newPage) => {\n setPage(newPage);\n }\n const onPageSizeChange = (newPageSize) => {\n setPage(1);\n api.saveRowPerPage({rowsPerPageOptions: newPageSize});\n appContext.appInfo.user.rowsPerPage = newPageSize;\n setPageSize(newPageSize);\n }\n const onRequestSort = order => {\n setOrderBy(order.orderBy);\n setOrderByDirection(order.order)\n }\n\n React.useEffect(() => {\n api.getStatusFilters().then(res => {\n if (res && res.data)\n setStatusFilters(res.data);\n });\n}, []);\n\n const classes = useStyles();\n return (\n \n \n \n \n \n \n \n {/**/}\n \n \n \n \n \n \n\n );\n}\n","import React, { useState, useEffect, useRef } from 'react'\n\n//material ui components\nimport { makeStyles } from '@material-ui/core/styles';\n//custom components\nimport Toolbar from './OdataCollectionsToolbar';\nimport {FileCenterEnhancedToolbar} from 'views/FileCenter';\nimport {ExceloData, Collection} from './';\nimport {DataSourceContext} from 'context'\nimport { Typography } from '@material-ui/core';\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '98%',\n marginLeft: 10,\n backgroundColor: theme.palette.contentBackground,\n margin: 0\n},\n content: {\n padding: 1,\n },\n /* Styles applied to the Toolbar component. */\n toolbar: {\n height: 24,\n paddingLeft: theme.spacing(3)\n },\n /* Styles applied to the spacer element. */\n spacer: {\n flex: '1 1 100%',\n },\n buttonIcon: {\n marginLeft: 10,\n fill: theme.palette.npd.gray,\n '&:disabled': {\n fill: theme.palette.primary.main\n },\n '&:hover': {\n fill: theme.palette.primary.main,\n backgroundColor: 'none'\n },\n },\n message: {\n paddingLeft: 20,\n alignSelf: 'center',\n color: theme.palette.text.primary,\n fontWeight:'bold'\n },\n greenMessage: {\n paddingLeft: 20,\n alignSelf: 'center',\n color: theme.palette.npd.green,\n fontWeight:'bold'\n }\n}));\n\nfunction FileCenter() {\n const [dataSourceSelectedKey, setDataSourceSelectedKey] = React.useState('');\n const classes = useStyles();\n const [view, setView] = useState('collection');\n\n const appKey = 'fc';\n document.title = \"Bundles\";\n\n const isFirstRun = useRef(true);\n useEffect(() => {\n //dont log the default toggle state\n if (isFirstRun.current) {\n isFirstRun.current = false;\n return;\n }\n }, [view]);\n\n return (\n \n {(view == 'collection') ?\n \n Click the 'Batch Reports' tab to create a new Bundle. To modify an existing Bundle, create a new Bundle.}}\n EnhancedToolbar={FileCenterEnhancedToolbar}\n /> \n :\n \n Files in this list are your Batch Reports with Status = Ready. To group reports into a Bundle, select reports below then click 'Add to Bundle'.}}\n EnhancedToolbar={FileCenterEnhancedToolbar}\n />\n \n }\n \n )\n}\n\nexport default FileCenter;","import React from 'react';\nimport { useSnackbar } from 'notistack';\n//material ui components\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport {GetApp as DownloadIcon, Error, DeleteForever as DeleteIcon} from '@material-ui/icons';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {useApi} from 'components'\nimport {ApplicationContext} from 'context';\nimport { useCollectionService } from 'components';\n\nconst useStyle = makeStyles(theme => ({\n root: {\n padding: '0 2px',\n fontSize: '1rem',\n '& > span > svg':{\n fontSize: '1.2rem',\n }\n },\n colorError: {\n color: theme.palette.npd.orange\n },\n colorSuccess: {\n color: theme.palette.npd.green\n }\n\n})); \nconst renderAction = (row, action, classes, keyName) => {\n let item;\n switch (action.name) {\n case 'download':\n item = \n \n action.handler(keyName)} > {/* disabled={!row.isExists} */}\n \n \n \n \n break;\n case 'delete': item = \n \n action.handler(keyName)} classes={{root: classes.root}} size='small' > {/* disabled={!action.isEnabled(row.statusId)} */}\n \n \n \n \n break;\n default:\n item = ;\n break;\n };\n return item;\n}\n\nexport default function ActionCell(props){\n const {keyName, row, onDelete, callback} = props;\n const api = useApi();\n const classes = useStyle();\n const appContext = React.useContext(ApplicationContext);\n const { enqueueSnackbar } = useSnackbar();\n const service = useCollectionService();\n const canDelete = (status) => {\n return status !== 1 && status !== 2 && status !==7 && row.createdUserName === appContext.appInfo.user.username;\n }\n\n const canDownload = (status, outputType) => {\n return ((status === 6 || status === 14 || status === 15 || status === 16 || status === 17) && outputType !== 9);\n }\n\n const handleDownLoadClick = () => {\n \n api.isAuthenticated().then(res => {\n if (res.data.isAuthenticated)\n service.downloadCollection(row.id, row.token, row.name);\n });\n };\n\n // const handleDeleteClick = () => {\n // api.deleteReport([row]).then((res) => {\n // if (callback)\n // callback();\n // if (res.data)\n // enqueueSnackbar(res.data, { variant: 'error' });\n // });\n // }\n\n const handleDeleteClick = (params) => {\n callback([row]);\n };\n \n\n const actions = [{name: 'download', handler: handleDownLoadClick, tooltip: 'Click to Download', showOnRow: true, isEnabled: canDownload},\n {name: 'delete', handler: handleDeleteClick, tooltip: 'Click to Delete', showOnRow: true, isEnabled: canDelete}\n ]\n \n return (\n \n {actions.map(action => {\n return renderAction(row, action, classes, keyName);\n })} \n \n \n );\n\n}","\nimport React, { useState, useEffect } from 'react'\nimport PropTypes from 'prop-types';\nimport deburr from 'lodash/deburr';\nimport { makeStyles } from '@material-ui/core/styles';\nimport clsx from 'clsx';\n\nimport { DataSourceContext } from 'context';\nimport { EnhancedTable, DownloadButton, DeleteCommand, useWindowDimensions } from 'components';\nimport CollectionsEnhancedToolbar from '../Toolbar/CollectionsEnhancedToolbar';\nimport {OdataCollectionToolbar as Toolbar} from 'views/Odata'\nimport ActionCell from './ActionCell'\nconst useStyles = makeStyles(theme => ({\n\n root: {\n width: '100%',\n backgroundColor: theme.palette.contentBackground,\n margin: 0\n },\n column: {\n padding: 0\n },\n tableCellNameLink: {\n color: theme.palette.primary.main,\n whiteSpace: 'nowrap'\n },\n tableCellTitle: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: '300px',\n width: '70%'\n },\n tableCellCount: {\n color: theme.palette.primary.main,\n cursor: 'pointer',\n textAlign: 'center',\n minWidth: '105px'\n },\n cellCount: {\n color: theme.palette.primary.main,\n },\n exportContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-center',\n alignItems: 'center'\n },\n\n toggleContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-start',\n alignItems: 'center'\n },\n toggleIcon: {\n padding: 0,\n color: theme.palette.primary.main,\n fontSize: '1.5rem',\n cursor: 'pointer'\n },\n closeIcon: {\n padding: 0,\n color: '#FE1414',\n fontSize: '0.8rem',\n cursor: 'pointer'\n },\n tableWrapper: {\n boxSizing: 'border-box',\n borderRadius: '4px',\n backgroundColor: '#FFFFFF',\n height: '100%',\n overflowX: 'visible'\n },\n\n tableSortLabelIcon: {\n fontSize: 14\n },\n headCell: {\n color: theme.palette.text.secondary\n },\n\n tableCell: {\n fontSize: 12,\n color: theme.palette.text.secondary,\n lineHeight: '14px',\n border: 'none'\n },\n tableSelectionCell: {\n border: 'none'\n },\n searchIcon: {\n color: theme.palette.npd.gray\n },\n textFieldInputRoot: {\n justifyContent: 'center'\n },\n textFieldInput: {\n flex: 1,\n fontSize: '18px !important',\n color: theme.palette.text.secondary,\n lineHeight: '23px',\n fontWeight: 300,\n padding: 8,\n '&::placeholder': { /* Chrome, Firefox, Opera, Safari 10.1+ */\n color: theme.palette.text.secondary,\n opacity: 1,\n },\n\n },\n textFieldFocused: {\n '& $notchedOutline': {\n borderWidth: '1px !important'\n }\n },\n textFieldStartAdornmentRoot: {\n width: '44%',\n justifyContent: 'flex-end'\n },\n notchedOutline: {\n borderWidth: '0 !important'\n },\n\n w3p: {\n width: '3%'\n },\n\n w7p: {\n width: '7%'\n },\n\n w10p: {\n width: '10%'\n },\n\n w105: {\n width: '105px'\n },\n\n w10: {\n width: '10px'\n },\n\n}));\n\nconst SavedCollections = props => {\n const { data, onDelete, onExport, onChangeSelectionModel, loading, getData, toolBarProps, pillProps } = props;\n const classes = useStyles();\n\n const context = React.useContext(DataSourceContext);\n const [columns, setColumns] = useState([]);\n // const [orderBy, setOrderBy] = React.useState('createdDate');\n // const [orderByDirection, setOrderByDirection] = React.useState('desc');\n\n useEffect(() => {\n setColumns(getColumns(data));\n }, [data])\n\n const exportColumnRenderer = (column, row, expanded, setExpanded) => {\n return \n onExport(row['id'])} />\n \n };\n\n const onRequestSort = (sortInfo) => {\n //alert(toolBarProps.orderBy + ' ' + toolBarProps.totalCount)\n toolBarProps.setOrderBy(sortInfo.orderBy);\n toolBarProps.setOrderByDirection(sortInfo.order);\n };\n\n const onChangePage = (newPage) => {\n toolBarProps.setPage(newPage);\n }\n const onPageSizeChange = (newPageSize) => {\n toolBarProps.setPageSize(newPageSize);\n }\n\n const getColumns = (dataset) => {\n\n var columns = [\n { label: 'Name', field: 'name', type: 'link', id: 'id', route: `/workbooks/{0}?ds=${context.dataSourceSelectedKey}&v=collection`, className: classes.tableCellNameLink },\n { label: 'Created', field: 'createdDate', type: 'date', format: 'MM-DD-YYYY hh:mm A', className: classes.w7p },\n { label: 'Created By', field: 'createdBy', type: 'string', className: classes.w7p },\n { label: 'Last Accessed', field: 'lastAccessed', type: 'date', format: 'MM-DD-YYYY', className: classes.w7p },\n { field: 'action', type: 'action', label: '', disableSort: true , className: classes.w3p}\n ];\n return columns\n };\n\n\n return (\n ] }}\n ActionCell={ActionCell}\n actionCallback={onDelete}\n >\n\n );\n}\n\nSavedCollections.propTypes = {\n data: PropTypes.array.isRequired,\n};\n\nexport default SavedCollections;\n","import React, { useContext } from 'react';\n// @material-ui/core components\nimport { makeStyles } from '@material-ui/core/styles';\nimport {DataSourceContext} from 'context';\nimport { Star as StarIcon } from '@material-ui/icons';\nimport { useHistory } from 'react-router-dom';\n//import { RecentlyViewed } from 'components';\n\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n },\n\n cardContent: {\n paddingTop: 16,\n\n '& > div': {\n marginRight: 15\n },\n\n '& > div:last-child': {\n marginRight: 0\n }\n },\n\n tooltipWrapper: {\n display: 'flex',\n flexDirection: 'column',\n padding: 5,\n alignItems: 'center'\n },\n\n tooltip: {\n fontSize: 12,\n color: theme.palette.text.secondary\n },\n\n tooltipHeader: {\n fontWeight: 'bold'\n }\n}));\n\n\nexport default function RecentlyViewedCollections(props) {\n const { data, onExport, onDelete } = props;\n const context = useContext(DataSourceContext);\n const history = useHistory();\n const handleClick = (id) => {\n history.push(`/collections/${id}?ds=${context.dataSourceSelectedKey}`);\n };\n \n const getImageKeys = (item) => {\n return Promise.resolve({\n data : item.previewImages\n });\n };\n \n\n\n return (\n \n // }\n // noImageMsg='No books in collection'\n // properties = {{\n // id: 'id',\n // createdDate: 'createdDate',\n // size: 'size',\n // name: 'name',\n // lastAccessDate: 'lastAccessDate'\n // }}\n // />\n );\n}\n\nRecentlyViewedCollections.propTypes = {\n};\n","import React, { useState } from 'react';\nimport { SearchContext } from 'context';\nimport { useApi } from 'components'\nimport { Search as SearchBase } from 'Topbar/Topbar/components'\nexport default function Search(props) {\n\n const {\n searchTypeOptions = [{ Name: 'Name', id: 0 }]\n } = props;\n\n const [searchTypes, setSearchTypes] = useState(searchTypeOptions);\n\n const [inputTerm, setInputTerm] = useState('');\n const [searchType, setSearchType] = useState(0);\n const handleSearchTypeChange = event => { setSearchType(event.target.value); };\n const searchContext = React.useContext(SearchContext);\n const api = useApi();\n const handleTextBoxOnChange = (e, v) => {\n setInputTerm(e.target.value);\n };\n\n const handleAutoCompleteValueOnChange = (e, v) => {\n setInputTerm(e.target.value);\n if (typeof v === 'object') {\n setInputTerm(v.keyword);\n }\n else if (typeof v === 'string') {\n handleSearch(v);\n }\n };\n\n const handleOnEnter = event => {\n if (event.key === 'Enter') {\n searchContext.setReportName(event.target.value);\n }\n };\n\n const handleSearch = (term, stype) => {\n if (typeof term === 'object') {\n term = null;\n }\n\n var searchIcon = document.getElementById('searchIcon');\n if (Boolean(searchIcon)) {\n searchIcon.focus();\n }\n\n if (term !== undefined || inputTerm.length > 0) {\n searchContext.setReportName(term || inputTerm);\n searchContext.setPage(1);\n }\n };\n\n const getAutoComplete = () => {\n return Promise.resolve({ data: [] });\n }\n\n\n return (\n \n\n );\n}\n\n\nSearch.propTypes = {\n};\n","import React, {useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Tooltip, Button, MenuItem, MenuList, Slide } from '@material-ui/core';\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener';\nimport Paper from '@material-ui/core/Paper';\nimport Popover from '@material-ui/core/Popover';\nimport {ApplicationContext} from 'context';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faInfoCircle as HelpOutlineIcon } from '@fortawesome/free-solid-svg-icons';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n padding: 0,\n position: 'relative',\n color: theme.palette.grey[500],\n borderRadius: 0,\n textTransform: 'none',\n letterSpacing: 0,\n minWidth: 100, \n zIndex: 1000,\n },\n active: {\n '& $icon': {\n color: theme.palette.npd.blue,\n alignItems: 'center',\n fontSize:'16px',\n lineHeight: '24px'\n }\n },\nicon: {\n alignItems: 'center',\n fontSize:'16px',\n lineHeight: '24px'\n },\n item: {\n paddingTop: 0\n },\n button: {\n color: theme.palette.npd.gray,\n borderRadius: 0,\n textTransform: 'none',\n letterSpacing: 0,\n minWidth: 100,\n lineHeight: '14px',\n padding:'0 0 0 0'\n },\n buttonLabel: {\n display: 'flex',\n flexDirection: 'column'\n },\n iconWrapper: {\n alignItems: 'center',\n },\n text: {\n fontSize: 10,\n fontWeight: 500,\n textAlign: 'center',\n lineHeight: '12px',\n }, \n menuPaper: {\n display: 'flex'\n },\n popper: {\n zIndex: 1000,\n borderRadius: 0,\n fontSize:'small'\n }\n \n}));\n\n\nconst HelpLanguages = () => {\n const appContext = React.useContext(ApplicationContext).appInfo;\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n const [openHelp, setOpenHelp] = useState(false);\n const [refGuide, setRefGuide] = useState(\"\");\n const [passwordGuide, setPasswordGuide] = useState(\"\");\n const [fcGuide, setfcGuide] = useState(\"\");\n const [batchGuide, setBatchGuide] = useState(\"\");\n const [selectedItem, setSelectedItem] = useState(\"none\");\n const [anchorEl, setAnchorEl] = React.useState(null);\n const anchorRef = React.useRef(null);\n\n const helpUrlHelper = {\n ccGuideCaption: 'Client Center Reference Guide',\n fcGuideCaption: 'File Center Reference Guide',\n batchGuideCaption: 'Batch Reference Guide',\n passGuideCaption: 'Reset Password Guide',\n refGuide: 0,\n passGuide: 1,\n fileCenterGuide: 2,\n batchGuide: 3\n };\n\n \n\n const handleToggle = () => {\n setOpen(open => !open);\n };\n\n const handleClose = event => {\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\n return;\n }\n setOpen(false);\n setOpenHelp(false);\n setSelectedItem(\"none\");\n };\n\n const getMenuList = () => {\n \n return (\n {\n appContext.user.hasCCAccess && \n {helpUrlHelper.ccGuideCaption}\n }\n {\n appContext.user.hasFCAccess &&\n {helpUrlHelper.fcGuideCaption}\n }\n {\n appContext.user.hasFCAccess &&\n {helpUrlHelper.batchGuideCaption}\n }\n {helpUrlHelper.passGuideCaption}\n )\n }\n \n const handleOpenHelp = (event, value) => {\n setOpenHelp(false);\n setTimeout(() => {\n setOpenHelp(true);\n }, 100);\n \n setRefGuide(appContext.help[value].urls[helpUrlHelper.refGuide]);\n setfcGuide(appContext.help[value].urls[helpUrlHelper.fileCenterGuide]);\n setBatchGuide(appContext.help[value].urls[helpUrlHelper.batchGuide]);\n setPasswordGuide(appContext.help[value].urls[helpUrlHelper.passGuide]);\n setSelectedItem(value);\n };\n\n const handleGuidesOpen = event => {\n switch(event.target.value)\n {\n case helpUrlHelper.refGuide: \n window.open(refGuide || appContext.help[\"english\"].urls[helpUrlHelper.refGuide], \"_blank\", appContext.help.windowOptions);\n break;\n case helpUrlHelper.passGuide: \n window.open(passwordGuide || appContext.help[\"english\"].urls[helpUrlHelper.fileCenterGuide], \"_blank\", appContext.help.windowOptions);\n break;\n case helpUrlHelper.fileCenterGuide: \n window.open(fcGuide || appContext.help[\"english\"].urls[helpUrlHelper.batchGuide], \"_blank\", appContext.help.windowOptions);\n break;\n case helpUrlHelper.batchGuide: \n window.open(batchGuide || appContext.help[\"english\"].urls[helpUrlHelper.passGuide], \"_blank\", appContext.help.windowOptions);\n break;\n default: break;\n }\n setOpen(false);\n setOpenHelp(false);\n setSelectedItem(\"none\");\n };\n\n // return focus to the button when we transitioned from !open -> open\n const prevOpen = React.useRef(open);\n React.useEffect(() => {\n if (prevOpen.current === true && open === false) {\n anchorRef.current.focus();\n }\n prevOpen.current = open;\n }, [open]);\n\n return (\n \n \n \n \n Help \n\n \n \n\n \n \n \n \n handleOpenHelp(event, \"chinese\")}>Chinese Reference Guides\n handleOpenHelp(event, \"english\")}>English Reference Guides\n handleOpenHelp(event, \"french\")}>French Reference Guides\n handleOpenHelp(event, \"german\")}>German Reference Guides\n handleOpenHelp(event, \"italian\")}>Italian Reference Guides\n handleOpenHelp(event, \"japanese\")}>Japanese Reference Guides\n handleOpenHelp(event, \"korean\")}>Korean Reference Guides\n handleOpenHelp(event, \"portugese\")}>Portuguese Reference Guides\n handleOpenHelp(event, \"russian\")}>Russian Reference Guides\n handleOpenHelp(event, \"spanish\")}>Spanish Reference Guides\n \n \n {getMenuList()}\n \n \n \n \n \n\n );\n}\n\nexport default HelpLanguages;\n","\nimport React from 'react'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {faStar as userColl, faCube as DecisionKey, faCopy as FileCenterIcon, faUsersCog as AdminToolIcon, faCogs as DeliveryConfigIcon, faHome as HomeIcon_Home, faArchive as HomeIcon} from '@fortawesome/free-solid-svg-icons'\nimport {ApplicationContext} from 'context';\n\nconst Pages = [\n {\n title: 'Client Center',\n href: '/clientcenter',\n icon: ,\n text: 'Client Center',\n isVisibleKey: [\"hasCCAccess\"]\n },\n {\n title: 'File Center',\n href: '/filecenter',\n icon: ,\n text: 'File Center',\n isVisibleKey: [\"hasFCAccess\"]\n },\n {\n title: 'Bundles',\n href: '/collection',\n icon: ,\n text: 'Bundles',\n isVisibleKey: [\"hasCollectionsAccess\"]\n },\n {\n title: 'Flat File Admin Tool',\n href:'/flatfileadmintool',\n icon: ,\n text: 'Flat File Admin Tool',\n isVisibleKey: [\"hasFFAAccess\"]\n },\n {\n title: 'Immediate Delivery Configuration',\n href:'/deliveryconfig',\n icon: ,\n text: 'Delivery Configuration',\n isVisibleKey: [\"hasFFAAccess\"]\n },\n {\n title: 'Opens the DecisionKey application in a new browser tab.',\n icon: ,\n text: 'DecisionKey',\n id: 'reportbuilder',\n href: '/sso/#applications/reportbuilder/',\n link: true,\n landingPage: true,\n navigation: true,\n isVisibleKey: [\"hasDKIconAccess\"]\n}];\n\nexport default Pages;","import React, {forwardRef,useContext} from 'react'\nimport clsx from 'clsx';\nimport {NavLink} from 'react-router-dom'\nimport {List, ListItem, Tooltip, Button} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles'\nimport { Help as HelpSection } from './Components';\nimport {ApplicationContext} from 'context';\nimport Pages from 'Pages'\n//import Icon from '@mdi/react';\n//import { mdiFileCabinet as HomeIcon } from '@mdi/js';\n\n\nconst useStyle = makeStyles(theme => ({\n List: {\n flexGrow: 2\n },\n root: {\n color: theme.palette.grey[500],\n borderRadius: 0,\n textTransform: 'none',\n letterSpacing: 0,\n minWidth: 100,\n //lineHeight: '14px',\n //fontSize:'small'\n },\n active: {\n '& $icon': {\n color: theme.palette.npd.blue,\n alignItems: 'center',\n fontSize:'16px',\n lineHeight: '24px'\n \n }\n },\n icon: {\n alignItems: 'center',\n fontSize:'16px',\n lineHeight: '24px'\n },\n item: {\n paddingTop: 0\n },\n button: {\n color: theme.palette.npd.gray,\n borderRadius: 0,\n textTransform: 'none',\n letterSpacing: 0,\n minWidth: 100,\n lineHeight: '14px',\n padding:'0 0 0 0',\n alignItems: 'center'\n },\n buttonLabel: {\n display: 'flex',\n flexDirection: 'column'\n },\n iconWrapper: {\n alignItems: 'center',\n },\n text: {\n fontSize: 10,\n fontWeight: 500,\n textAlign: 'center',\n lineHeight: '12px',\n flexWrap: 'wrap',\n width: 100\n }, \n}));\n\n\n\nconst CustomRouterLink = forwardRef((props, ref) => (\n \n \n \n ));\n \n\n\nexport default function SideBarNav()\n{\n const appContext = React.useContext(ApplicationContext);\n const classes = useStyle();\n\n const isVisible = (keys) =>{\n var item = keys.map(k => appContext.appInfo.user[k])\n if (item.indexOf(true) > -1)\n return true;\n return false;\n } \n\n return (\n \n {Pages.map(page => (isVisible(page.isVisibleKey) && \n \n \n \n {page.icon }\n {page.text} \n \n \n \n ))}\n { (appContext.appInfo.user.hasCCAccess || appContext.appInfo.user.hasFCAccess) &&\n \n \n \n } \n \n )\n}\n\n\n","import React from 'react';\nimport clsx from 'clsx';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport Drawer from '@material-ui/core/Drawer';\nimport CssBaseline from '@material-ui/core/CssBaseline';\n\nimport {Logo} from 'components'\nimport { hidden } from 'ansi-colors';\nimport SideBarNav from './SideBarNav'\n\nconst drawerWidth = 100;\n\nconst useStyles = makeStyles(theme => ({\ndrawer: {\n width: drawerWidth,\n flexShrink: 0 \n },\n drawerPaper: {\n width: drawerWidth,\n boxShadow: '0px 0px 0.5px black',\n border: 0,\n overflow: 'hidden',\n },\n root: {\n backgroundColor: theme.palette.white,\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n border: 0\n },\n divider: {\n margin: theme.spacing(2, 0)\n },\n nav: {\n marginBottom: theme.spacing(2)\n },\n toolbar: theme.mixins.toolbar,\n icon: {\n fontSize: 16\n }\n}));\n\n const Sidebar = () => {\n const classes = useStyles();\n const [open, setOpen] = React.useState(false);\n //const { variant, onClose} = props;\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport default Sidebar;","import React from 'react';\nimport ApplicationContext from 'context/ApplicationContext'\n\nimport {makeStyles, Typography} from '@material-ui/core'\n\nconst useStyle = makeStyles(() => ({\n\n footer: {\n paddingLeft: 80,\n marginLeft: 30 \n },\n version: {\n float: \"right\",\n paddingRight: 20\n }\n}));\n\nexport default function Footer() {\n var appContext = React.useContext(ApplicationContext)\n var classes = useStyle();\n\n return (\n \n {appContext.appInfo.copyright}Version: {process.env.REACT_APP_VERSION}\n )\n ;\n}","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport { IconButton, Grid } from '@material-ui/core'\nimport { Close } from '@material-ui/icons'\nimport CssBaseline from '@material-ui/core/CssBaseline';\nimport { SnackbarProvider } from 'notistack';\nimport { useWindowDimensions } from 'components'\nimport SideBar from './SideBar/Sidebar'\nimport Footer from './Footer/Footer'\n\n\nconst useStyles = makeStyles(theme => ({\n toolbar: theme.mixins.toolbar,\n backdrop: {\n zIndex: theme.zIndex.drawer + 1,\n color: '#fff',\n },\n content: {\n paddingTop: 70,\n paddingLeft: 60,\n flexGrow: 1\n },\n\n overlay: {\n position: 'absolute',\n backgroundColor: 'black',\n height: '100%',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n display: 'none'\n },\n root: {\n width: '100%',\n margin: 0\n },\n notistack: {\n whiteSpace: 'pre-wrap'\n }\n}));\n\n\nconst Main = props => {\n const { children } = props;\n const classes = useStyles();\n const notistackRef = React.createRef();\n const onClickDismiss = key => () => {\n notistackRef.current.closeSnackbar(key);\n }\n\n const window = useWindowDimensions();\n\n return (\n (\n \n \n \n )}>\n \n \n \n \n \n {React.cloneElement(children)}\n \n \n \n \n \n );\n};\n\nMain.propTypes = {\n children: PropTypes.node\n};\n\nexport default Main;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport {Grid} from '@material-ui/core'\n\nimport {useWindowDimensions} from 'components'\nimport Footer from './Footer/Footer'\nimport {NotFound} from 'views'\n\n\nconst useStyles = makeStyles(theme => ({\n toolbar: theme.mixins.toolbar,\n backdrop: {\n zIndex: theme.zIndex.drawer + 1,\n color: '#fff',\n },\n content: {\n paddingTop: 70,\n flexGrow: 1,\n backgroundColor: theme.palette.background.default\n },\n \n overlay: {\n position: 'absolute',\n backgroundColor: 'black',\n height: '100%',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n display: 'none'\n },\n root: {\n width: '100%',\n height: '100%',\n backgroundColor: theme.palette.contentBackground,\n margin: 0\n },\n }));\n \n\nconst NF = props => {\n const classes = useStyles();\n const window = useWindowDimensions();\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nNF.propTypes = {\n children: PropTypes.node\n };\n\nexport default NF;","import React, { Fragment } from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\n\n// @material-ui/core components\nimport { Typography, Grid, Divider, Button } from '@material-ui/core';\nimport { Add as AddIcon, Edit as EditIcon } from '@material-ui/icons';\nimport Fab from '@material-ui/core/Fab';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { NavLink as RouterLink } from 'react-router-dom';\n// components\n//import { ExportButtonPro, InfoTooltip } from 'components';\nimport { DataSourceContext } from 'context';\n\n//services\n//import { dateFormat } from 'utils';\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n },\n banner: {\n height: 31,\n width: '100%',\n padding: '12px 20px',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n display: 'flex'\n },\n headerTitle: {\n fontSize: 20,\n lineHeight: '20px',\n height: 24,\n fontWeight: 'bold',\n color: theme.palette.text.dark\n },\n headerSubtitle: {\n fontSize: 12,\n lineHeight: '14px',\n fontStyle: 'italic',\n fontWeight: 'bold',\n color: theme.palette.npd.gray\n },\n buttonPanel: {\n width: '100%',\n height: 0,\n textAlign: 'right',\n paddingRight: 20\n },\n contentPanel: {\n //padding: `32px ${theme.spacing(4)}px 0 ${theme.spacing(4)}px`, <----- This is the white space culprit!\n width: '100%'\n },\n addButton: {\n color: theme.palette.white,\n width: 40,\n height: 40,\n top: '-20px',\n backgroundColor: theme.palette.npd.green,\n boxShadow: 'none',\n '&:hover':\n {\n backgroundColor: theme.palette.npd.green,\n boxShadow: 'none',\n transform: 'scale(1.2)',\n transition: 'all .3s ease-in-out'\n }\n },\n disabledButton: {\n color: `${theme.palette.white} !important`,\n backgroundColor: `${theme.palette.tableRowDivider} !important`\n },\n\n divider: {\n backgroundColor: 'rgba(216,216,216,0.42)'\n },\n\n tooltipWrapper: {\n display: 'flex',\n flexDirection: 'column',\n padding: 5,\n alignItems: 'center'\n },\n\n tooltip: {\n fontSize: 12,\n color: theme.palette.text.secondary\n },\n\n tooltipHeader: {\n fontWeight: 'bold'\n },\n\n breadcrumb: {\n fontSize: 12,\n fontWeight: 'bold',\n lineHeight: '14px',\n color: '#8E908F',\n textDecoration: \"none\"\n },\n breadcrumbArrow: {\n paddingLeft: '5px',\n\n },\n editButton: {\n\n },\n headerDivider: {\n backgroundColor: theme.palette.divider2,\n width: 2,\n margin: '0px 24px'\n }\n}));\n\nexport default function LayoutCompact(props) {\n const {\n showToolbar,\n showAdd,\n allowAdd,\n children,\n title,\n subTitle,\n dataSourceWeek,\n showBreadcrumb,\n breadcrumbText,\n breadcrumbLink,\n breadcrumbText2,\n breadcrumbLink2,\n bannerClass,\n showDataSourceTooltip,\n showDivider,\n showEdit = false,\n allowEdit = false,\n allowExport = false,\n bannerTitle,\n bannerSubtitle,\n exportTypes,\n onExport = () => { },\n onAdd = () => { },\n onEdit = () => { },\n hideDataSourceLabel = false,\n exportButtonProps = {},\n headerComponents = null,\n bannerComponent\n } = props;\n\n\n const classes = useStyles();\n const context = React.useContext(DataSourceContext);\n\n return (\n \n \n {/* \n \n {showBreadcrumb && (\n \n {breadcrumbText}>\n {breadcrumbText2 && (\n {breadcrumbText2}>\n )}\n \n )}\n {title}\n {subTitle}\n \n {\n (headerComponents) &&\n (\n {headerComponents}\n \n )\n }\n {/* {showEdit && (\n \n \n \n }\n onClick={onEdit}\n className={classes.editButton}\n disabled={!allowEdit}\n > EDIT \n \n \n \n )} */}\n {/* */}\n {showToolbar && (\n\n {/* {allowExport &&\n \n } */}\n {showAdd && (\n (allowAdd) ?\n \n \n \n\n :\n \n \n \n )}\n \n )}\n \n\n\n {/* {showDivider && (\n \n )} */}\n {children}\n \n \n \n );\n}\n\nLayoutCompact.propTypes = {\n children: PropTypes.element,\n dataSourceWeek: PropTypes.string,\n showDataSourceTooltip: PropTypes.bool,\n showBreadcrumb: PropTypes.bool,\n showDivider: PropTypes.bool,\n showToolbar: PropTypes.bool,\n showAdd: PropTypes.bool,\n allowAdd: PropTypes.bool,\n breadcrumbText: PropTypes.string,\n breadcrumbLink: PropTypes.string,\n bannerTitle: PropTypes.string,\n bannerSubtitle: PropTypes.string,\n exportTitle: PropTypes.string,\n onExport: PropTypes.func,\n onAdd: PropTypes.func,\n exportButtonProps: PropTypes.object,\n};\n","\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport { IconButton, Grid } from '@material-ui/core'\nimport { Close } from '@material-ui/icons'\nimport CssBaseline from '@material-ui/core/CssBaseline';\nimport { SnackbarProvider } from 'notistack';\nimport { useWindowDimensions } from 'components'\nimport SideBar from './SideBar/Sidebar'\nimport Footer from './Footer/Footer'\n\nimport { Topbar } from 'Topbar';\nimport { SearchContext, GridContext } from 'context';\nimport {Search} from 'views/Odata/Collections/components'\n\n\nconst useStyles = makeStyles(theme => ({\n toolbar: theme.mixins.toolbar,\n backdrop: {\n zIndex: theme.zIndex.drawer + 1,\n color: '#fff',\n },\n content: {\n paddingTop: 70,\n paddingLeft: 60,\n flexGrow: 1,\n zIndex:1,\n },\n\n overlay: {\n position: 'absolute',\n backgroundColor: 'black',\n height: '100%',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n display: 'none'\n },\n root: {\n width: '100%',\n margin: 0,\n position:'relative',\n },\n}));\n\n\nconst MainWithTopbar = props => {\n const { children } = props;\n const classes = useStyles();\n const notistackRef = React.createRef();\n const onClickDismiss = key => () => {\n notistackRef.current.closeSnackbar(key);\n }\n\n const window = useWindowDimensions();\n const [reportName, setReportName] = React.useState('');\n const [rowsSelected, setRowsSelected] = React.useState([]);\n\n return (\n (\n \n \n \n )}>\n \n \n \n \n \n \n \n \n \n \n \n \n {React.cloneElement(children)}\n \n \n \n \n \n \n \n \n );\n};\n\nMainWithTopbar.propTypes = {\n children: PropTypes.node\n};\n\nexport default MainWithTopbar;","import React, { useState, useEffect } from 'react';\n// @material-ui/core components\nimport { Grid } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\n\n// components\n\nimport { SavedCollections,RecentlyViewedCollections } from './components';\n\n\n//services\nimport { useCollectionService } from 'components';\nimport { DataSourceContext, GridContext } from 'context';\n\n//import { captureEvent } from 'utils';\n//import FileSaver from 'file-saver';\nimport CollectionsLayout from './CollectionsLayout';\nimport {CollectionsLayoutCompact} from './';\nimport { MainWithTopbar } from 'layouts';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n },\n recentPanel: {\n width: '100%'\n },\n listPanel: {\n height: '100%',\n width: '100%'\n },\n}));\n\nexport default function CollectionsHome(props) {\n \n const { data, getData, wbLoading, toolBarProps, pillProps } = props;\n const classes = useStyles();\n const service = useCollectionService();\n const [rowsSelected, setRowsSelected] = React.useState([]);\n const [loading, setLoading] = useState(false);\n\n const isSelectionModel = (params) => {\n return typeof params === 'object' && params.hasOwnProperty('selected');\n }\n\n const handleDelete = (params) => {\n let selections = isSelectionModel(params) ? params.selected : params;\n let idarray = Array.isArray(selections) ? selections : [selections];\n let ids = idarray.map((i) => i[\"id\"])\n if (ids.length > 0) {\n setLoading(true);\n service.deleteAll(ids).then(response => {\n getData();\n });\n }\n };\n\n const [selectionModel, setSelectionModel] = useState({ selectedCount: 0 });\n\n const onChangeSelectionModel = (value) => {\n setSelectionModel(value);\n }\n\n const handleExport = (id) => {\n setLoading(true);\n service.exportCollection(id).then(response => {\n const fileNameHeader = \"x-bookscan-filename\";\n const suggestedFileName = response.headers[fileNameHeader];\n const effectiveFileName = (suggestedFileName === undefined ? \"Collectiond.xls\" : suggestedFileName);\n setLoading(false);\n });\n \n };\n\n return (\n \n \n \n \n \n \n \n );\n}\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useHistory } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/core/styles';\n\n// components\nimport BackgroundImage from 'assets/img/collection-background.jpg';\n\n\nimport { SearchContext, DataSourceContext, GridContext } from 'context';\nimport LayoutCompact from 'layouts/LayoutCompact';\n//services\nimport { useCollectionService } from 'components';\n//import { captureEvent } from 'utils';\n//import FileSaver from 'file-saver';\n\n\nconst useStyles = makeStyles(theme => ({\n banner: {\n backgroundPosition: '0% 70%',\n backgroundImage: `url(${BackgroundImage})`\n },\n}\n));\n\nexport default function CollectionsLayoutCompact(props) {\n const { setLoading, selectionModel, ...rest } = props;\n const context = React.useContext(DataSourceContext);\n const classes = useStyles();\n const service = useCollectionService();\n\n const handleExport = (option) => {\n setLoading(true);\n var param = {};\n param.list = (option.id === 1 && selectionModel.selected) ? selectionModel.selected : []\n service.exportCollections(param).then(response => {\n const fileNameHeader = \"x-bookscan-filename\";\n const suggestedFileName = response.headers[fileNameHeader];\n const effectiveFileName = (suggestedFileName === undefined ? \"my_collections.xls\" : suggestedFileName);\n // Let the user save the file.\n //FileSaver.saveAs(new Blob([response.data]), effectiveFileName);\n setLoading(false);\n });\n // captureEvent({ category: 'Collections', action: 'Global Export', label: option.label + ' - ' + option.format });\n };\n\n\n return (\n !(selectionModel.selectedCount > 0) },\n { id: 2, format: 'xlsx', label: 'Export All' }\n ]}\n onExport={handleExport}\n showAdd={false}\n exportButtonProps={{\n styleProp: { top: '-16px', marginRight: 10, backgroundColor: 'transparent' },\n iconStyleProp: { height: 34 }\n }} \n {...rest}>\n\n );\n}\n\nCollectionsLayoutCompact.propTypes = {\n children: PropTypes.element,\n title: PropTypes.string,\n dataSourceWeek: PropTypes.string,\n showDataSourceTooltip: PropTypes.bool,\n showBreadcrumb: PropTypes.bool,\n showDivider: PropTypes.bool,\n showToolbar: PropTypes.bool,\n allowAdd: PropTypes.bool\n};\n","import React, { useEffect, useContext, useState } from 'react';\nimport { useLocation, useHistory, useParams } from 'react-router-dom';\nimport { Paper, Grid, Typography, FormHelperText, Button } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\n//Components\nimport { EnhancedTable, DeleteCommand } from 'components';\nimport { ApplicationContext, DataSourceContext, SearchContext, GridContext } from 'context';\nimport _ from 'lodash';\nimport { useCollectionService, useWindowDimensions } from 'components';\nimport {CollectionsLayoutCompact, CreateCollection} from './';\nimport Toolbar from '../OdataCollectionsToolbar';\nimport { Topbar } from 'Topbar';\nimport Search from './components/Search';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '100%',\n backgroundColor: theme.palette.contentBackground,\n padding: '0px',\n margin: '0px'\n }\n}));\nconst columns = [{ field: 'folderName', type: 'string', label: 'Folder Name' },\n{ field: 'reportName', type: 'string', label: 'Report Name' },\n//{ field: 'runDate', type: 'date', label: 'Batched On', format: 'MM-DD-YYYY hh:mm A' },\n{ field: 'createdUserName', type: 'string', label: 'Batched By' },\n{ field: 'statusName', type: 'selectiveLinkWithTooltip', label: 'Status', showTooltip: true, onClick: () => { }, tooltipField: 'tooltip' },\n//{ field: 'expiredDate', type: 'date', label: 'Expires On', format: 'MM-DD-YYYY hh:mm A' },\n{ field: 'reportOutputType', type: 'string', label: 'Format', disableSort: true },\n //{ field: 'lastViewDate', type: 'date', label: 'Last Accessed', format: 'MM-DD-YYYY' },\n //{ field: 'action', type: 'action', label: '', disableSort: true }\n];\n\nconst rowsPerPageOptions = [10, 25, 50, 75, 100, 200, 500];\n\nexport default function CollectionsList(props) {\n const [loading, setLoading] = React.useState(true);\n const { fields } = useContext(ApplicationContext);\n const classes = useStyles();\n const location = useLocation();\n const history = useHistory();\n const service = useCollectionService();\n const [collection, setCollection] = useState({});\n const [dataRows, setDataRows] = useState([]);\n const [totalCount, setTotalCount] = React.useState(0);\n const [order, setOrder] = React.useState();\n const [initialLoad, setInitialLoad] = useState(true);\n const [orderChange, setOrderChange] = useState(false);\n const [isOwner, setIsOwner] = useState(false);\n\n //New\n const {pillProps} = props;\n const [page, setPage] = React.useState(1);\n const [pageSize, setPageSize] = React.useState(25);\n const [orderBy, setOrderBy] = React.useState('reportName');\n const [orderByDirection, setOrderByDirection] = React.useState('asc');\n const [folderName, setFolderName] = React.useState('');\n const [reportName, setReportName] = React.useState('');\n const [batchStartdate, setBatchStartdate] = React.useState(null);\n const [batchEnddate, setBatchEnddate] = React.useState(null);\n const [rowsSelected, setRowsSelected] = React.useState([]);\n const [availableReports, setAvailableReports] = React.useState([]);\n const dataSourceContext = React.useContext(DataSourceContext);\n //const gridContext = React.useContext(GridContext)\n //const { enqueueSnackbar } = useSnackbar();\n const appKey = 'fc';\n\n React.useEffect(() => {\n if (Boolean(dataSourceContext.dataSourceSelectedKey)) {\n setLoading(true);\n loadBatchedReports();\n }\n }, [pageSize, page, orderByDirection, orderBy, dataSourceContext.dataSourceSelectedKey, reportName, folderName, batchStartdate, batchEnddate]);\n\n\n\n let { id } = useParams();\n const loadBatchedReports = () => {\n setLoading(true);\n let sortInfo = '';\n if (orderBy !== '' && orderBy !== undefined && orderBy !== null) {\n const orderCol = columns.find((item) => orderBy === item.label || orderBy === item.field).field;\n sortInfo = \"[{'Property': '\" + orderCol + \"' , 'direction' : '\" + orderByDirection + \"' }]\";\n }\n let filter = {\n\n statusIdNotIn: \"3\",\n reportName: reportName,\n folderName: folderName,\n startRunDateFrom: (batchStartdate === null || batchStartdate === undefined) ? null : batchStartdate.format(\"MM/DD/YYYY\"),\n startRunDateTo: (batchEnddate === null || batchEnddate === undefined) ? null : batchEnddate.format(\"MM/DD/YYYY\"),\n };\n\n let options = { page: page, pageSize: pageSize, filter: filter, sortInfo: sortInfo, token: dataSourceContext.dataSourceSelectedKey, id: id }\n //alert('['+dataSourceContext.dataSourceSelectedKey + '] , []');\n if (dataSourceContext.dataSourceSelectedKey !== '') {\n service.getBundle(options).then(res => {\n setAvailableReports(res.data.data);\n setPage(res.data.page);\n setPageSize(res.data.pageSize);\n setTotalCount(res.data.totalCount);\n setLoading(false);\n // if (initialLoad) {\n // setOrderBy(response.data.collection.sortColumn);\n // setOrder(response.data.collection.sortAscending ? 'asc' : 'desc');\n // }\n setInitialLoad(false);\n })\n }\n }\n\n const onChangePage = (newPage) => {\n setPage(newPage);\n }\n const onPageSizeChange = (newPageSize) => {\n setPageSize(newPageSize);\n }\n const onRequestSort = order => {\n setOrderBy(order.orderBy);\n setOrderByDirection(order.order)\n }\n\n\n const handleDelete = (selectionModel) => {\n\n // let params = {\n // id: props.match.params.id,\n // selectionModel: {\n // remote: selectionModel.remote,\n // selectAll: selectionModel.selectAll,\n // selected: selectionModel.selected.map(s => `${s}`),\n // unselected: selectionModel.unselected.map(s => `${s}`),\n // }\n // };\n // setLoading(true);\n // service.deleteISBN(params).then(response => {\n // loadCollections();\n // });\n };\n\n\n\n const handleExport = (options) => {\n if (options) {\n setLoading(true);\n service.exportCollection(props.match.params.id, (options.id == 1) ? options : {}).then(response => {\n const fileNameHeader = \"x-bookscan-filename\";\n const suggestedFileName = response.headers[fileNameHeader];\n const effectiveFileName = (suggestedFileName === undefined ? \"Collection.xls\" : suggestedFileName);\n // Let the user save the file.\n //FileSaver.saveAs(new Blob([response.data]), effectiveFileName);\n setLoading(false);\n });\n // captureEvent({ category: 'Collections', action: 'Export', label: options.label + ' - ' + options.format });\n }\n };\n\n const getTableCommands = () => {\n let commands = [];\n if (isOwner)\n commands.push();\n return commands;\n }\n\n\n\n return (\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n );\n}\n","import React, { useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {CollectionsList} from './';\nimport Toolbar from '../OdataCollectionsToolbar';\nimport {DataSourceContext, SearchContext, } from 'context';\n\nimport { makeStyles, Grid,Typography } from \"@material-ui/core\";\nimport { Topbar } from 'Topbar';\nimport {Search} from 'views/Odata/Collections/components'\nconst useStyles = makeStyles(theme => ({\n message: {\n paddingLeft: 20,\n alignSelf: 'center',\n color: theme.palette.text.primary,\n fontWeight:'bold'\n }\n}));\nconst CollectionsListHome = props => {\n const [view, setView] = useState('collection');\n const [dataSourceSelectedKey, setDataSourceSelectedKey] = useState(\"\");\n const [pageSize, setPageSize] = React.useState(25);\n const [page, setPage] = React.useState(1);\n const [orderBy, setOrderBy] = React.useState('createdDate');\n const [orderByDirection, setOrderByDirection] = React.useState('desc');\n const [reportName, setReportName] = React.useState('');\n const classes = useStyles();\n return (\n \n \n \n Modify an existing Bundle by creating a new Bundle.}} \n />\n \n \n \n )\n};\n\nCollectionsListHome.propTypes = {\n\n\n};\n\nexport default CollectionsListHome;\n","import React, { Fragment, useContext } from \"react\";\n// @material-ui/core components\nimport { makeStyles, useTheme, withStyles } from \"@material-ui/core/styles\";\nimport { Button, Paper, Popover, ClickAwayListener, Select, MenuItem, InputBase, TextField, Grid, Divider, IconButton, Tooltip } from \"@material-ui/core\";\nimport DataSourceContext from 'context/DataSourceContext';\n//import { useHistory } from 'react-router-dom';\nimport {useHistory} from 'react-router'\nimport { Star as StarIcon, Close as CloseIcon } from \"@material-ui/icons\";\nimport { useCollectionService } from 'components';\nimport { numberFormat } from 'utilities';\nimport _ from 'lodash';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n\n },\n button: {\n width: 120,\n fontSize: 12,\n fontWeight: 600,\n color: '#FF9971',\n whiteSpace: 'nowrap'\n },\n buttonDisabled: {\n color: theme.palette.npd.gray,\n },\n popupbuttonDisabled: {\n backgroundColor: `${theme.palette.tableRowDivider} !important`,\n color: `${theme.palette.npd.gray} !important`,\n },\n spacer: {\n width: 10\n },\n paper: {\n zIndex: 3000,\n width: 235,\n opacity: 1,\n backgroundColor: 'rgba(255,255,255,0.93)',//theme.palette.background.tooltip,\n boxShadow: '0 6px 24px 0 rgba(50,64,78,0.17)'\n },\n\n popupLabel: {\n padding: '11px 16px',\n color: theme.palette.white,\n fontSize: 14,\n backgroundColor: theme.palette.npd.gray,\n height: 37,\n display: 'flex'\n },\n\n popupInputs: {\n padding: '9px 16px',\n color: theme.palette.text.secondary,\n fontSize: 14,\n fontWeight: 600,\n width: '100%',\n backgroundColor: theme.palette.white,\n },\n\n popupButtons: {\n borderTop: `1px solid ${theme.palette.tableRowDivider}`,\n padding: 15,\n fontSize: 14,\n fontWeight: 600,\n display: 'inline-flex',\n width: '100%',\n backgroundColor: theme.palette.white\n },\n\n popper: {\n zIndex: 1\n },\n\n saveButton: {\n fontWeight: 'bold',\n color: '#FFF',\n width: 94,\n height: 36,\n fontSize: 12,\n backgroundColor: theme.palette.npd.green,\n '&:hover': {\n fontWeight: 'bold',\n color: '#FFF',\n width: 94,\n height: 36,\n fontSize: 12,\n backgroundColor: theme.palette.npd.green\n }\n },\n\n viewButton: {\n fontWeight: 'bold',\n color: '#FFF',\n width: 94,\n height: 36,\n fontSize: 10,\n backgroundColor: theme.palette.primary.main,\n marginLeft: 18,\n '&:hover': {\n fontWeight: 'bold',\n color: '#FFF',\n width: 94,\n height: 36,\n fontSize: 10,\n backgroundColor: theme.palette.primary.main,\n marginLeft: 18,\n }\n },\n selectInput: {\n width: 206\n },\n inputRoot: {\n fontSize: 12,\n backgroundColor: theme.palette.grey[50],\n borderRadius: 4,\n height: 30,\n \"& $inputNotchedOutline\": {\n borderWidth: 1\n },\n \"&:hover $inputNotchedOutline\": {\n borderWidth: 1,\n borderColor: theme.palette.primary.main\n },\n \"&$inputFocused $inputNotchedOutline\": {\n borderWidth: 1\n }\n },\n inputDisabled: {\n backgroundColor: theme.palette.grey[50],\n height: 30,\n \"& $inputNotchedOutline\": {\n borderWidth: 1,\n borderColor: 'rgba(0, 0, 0, 0.1) !important'\n }\n },\n inputError: {\n backgroundColor: theme.palette.grey[50],\n borderWidth: 1,\n height: 30,\n \"& $inputNotchedOutline\": {\n borderColor: '#e53935'\n },\n \"&:hover $inputNotchedOutline\": {\n borderColor: '#e53935'\n },\n },\n inputName: {\n width: 190,\n flexGrow: 1,\n padding: 8,\n backgroundColor: theme.palette.divider\n },\n inputFocused: {\n backgroundColor: theme.palette.white\n },\n inputNotchedOutline: {\n },\n\n inputAdornedStart: {\n padding: 0\n },\n inputAdornment: {\n margin: 0\n },\n inputAdornmentHidden: {\n display: 'none'\n },\n container: {\n height: '100%',\n flex: 1,\n marginTop: 14\n },\n divider: {\n width: 56,\n backgroundColor: theme.palette.tableRowDivider\n },\n\n starIcon: {\n '& > *:first-child': {\n fontSize: 14,\n },\n },\n starBox: {\n border: `1px solid ${theme.palette.tableRowDivider}`,\n height: 18,\n width: 18,\n padding: 2,\n paddingTop: 2,\n paddingLeft: 3,\n borderRadius: 3,\n marginTop: 8,\n marginLeft: 11,\n fontSize: 12\n },\n titleCount: {\n fontWeight: 300,\n fontSize: 10,\n marginLeft: 5,\n padding: '0 5px',\n borderRadius: 4,\n border: `1px solid ${theme.palette.background.default}`,\n backgroundColor: theme.palette.background.default\n }\n}));\n\nconst HtmlTooltip = withStyles(theme => ({\n tooltip: {\n backgroundColor: '#f5f5f9',\n color: 'rgba(0, 0, 0, 0.87)',\n maxWidth: 220,\n fontSize: theme.typography.pxToRem(12),\n border: '1px solid #dadde9',\n },\n}))(Tooltip);\n\nconst BootstrapInput = withStyles(theme => ({\n root: {\n fontSize: 12,\n backgroundColor: theme.palette.grey[50],\n\n '& $inputNotchedOutline': {\n borderWidth: 0\n },\n '&:hover $inputNotchedOutline': {\n borderWidth: 1,\n borderColor: theme.palette.primary.main\n },\n '&$inputFocused $inputNotchedOutline': {\n borderWidth: 1\n }\n },\n\n input: {\n width: 'auto',\n flexGrow: 1,\n padding: 8\n },\n\n focused: {\n backgroundColor: theme.palette.white\n }\n}))(InputBase);\n\nexport default function CreateCollection(props) {\n const { selectionModel, searchParams = {}, hideTitle = false, pillProps } = props;\n const classes = useStyles();\n const theme = useTheme();\n const history = useHistory();\n const { dataSourceSelectedKey, dataSourceSelectedInfo } = useContext(DataSourceContext);\n\n const collectionApi = useCollectionService();\n const anchorRef = React.useRef(null);\n const [isSaved, setIssaved] = React.useState(false);\n const [open, setOpen] = React.useState(false);\n const [collectionList, setCollectionList] = React.useState([]);\n const [selectedCollection, setSelectedCollection] = React.useState(null);\n const [collectionName, setCollectionName] = React.useState('');\n const [collectionNameErrorMsg, setCollectionNameErrorMsg] = React.useState('');\n const [savedId, setSavedId] = React.useState(null);\n const [isSaving, setIsSaving] = React.useState(false);\n const [page, setPage] = React.useState(1);\n const [pageSize, setPageSize] = React.useState(25);\n // return focus to the button when we transitioned from !open -> open\n const prevOpen = React.useRef(open);\n React.useEffect(() => {\n if (prevOpen.current === true && open === false) {\n anchorRef.current.focus();\n }\n prevOpen.current = open;\n setIssaved(false);\n setCollectionName('');\n setSelectedCollection(null);\n setSavedId(null);\n }, [open, selectionModel]);\n let sortInfo = '';\n let filter = {};\n \n React.useEffect(() => {\n // ENABLE AFTER YOU HAVE AN API\n let options = { page: page, pageSize: pageSize, filter: filter, sortInfo: sortInfo }\n if (open === true) {\n collectionApi.getAll(options).then((response) => {\n setCollectionList(response.data);\n });\n }\n }, [open]);\n\n const handleClick = event => {\n\n setOpen(prevOpen => !prevOpen);\n };\n\n const handleChange = e => {\n setSelectedCollection(e.target.value);\n setCollectionName('');\n setCollectionNameErrorMsg('');\n }\n\n const onClickAway = e => {\n setOpen(prevOpen => !prevOpen);\n setCollectionName('');\n setCollectionNameErrorMsg('');\n setSelectedCollection(null);\n setIssaved(false);\n }\n\n const onClickClose = e => {\n onClickAway();\n setIssaved(false);\n setCollectionName('');\n setSelectedCollection(null);\n setSavedId(null);\n }\n\n const handleInputChange = e => {\n if (e.target.name === 'name' && collectionNameErrorMsg.length > 0)\n setCollectionNameErrorMsg('');\n\n setCollectionName(e.target.value);\n setSelectedCollection(null);\n }\n\n const handleOnViewCollection = e => {\n history.push('/collection?v=collection');\n }\n\n const handleOnSave = e =>{\n \n if (isSaved || isSaving)\n return;\n\n setIsSaving(true);\n\n \n //setIssaved(true);\n //setIsSaving(false);\n // here you can call your api.\n // selectionModel.selection = all rows selected from table\n var options = selectionModel.selected;\n if (collectionName.length > 0 && options.length > 0) {\n collectionApi.createNewBundle(options,collectionName).then((response) => {\n setIsSaving(false);\n if (response.data) {\n //if (response.data.includes('already exists. Please select another name')) {\n if (response.data.length>0) {\n setCollectionNameErrorMsg(response.data);\n }\n } else {\n //setSavedId(response.data.id);\n setIssaved(true);\n }\n }).catch((error) => {\n setIsSaving(false);\n });\n };\n };\n\n // if (row && updates) {\n // api.updateReport(row, updates).then((res) => {\n // if (res.data && res.data.failed)\n // enqueueSnackbar(res.data.errorMessage, { variant: 'warning' });\n // else {\n // setLoading(true);\n // loadFlatFiles();\n // }\n // });\n // }\n\n\n\n /*const handleOnSave = e => {\n if (isSaved || isSaving)\n return;\n\n setIsSaving(true);\n\n var isbns = [];\n var unselectedIsbns = [];\n if (selectionModel.selected) {\n selectionModel.selected.map((isbn) => {\n isbns.push({ isbn: `${isbn}` })\n });\n }\n if (selectionModel.unselected) {\n selectionModel.unselected.map((isbn) => {\n unselectedIsbns.push(`${isbn}`)\n });\n }\n var collection = {\n bookCollectionISBNs: isbns,\n unselected: unselectedIsbns\n }\n\n if (collectionName.length > 0) {\n collection.name = collectionName;\n //captureEvent({ category: 'Collections', action: 'Create New Collection' });\n }\n else if (selectedCollection !== null) {\n collection.id = selectedCollection;\n //captureEvent({ category: 'Collections', action: 'Add to Existing Collection' });\n }\n\n var api = collectionApi.add;\n\n if (selectionModel.remote && selectionModel.selectAll) {\n collection = _.merge(collection, searchParams || {});\n\n //Find a way to determine between search and advanced search\n if (collection.query)\n api = collectionApi.addBySearch;\n else if (collection.bookCollectionSourceId)\n api = collectionApi.addFromCollection;\n else\n api = collectionApi.addByAdvancedSearch;\n }\n\n api(collection).then((response) => {\n setIsSaving(false);\n if (response.data.errorDescription) {\n if (response.data && response.data.errorDescription.includes('same name already exists')) {\n setCollectionNameErrorMsg('Collection with the same name already exists.');\n }\n } else {\n setSavedId(response.data.id);\n setIssaved(true);\n }\n }).catch((error) => {\n setIsSaving(false);\n });\n };*/\n\n const renderDisplay = (value) => {\n if (value === undefined || value === null || value.length === 0) {\n return Select from Existing Collection\n }\n\n var selected = collectionList.find((item) => item.id === value);\n return ({selected.name} {numberFormat(selected.size, 'en-US')} titles)\n }\n\n return (\n \n {(hideTitle) ?\n \n \n \n :\n \n Select report(s) to enable this button.\n : ''\n }\n >\n }\n >\n Add to Bundle\n \n \n \n }\n \n \n \n \n {(hideTitle) ? '' : \n \n {numberFormat(selectionModel.selectedCount, 'en-US')} report{(selectionModel.selectedCount > 1) ? 's' : ''} selected\n \n \n }\n \n {collectionList.length > 0 ?\n \n Add to Bundle\n \n }\n displayEmpty\n MenuProps={{\n disablePortal: true,\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left'\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'left',\n },\n getContentAnchorEl: null\n }}\n >\n {collectionList.map(option => (\n \n {option['name']} {numberFormat(option['size'], 'en-US')} titles\n \n ))}\n \n \n\n \n \n \n \n \n \n \n or\n \n \n \n \n \n \n \n \n : ''\n }\n Create A New Bundle\n \n 0)} helperText={collectionNameErrorMsg} value={collectionName}\n classes={{\n root: classes.formInputRoot\n }}\n InputProps={{\n classes: {\n root: classes.inputRoot,\n disabled: classes.inputDisabled,\n input: classes.inputName,\n focused: classes.inputFocused,\n notchedOutline: classes.inputNotchedOutline,\n adornedStart: classes.inputAdornedStart,\n error: classes.inputError\n }\n }} onChange={handleInputChange} />\n \n \n \n 0 || selectedCollection !== null)} classes={{ root: classes.saveButton, disabled: classes.popupbuttonDisabled }} onClick={handleOnSave}>{isSaved ? 'Saved!' : (isSaving) ? 'Saving...' : 'Save'}\n View Bundles\n \n \n \n \n \n \n\n );\n}\n","//core components\nimport React, {Fragment, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n//material ui components\nimport { makeStyles, lighten } from '@material-ui/core/styles';\nimport { Toolbar, Typography, Tooltip, IconButton, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Button, Grid } from '@material-ui/core';\nimport { GetApp as BatchIcon, Cached as RefreshIcon } from '@material-ui/icons';\n//custom components\nimport { GridContext, SearchContext } from 'context';\nimport { useApi, SelectedSearches } from 'components';\nimport {CreateCollection} from 'views/Odata/Collections';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n flexGrow: 10,\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n justifyContent: 'flex-end'\n },\n highlight: {\n color: theme.palette.primary.main,\n backgroundColor: lighten(theme.palette.secondary.light, 0.75),\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n justifyContent: 'flex-end'\n },\n icon: {\n padding: '1px 5px 1px 1px',\n //margin: '0px 3px 3px 3px',\n fontSize: '23px',\n //lineHeight: '24px'\n },\n title: {\n paddingRight: theme.spacing(3),\n fontSize: '12px',\n //flex: '1 1 100%',\n },\n alignRight: {\n textAlign: 'end'\n },\n alignLeft: {\n textAlign: 'start'\n },\n}));\n\nexport default function EnhancedTableToolbar(props) {\n const classes = useStyles();\n const { multidownload, refresh, createCollection, commands = [] } = props;\n const [rowsSelected, setRowsSelected] = React.useState(0);\n const gridContext = React.useContext(GridContext)\n const searchContext = React.useContext(SearchContext)\n\n const [selectionModel, setSelectionModel] = useState({\n selected: [],\n selectedCount: 0\n });\n\n const GenerateSelectedSearches = () => {\n let searches = [];\n\n if (searchContext.reportName !== undefined && searchContext.reportName !== '')\n searches.push({ key: \"Report Name\", value: searchContext.reportName, handleDelete: () => { searchContext.setReportName(''); } });\n\n if (searchContext.folderName !== undefined && searchContext.folderName !== '')\n searches.push({ key: \"Folder Name: \", value: searchContext.folderName, handleDelete: () => { searchContext.setFolderName(''); } });\n\n if (searchContext.batchStatus !== undefined && searchContext.batchStatus.scheduleStatus !== undefined && searchContext.batchStatus.scheduleStatus !== 0)\n searches.push({ key: \"Status: \", value: searchContext.batchStatus.displayName, handleDelete: () => { searchContext.setBatchStatus({ scheduleStatus: 0, displayName: \"\" }); } });\n\n if (searchContext.batchedBy !== undefined && searchContext.batchedBy !== '')\n searches.push({ key: \"Batched By: \", value: searchContext.batchedBy, handleDelete: () => { searchContext.setBatchedBy(''); } });\n\n if (searchContext.format !== undefined && searchContext.format.reportOutputTypeId !== undefined && searchContext.format.reportOutputTypeId !== 0)\n searches.push({ key: \"Format: \", value: searchContext.format.reportOutputType, handleDelete: () => { searchContext.setFormat({ reportOutputTypeId: 0, reportOutputType: \"\" }); } });\n\n if (searchContext.batchEnddate !== undefined && searchContext.batchEnddate !== null)\n searches.push({ key: \"Batch To: \", value: searchContext.batchEnddate.format(\"MM/DD/YYYY\"), handleDelete: () => { searchContext.setBatchEnddate(null); } });\n\n if (searchContext.batchStartdate !== undefined && searchContext.batchStartdate !== null)\n searches.push({ key: \"Batch From: \", value: searchContext.batchStartdate.format(\"MM/DD/YYYY\"), handleDelete: () => { searchContext.setBatchStartdate(null); } });\n \n if (searchContext.lastModifiedEnddate !== undefined && searchContext.lastModifiedEnddate !== null)\n searches.push({ key: \"Last Modified To: \", value: searchContext.lastModifiedEnddate.format(\"MM/DD/YYYY\"), handleDelete: () => { searchContext.setLastModifiedEnddate(null); } });\n\n if (searchContext.lastModifiedStartdate !== undefined && searchContext.lastModifiedStartdate !== null)\n searches.push({ key: \"Last Modified From: \", value: searchContext.lastModifiedStartdate.format(\"MM/DD/YYYY\"), handleDelete: () => { searchContext.setLastModifiedStartdate(null); } });\n\n if (searchContext.createdByEnddate !== undefined && searchContext.createdByEnddate !== null)\n searches.push({ key: \"Created By To: \", value: searchContext.createdByEnddate.format(\"MM/DD/YYYY\"), handleDelete: () => { searchContext.setCreatedByEnddate(null); } });\n\n if (searchContext.createdByStartdate !== undefined && searchContext.createdByStartdate !== null)\n searches.push({ key: \"Created By From: \", value: searchContext.createdByStartdate.format(\"MM/DD/YYYY\"), handleDelete: () => { searchContext.setCreatedByStartdate(null); } });\n\n\n return searches;\n }\n \n React.useEffect(() => {\n setRowsSelected(gridContext.rowsSelected.length);\n setSelectionModel({\n selected: gridContext.rowsSelected,\n selectedCount: gridContext.rowsSelected.length\n });\n\n }, [gridContext.rowsSelected])\n\n const getCommandsWithModel = () => {\n return commands.map(c => {\n return React.cloneElement(c, {\n selectionModel: selectionModel\n });\n });\n }\n\n const onRefresh = () => \n {\n gridContext.setRowsSelected([]);\n if (isFunction(refresh))\n refresh();\n }\n const showDownload = () => { \n var result = true;\n if (commands.length > 0) {result = false;}\n if (createCollection === true) {result = false;}\n return !result;\n \n }\n \n const isFunction = functionToCheck => {\n return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';\n }\n\n return (\n \n \n\n \n {createCollection ? (\n \n \n \n ) : (\n \n\n \n )}\n {/* \n\n */}\n {commands ? (\n \n { \n commands.map((command, index) => {\n return {command} ;\n })\n }\n \n ) : (\n \n\n \n )}\n \n\n \n \n \n \n {rowsSelected > 0 ? (\n \n {rowsSelected} item(s) selected\n \n ) : (\n \n\n \n )}\n \n\n\n\n\n \n {showDownload() ? (\n \n ) : (\n \n \n multidownload()} aria-label=\"download\" color=\"primary\" disabled={rowsSelected === 0}>\n \n \n \n \n )} \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nEnhancedTableToolbar.propTypes = {\n refresh: PropTypes.func.isRequired,\n multidownload: PropTypes.func.isRequired\n};","import React, { useState, useEffect, useRef } from 'react'\n\n//material ui components\nimport { makeStyles } from '@material-ui/core/styles';\n//custom components\nimport FileCenterToolBar from './FileCenterToolBar';\nimport EnhancedToolbar from './FileCenterEnhancedToolbar';\nimport {FileRepo, BatchReports, Reports} from './';\nimport {ExceloData} from 'views/Odata'\nimport {DataSourceContext} from 'context';\nimport { Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '100%',\n backgroundColor: theme.palette.contentBackground,\n margin: 0\n},\n content: {\n padding: 1,\n },\n /* Styles applied to the Toolbar component. */\n toolbar: {\n height: 24,\n paddingLeft: theme.spacing(3)\n },\n /* Styles applied to the spacer element. */\n spacer: {\n flex: '1 1 100%',\n },\n buttonIcon: {\n marginLeft: 10,\n fill: theme.palette.npd.gray,\n '&:disabled': {\n fill: theme.palette.primary.main\n },\n '&:hover': {\n fill: theme.palette.primary.main,\n backgroundColor: 'none'\n },\n },\n message: {\n paddingLeft: 20,\n alignSelf: 'center',\n color: theme.palette.error.light,\n fontWeight:'bold'\n }\n}));\n\nfunction FileCenter() {\n const [dataSourceSelectedKey, setDataSourceSelectedKey] = React.useState('');\n const appKey = 'fc';\n const classes = useStyles();\n const [tableView, setTableView] = useState('batch');\n const isFirstRun = useRef(true);\n\n document.title = \"File Center\";\n useEffect(() => {\n //dont log the default toggle state\n if (isFirstRun.current) {\n isFirstRun.current = false;\n return;\n }\n }, [tableView]);\n\n return (\n \n {(tableView == 'batch') ?\n Files in this list will be deleted after 90 days or overwritten if the report is run again.}}\n EnhancedToolbar={EnhancedToolbar}\n /> :\n (tableView == 'reports') ?\n :\n \n }\n \n )\n}\n\nexport default FileCenter;","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\n//material ui components\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Grid, Typography, Button, TextField, Tooltip } from '@material-ui/core';\nimport { Save, Cancel, List } from '@material-ui/icons';\n//custom components\nimport {ApplicationContext} from 'context'\nimport {AutoCompleteDropdown as SearchAutocomplete} from 'components'\nimport {JsonEditor} from './'\nimport CheckBox from 'components/Checkbox/CustomCheckbox'\nimport {dateFormat} from 'utilities'\nimport {useApi, MultiSelect} from 'components'\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: 0,\n backgroundColor: 'inherit',\n minWidth: 701,\n borderRadius: '4px'\n },\n flexGrow: {\n flex: 1\n },\n metaHeader: {\n backgroundColor: theme.palette.primary.main,\n borderRadius: '4px 4px 0 0',\n paddingLeft: 20,\n },\n metadataTitle: {\n fontSize: 12,\n fontWeight: 600,\n color: '#fff',\n textTransform: 'uppercase',\n lineHeight: '28px',\n letterSpacing: '0.5px',\n height: '33px',\n padding: '3px'\n },\n fieldLabel: {\n fontSize: 12,\n fontWeight: 600,\n paddingLeft: 20,\n paddingTop: 5,\n backgroundColor: '#fff',\n color: '#565A5C',\n height: '100%'\n },\n fieldValue: {\n fontSize: 12,\n paddingLeft: 0,\n paddingTop: 5,\n backgroundColor: '#fff',\n color: '#565A5C',\n height: '100%'\n },\n textBox: {\n height:33,\n width: '100%',\n margin: 0,\n '& > div > input':{\n padding: 6,\n fontSize: 14,\n marginLeft: 2,\n height: 19.5\n }\n },\n fieldCell: {\n paddingTop: 6,\n borderBottom: '1px solid #f8f8f8'\n },\n\n detailContainer:{\n boxShadow: '0 11px 22px -4px rgba(186,186,186,0.3)',\n backgroundColor:'#ffffff'\n },\n buttonRoot:{\n margin: 5\n }\n\n}));\n\nconst defaultDelimiterOptions = [{name: 'Comma (,)', value: ','},\n {name: 'Pipe (|)',value: '|'},\n {name: 'TAB', value: '\\t'},\n {name: 'SemiColon (;)', value: ';'}\n ];\n\nfunction ReportEditor(props) {\n const { \n row = {}, \n handleClose,\n loading = false\n } = props;\n\n const classes = useStyles();\n const api = useApi();\n const appContext = React.useContext(ApplicationContext);\n\n const [reportName, setReportName] = React.useState('');\n const [delimiter, setDilimiter] = React.useState('');\n const [compression, setCompression] = React.useState(false);\n const [lf, setLf] = React.useState(false);\n const [unSuppressedAttributes, setUnSuppressedAttributes] = React.useState(false);\n const [attrAtEnd, setAttrAtEnd] = React.useState(false);\n const [immediateDeliveryInd, setImmediateDeliveryInd] = React.useState(false)\n const [appendDateToFile, setAppendDateToFile] = React.useState(false);\n const [appendSchema, setAppendSchema] = React.useState(true);\n const [moveItFolders, setMoveItFolders] = React.useState([]);\n const [outputFolder, setOutputFolder] = React.useState('');\n const [outputFolderOptions, setOutputFolderOptions] = React.useState([]);\n const [moveItFolderOptions, setMoveItFolderOptions] = React.useState([]);\n const [isTbValid, setIsTbValid] = React.useState(true);\n const [openEditorDialog, setOpenEditorDialog] = React.useState(false);\n\n const col1Width = 2;\n const col2Width = 2;\n\n React.useEffect(() => {\n if (row.moduleName !== undefined)\n api.getOutputFolderOptions(row).then(res => {\n setOutputFolderOptions(res.data);\n });\n }, []);\n\n React.useEffect(() => {\n if (row.moduleName !== undefined)\n api.getMoveItFolderOptions(row).then(res => {\n setMoveItFolderOptions(res.data);\n });\n }, []);\n\n React.useEffect(() => {\n if (!loading){\n setReportName(row.reportName);\n const rDelimiter = defaultDelimiterOptions.find((item) => item.value === row.delimiter) || {name:''};\n setDilimiter(rDelimiter.name);\n setCompression(row.compression || false);\n setLf(row.crlf || false);\n setImmediateDeliveryInd(row.immediateDeliveryInd || false);\n setAppendDateToFile(row.appendDate || false);\n setAppendSchema(row.appendSchema || false);\n setUnSuppressedAttributes(row.unSuppressAttributes || false);\n setAttrAtEnd(row.attributeAtEnd || false);\n setOutputFolder(row.regularFlatFileShare);\n setMoveItFolders(row.ffOptions.moveITFolders);\n }\n }, [row])\n\n const ifJson = (json) => {\n try {\n JSON.parse(json);\n } catch (e) {\n return false;\n }\n return true;\n } \n const handleReportNameChange = (event) => {\n if (event.target.value.length > 60 || event.target.value.length === 0)\n setIsTbValid(false);\n else \n setIsTbValid(true);\n \n setReportName(event.target.value);\n }\n\n const handleDelimiterTextboxChange = (event) => {\n if (event !== undefined && event.target !== undefined)\n setDilimiter(event.target.value);\n }\n const handleDelimiterAutoCompleteChange = (event, value) => {\n if (value !== undefined && value.name !== undefined)\n setDilimiter(value.name);\n }\n \n const handleCompressionChange = (event, value) => {\n setCompression(value);\n }\n\n const handleLfChange = (event, value) => {\n setLf(value);\n }\n\n const handleAppendDateChange = (event, value) => {\n setAppendDateToFile(value);\n }\n\n const handleImmediateDeliveryChange = (event, value) => {\n setImmediateDeliveryInd(value);\n }\n\n const handleOutputTextboxChange = (event, value) => {\n if (event !== undefined && event.target !== undefined)\n setOutputFolder(event.target.value);\n }\n const handleOutputAutoCompleteChange = (event, value) => {\n if (value !== undefined && value.name !== undefined)\n setOutputFolder(value.name);\n }\n const handleOutputOnBlur= (event) => {\n var value = outputFolderOptions.find(f => f.name === outputFolder);\n if (value === undefined)\n setOutputFolder('');\n }\n const handleMoveItTextboxChange = (event, value) => {\n if (event !== undefined && event.target !== undefined)\n setMoveItFolders(event.target.value);\n }\n const handleMoveItAutoCompleteChange = (event, value) => {\n if (value !== undefined)\n setMoveItFolders(value);\n }\n\n const onSaveClick = () => {\n var del = defaultDelimiterOptions.find(d => {return d.name === delimiter}).value;\n\n const updates = {\n immediateDeliveryInd: immediateDeliveryInd, \n zipped: compression,\n appendDateToFile: appendDateToFile,\n appendSchema: appendSchema,\n crlf: lf,\n delimiter: del,\n reportName: reportName,\n regularFlatFileShare: outputFolder,\n //moveItFolders: immediateDeliveryInd ? moveItFolders : [],\n moveItFolders: moveItFolders,\n UnSuppressAttributes: unSuppressedAttributes,\n attributeAtEnd: attrAtEnd\n }\n handleClose(row, updates);\n }\n\n return (\n \n \n \n \n \n \n Edit Report\n \n \n Report Name\n \n \n \n \n\n \n Line Feed (LF)\n \n \n \n \n\n \n UnSuppress Attributes\n \n \n setUnSuppressedAttributes(value) }>\n \n\n \n Output Folder\n \n \n item.name === row.outputFolder)}\n inputTerm={outputFolder}\n getOptionLabel={option => option.name} \n options={outputFolderOptions} \n placeholder={outputFolder}\n outlined={true} \n freeSolo={false}\n />\n \n\n \n Zipped\n \n \n \n \n\n \n Attributes at End\n \n \n setAttrAtEnd(value) }>\n \n \n \n Delimiter\n \n \n item.value === row.delimiter)}\n getOptionLabel={option => option.name} \n options={defaultDelimiterOptions} \n placeholder={delimiter}\n outlined={true}\n freeSolo={false}\n getOptionDisabled={(x) => x.name === ''}\n noOptionsText=\"Move It folder not available\"\n />\n \n\n \n Append Date\n \n \n \n \n\n \n Append Schema\n \n \n setAppendSchema(value)}>\n \n \n \n Move It Share\n \n \n \n \n 0 ? row.moveItFolders.split(',') : []} \n inputTerm={row.moveItFolders.length > 0 ? row.moveItFolders.split(',') : []} \n options={moveItFolderOptions} \n outlined={true} \n freeSolo={false}\n //disabled={!immediateDeliveryInd}\n />\n \n \n \n\n \n Immediate Delivery\n \n \n \n \n\n \n }\n > Cancel\n \n }\n > Save\n \n {appContext.appInfo.user.isSU &&\n setOpenEditorDialog(true)}\n size=\"small\"\n className={classes.button}\n startIcon={}\n > Show Json\n \n } \n \n \n \n \n \n )\n}\n\nReportEditor.propTypes = {\n row: PropTypes.shape({\n reportName: PropTypes.string.isRequired,\n }),\n}\n\nexport default ReportEditor;\n\n","import React from 'react';\nimport {Dialog, DialogTitle, DialogContent, DialogActions, Button} from '@material-ui/core';\nimport {JsonEditor as Editor} from 'jsoneditor-react';\nimport 'jsoneditor-react/es/editor.min.css';\nimport Ajv from 'ajv';\nimport {useApi} from 'components'\n\n\nexport default function JsonEditor(props){\n const { jsonObj, reportId, schemaId, open, setOpen } = props;\n const ajv = new Ajv({ allErrors: true, verbose: true });\n const [disableSave, setDisableSave] = React.useState(true);\n const [newJson, setNewJson] = React.useState(\"\");\n const api = useApi();\n \n const validateAndSaveJson = (newObj) => {\n setDisableSave(false);\n setNewJson(JSON.stringify(newObj));\n }\n\n const SaveFlatFile = () => {\n api.updateFlatFileOptions(reportId, newJson, schemaId)\n setOpen(false);\n }\n\n const handleClose = () => {\n setOpen(false);\n }\n\n return (\n \n Update Flat File Options\n \n setDisableSave(true)}\n >\n \n \n \n \n Cancel\n \n \n Save\n \n \n \n );\n}","//core components\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useSnackbar } from 'notistack';\n//material ui components\nimport { makeStyles, lighten } from '@material-ui/core/styles';\nimport { Typography, Tooltip, IconButton, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Button, Grid } from '@material-ui/core';\nimport {Send as BatchIcon, Today as BatchLater, CancelScheduleSend as RemoveIcon, Edit as EditIcon, Cached as RefreshIcon} from '@material-ui/icons';\n//custom components\nimport {GridContext, DataSourceContext, SearchContext} from 'context';\nimport {useApi, SelectedSearches} from 'components';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n //flexGrow:10,\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n justifyContent: 'flex-end',\n //height: 24,\n },\n highlight:{\n color: theme.palette.primary.main,\n backgroundColor: lighten(theme.palette.secondary.light, 0.75),\n //height: 24,\n },\n icon: {\n padding:'1px 5px 1px 1px',\n //margin: '0px 3px 3px 3px',\n fontSize:'23px',\n //lineHeight: '24px'\n }, \n title: {\n paddingRight: theme.spacing(3),\n fontSize:'12px',\n //flex: '1 1 100%',\n },\n alignRight: {\n textAlign: 'end'\n },\n}));\n\nexport default function EnhancedTableToolbar(props) {\n const classes = useStyles();\n const { numSelected, handleEdit, refresh } = props;\n const [dialogText, setDialogText] = React.useState('');\n const [reports, setReports] = React.useState([]);\n const [openDialog, setOpenDialog] = React.useState(false);\n const [action, setAction] = React.useState('');\n const gridContext = React.useContext(GridContext);\n const dataSourceContext = React.useContext(DataSourceContext);\n const searchContext = React.useContext(SearchContext);\n const { enqueueSnackbar } = useSnackbar();\n const api = useApi()\n\n\n const handleDialogClose = () => setOpenDialog(false);\n\n const handleDialogOpen = (action) => {\n setAction(action);\n const rpts = gridContext.rowsSelected.map((report) => {\n return report.reportName; \n }); \n setReports(rpts);\n switch(action){\n case 'batch': setDialogText('batch the following reports'); break;\n case 'batchnextload': setDialogText('batch the following reports with every data release'); break;\n case 'remove': setDialogText('remove the following reports from queue'); break;\n default: break;\n }\n\n setOpenDialog(true);\n }\n \n const handleDialogAction = () => {\n switch(action){\n case 'batch': handleBatch(); break;\n case 'batchnextload': handleBatchOnDataLoad(); break;\n case 'remove': handleUnQueue(); break;\n default: break;\n }\n }\n\n const batch = (data, callback) => {\n api.batchReport(data).then((res) => {\n if (callback)\n callback();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n }\n \n const handleBatch = () => {\n var rows = []\n gridContext.rowsSelected.map((row) => {\n row.scheduleEventTypeId = 1;\n const data = {\n reportName: row.reportName,\n reportId: row.reportId,\n module: row.moduleName,\n summarySourceTypeId: row.summarySourceTypeId,\n scheduleEventId: row.scheduleEventId,\n scheduleEventTypeId: row.scheduleEventTypeId,\n immediateDeliveryInd: row.immediateDeliveryInd,\n summarySchemaName: row.summarySchemaName,\n limitEndDateId: row.limitEndDateId,\n timePeriodKey: row.timePeriodKey,\n schemaId: dataSourceContext.targetEnvKey\n }\n rows.push(data);\n });\n\n batch(rows, refresh);\n handleDialogClose();\n };\n const handleBatchOnDataLoad = () => {\n var rows = []\n gridContext.rowsSelected.map((row) => {\n row.scheduleEventTypeId = 2;\n const data = {\n reportName: row.reportName,\n reportId: row.reportId,\n module: row.moduleName,\n summarySourceTypeId: row.summarySourceTypeId,\n scheduleEventId: row.scheduleEventId,\n scheduleEventTypeId: row.scheduleEventTypeId,\n immediateDeliveryInd: row.immediateDeliveryInd,\n summarySchemaName: row.summarySchemaName,\n limitEndDateId: row.limitEndDateId,\n timePeriodKey: row.timePeriodKey,\n schemaId: dataSourceContext.targetEnvKey\n }\n rows.push(data);\n });\n batch(rows, refresh);\n handleDialogClose();\n };\n const handleUnQueue = () => {\n gridContext.rowsSelected.map(r => {r.unqueueStatus = \"1, 2, 12\"});\n api.unqueueReport(gridContext.rowsSelected).then((res) => {\n handleDialogClose();\n if (refresh)\n refresh();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n };\n \n const GenerateSelectedSearches = () => {\n let searches = [];\n\n if (searchContext.reportName !== '')\n searches.push({key:\"Report Name:\", value : searchContext.reportName, handleDelete: () => {searchContext.setReportName(''); }});\n if (searchContext.folderName !== '')\n searches.push({key:\"Folder Name:\", value : searchContext.folderName, handleDelete: () => {searchContext.setFolderName(''); }});\n\n if (searchContext.createdBy !== '')\n searches.push({key:\"Created By: \", value: searchContext.createdBy, handleDelete: () => {searchContext.setCreatedBy(''); }});\n\n if (searchContext.immediateDeliveryInd !== '')\n searches.push({key:\"Immediate Delivery Ind: \", value: searchContext.immediateDeliveryInd, handleDelete: () => {searchContext.setImmediateDeliveryInd(''); }});\n\n if (searchContext.lf !== '')\n searches.push({key:\"Line Feed (LF): \" , value: searchContext.lf, handleDelete: () => {searchContext.setLf(''); }});\n\n if (searchContext.unSuppressAttributes !== '')\n searches.push({key:\"UnSuppress Attribute: \" , value: searchContext.unSuppressAttributes, handleDelete: () => {searchContext.setUnSuppressedAttributes(''); }});\n\n if (searchContext.attrAtEnd !== '')\n searches.push({key:\"Attribute At End: \" , value: searchContext.attrAtEnd, handleDelete: () => {searchContext.setAttrAtEnd(''); }});\n\n if (searchContext.appendDate !== '')\n searches.push({key:\"Append Date: \" , value: searchContext.appendDate, handleDelete: () => {searchContext.setAppendDate(''); }});\n\n if (searchContext.appendSchema !== '')\n searches.push({key:\"Append Schema: \" , value: searchContext.appendSchema, handleDelete: () => {searchContext.setAppendSchema(''); }});\n\n if (searchContext.zipped !== '')\n searches.push({key:\"Zipped: \" , value: searchContext.zipped, handleDelete: () => {searchContext.setZipped(''); }});\n\n if (searchContext.delimiter !== '')\n {\n var val = searchContext.delimiter;\n if (searchContext.delimiter == '\\t') \n val = 'TAB';\n searches.push({key:\"Delimiter: \" , value: val, handleDelete: () => {searchContext.setDelimiter(''); }});\n }\n\n if (searchContext.status !== undefined && searchContext.status.scheduleStatus !== undefined && searchContext.status.scheduleStatus !== 0)\n searches.push({key:\"Status: \", value: searchContext.status.displayName, handleDelete: () => {searchContext.setStatus({scheduleStatus: 0, displayName: \"\"}); }});\n \n if (searchContext.moveItShare !== '')\n searches.push({key:\"Move it Share: \" , value: searchContext.moveItShare, handleDelete: () => {searchContext.setMoveItShare(''); }});\n \n if (searchContext.batchEnddate !== null)\n searches.push({key:\"Batch To: \" , value: searchContext.batchEnddate.format(\"MM/DD/YYYY\"), handleDelete: () => {searchContext.setBatchEnddate(null); }});\n \n if (searchContext.batchStartdate !== null)\n searches.push({key:\"Batch From: \" , value: searchContext.batchStartdate.format(\"MM/DD/YYYY\"), handleDelete: () => {searchContext.setBatchStartdate(null); }});\n \n \n return searches;\n}\n\n return (\n\n \n \n \n \n \n \n {numSelected > 0 ? (\n \n {numSelected} reports selected\n \n ) : (\n \n \n \n )}\n \n \n \n \n refresh()} aria-label=\"refresh\" color=\"primary\">\n \n \n \n \n \n \n handleDialogOpen('batch')} aria-label=\"copy\" color=\"primary\" disabled={numSelected === 0}>\n \n \n \n \n \n \n handleDialogOpen('batchnextload')} aria-label=\"edit\" color=\"primary\" disabled={numSelected === 0}>\n \n \n \n \n \n \n handleDialogOpen('remove')} aria-label=\"delete\" color=\"primary\" disabled={numSelected === 0}>\n \n \n \n \n \n \n handleEdit(event, gridContext.rowsSelected[0].uniqueId)} aria-label=\"edit\" color=\"primary\" disabled={numSelected !== 1}>\n \n \n \n \n \n \n \n {\"Are you sure?\"}\n \n \n Are you sure you want to {dialogText}? \n {reports.map((r, i) => {\n const data = {i + 1}. {r};\n return data;\n\n })}\n \n \n \n \n Yes\n \n \n No\n \n \n \n\n \n );\n};\n\nEnhancedTableToolbar.propTypes = {\n numSelected: PropTypes.number.isRequired,\n};","import React, { useState } from 'react';\nimport {SearchContext} from 'context';\nimport {useApi} from 'components';\nimport {Search as SearchBase} from 'Topbar/Topbar/components'\n\nconst searchTypes = [{Name: 'Report Name', id: 0}, {Name:'Created By', id: 1}];\n\nexport default function Search(props) {\n const [inputTerm, setInputTerm] = useState('');\n const [searchType, setSearchType] = useState(0);\n const handleSearchTypeChange = event => { setSearchType(event.target.value); };\n const searchContext = React.useContext(SearchContext);\n const api = useApi();\n const handleTextBoxOnChange = (e, v) => {\n setInputTerm(e.target.value);\n };\n\n const handleAutoCompleteValueOnChange = (e, v) => {\n setInputTerm(e.target.value);\n if (typeof v === 'object') {\n setInputTerm(v.keyword);\n }\n handleSearch(v.keyword, v.searchType);\n };\n\n const handleOnEnter = event => {\n if (event.key === 'Enter') {\n handleSearch(event.target.value);\n }\n };\n\n const handleSearch = (term, stype) => {\n if (typeof term === 'object') {\n term = null;\n }\n\n var searchIcon = document.getElementById('searchIcon');\n if (Boolean(searchIcon)) {\n searchIcon.focus();\n }\n\n if (term !== undefined || inputTerm.length > 0) {\n if (searchType === 0){\n searchContext.setPage(1);\n searchContext.setCreatedBy('');\n searchContext.setReportName(term || inputTerm);\n }\n else {\n searchContext.setPage(1);\n searchContext.setReportName('');\n searchContext.setCreatedBy(term || inputTerm);\n }\n } \n };\n\n return (\n \n );\n}\n\n\nSearch.propTypes = {\n};\n\n","import React from 'react';\nimport { useSnackbar } from 'notistack';\nimport clsx from 'clsx';\n//material ui components\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport {Send as BatchIcon, Today as BatchLater, CancelScheduleSend as RemoveIcon } from '@material-ui/icons';\nimport { makeStyles } from '@material-ui/core/styles';\n//custom components\nimport {useApi} from 'components'\nimport {DataSourceContext} from 'context'\n\n\nconst useStyle = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexDirection:'row',\n },\n iconBtn: {\n padding: '0 2px',\n fontSize: '1rem',\n '& > span > svg':{\n fontSize: '1.2rem',\n }\n },\n colorError: {\n color: theme.palette.npd.orange\n },\n colorSuccess: {\n color: theme.palette.npd.green\n },\n hidden:{\n display:\"none\"\n },\n flexItem: {\n flexGrow: 1\n }\n})); \nconst renderAction = (row, action, classes, keyName) => {\n let item;\n switch (action.name) {\n case 'batch':\n if (!action.showOnRow) break;\n item = \n \n action.handler(keyName)}>\n \n \n \n \n break;\n case 'batchEveryRelease':\n if (!action.showOnRow) break;\n item = \n \n action.handler(keyName)}>\n \n \n \n \n break;\n case 'removeBatch':\n if (!action.showOnRow) break;\n item = \n \n action.handler('1, 2, 12')} size='small'>\n \n \n \n \n break;\n case 'refresh':\n if (!action.showOnRow) break;\n break;\n default:\n item = ;\n break;\n };\n return item;\n}\n\nexport default function TableActions(props){\n \n const {keyName, row, callback} = props;\n const classes = useStyle();\n const context = React.useContext(DataSourceContext);\n const api = useApi();\n const { enqueueSnackbar } = useSnackbar();\n \n const handleBatchClick = () => {\n row.scheduleEventTypeId = 1;\n const data = {\n reportName: row.reportName,\n reportId: row.reportId,\n module: row.moduleName,\n summarySourceTypeId: row.summarySourceTypeId,\n scheduleEventId: row.scheduleEventId,\n scheduleEventTypeId: row.scheduleEventTypeId,\n immediateDeliveryInd: row.immediateDeliveryInd,\n summarySchemaName: row.summarySchemaName,\n limitEndDateId: row.limitEndDateId,\n timePeriodKey: row.timePeriodKey,\n schemaId: context.targetEnvKey\n }\n api.batchReport([data]).then((res) => {\n if (callback)\n callback();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n }\n \n const handleBatchEveryReleaseClick = () => {\n if (row.isRunOnEachDataRelease) {\n handleUnqueueClick(7);\n return;\n }\n\n row.scheduleEventTypeId = 2;\n const data = {\n reportName: row.reportName,\n reportId: row.reportId,\n module: row.moduleName,\n summarySourceTypeId: row.summarySourceTypeId,\n scheduleEventId: row.scheduleEventId,\n scheduleEventTypeId: row.scheduleEventTypeId,\n immediateDeliveryInd: row.immediateDeliveryInd,\n summarySchemaName: row.summarySchemaName,\n limitEndDateId: row.limitEndDateId,\n timePeriodKey: row.timePeriodKey,\n schemaId: context.targetEnvKey\n }\n api.batchReport([data]).then((res) => {\n if (callback)\n callback();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n }\n \n const unqueueDisabledStatus = [1, 2, 12];\n const handleUnqueueClick = (status) => {\n row.unqueueStatus = status;\n api.unqueueReport([row]).then((res) => {\n if (callback)\n callback();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n }\n \n const isRemoveFromQueueDisabled = (reportId, scheduleStatus) => {\n return !(row.isPendingOrRunning);\n }\n\n const actions = \n [{name: 'batch', handler: handleBatchClick, isDisabled: isRemoveFromQueueDisabled, tooltip: 'Batch It Now', keyColumn: 'reportId', showOnRow: true}, \n {name: 'removeBatch', handler: handleUnqueueClick, isDisabled: isRemoveFromQueueDisabled, tooltip: 'Remove from Queue', keyColumn: 'reportId', showOnRow: true},\n {name: 'batchEveryRelease', handler: handleBatchEveryReleaseClick, tooltip: 'Batch It With Every Data Release', tooltipAlt: 'Remove from Queue', keyColumn: 'reportId',showOnRow: true}]\n \n return (\n \n {actions.map(action => {\n return renderAction(row, action, classes, keyName);\n })} \n \n );\n}","import React, { useState } from \"react\";\n\nimport {makeStyles} from '@material-ui/core';\nimport { useApi, CustomSelect } from 'components';\nimport { DataSourceContext } from 'context';\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n color: theme.palette.white,\n fontWeight: 600,\n fontSize: 12,\n marginRight : 23,\n marginLeft : 100\n }\n}));\n\nexport default function TargetEnvironmentDropdown(props) {\n const api = useApi();\n const classes = useStyles();\n const context = React.useContext(DataSourceContext);\n const selected = context.targetEnvKey;\n const setSelected = context.setTargetEnvKey;\n const [targets, setTargets] = React.useState([]);\n\n React.useEffect(() => {\n api.getTargetEnvironments().then((res) => {\n if (res.data !== undefined){\n setTargets(res.data);\n setSelected(res.data[0].id);\n context.setTargetEnvKey(res.data[0].id);\n }\n });\n }, [])\n\n return (\n \n TARGET ENVIRONMENT\n \n \n );\n}\n\nTargetEnvironmentDropdown.propTypes = {\n};\n","import React from 'react'\nimport clsx from 'clsx';\nimport MomentUtils from '@date-io/moment';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {Close as CloseIcon} from '@material-ui/icons'\nimport {Box, OutlinedInput, Button, Divider, Grid, Select, FormControl, IconButton, Typography} from '@material-ui/core';\nimport {MuiPickersUtilsProvider, KeyboardDatePicker } from '@material-ui/pickers';\nimport {useApi} from 'components'\nimport {SearchContext} from 'context'\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1,\n },\n typography: {\n padding: 3\n },\n iconOpenRoot:{\n color: theme.palette.common.white,\n backgroundColor: theme.palette.npd.darkBlue,\n borderRadius: 0,\n height: 48,\n width: 48,\n '&:hover':{\n color: theme.palette.common.white,\n backgroundColor: theme.palette.npd.darkBlue,\n }\n },\n iconRoot:{\n height: 48,\n width: 48,\n },\n button:{\n margin: 10\n },\n gridContainer:{\n padding: '3px 10px',\n },\n popperPaper:{\n width: 600,\n height: 540,\n padding: theme.spacing(1),\n whiteSpace: 'nowrap',\n marginBottom: theme.spacing(1),\n },\n textBox: {\n height:30,\n width: '100%',\n fontSize: 12,\n '&:input':{\n padding: \"0px 5px\"\n }\n },\n formControl:{\n width: '100%',\n },\n formControlLast:{\n width: '100%'\n },\n select: {\n padding: 8,\n fontSize: 12,\n width: '100%'\n },\n dense: {\n padding: 0,\n margin: 0,\n paddingRight: 2,\n width: '50%',\n '& > div > input':{\n padding: 8,\n fontSize: 12\n }\n },\n endAdornment: {\n padding: 0,\n '& > button':{\n padding: 0\n }\n },\n adornedEnd: {\n padding: 0\n },\n flexWrap: {\n display: 'flex',\n flexWrap: 'wrap'\n }\n }));\n\nconst checkBoxOptions = [{name: \"True\"},{name: \"False\"},{name: \"\"}];\nconst defaultDelimiterOptions = [{name: 'Comma (,)', value: ','},\n {name: 'Pipe (|)',value: '|'},\n {name: 'SemiColon (;)', value: ';'},\n {name: 'TAB', value: '\\t'},\n {name: '', value: ''}];\n\nexport default function AdvancedSearchForm(props){\n const classes = useStyles();\n const api = useApi();\n const {handleClose} = props;\n const searchContext = React.useContext(SearchContext);\n\n const [moveItFilters, setMoveItFilters] = React.useState([]);\n const [statusFilters, setStatusFilters] = React.useState([]);\n\n const [reportName, setReportName] = React.useState(searchContext.reportName);\n const [folderName, setFolderName] = React.useState(searchContext.folderName);\n const [createdBy, setCreatedBy] = React.useState(searchContext.createdBy);\n const [zipped, setZipped] = React.useState(searchContext.zipped);\n const [lf, setLf] = React.useState(searchContext.lf);\n const [unSuppressAttributes, setUnSuppressedAttributes] = React.useState(searchContext.unSuppressAttributes);\n const [attrAtEnd, setAttrAtEnd] = React.useState(searchContext.attrAtEnd);\n const [delimiter, setDelimiter] = React.useState(searchContext.delimiter);\n const [appendDate, setAppendDate] = React.useState(searchContext.appendDate);\n const [appendSchema, setAppendSchema] = React.useState(searchContext.appendSchema);\n const [immediateDeliveryInd, setImmediateDeliveryInd] = React.useState(searchContext.immediateDeliveryInd);\n const [status, setStatus] = React.useState(searchContext.status);\n const [moveItShare, setMoveItShare] = React.useState(searchContext.moveItShare);\n const [batchStartdate, setBatchStartdate] = React.useState(searchContext.batchStartdate);\n const [batchEnddate, setBatchEnddate] = React.useState(searchContext.batchEnddate);\n \n React.useEffect(() => {\n api.getMoveItFilters().then(res => {\n if (res && res.data)\n setMoveItFilters(res.data);\n });\n }, []);\n\n React.useEffect(() => {\n api.getStatusFilters().then(res => {\n if (res && res.data)\n setStatusFilters(res.data);\n });\n }, []);\n\n const onApplyClick = () => {\n setFilters(false);\n handleClose();\n }\n \n const onClearClick = () => {\n setCreatedBy('');\n setReportName('');\n setFolderName('');\n setZipped('');\n setLf('');\n setAppendDate('');\n setAppendSchema('');\n setUnSuppressedAttributes('');\n setAttrAtEnd('');\n setImmediateDeliveryInd('');\n setStatus({scheduleStatus: 0, displayName: \"\"});\n setDelimiter('');\n setMoveItShare('');\n setBatchEnddate(null);\n setBatchStartdate(null);\n setFilters(true);\n }\n const handleChange = (event, columnName) => {\n var value = event.target.value;\n switch(columnName){\n case 'createdBy': setCreatedBy(value); break;\n case 'reportName': setReportName(value); break;\n case 'folderName': setFolderName(value); break;\n }\n }\n\n const setFilters = (shouldClear) => {\n if (shouldClear){\n searchContext.setReportName('');\n searchContext.setFolderName('');\n searchContext.setCreatedBy('');\n searchContext.setZipped('');\n searchContext.setLf('');\n searchContext.setAppendDate('');\n searchContext.setAppendSchema('');\n searchContext.setDelimiter('');\n searchContext.setImmediateDeliveryInd('');\n searchContext.setStatus({scheduleStatus: 0, displayName: \"\"});\n searchContext.setMoveItShare('');\n searchContext.setBatchStartdate(null);\n searchContext.setBatchEnddate(null);\n searchContext.setUnSuppressedAttributes('');\n searchContext.setAttrAtEnd('');\n }\n else{\n searchContext.setReportName(reportName);\n searchContext.setFolderName(folderName);\n searchContext.setCreatedBy(createdBy);\n searchContext.setZipped(zipped);\n searchContext.setLf(lf);\n searchContext.setAppendDate(appendDate);\n searchContext.setAppendSchema(appendSchema);\n searchContext.setImmediateDeliveryInd(immediateDeliveryInd);\n searchContext.setStatus(status);\n searchContext.setDelimiter(delimiter);\n searchContext.setMoveItShare(moveItShare);\n searchContext.setBatchStartdate(batchStartdate);\n searchContext.setBatchEnddate(batchEnddate);\n searchContext.setUnSuppressedAttributes(unSuppressAttributes)\n searchContext.setAttrAtEnd(attrAtEnd);\n searchContext.setPage(1);\n }\n }\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Report Name\n handleChange(event, 'reportName')} classes={{root: classes.textBox}} variant='outlined'>\n \n\n \n Immediate Delivery\n \n setImmediateDeliveryInd(event.target.value)}\n classes={{root: classes.select}}\n value={immediateDeliveryInd}\n >\n { checkBoxOptions.map(item => {item.name})}\n \n \n \n\n \n Append Date\n \n setAppendDate(event.target.value)}\n classes={{root: classes.select}}\n value={appendDate}\n >\n { checkBoxOptions.map(item => {item.name})}\n \n \n \n\n \n Append Schema\n \n setAppendSchema(event.target.value)}\n classes={{root: classes.select}}\n value={appendSchema}\n >\n { checkBoxOptions.map(item => {item.name})}\n \n \n \n\n \n Delimiter\n \n setDelimiter(event.target.value)}\n classes={{root: classes.select}}\n value={delimiter}\n >\n { defaultDelimiterOptions.map(item => { return item.name !== '' ? {item.name} : {item.name}})}\n \n \n \n\n \n Move It Share\n \n setMoveItShare(event.target.value)}\n classes={{root: classes.select}}\n value={moveItShare}\n >\n { moveItFilters.map(item => {item})}\n \n \n \n\n \n Batched On\n \n setBatchStartdate(date)}\n />\n \n \n setBatchEnddate(date)}\n />\n \n \n\n \n \n \n \n \n Folder Name\n handleChange(event, 'folderName')} classes={{root: classes.textBox}} variant='outlined'>\n \n \n \n Created By\n handleChange(event, 'createdBy')} classes={{root: classes.textBox}} variant='outlined'>\n \n\n \n Line Feed (LF)\n \n setLf(event.target.value)}\n classes={{root: classes.select}}\n value={lf}\n >\n { checkBoxOptions.map(item => {item.name})}\n \n \n \n\n \n Zipped\n \n setZipped(event.target.value)}\n classes={{root: classes.select}}\n value={zipped}\n >\n { checkBoxOptions.map(item => {item.name})}\n \n \n \n\n \n Attributes At End\n \n setAttrAtEnd(event.target.value)}\n classes={{root: classes.select}}\n value={attrAtEnd}\n >\n { checkBoxOptions.map(item => {item.name})}\n \n \n \n \n \n UnSuppress Attributes\n \n setUnSuppressedAttributes(event.target.value)}\n classes={{root: classes.select}}\n value={unSuppressAttributes}\n >\n { checkBoxOptions.map(item => {item.name})}\n \n \n \n\n \n Status\n \n setStatus(statusFilters.find(i => i.scheduleStatus.toString() === event.target.value.toString()))}\n classes={{root: classes.select}}\n value={status.scheduleStatus}\n >\n { statusFilters.map(item => {item.displayName})}\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n Clear\n Apply\n {/* Cancel */}\n \n \n \n \n);\n}\n\nAdvancedSearchForm.propTypes = {\n handleClose: PropTypes.func\n};","import React, { useEffect, useState } from 'react';\nimport clsx from 'clsx';\nimport { useSnackbar } from 'notistack';\n// @material-ui/core components\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Grid, Collapse } from '@material-ui/core';\n// custom components\nimport { useApi, EnhancedTable, useWindowDimensions } from 'components'\nimport { DataSourceContext, SearchContext, GridContext, ApplicationContext } from 'context'\nimport { ReportEditor, Search, EnhancedTableToolbar, ActionCell, TargetEnvironmentDropdown, AdvancedSearchForm } from './Components'\nimport { Topbar } from 'Topbar'\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '98%',\n marginLeft: 10,\n backgroundColor: theme.palette.contentBackground,\n margin: 0\n },\n table: {\n minWidth: 500,\n },\n tableRowHighlight: {\n background: 'lightpink'\n }\n}));\n\nconst useStylesAgain = makeStyles(theme => ({\n showEditor: {\n display: 'block'\n },\n hideEditor: {\n display: 'none'\n },\n topbarHolder: {\n padding: '3px 12px'\n }\n}));\n\nconst rowsPerPageOptions = [10, 25, 50, 75, 100, 200, 500];\n\nexport default function FlatFileAdminTool() {\n const classes = useStyles();\n const localClasses = useStylesAgain();\n const api = useApi();\n const { enqueueSnackbar } = useSnackbar();\n const appContext = React.useContext(ApplicationContext);\n\n //state hooks\n const [flatFiles, setFlatFiles] = useState([]);\n const [loading, setLoading] = React.useState(false);\n const [totalCount, setTotalCount] = React.useState(0);\n const [page, setPage] = React.useState(1);\n const [pageSize, setPageSize] = React.useState(appContext.appInfo.user.rowsPerPage || 25);\n\n const [dataSources, setDataSources] = useState([]);\n const [dataSourceSelectedKey, setDataSourceSelectedKey] = React.useState('');\n const [targetEnvKey, setTargetEnvKey] = React.useState(1);\n const [orderBy, setOrderBy] = React.useState('reportName');\n const [orderByDirection, setOrderByDirection] = React.useState('asc');\n const [rowsSelected, setRowsSelected] = React.useState([]);\n const [editRow, setEditRow] = React.useState({ moveItFolders: '' })\n const [editing, setEditing] = React.useState(false)\n const [editReportLoading, setEditReportLoading] = React.useState(false);\n\n const [reportName, setReportName] = React.useState('');\n const [folderName, setFolderName] = React.useState('');\n const [createdBy, setCreatedBy] = React.useState('');\n const [zipped, setZipped] = React.useState('');\n const [lf, setLf] = React.useState('');\n const [unSuppressAttributes, setUnSuppressedAttributes] = React.useState('');\n const [attrAtEnd, setAttrAtEnd] = React.useState('');\n const [delimiter, setDelimiter] = React.useState('');\n const [appendDate, setAppendDate] = React.useState('');\n const [appendSchema, setAppendSchema] = React.useState('');\n const [immediateDeliveryInd, setImmediateDeliveryInd] = React.useState('');\n const [status, setStatus] = React.useState({scheduleStatus: 0, displayName: \"\"});\n const [moveItShare, setMoveItShare] = React.useState('');\n const [batchStartdate, setBatchStartdate] = React.useState(null);\n const [batchEnddate, setBatchEnddate] = React.useState(null);\n\n document.title = \"Flat File Admin Tool\";\n const appKey = 'ffa';\n\n const height = useWindowDimensions().height - 175 - (editing ? 202 : 0);\n\n const buildUpdates = (row) => {\n const updates = {\n immediateDeliveryInd: row.immediateDeliveryInd,\n zipped: row.compression,\n crlf: row.crlf,\n appendDateToFile: row.appendDate,\n delimiter: row.delimiter,\n reportName: row.reportName,\n regularFlatFileShare: row.regularFlatFileShare,\n moveItFolders: row.ffOptions.moveITFolders,\n unSuppressAttributes: row.unSuppressAttributes,\n attributeAtEnd: row.attributeAtEnd,\n appendSchema: row.appendSchema\n }\n return updates;\n };\n\n const getReport = (reportId) => {\n return flatFiles.find((i) => i.uniqueId === reportId);\n }\n\n const onImmediateDeliveryClick = (event, value) => {\n setLoading(true);\n const row = getReport(value);\n const oldRow = { ...row };\n row.immediateDeliveryInd = !row.immediateDeliveryInd;\n api.updateReport(oldRow, buildUpdates(row)).then((res) => {\n if (res.data && res.data.failed) {\n enqueueSnackbar(res.data.errorMessage, { variant: 'warning' });\n row.immediateDeliveryInd = !row.immediateDeliveryInd; //reset since there was error\n }\n loadFlatFiles();\n });\n }\n\n const onCheckboxClick = (event, value, column) => {\n setLoading(true);\n const row = getReport(value);\n row[column] = !row[column];\n api.updateReport(row, buildUpdates(row)).then((res) => {\n if (res.data && res.data.failed) {\n enqueueSnackbar(res.data.errorMessage, { variant: 'warning' });\n row[column] = !row[column]; \n }\n loadFlatFiles();\n });\n }\n\n const handleReportEdit = (event, reportId) => {\n if (rowsSelected.length > 1) {\n setEditing(false);\n setEditRow(null);\n return;\n }\n setEditing(false);\n setTimeout(() => {\n const row = flatFiles.find((item) => {\n return item.uniqueId === reportId;\n });\n setEditRow(row);\n setEditing(true);\n }, 1);\n }\n\n const columns =\n [{ field: 'reportName', type: 'link', label: 'Report Name', onClick: handleReportEdit },\n { field: 'folderName', type: 'string', label: 'Folder Name'},\n { field: 'createdBy', type: 'string', label: 'Created By' },\n { field: 'rundate', type: 'date', label: 'Last Batched On', format: 'MM-DD-YYYY hh:mm A', showTooltip: true, tooltipField:'lastRunDuration' },\n { field: 'compression', type: 'bool', label: 'Zipped', onClick: onCheckboxClick, disableSort: true },\n { field: 'crlf', type: 'bool', label: 'Line Feed(LF)', onClick: onCheckboxClick, disableSort: true },\n { field: 'unSuppressAttributes', type: 'bool', label: 'UnSuppress Attributes', onClick: onCheckboxClick, disableSort: true },\n { field: 'attributeAtEnd', type: 'bool', label: 'Attr At End', onClick: onCheckboxClick, disableSort: true },\n { field: 'delimiterDisplayName', type: 'string', label: 'Delimiter', disableSort: true },\n { field: 'appendDate', type: 'bool', label: 'Append Date', onClick: onCheckboxClick, disableSort: true },\n { field: 'appendSchema', type: 'bool', label: 'Append Schema', onClick: onCheckboxClick, disableSort: true },\n { field: 'regularFlatFileShare', type: 'string', label: 'Output Folder', disableSort: true },\n { field: 'statusNames', type: 'selectiveLinkWithTooltip', label: 'Status', showTooltip: true, onClick: () => {}, tooltipField:'tooltip' },\n { field: 'moveItFolders', type: 'string', label: 'Move It Share', disableSort: true },\n { field: 'immediateDeliveryInd', type: 'bool', label: 'Immediate Delivery', onClick: onImmediateDeliveryClick, disableSort: false, disabled: true, tooltip: \"Click on Report Name to edit this field.\" },\n { field: 'actions', type: 'action', label: '', disableSort: true }]\n\n const handleClose = (row, updates) => {\n if (row && updates) {\n api.updateReport(row, updates).then((res) => {\n if (res.data && res.data.failed)\n enqueueSnackbar(res.data.errorMessage, { variant: 'warning' });\n else {\n setLoading(true);\n loadFlatFiles();\n }\n });\n }\n setEditing(false);\n }\n\n const onChangePage = (newPage) => {\n setPage(newPage);\n }\n const onPageSizeChange = (newPageSize) => {\n setPage(1);\n api.saveRowPerPage({rowsPerPageOptions: newPageSize});\n appContext.appInfo.user.rowsPerPage = newPageSize;\n setPageSize(newPageSize);\n }\n const onRequestSort = order => {\n setOrderBy(order.orderBy);\n setOrderByDirection(order.order)\n }\n\n const isRowHighlighted = (row) => {\n if (row.lastRunDurationInSec === 0) return false;\n return row.currentRunDuration > row.lastRunDurationInSec;\n }\n\n const loadFlatFiles = () => {\n setLoading(true);\n setEditing(false);\n setRowsSelected([]);\n let sortInfo = '';\n if (orderBy !== '' && orderBy !== undefined && orderBy !== null) {\n const orderCol = columns.find((item) => orderBy === item.label || orderBy === item.field).field;\n sortInfo = \"[{'Property': '\" + orderCol + \"' , 'direction' : '\" + orderByDirection + \"' }]\";\n }\n let filter = {\n reportName: reportName,\n createdBy: createdBy,\n status: status.scheduleStatus,\n schemaId: targetEnvKey\n };\n if (folderName !== '') filter.folderName = folderName;\n if (immediateDeliveryInd !== '') filter.immediateDeliveryInd = immediateDeliveryInd === 'True' ? true : false;\n if (lf !== '') filter.crlf = lf === 'True' ? true : false;\n if (unSuppressAttributes !== '') filter.unSuppressAttributes = unSuppressAttributes === 'True' ? true : false;\n if (attrAtEnd !== '') filter.attributeAtEnd = attrAtEnd === 'True' ? true : false;\n if (appendDate !== '') filter.appendDateToFile = appendDate === 'True' ? true : false;\n if (appendSchema !== '') filter.appendSchema = appendSchema === 'True' ? true : false;\n if (zipped !== '') filter.zipped = zipped === 'True' ? true : false;\n if (delimiter !== '') filter.delimiter = delimiter;\n if (moveItShare !== '') filter.moveItShare = moveItShare;\n if (batchEnddate !== null) filter.batchToDate = batchEnddate;\n if (batchStartdate !== null) filter.batchFromDate = batchStartdate;\n\n let options = { page: page, pageSize: pageSize, token: dataSourceSelectedKey, sortInfo: sortInfo, filter: filter }\n\n if (dataSourceSelectedKey !== '') {\n api.getFlatFiles(options).then(res => {\n setFlatFiles(res.data.data);\n setEditRow(res.data.data[0]);\n setPage(res.data.page);\n setPageSize(res.data.pageSize);\n setTotalCount(res.data.totalCount);\n setLoading(false);\n })\n }\n }\n\n useEffect(() => {\n setLoading(true);\n loadFlatFiles();\n setPage(1);\n }, [dataSourceSelectedKey]);\n\n\n //effect hooks\n useEffect(() => {\n setLoading(true);\n loadFlatFiles();\n\n }, [page, pageSize, orderBy, orderByDirection, reportName, folderName, createdBy, zipped, delimiter, lf, unSuppressAttributes, attrAtEnd, appendDate, appendSchema, immediateDeliveryInd, status, batchEnddate, batchStartdate, moveItShare, targetEnvKey]);\n\n return (\n \n \n \n \n \n \n \n \n {editing && }\n \n \n \n \n \n \n \n \n );\n}","import React, { useState } from 'react';\nimport {SearchContext} from 'context';\nimport {useApi} from 'components';\nimport {Search as SearchBase} from 'Topbar/DCTopbar/components'\n\nconst searchTypes = [{Name: 'Data Source', id: 0}, {Name: 'Module', id: 1}];\n\nexport default function Search(props) {\n const [inputTerm, setInputTerm] = useState('');\n const [searchType, setSearchType] = useState(0);\n const handleSearchTypeChange = event => { setSearchType(event.target.value); };\n const searchContext = React.useContext(SearchContext);\n const api = useApi();\n const handleTextBoxOnChange = (e, v) => {\n setInputTerm(e.target.value);\n };\n\n const handleAutoCompleteValueOnChange = (e, v) => {\n setInputTerm(e.target.value);\n if (typeof v === 'object') {\n setInputTerm(v.keyword);\n }\n handleSearch(v.keyword, v.searchType);\n };\n\n const handleOnEnter = event => {\n if (event.key === 'Enter') {\n handleSearch(event.target.value);\n }\n };\n\n const handleSearch = (term, stype) => {\n if (typeof term === 'object') {\n term = null;\n }\n\n var searchIcon = document.getElementById('searchIcon');\n if (Boolean(searchIcon)) {\n searchIcon.focus();\n }\n\n if (term !== undefined || inputTerm.length > 0) {\n if (searchType === 0){\n searchContext.setPage(1);\n searchContext.setModule('');\n searchContext.setDataSource(term || inputTerm);\n }\n else {\n searchContext.setPage(1);\n searchContext.setDataSource('');\n searchContext.setModule(term || inputTerm);\n }\n } \n };\n\n return (\n \n );\n}\n\n\nSearch.propTypes = {\n};\n\n","import React from 'react';\nimport { useSnackbar } from 'notistack';\nimport clsx from 'clsx';\n//material ui components\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport {Send as BatchIcon, Today as BatchLater, CancelScheduleSend as RemoveIcon } from '@material-ui/icons';\nimport { makeStyles } from '@material-ui/core/styles';\n//custom components\nimport {useApi} from 'components'\nimport {DataSourceContext} from 'context'\n\n\nconst useStyle = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexDirection:'row',\n },\n iconBtn: {\n padding: '0 2px',\n fontSize: '1rem',\n '& > span > svg':{\n fontSize: '1.2rem',\n }\n },\n colorError: {\n color: theme.palette.npd.orange\n },\n colorSuccess: {\n color: theme.palette.npd.green\n },\n hidden:{\n display:\"none\"\n },\n flexItem: {\n flexGrow: 1\n }\n})); \nconst renderAction = (row, action, classes, keyName) => {\n let item;\n switch (action.name) {\n case 'batch':\n if (!action.showOnRow) break;\n item = \n \n action.handler(keyName)}>\n \n \n \n \n break;\n case 'batchEveryRelease':\n if (!action.showOnRow) break;\n item = \n \n action.handler(keyName)}>\n \n \n \n \n break;\n case 'removeBatch':\n if (!action.showOnRow) break;\n item = \n \n action.handler('1, 2, 12')} size='small'>\n \n \n \n \n break;\n case 'refresh':\n if (!action.showOnRow) break;\n break;\n default:\n item = ;\n break;\n };\n return item;\n}\n\nexport default function TableActions(props){\n \n const {keyName, row, callback} = props;\n const classes = useStyle();\n const context = React.useContext(DataSourceContext);\n const api = useApi();\n const { enqueueSnackbar } = useSnackbar();\n \n const handleBatchClick = () => {\n row.scheduleEventTypeId = 1;\n const data = {\n reportName: row.reportName,\n reportId: row.reportId,\n module: row.moduleName,\n summarySourceTypeId: row.summarySourceTypeId,\n scheduleEventId: row.scheduleEventId,\n scheduleEventTypeId: row.scheduleEventTypeId,\n immediateDeliveryInd: row.immediateDeliveryInd,\n summarySchemaName: row.summarySchemaName,\n limitEndDateId: row.limitEndDateId,\n timePeriodKey: row.timePeriodKey,\n schemaId: context.targetEnvKey\n }\n api.batchReport([data]).then((res) => {\n if (callback)\n callback();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n }\n \n const handleBatchEveryReleaseClick = () => {\n if (row.isRunOnEachDataRelease) {\n handleUnqueueClick(7);\n return;\n }\n\n row.scheduleEventTypeId = 2;\n const data = {\n reportName: row.reportName,\n reportId: row.reportId,\n module: row.moduleName,\n summarySourceTypeId: row.summarySourceTypeId,\n scheduleEventId: row.scheduleEventId,\n scheduleEventTypeId: row.scheduleEventTypeId,\n immediateDeliveryInd: row.immediateDeliveryInd,\n summarySchemaName: row.summarySchemaName,\n limitEndDateId: row.limitEndDateId,\n timePeriodKey: row.timePeriodKey,\n schemaId: context.targetEnvKey\n }\n api.batchReport([data]).then((res) => {\n if (callback)\n callback();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n }\n \n const unqueueDisabledStatus = [1, 2, 12];\n const handleUnqueueClick = (status) => {\n row.unqueueStatus = status;\n api.unqueueReport([row]).then((res) => {\n if (callback)\n callback();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n }\n \n const isRemoveFromQueueDisabled = (reportId, scheduleStatus) => {\n return !(row.isPendingOrRunning);\n }\n\n const actions = \n [{name: 'batch', handler: handleBatchClick, isDisabled: isRemoveFromQueueDisabled, tooltip: 'Batch It Now', keyColumn: 'reportId', showOnRow: true}, \n {name: 'removeBatch', handler: handleUnqueueClick, isDisabled: isRemoveFromQueueDisabled, tooltip: 'Remove from Queue', keyColumn: 'reportId', showOnRow: true},\n {name: 'batchEveryRelease', handler: handleBatchEveryReleaseClick, tooltip: 'Batch It With Every Data Release', tooltipAlt: 'Remove from Queue', keyColumn: 'reportId',showOnRow: true}]\n \n return (\n \n {actions.map(action => {\n return renderAction(row, action, classes, keyName);\n })} \n \n );\n}","//core components\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useSnackbar } from 'notistack';\n//material ui components\nimport { makeStyles, lighten } from '@material-ui/core/styles';\nimport { Typography, Tooltip, IconButton, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Button, Grid } from '@material-ui/core';\nimport {Send as BatchIcon, Today as BatchLater, CancelScheduleSend as RemoveIcon, Edit as EditIcon, Cached as RefreshIcon} from '@material-ui/icons';\n//custom components\nimport {GridContext, DataSourceContext, SearchContext} from 'context';\nimport {useApi, SelectedSearches} from 'components';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n //flexGrow:10,\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n justifyContent: 'flex-end',\n //height: 24,\n },\n highlight:{\n color: theme.palette.primary.main,\n backgroundColor: lighten(theme.palette.secondary.light, 0.75),\n //height: 24,\n },\n icon: {\n padding:'1px 5px 1px 1px',\n //margin: '0px 3px 3px 3px',\n fontSize:'23px',\n //lineHeight: '24px'\n }, \n title: {\n paddingRight: theme.spacing(3),\n fontSize:'12px',\n //flex: '1 1 100%',\n },\n alignRight: {\n textAlign: 'end'\n },\n}));\n\nexport default function EnhancedTableToolbar(props) {\n const classes = useStyles();\n const { numSelected, handleEdit, refresh } = props;\n const [dialogText, setDialogText] = React.useState('');\n const [reports, setReports] = React.useState([]);\n const [openDialog, setOpenDialog] = React.useState(false);\n const [action, setAction] = React.useState('');\n const gridContext = React.useContext(GridContext);\n const dataSourceContext = React.useContext(DataSourceContext);\n const searchContext = React.useContext(SearchContext);\n const { enqueueSnackbar } = useSnackbar();\n const api = useApi()\n\n\n const handleDialogClose = () => setOpenDialog(false);\n\n const handleDialogOpen = (action) => {\n setAction(action);\n const rpts = gridContext.rowsSelected.map((report) => {\n return report.reportName; \n }); \n setReports(rpts);\n switch(action){\n case 'batch': setDialogText('batch the following reports'); break;\n case 'batchnextload': setDialogText('batch the following reports with every data release'); break;\n case 'remove': setDialogText('remove the following reports from queue'); break;\n default: break;\n }\n\n setOpenDialog(true);\n }\n \n const handleDialogAction = () => {\n switch(action){\n case 'batch': handleBatch(); break;\n case 'batchnextload': handleBatchOnDataLoad(); break;\n case 'remove': handleUnQueue(); break;\n default: break;\n }\n }\n\n const batch = (data, callback) => {\n api.batchReport(data).then((res) => {\n if (callback)\n callback();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n }\n \n const handleBatch = () => {\n var rows = []\n gridContext.rowsSelected.map((row) => {\n row.scheduleEventTypeId = 1;\n const data = {\n reportName: row.reportName,\n reportId: row.reportId,\n module: row.moduleName,\n summarySourceTypeId: row.summarySourceTypeId,\n scheduleEventId: row.scheduleEventId,\n scheduleEventTypeId: row.scheduleEventTypeId,\n immediateDeliveryInd: row.immediateDeliveryInd,\n summarySchemaName: row.summarySchemaName,\n limitEndDateId: row.limitEndDateId,\n timePeriodKey: row.timePeriodKey,\n schemaId: dataSourceContext.targetEnvKey\n }\n rows.push(data);\n });\n\n batch(rows, refresh);\n handleDialogClose();\n };\n const handleBatchOnDataLoad = () => {\n var rows = []\n gridContext.rowsSelected.map((row) => {\n row.scheduleEventTypeId = 2;\n const data = {\n reportName: row.reportName,\n reportId: row.reportId,\n module: row.moduleName,\n summarySourceTypeId: row.summarySourceTypeId,\n scheduleEventId: row.scheduleEventId,\n scheduleEventTypeId: row.scheduleEventTypeId,\n immediateDeliveryInd: row.immediateDeliveryInd,\n summarySchemaName: row.summarySchemaName,\n limitEndDateId: row.limitEndDateId,\n timePeriodKey: row.timePeriodKey,\n schemaId: dataSourceContext.targetEnvKey\n }\n rows.push(data);\n });\n batch(rows, refresh);\n handleDialogClose();\n };\n const handleUnQueue = () => {\n gridContext.rowsSelected.map(r => {r.unqueueStatus = \"1, 2, 12\"});\n api.unqueueReport(gridContext.rowsSelected).then((res) => {\n handleDialogClose();\n if (refresh)\n refresh();\n if (res.data)\n enqueueSnackbar(res.data, { variant: 'error' });\n });\n };\n \n const GenerateSelectedSearches = () => {\n let searches = [];\n\n if (searchContext.dataSource !== '')\n searches.push({key:\"Data Source:\", value : searchContext.dataSource, handleDelete: () => {searchContext.setDataSource(''); }});\n\n if (searchContext.module !== '')\n searches.push({key:\"Module:\", value : searchContext.module, handleDelete: () => {searchContext.setModule(''); }});\n\n if (searchContext.status !== undefined && searchContext.status.scheduleStatus !== undefined && searchContext.status.scheduleStatus !== 0)\n searches.push({key:\"Status: \", value: searchContext.status.displayName, handleDelete: () => {searchContext.setStatus({scheduleStatus: 0, displayName: \"\"}); }}); \n \n return searches;\n}\n\n return (\n\n \n \n \n \n \n \n {numSelected > 0 ? (\n \n {numSelected} reports selected\n \n ) : (\n \n \n \n )}\n \n \n \n \n refresh()} aria-label=\"refresh\" color=\"primary\">\n \n \n \n \n \n \n \n {\"Are you sure?\"}\n \n \n Are you sure you want to {dialogText}? \n {reports.map((r, i) => {\n const data = {i + 1}. {r};\n return data;\n\n })}\n \n \n \n \n Yes\n \n \n No\n \n \n \n\n \n );\n};\n\nEnhancedTableToolbar.propTypes = {\n numSelected: PropTypes.number.isRequired,\n};","import React, { useState } from \"react\";\n\nimport {makeStyles} from '@material-ui/core';\nimport { useApi, CustomSelect } from 'components';\nimport { DataSourceContext } from 'context';\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n color: theme.palette.white,\n fontWeight: 600,\n fontSize: 12,\n marginRight : 23,\n marginLeft : 100\n }\n}));\n\nexport default function TargetEnvironmentDropdown(props) {\n const api = useApi();\n const classes = useStyles();\n const context = React.useContext(DataSourceContext);\n const selected = context.targetEnvKey;\n const setSelected = context.setTargetEnvKey;\n const [targets, setTargets] = React.useState([]);\n\n React.useEffect(() => {\n api.getTargetEnvironments().then((res) => {\n if (res.data !== undefined){\n setTargets(res.data);\n setSelected(res.data[0].id);\n context.setTargetEnvKey(res.data[0].id);\n }\n });\n }, [])\n\n return (\n \n TARGET ENVIRONMENT\n \n \n );\n}\n\nTargetEnvironmentDropdown.propTypes = {\n};\n","import React, { useEffect, useState } from 'react';\nimport clsx from 'clsx';\nimport { useSnackbar } from 'notistack';\n\n// @material-ui/core components\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Grid, Collapse } from '@material-ui/core';\n\n// custom components\nimport { useApi, EnhancedTable, useWindowDimensions } from 'components'\nimport { DataSourceContext, SearchContext, GridContext, ApplicationContext } from 'context'\nimport { Search, EnhancedTableToolbar, ActionCell, TargetEnvironmentDropdown } from './Components'\nimport { DCTopbar } from 'Topbar'\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '98%',\n marginLeft: 10,\n backgroundColor: theme.palette.contentBackground,\n margin: 0\n },\n table: {\n minWidth: 500,\n }\n}));\n\nconst useStylesAgain = makeStyles(theme => ({\n showEditor: {\n display: 'block'\n },\n hideEditor: {\n display: 'none'\n },\n topbarHolder: {\n padding: '3px 12px'\n }\n}));\n\nconst rowsPerPageOptions = [10, 25, 50, 75, 100, 200, 500];\n\nexport default function FlatFileAdminTool() {\n\n const classes = useStyles();\n const localClasses = useStylesAgain();\n const api = useApi();\n const { enqueueSnackbar } = useSnackbar();\n const appContext = React.useContext(ApplicationContext);\n\n //state hooks\n const [loading, setLoading] = React.useState(false);\n const [totalCount, setTotalCount] = React.useState(0);\n const [page, setPage] = React.useState(1);\n const [pageSize, setPageSize] = React.useState(appContext.appInfo.user.rowsPerPage || 25);\n\n const [orderBy, setOrderBy] = React.useState('dataSource');\n const [orderByDirection, setOrderByDirection] = React.useState('asc');\n\n const [rowsSelected, setRowsSelected] = React.useState([]);\n const [editRow, setEditRow] = React.useState({ moveItFolders: '' })\n const [editing, setEditing] = React.useState(false)\n const [editReportLoading, setEditReportLoading] = React.useState(false);\n\n const [dataSourceSelectedKey, setDataSourceSelectedKey] = React.useState('');\n const [targetEnvKey, setTargetEnvKey] = React.useState(1);\n const [dataSources, setImmediateFrequencies] = React.useState([]);\n const [dataSource, setDataSource] = React.useState('');\n const [module, setModule] = React.useState('');\n const [summarySource, setSummarySource] = React.useState('');\n const [rootFolder, setRootFolder] = React.useState('');\n const [runDaemon, setRunDaemon] = React.useState('');\n\n const [searchTitle, setSearchTitle] = React.useState('');\n const [filterCount, setFilterCount] = React.useState(0);\n\n document.title = \"Immediate Delivery Configuration\";\n const appKey = 'idc';\n\n const height = useWindowDimensions().height - 175;\n\n React.useEffect(() => {\n setLoading(true);\n loadDataSources();\n }, []);\n\n const handleClose = (row, updates) => {\n if (row && updates) {\n api.updateReport(row, updates).then((res) => {\n if (res.data && res.data.failed)\n enqueueSnackbar(res.data.errorMessage, { variant: 'warning' });\n else {\n setLoading(true);\n loadDataSources();\n }\n });\n }\n }\n\n const onChangePage = (newPage) => {\n setPage(newPage);\n }\n \n const onPageSizeChange = (newPageSize) => {\n setPage(1);\n api.saveRowPerPage({rowsPerPageOptions: newPageSize});\n appContext.appInfo.user.rowsPerPage = newPageSize;\n setPageSize(newPageSize);\n }\n\n const onRequestSort = order => {\n setOrderBy(order.orderBy);\n setOrderByDirection(order.order)\n }\n\n const getDataSource = (dsId) => {\n return dataSources.find((i) => i.uniqueId === dsId);\n }\n\n const onImmediateDeliveryClick = (event, value) => {\n setLoading(true);\n const row = getDataSource(value);\n //const oldRow = { ...row };\n row.isRunDaemon = !row.isRunDaemon;\n api.updateImmediateFrequency(row.uniqueId, row.isRunDaemon).then((res) => {\n if (res.data && res.data.failed) {\n enqueueSnackbar(res.data.errorMessage, { variant: 'warning' });\n row.isRunDaemon = !row.isRunDaemon; //reset since there was error\n }\n loadDataSources();\n });\n }\n\n const columns =\n [{field: 'dataSource', type: 'string', label: 'Data Source'},\n { field: 'module', type: 'string', label: 'Module'} ,\n { field: 'summarySource', type: 'string', label: 'Summary Source', disableSort: true},\n { field: 'rootFolder', type: 'string', label: 'Root Folder', disableSort: true},\n { field: 'isRunDaemon', type: 'bool', label: 'Enable Delivery', onClick: onImmediateDeliveryClick}]\n\n\n const loadDataSources = () => {\n setLoading(true);\n setRowsSelected([]);\n\n let sortInfo = '';\n if (orderBy !== '' && orderBy !== undefined && orderBy !== null) {\n const orderCol = columns.find((item) => orderBy === item.label || orderBy === item.field).field;\n sortInfo = \"[{'Property': '\" + orderCol + \"' , 'direction' : '\" + orderByDirection + \"' }]\";\n }\n let filter = {\n dataSource: dataSource,\n module: module,\n schemaId: targetEnvKey\n };\n\n let options = { page: page, pageSize: pageSize, token: dataSourceSelectedKey, sortInfo: sortInfo, filter: filter };\n\n //if (dataSourceSelectedKey !== '') {\n api.getImmediateFrequencies(options).then(res => {\n setImmediateFrequencies(res.data.data);\n setPage(res.data.page);\n setPageSize(res.data.pageSize);\n setTotalCount(res.data.totalCount);\n setLoading(false);\n })\n //}\n }\n\n //effect hooks\n useEffect(() => {\n setLoading(true);\n loadDataSources();\n }, [page, pageSize, orderBy, orderByDirection, dataSource, module, summarySource, rootFolder, runDaemon, targetEnvKey]);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n}","import React from \"react\";\nimport { makeStyles, Card, CardContent, Typography } from \"@material-ui/core\";\nimport { GetApp } from \"@material-ui/icons\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: 150,\n height: 100,\n cursor: \"pointer\",\n margin: 10,\n alignContent: \"CardContent\",\n '&:hover': {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.common.white\n }\n }\n}));\n\nexport default function AppTile(props) {\n const { link, labelText, icon, target } = props;\n const classes = useStyles();\n return (\n window.open(link, target)}\n className={classes.root}\n variant=\"outlined\"\n >\n \n {icon}\n \n {labelText} \n \n \n \n );\n}\n","import React from 'react';\nimport { Typography, Grid, makeStyles } from '@material-ui/core';\nimport {ApplicationContext} from 'context'\nimport AppTile from './Components/AppTile'\nimport {NFTopbar} from 'Topbar'\nimport Pages from 'Pages'\n\nconst useStyle = makeStyles((theme) => ({\n root:{\n margin: 60,\n textAlign: 'center'\n },\n cardRoot: {\n minWidth: 150,\n cursor: \"pointer\",\n alignContent: \"CardContent\"\n },\n}));\n\nexport default function NotFound() { \n const classes = useStyle();\n const appContext = React.useContext(ApplicationContext)\n const isVisible = (keys) =>{\n var item = keys.map(k => appContext.appInfo.user[k])\n if (item.indexOf(true) > -1)\n return true;\n return false;\n } \n\n document.title = \"Page not found\";\n\n return (\n \n \n \n \n \n \n \n \n 404\n URL not found\n The page you are looking for is not present. Here is what you can do... \n \n \n \n {Pages.map(page => (isVisible(page.isVisibleKey) && \n \n ))}\n \n \n \n \n \n );\n}\n","import React from 'react';\nimport { Route } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport MainLayout from './Main'\nimport { ApplicationContext } from 'context'\n\nconst RouteWithLayout = props => {\n const { component: Component, secure = true, layout = null, keyName, ...rest } = props;\n const context = React.useContext(ApplicationContext);\n const Layout = Boolean(layout) ? layout : MainLayout;\n return (\n secure ?\n (\n \n \n \n ) :\n (\n \n \n \n )}\n />\n );\n};\n\nRouteWithLayout.propTypes = {\n component: PropTypes.any.isRequired,\n path: PropTypes.string\n};\n\nexport default RouteWithLayout;\n","import React from 'react'\nimport { Switch, Redirect, Route } from 'react-router-dom'\n\nimport { ClientCenter, FileCenter, FlatFileAdminTool, DeliveryConfig, ODataCollection, CollectionsListHome as WorkbooksListView, } from './views'\nimport { NotFound } from 'layouts'\nimport RouteWithLayout from './layouts/RouteWithLayout'\nimport { ApplicationContext } from 'context';\nimport { MainWithTopbar } from 'layouts';\n\nconst Routes = () => {\n const context = React.useContext(ApplicationContext);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Routes;","import React, {useState, useEffect} from 'react'\nimport {useApi} from 'components'\nimport {ApplicationContext} from 'context'\nimport { makeStyles } from '@material-ui/core/styles';\nimport { LinearProgress } from '@material-ui/core';\nimport ImpersonateService from 'services/api/Impersonation';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '100%',\n '& > * + *': {\n marginTop: theme.spacing(2),\n },\n },\n}));\n\nconst windowRedirect = () => {\n let win = window.top || window,\n redirectPath = win.location.origin;\n\n redirectPath = redirectPath + '/home';\n win.location.assign(redirectPath);\n\n }\n\n \nexport default function Auth(props) {\n const { children, ...rest } = props;\n const [isAuthenticated, setIsAuthenticated] = useState(false);\n const [appInfo, setAppInfo] = React.useState({\n user:{firstName:'', lastName: ''},\n copyright: ''\n });\n const api = useApi();\n const classes = useStyles();\n useEffect(() => {\n api.isAuthenticated().then(res => {\n const isAuthenticated = res.data.isAuthenticated;\n if (!res.data.isAuthenticated)\n windowRedirect();\n else {\n api.getAppInfo().then(res => {\n if (!res.data.user.hasAccess && !res.data.user.isImpersonating){\n window.location = \"/account/accessdenied\";\n }\n \n\n if (res.data.user.hasCCAccess)\n res.data.home = \"/clientcenter\";\n else if (res.data.user.hasFCAccess)\n res.data.home = \"/filecenter\";\n else if(res.data.user.hasFFAAccess)\n res.data.home = \"/flatfileadmintool\";\n else if(res.data.user.hasCollectionsAccess)\n res.data.home = \"/workbooks\"; \n setAppInfo({...res.data });\n setIsAuthenticated(isAuthenticated);\n \n });\n }\n });\n }, []);\n\n return isAuthenticated ? {children} : ;\n}\n","import React, { Component } from 'react'\nimport {BrowserRouter} from 'react-router-dom'\nimport { ThemeProvider } from '@material-ui/core/styles';\n\nimport theme from 'theme'\nimport Routes from './routes'\nimport Auth from 'services/authService'\n\nexport default class App extends Component {\n render(){\n return (\n \n \n \n \n \n \n \n );\n }\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.1/8 is 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\nexport function register(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(process.env.PUBLIC_URL, window.location.href);\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, 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, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\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.then(registration => {\n registration.unregister();\n });\n }\n}\n","import 'react-app-polyfill/ie11';\nimport 'react-app-polyfill/stable';\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}