{"version":3,"sources":["TelemetryService.js","telemetry-provider.jsx","components/Errorlog/ErrorBoundary.js","pages/Home/Home.js","components/CreateWorkspace/ProjectDetails/Suggestions.js","components/CreateWorkspace/ProjectDetails/ProjectDetails.js","components/Upload/Progress.js","components/Upload/DragDrop/DragDrop.js","components/Upload/FileList/FileList.js","components/ExportExcel.js","components/Upload/StampGrid/ReactFilter/filterListItem.js","components/Upload/StampGrid/DataGridPopup.js","components/Upload/StampGrid/ReactFilter/selectAllItem.js","components/Upload/StampGrid/ReactFilter/lib/util.js","components/Upload/StampGrid/ReactFilter/searchBar.js","components/Upload/StampGrid/ReactFilter/lib/eventStack/eventTarget.js","components/Upload/StampGrid/ReactFilter/lib/eventStack/normalizeTarget.js","components/Upload/StampGrid/ReactFilter/lib/eventStack/index.js","components/Upload/StampGrid/ReactFilter/lib/eventStack/eventStack.js","components/Upload/StampGrid/ReactFilter/filterIcon.js","components/Upload/StampGrid/ReactFilter/sortIcon.js","components/Upload/StampGrid/ReactFilter/filterList.js","components/Upload/StampGrid/ReactFilter/lib/constants.js","components/Upload/StampGrid/ReactFilter/lib/sort.js","components/Upload/StampGrid/ReactFilter/lib/filter.js","components/Upload/StampGrid/ReactFilter/template.js","components/Upload/StampGrid/ReactFilter/index.js","components/Upload/StampGrid/PagerPID/PagerSR.js","components/Upload/StampGrid/StampGridTable.js","components/Upload/BatchTable.js","components/Upload/StampGrid/StampGrid.js","components/UploadPID/Process/ExportToExcel.js","components/Upload/StampGrid/FileLog.js","components/Upload/StampUpload/StampUpload.js","components/Upload/UploadFiles/UploadFiles.js","components/CreateWorkspace/ProjectSetupdetails/ProjectSetupdetails.js","components/CreateWorkspace/CreatenewWorkspace/UserForm.js","components/CreateWorkspace/DataGrid/DataGrid.js","components/Preview/Preview.js","components/CreateWorkspace/EditWorkSpaceStamp/EditWorkSpaceStamp.js","components/UploadPID/Process/ProcessGrid/PagerPID/PagerPID.js","components/ConfirmationDialog/ConfirmationDialog.js","components/workspacePID/ShowUsers.js","components/workspacePID/workspaceDashboard/WorkspaceDashboard.js","components/workspacePID/createNewWorkspace/ModalValidation.js","components/workspacePID/AddUser/AddUser.js","components/workspacePID/AddUser/DeleteUser.js","components/workspacePID/createNewWorkspace/CreateNewWorkspace.js","components/workspacePID/EditWorkspace/EditWorkspace.js","components/UploadPID/DragDrop/ProgressBar.js","components/UploadPID/DragDrop/DragDrop.js","components/UploadPID/FileList/FileList.js","components/UploadPID/Progress/Progress.js","components/UploadPID/Process/ProcessGrid/ProcessGridPopup.js","components/redux/actions/documentActions.js","components/UploadPID/Process/ProcessGrid/ProcessGridTable.js","components/UploadPID/Process/Process.js","components/UploadPID/Upload/Upload.js","components/UploadPID/UploadFiles/UploadFiles.js","components/PreviewPID/OverallMTO/FilterMTO.js","components/PreviewPID/OverallMTO/OverallMTO.js","components/redux/CanvasActions.js","components/PreviewPID/PIDCanvas/AddLine/AddLine.js","components/PreviewPID/PIDCanvas/AddSymbol/AddSymbol.js","components/PreviewPID/AssetShapes/AssetProperties.js","components/PreviewPID/AssetShapes/BoundingBox/BoundingBox.js","components/PreviewPID/AssetShapes/Line/Line.js","components/PreviewPID/AssetShapes/AssetsShape.js","components/PreviewPID/ExpandWindow/ExpandWindow.js","components/PreviewPID/PIDCanvas/PIDCanvas.js","components/PreviewPID/Preview/FilterRenderer.js","components/PreviewPID/Preview/SaveDetails.js","components/PreviewPID/Preview/Preview.js","components/workspacePID/createNewWorkspace/EditConfiguration.js","components/CreateWorkspace/Buisnessrule.js","components/CreateWorkspace/DataGrid/SelectEditChange.js","components/CreateWorkspace/DataGrid/SelectChange.js","components/CreateWorkspace/DataGrid/Buisnessrulessetup.js","components/CreateWorkspace/DataGrid/RegularExp.js","components/App/App.js","components/redux/reducers/rootReducer.js","components/redux/reducers/documentReducers.js","index.js","components/redux/CanvasState.js","authConfig.js","components/UserStore.js","components/CreateWorkspace/Setdetectionlogic/setDetectionlogic.js","components/AppFooter/AppFooter.js","graph.js","profilePic.js","components/AppHeader/AppHeader.js","components/Upload/BreadCrumbs/BreadCrumbs.js"],"names":["reactPlugin","appInsights","ai","initialize","instrumentationKey","browserHistory","Error","ReactPlugin","ApplicationInsights","config","maxBatchInterval","disableFetchTracking","extensions","extensionConfig","identifier","history","loadAppInsights","addTelemetryInitializer","envelope","data","userMail","localStorage","getItem","console","log","TelemetryProvider","state","initialized","this","props","AppInsightsInstrumentationKey","Boolean","setState","after","children","Component","withRouter","withAITracking","ErrorBoundary","hasError","error","info","React","observer","useHistory","instance","useMsal","name","UserStore","accountName","Login","loginRedirect","loginRequest","catch","e","className","AppHeader","style","fontSize","onClick","push","xmlns","width","height","viewBox","transform","d","fill","setItem","setPerwsdPageData","stroke","AppFooter","Suggestions","suggestionClickHandler","currentTarget","id","suggestions","useRef","map","s","index","key","mail","onMouseDown","displayName","boxShadow","boxSizing","toast","configure","TextField","withStyles","muiTheme","label","color","erroredLabel","classes","InputLabelProps","root","ProjectDetails","handleCloseEmptyUser","workSpacePopupError","clientPopupError","modelPopupError","userEmpty","duplicateData","emptyUser","fetchUserTypes","a","addedUser","toJS","addUserforWorkspace","length","JSON","parse","useradd","axios","get","process","then","res","status","roles","position","POSITION","TOP_LEFT","autoClose","list","open","workspace","projectname","workSpaceMessage","projectNameMessage","usersMessage","workSpaceError","projectNameError","usersError","count","notification","role","rolearray","dropdownvalue","message","modifysuggestion","showSuggestions","q","personName","ocrweightage","OCRmessage","show","OCRshow","lineNum","lineNumThreshold","lineNumMessage","lineNumThresholdMessage","isoNum","isoNumMessage","isoNumThreshold","isoNumThresholdMessage","sheetNum","sheetNumMessage","sheetNumThreshold","sheetNumThresholdMessage","revNum","revNumMessage","revNumThreshold","revNumThresholdMessage","tootlTipErrorMessage","tooltipError","delete","handleusers","target","value","createUseroptions","option","roleId","roleName","continue","preventDefault","API_Endpoint","responsecheck","NewworkspaceName","SetNewworkspaceName","NewProjectName","SetNewProjectName","NewModelName","SetNewModelName","checkworkspacename","toLowerCase","data1","filter","item","workSpaceName","i","projectName","aiModelId","detectionExpression","setDetectionQuery","workSpaceUsers","isIsometricTickBased","tick","fieldThreshold","CustomVisionProcessingRequired","customVision","CustomVisionPredictionKey","document","getElementById","CustomVisionModelName","setCreateWorkspacedata","stringify","phrase","match","path","handleClose","AddUser","arr","searchTerm","some","focus","personNameList","userdata","enterpriseId","reverse","final","indexOf","setUserforWorkspace","handleRoleChange","suggestionsCall","filterSearchText","onSearchHandler","pasteFunction","clipboardData","getData","substring","onChangeHandler1","updatedRowsforsearch","row","includes","updatedRows","Object","values","onEnterButton","event","keyCode","radioInput","inputValue","setIsTickBasedCreateWS","customVisionInput","handleChange","suggestionOutClickHandler","wrapperRef","current","contains","handlePurge","user","handleCloseDialog","handleDelete","deleteUsers","handleSave","every","Number","toFixed","createRef","bind","addEventListener","removeEventListener","suggestionDiv","class","BreadCrumbs","src","autoFocus","margin","type","onChange","defaultValue","fullWidth","helperText","ModelNameError","ModelNameMessage","font","marginLeft","paddingTop","defaultChecked","for","padding","marginTop","paddingLeft","display","onKeyDown","tabIndex","join","val","Button","variant","background","textTransform","border","borderRadius","Modal","onHide","backdrop","keyboard","dialogClassName","size","centered","Body","textAlign","IconButton","top","right","Dialog","onClose","aria-labelledby","DialogTitle","DialogContent","ref","Tooltip","title","arrow","autoComplete","placeholder","onPaste","onBlur","select","SelectProps","native","left","textDecoration","alt","items","overflow","textOverflow","whiteSpace","DialogActions","marginRight","inputProps","min","max","step","paddingRight","float","align","valign","char","window","confirm","countforProgress","files","files1","files2","selectedfiles","selectedfilesforupload","rejectedfiles","rejectedfilesforupload","useState","progress","buffer","setCount","percentage","fileSucceded","number","LinearProgress","valueBuffer","Grid","container","spacing","justify","alignItems","xs","DragAndDrop","handleClick","renderView","dropRef","handleDrag","stopPropagation","handleDragIn","dragCounter","dataTransfer","drag","handleDragOut","handlebrowseFile","handleDrop","fileInput","filelist","div","tempFiles","succeded","handleCheckboxCheck","valueofdropfiles","droppedFiles","completeFiles","progressFile","failedfiles","displayHide","backgroundColor","overflowX","overflowY","borderTop","fontWeight","multiple","file","BlockBlobClient","require","createBrowserHistory","FileList","Input","handleTimeDateChange","openDatePicker","dateTime","time","split","hh","aa","parseInt","selectedTime","batchtime","Date","toISOString","slice","batchTime","openTimePicker","fileList","showfiletypedailog","showmessage","dropfiles","submitted","ele","getElementsByClassName","checked","fname","selectedFiles","splice","countmsg","isSelectAll","removeSelectAll","fileSelectionError","fileSelectionErrorMsg","deletePopup","handleDeleteClose","filterPassedTime","currentDate","selectedDate","getTime","batchProcess","scheduleTime","BatchScheduledDateTime","post","batchId","isBatchFileProcessing","t","updatedDropFile","updatedSelectedList","countSeletedItem","progessFile","allFile","selectedFilesforupload","idx","findIndex","p","x","fileCount","z","filename","workspaceid","workspaceuploadID","tagid","taggedFiles","tag","tagIds","tg","workSpaceId","fileName","transmittalNumber","transmittalno","options","onUploadProgress","ProgressEvent","loaded","total","percent","Math","floor","getPercentage","uploadPercentage","uploadedFile","uri","sasUri","uploadblob","handleblobLoad","fileFailed","handleFailed","blobServiceClient1","uploadData","requestId","splittedfilenames","filenameresults","filesnew","splittedfilenamesnew","filenameresultsnew","splittedfilename","filenameresult","errstr","logMyErrors","getprocessGrid","apifileName","addFiles","delfiles","rejectedFilesforupload","splittedfilename1","filenameresult1","openModal","showSetTimings","handleFileSelection","changeStatus","handleTransmittalNoChange","Transno","errorTransmittalNo","errorMsgTransmittalNo","handleClosePopup","handleUploadSubmit","showTimings","showNextButton","moveToUpload","obj","Check","checkFiles","taggeddropdown","tagValue","tFiles","valueofselectedfiles","differencearray","fileNamefordrop","allFiles","msg","updatedFiles","filesToDelete","removeTagedFile","deleteDropFile","differencearrayremove","filesList","Checkbox","selects","FormControl","component","RadioGroup","aria-label","FormControlLabel","control","Radio","flexDirection","required","showTimeSelect","dateFormat","showTimeSelectOnly","timeIntervals","filterTime","placeholderText","onClickOutside","customInput","bottom","Footer","rowget","ExportExcel","flag","frompid","wType","today","Moment","getFullYear","getMonth","getDate","format","setshow","setshowMessage","setcount","formatpid","serialNumber","isProcessed","processedPercentage","pidNumber","pidRevisionNumber","sheetNumber","pidDescription","fileUploadDttm","utc","local","fileUploadedBy","isApproved","approvedDttm","totalLineCount","totalValveCount","isDuplicateFile","isSuperseded","rejectionRemark","tickBased","processingDate","modifiedDate","isChange","Change","trim","replaceAll","modiffiedDate","columns","documentName","Processed","Percentage","lineNumber","isometricNumber","revisionNumber","columns2","Duplicate","isDuplicate","modifiedDoc","modifiedBy","acceptanceStatus","confidenceLevel","labelCheckbox01","checkbox01","labelCheckbox02","checkbox02","labelCheckbox03","checkbox03","labelCheckbox04","checkbox04","Detected","isDetected","phrase1","phrase2","phrase3","phrase4","exportToCSV","reportData","PIDProcessData","reportstamp","row2","resdata","row3","ws","XLSX","json_to_sheet","wb","Sheets","SheetNames","excelBuffer","bookType","Blob","FileSaver","FilterListItem","_checkBoxClicked","filterClicked","checkBoxClass","selected","SelectAllItem","_selectAllClicked","isUndefined","str","emptyStringCheck","toString","isTypeArray","prototype","call","isTypeString","getValForKey","keyArray","l","finalValue","currValue","undefined","uniq","array","Set","without","result","forEach","currItem","SearchBar","_searchInputChanged","newValue","_callSearchChanged","_searchKeyEntered","charCode","searchChanged","sortType","onKeyPress","EventTarget","_handlers","_pools","keys","poolName","handlers","handler","hasOwnProperty","_emit","newHandlers","_normalize","prevHandlers","events","_listen","toRemoveHandlers","_unlisten","normalizeTarget","EventStack","_targets","Map","autoCreate","normalized","has","eventTarget","set","pool","_find","sub","unsub","empty","_remove","FilterIcon","_iconClicked","iconClicked","SortIcon","_sortClicked","sort","sortClass","FilterList","_handleOutsideClick","filterIconNode","_hideFilter","_filterIconClicked","showFilter","_displayFilter","searchEnabled","_filterUpdated","allFilters","filterList","newFilterState","_filterData","newSelectAllState","selectAllFilters","appliedSearchFilters","visibleFiltersValues","filterItem","visible","_resetData","filterValue","addFilter","filterRows","filterkey","itemDisplayValueFunc","filterValues","selectAll","resetRows","newSortType","currentSortType","sortRows","itemSortValueFunc","caseSensitive","casesensitive","_searchChanged","searchValue","propKey","prevAppliedFilters","filterMultipleRows","filtersToApply","filterListHtml","filterState","showSearch","showsearch","filterListItemHtml","searchBarHtml","filterListClass","alignleft","filterActive","node","sortAction","inputArray","valueFunc","inputCopy","sortFunc","b","aValue","bValue","isNaN","toUpperCase","filterActions","filterArray","filteredArray","dataWithFilter","itemCopy","assign","appliedFilters","itemValue","filterAction","filtersReset","calculateFilterProps","filteredData","sortKey","dataArray","usedKeys","selectState","itemKey","orinigalValue","filterIndex","createFiltersFromItems","render","rowHtml","finalChildren","Children","child","clonedChild","cloneElement","childClass","childChildren","filterProps","filterAdded","_filterRows","_filterMulipleRows","_resetRows","_sortRows","newProps","filteradded","rowComponent","rowClass","TableFilter","_applyInitialFilters","rows","currentFilters","filterKeys","currKey","filterToApply","_getValueFunctionForKey","onFilterUpdate","filterKey","_createData","initialData","addFilterArray","removeFilterArray","_updateCurrentFilter","_getCurrentFilters","_updateCurrentFilters","add","filters","reset","resetFilters","stateData","initialFilters","Template","memo","currentPage","selectedPage","setSelectedPage","totalPages","ceil","resultCount","resultsPerPage","useEffect","_","setCurrentPageValue","previousButton","nextButton","page_links","minPage","maxPage","pageIndex","searchrows","onRowSelected","dropdownChange","tableRef","location","useLocation","setIsSelectAll","firstLoad","setfirstLoad","excelreportrow","setexcelreportrow","pageChange","setPageChange","SetPerPageData","skipData","perPageData","setCurrentPage","filterConfig","setFilterConfig","URLSearchParams","search","skip","setSkip","storeData","tableRows","topValueUpdate","processData","setProcessData","isTickBased","isTickBasedIsometric","skipValue","countOfData","slicedData","PIDselectedRowID","setSkipData","addReportdata","setDataPerPage","setreportStamp","splitedFileId","selectedRowsList","retainSelectedRow","checkedRow","elementsHtml","setPIDselectedRowID","innerHTML","newRows","sr","handleCheckbox","setLoader","loader","on","newData","filterConfiguration","setFilterProcessConfiguration","setPIDProcessData","setStampFilterData","filterFn","sel","dat","selectedOptions","slicedData2","slicedData3","slicedData4","slicedData1","customPagination","newPageNumber","Row","setOpen","Fragment","TableRow","sx","borderBottom","TableCell","batchScheduleDateTime","moment","batchCreatedBy","batchProcessingDateTime","totalFilesUploaded","filesProcessedSuccessfully","fileWaitingForProcessing","filesProcessedFailure","totalIsometricUploaded","isometricProcessedSuccessfully","isometricWaitingForProcessing","isometricProcessedFailure","paddingBottom","colSpan","Collapse","in","timeout","unmountOnExit","Box","Table","TableHead","TableBody","binderFilesInformation","binderFileName","totalIsometrics","totalSheetUploaded","sheetsProcessedSuccessfully","sheetsWaitingForProcessing","sheetsProcessedFailure","totalPids","pidProcessedSuccessfully","pidWaitingForProcessing","pidProcessedFailure","BatchTable","rows1","Setrows","APIEndpoint","wsId","myrows","batchCreationDateTime","TableContainer","Paper","startdate","enddate","startdate1","enddate1","setDate","editRow","StampGrid","editWorkSpaceData1","createdOn1","createdOn","stdate","UploadDateForProcess","UploadRromDateForProcess","handleCloseBatchStatus","showBatchStatusDialog","showBatchStatus","handleCloseBatch","handleDateChange1","day","datestring","oldStartDate","date1","date","setUploadFromDateForProcess","startDate","handleDatechange","handleDateChange2","setUploadDateForProcess","oldEndDate","endDate","previewValue","errorMEssage","handledeleteClose","deleteshow","handleDownloadClose","showDownload","handleBulkAcceptClose","showBulkAccept","handleDateeClose","dateValidation","handleShow","selectedrowstodelete","selectedRows","messageToSet","disablePreview","navigateToPreviewStamp","handleDropdownChange","etdate","workspaceId","loading","setStampFilterRetain","responseIsometrics","setProcessGridData","initarr","fillarr","initvalue","dataRows","ProcessingDate","ModiffiedDate","addPer","stampFilterRetain","SplitedFileId","TransmittalNumber","DocumentName","IsProcessed","ProcessedPercentage","LineNumber","IsometricNumber","SheetNumber","RevisionNumber","IsChange","IsDuplicate","ModifiedBy","ModifiedDoc","AcceptanceStatus","ConfidenceLevel","LabelCheckbox01","LabelCheckbox02","LabelCheckbox03","LabelCheckbox04","Checkbox01","Checkbox02","Checkbox03","Checkbox04","RejectionRemark","findDateChange","dateValidationValue","fromDate","toDate","y","workspaceIdfordropdown","feed","OnChangeHandler","searchTerm1","dropArr","doSomethingWith","keyDownSearch","dropChange","searchData1","dataFromDropdown","setStampSearchData","setTimeout","searchData","dataFromFiltering","stampFilterData","checkallSelected","selectedValue","rowIds","itemChange","noOfRowSelected","deletedRows","handleRowSelection","handleDownloadIsometrics","ids","acceptedRows","body","splitedFileIds","fetch","method","headers","Accept","Authorization","accesstoken","response","blob","url","URL","createObjectURL","createElement","href","download","workspaceName","click","handleDeleteFiles","handleDeleteFilesClose","r","refreshProcessedStatus","setSplitedFileId","isaccepteddoc","disabledDate","endOf","pdfUri","selectedrowforDeletion","accessor","header","renderCell","Phrase1","Phrase2","Phrase3","Phrase4","CountAll","CountProcessfailed","searchvalue","showuser","fileprocessedStatus","accepteddoc","removeItem","params","cbVal","splitStr","charAt","column","checkBox01","checkBox02","checkBox03","checkBox04","editWorkSpaceData","processGridData","Promise","resolve","processedStatus","readonly","readOnly","returnData","active","spinner","text","allowClear","InputLabel","Select","labelId","MenuItem","opacity","cursor","pointerEvents","fromPreview","handleBulkAccept","enable-background","fill-rule","data-name","stroke-width","maxWidth","ExportToExcel","datafromfilelog","fromfilelog","MTOShow","setMTOShow","exportMTOValue","setExportMTOValue","fileType","changeDataFormat","mtoResult","k","mtoData","SEQ","seq","PID","SPEC","spec","shortCode","isJacketedLine","hdrSize","size1","size2","QTY","qty","insulType","ugAg","FLUID","fluid","PIPINGCOMPTYPE","pipingCompType","SEAT","seat","VALVEBODY","valveBody","extendedBonnet","limitSwitch","HOLD","hold","SUPPLY","supply","FROM","fromLine","TO","toLine","itemOrder","REMARKS","remarks","RATING","rating","selectedIdList","selectedRowID","sheetId","sheetIds","FileLog","Status","uploadedBy","uploadDateTime","isFileUploadedSuccessfully","dataField","workspaceIdPid","PIDworkspaceID","workspaceNamePID","splitUrl","splitUrllocal","keyField","pagination","paginationFactory","TabPanel","other","hidden","Typography","a11yProps","makeStyles","theme","flexGrow","palette","paper","StampUpload","processgridvalue","showprocessgrid","setValue","AppBar","Tabs","Tab","indexValue","UploadFiles","ProjectSetupdetails","back","prevStep","Save","userlist","PetrofacProjectName","WorkspaceName","setShow","Align","UserForm","Users","nextStep","input","customContentStyle","DataGrid","fetchIsometricFields","setRegExpFields","workSpaceClick","globalAdmin","find","loggedInuserEmail","isreadOnly","getWorkspaceId","setworkspaceuploadID","getworkspaceName","emptySuccededFiles","setTickBasedIsometric","setWorkspace","checkGlobalAdmin","showUsername","users","filtereduserData","showUsers","UserNameList","handleEdit","showQuery","handlerole","products","modalId","Wname","Pname","areaId","test","statusText","FetchData","Openworkspace","showForm","handleChange1","rowneeded","editProducts","deleteId","handleOnSelect","isSelect","editClick","addRowdata","setEditworkspace","myrow","myrowedit","userFlag","sortcolumn","filterquery","reportDataexcel","expandMenu","loggedInUser","userEmail","showMenu","uuid","emptyRejectedFiles","setInbusinessrule","clear","columnsortval","columnsortFlag","createworkspaceflag","newWorkspaceId","wordBreak","Wtype","Reports","detectionQuery","fontFamily","queryValue","filterQuery","focusable","aria-hidden","data-testid","More","htmlFor","createdate","stringEndDate","request","cleareReportdata","selectRow","mode","clickToSelect","onSelect","cellEditFactory","blurToSave","filterFactory","order","contentStyle","bordered","useStyles","useParams","accept","setAccept","acceptit","setAcceptit","setMessage","message1","setMessage1","phrase1BB","setphrase1BB","phrase2BB","setphrase2BB","reportdata","setreportdata","docNoBB","setdocNoBB","sheetNoBB","setsheetNoBB","revNoBB","setrevNoBB","lineNoBB","setlineNoBB","phrase1text","setphrase1text","phrase2text","setphrase2text","docNotext","setdocNotext","sheetNotext","setsheetNotext","lineNotext","setlineNotext","revNotext","setrevNotext","modifieddoctext","setmodifieddoctext","filepath","setfilepath","setresponse","stampType","setStampType","fileID","p1score","setp1score","p2score","setp2score","docnumscore","setdocnumscore","sheetnumscore","setsheetnumscore","linenumscore","setlinenumscore","revnumscore","setrevnumscore","showUser","errorMsgIsometricNumber","setErrorMsgIsometricNumber","errorMsgLineNumber","setErrorMsgLineNumber","errorMsgSheetNumber","setErrorMsgSheetNumber","errorMsgRevisioNumber","setErrorMsgRevisionNumber","errorMsgModifiedDoc","setErrorMsgModifiedDoc","errorIsometricNumber","setErrorIsometricNumber","errorLineNumber","setErrorLineNumber","errorSheetNumber","setErrorSheetNumber","errorRevisioNumber","setErrorRevisionNumber","errorModifiedDoc","setErrorModifiedDoc","revLabel","setrevLabel","pdfWidth","setPdfWidth","pdfHeight","setPdfHeight","DocViewerWidth","setDocViewerWidth","DocViewerHeight","setDocViewerHeight","checkbox1","setCheckbox1","checkbox2","setCheckbox2","checkbox3","setCheckbox3","checkbox4","setCheckbox4","labelcheckbox1","setLabelCheckbox1","labelcheckbox2","setLabelCheckbox2","labelcheckbox3","setLabelCheckbox3","labelcheckbox4","setLabelCheckbox4","labelcheckboxtext1","setLabelCheckboxText1","labelcheckboxtext2","setLabelCheckboxText2","labelcheckboxtext3","setLabelCheckboxText3","labelcheckboxtext4","setLabelCheckboxText4","c1score","setc1score","c2score","setc2score","c3score","setc3score","c4score","setc4score","l1score","setl1score","l2score","setl2score","l3score","setl3score","l4score","setl4score","changeheight","changewidth","isPixels","setIsPixels","extractedJson","IsPDFConvertedToImage","Fields","ValueData","BoundingBox","Text","Confidence","DocumentNumber","RevisionNumberLabel","isometricUri","Pages","Width","Height","padTo2Digits","num","padStart","previewAPIcall","acceptMsg","nameforbutton","newdate","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","chooseApi","handleGetProcessedIsometrics","processedData","isAccepted","Remarks","handleRejectData","open1","setOpen1","open2","setOpen2","open3","setOpen3","open4","setOpen4","open5","setOpen5","open6","setOpen6","open7","setOpen7","open8","setOpen8","open9","setOpen9","open10","setOpen10","open11","setOpen11","open12","setOpen12","open13","setOpen13","open14","setOpen14","tooltipTitle","settooltipTitle","handleTooltipClose1","handleTooltipOpen1","handleTooltipClose2","handleTooltipOpen2","handleTooltipClose3","handleTooltipOpen3","handleTooltipClose4","handleTooltipOpen4","handleTooltipClose5","handleTooltipOpen5","handleTooltipClose6","handleTooltipOpen6","handleTooltipOpen7","handleTooltipOpen8","handleTooltipOpen9","handleTooltipOpen10","handleTooltipClose7","handleTooltipClose8","handleTooltipClose9","handleTooltipClose10","handleTooltipOpen11","handleTooltipOpen12","handleTooltipOpen13","handleTooltipOpen14","handleTooltipClose11","handleTooltipClose13","handleTooltipClose12","handleTooltipClose14","inchToPxConverter","querySelector","clientWidth","clientHeight","PDFwidth","PDFheight","top2","top6","top3","top4","top5","top7","top8","top9","top10","top11","top12","top13","top14","top15","left2","left3","left4","left5","left6","left7","left8","left9","left10","left11","left12","left13","left14","left15","length2","height2","width2","length3","height3","width3","length4","height4","width4","length5","height5","width5","length6","height6","width6","length7","height7","width7","length8","height8","width8","length9","height9","width9","length10","height10","width10","length11","height11","width11","length12","height12","width12","length13","height13","width13","length14","height14","width14","length15","breadth15","overlayStyle1","zIndex","overlayStyle2","overlayStyle3","overlayStyle4","overlayStyle5","overlayStyle6","overlayStyle7","overlayStyle8","overlayStyle9","overlayStyle10","overlayStyle11","overlayStyle12","overlayStyle13","overlayStyle14","setNumPages","pageNumber","onDocumentLoadSuccess","numPages","handleStampTypeChange","handleFormValueChange","defaultScale","defaultPositionX","defaultPositionY","panning","excluded","zoomIn","zoomOut","resetTransform","onLoadSuccess","scale","ClickAwayListener","onClickAway","disableFocusListener","disableHoverListener","disableTouchListener","placement","PopperProps","disablePortal","popperOptions","modifiers","offset","enabled","marginBottom","disabled","InputProps","disableUnderline","maxLength","onInput","EditWorkSpaceStamp","fetchOCRWeightages","thresholdArray","isometricFieldThreshold","fieldId","ocrWeightage","confidenceThreshold","wID","v","savedata","projectNameNew","WorkspaceNameNew","modelNameNew","ConfidenceThreshold","OCRWeightage","modelName","checkprojectname","checkmodelname","modelNameError","modelNameMessage","setEditWorkspacedata","inputValidation","WorkspaceIdNew","rolesedit","SetDetectionQuery","customVisionProcessingRequired","customVisionPredictionKey","customVisionModelName","Pager","ConfirmationDialog","ShowUsers","WorkspaceDashboard","setloggedInuserEmail","CSVExport","ExportCSVButton","perwsdPageData","setrows","setglobalAdmin","isdelete","setdelete","deleteworkspaceid","setdeleteworkspaceid","setloading","setshowUsers","setSetShow","setfiltereduserData","skipwsdData","PIDwsData","changePIDGlobalAdmin","GetPidWorkSpaces","setPIDFilterRetain","MyExportCSV","onExport","globalAdminResult","PIDGlobalAdmin","setPIDworkspaceData","findRole","roleIdentifier","projectWorkSpaceId","projNameforedit","projNo","projectNumber","projName","clientName","PlantDesc","plantDescription","mainOffice","satteliteOffice","satelliteOffice","finishDate","moreActions","classname","handleSetting","setPIDwsData","tab","addRowdataPID","findRoleValue","isreadOnlyPID","setPIDWorkspaceId","getprocessGridPID","getworkspaceNamePID","emptySuccededFilesPID","useremail","setUserforWorkspacePID","PIDToDate","afterSearch","setProprsal","PIDworkspaceData","onSelectAll","csvFormatter","cell","rowIndex","csvExport","exportCSV","onlyExportSelection","exportAll","csvProps","baseProps","setSkipwsdData","ModalValidation","wordWrap","aria-rowcount","addUserRef","setshowSuggestions","CreateNewWorkspace","copyConfigFromWorkSpaceId","formData","setFormData","setuseradd","setUserEmpty","setDuplicateData","setEmptyUser","setdropdownvalue","proposalnumber","setproposalnumber","setPersonName","errorProjectNumber","errorProjectName","errorClientName","errorLocation","errorDescription","errorMainOffice","errorSatelliteOffcie","errorFromDate","errorMsgProjectNumber","errorMsgProjectName","errorMsgClientName","errorMsgLocation","errorMsgDescription","errorMsgMainOffice","errorMsgSatelliteOffcie","errorMsgFromDate","setLoading","setdeleteUsers","Delete","settooltipError","settootlTipErrorMessage","setrole","setsuggestions","setq","setmodifysuggestion","setroles","addUserforWorkspacePID","prevState","handleSubmit","fields","entries","FieldsName","fieldsArray","fieldsCase","goBack","suggestionData","shrink","lineHeight","proposalNumber","userArray","EditWorkSpace","editRowPID","setEditrow","editRowNew","errorToDate","errorMsgToDate","setEditworkspacePID","keyCount","arrayOfKey","date2","onSubmit","handlePIDbrowseFile","handleDropPID","droppedPIDFiles","handlePIDDrop","dropPIDfiles","handleDateChange","batchScheduledDateTime","ProjectWorkSpaceId","fileTags","justifyContent","deletePID","setCountPID","percentagePID","fileSuccededPID","classNmae","GetInitJSON","FilterLineGroup","symbolData","symbolsData","AddNewAsset","EditAsset","oldValue","EditAssetLineGroup","newLineGroup","Transform","deleteSymbol","selectAsset","ProcessGridTable","editConfigData","fromeditconfig","onEditBlur","setProcessDataforConfig","setTabledata","fromeditconfigflag","setSelectedRows","filesFilterPID","configIdforedelete","setconfigIdforedelete","setrowneeded","deleteconfig","setDeleteconfig","editconfig","seteditconfig","editconfigdata","seteditconfigdata","setmodalId","dataLength","selectedItem","useDispatch","dispatch","filterUpdated","setPIDFilterProcessConfiguration","setPIDFilterData","handleEditSave","workspaceId1","setEditConfigData","configId","key1","key2","initArray","supersededCheck","success","setSelectedRowID","deselectedItem","PIDSearchData","contenteditable","spellCheck","elementsHtmlforEditConfig","handledelete","allRows","minWidth","Process","batchData","handleRun","runShow","runValue","handleExportPID","PIDShow","exportPIDValue","handleUploadDateChange","handleToDateChange","setPIDToDate","handleDateClose","navigateToPreview","setFilesFilterPID","rowsneeded","PIDFilterData","setAfterSearch","handleCallback","childData","setPIDSearchData","selection","disableExportPID","disableExportMTO","isArray","rowId","handleBlurEdit","editValue","editableID","editClass","editableEle","editObj","handleEditedValue","saveHeaders","el","slicedEditData","pidHeaders","setSheetId","isaccepteddocpid","Header","superseded","accepteddocpid","assetsData","editSheetID","setAccuracyPID","convertEndate","PIDFilterRetain","mynewrows","o1","o2","readOnlyPID","showprocessgridPID","FilterRenderer","rowsData","Seq","pid","Spec","isJacketed","hdr","quantity","insulationType","ugag","assetCompType","extendedBonet","limitSwich","setNewRows","useSelector","documentData","selectedAsset","handleMouseLeave","Key","OverallMTO","componentRef","jsonData","setFilterRows","assetData","symbols","Symbols","newIndex","specification","assetId","SymbolId","ShortCode","assetComponentType","SequenceNumber","IsJacketedLine","HdrSize","Size1","Size2","Quantity","InsulationType","AgUg","Fluid","Seat","ValveBody","ExtendedBonet","LimitSwich","Hold","FromLine","ToLine","ItemOrder","Rating","SymbolRank","handlePrint","useReactToPrint","content","copyStyles","trigger","deletedData","filterData","assetType","getLineGroup","lineGroup","getShortCode","addNewAsset","assetDetails","newAssetId","newAsset","symbolsArray","Coords","ConfidenceScore","lines","Lines","orientation","LineSegmentId","updateJsonData","editJsonData","properties","CorrectedRow","addNewLineGroup","convertedJson","newId","SYM_0","LS_0","editDataWindow1","oldLineNumber","oldLineGroup","assets","updatedJson","editLineDataWindow1","modifiedData","deleteSymbolData","deleteLineData","symbolsRanking","shortCodeResult","rankingData","coordinateData","coords","XMin","YMin","XMax","YMax","sortedData","sorted","sortedLineGroups","deleteData","AddLine","addnew","setAddnew","lineGroups","lineGroupSpec","edit","assetProperties","assetProps","lineno","onSelectChange","allProperties","oldSpecification","AddSymbol","addnewCode","setAddnewCode","addFromline","setaddFromline","addToline","setaddToline","setisJacketedLine","isagug","setisagug","isholdLine","setisholdLine","shortCodeList","lineList","documentList","maxRank","lineGroupData","symbolDetail","details","isValve","setIsValve","valveList","setCopy","variable","tobeDeleted","updatedValues","lineId","lineNo","navigator","clipboard","writeText","assetComponent","assetID","otherProperties","lg","AssetProperties","resWidth","resHeight","selectedLineNumber","asset","colorCodes","createAsset","old_width","abs","old_height","symbolId","points","oldPoints","strokeWidth","symbolName","strokeScaleEnabled","oldWidth","oldHeight","isSelected","shapeRef","transformerRef","dispatcher","nodes","getLayer","batchDraw","attrs","scaleX","scaleY","prevWidth","prevHeight","transformRectData","shape","onMouseEnter","getStage","onMouseOut","draggable","onTransformEnd","onDragEnd","anchorSize","enabledAnchors","borderStroke","borderStrokeWidth","rotateEnabled","keepRatio","Line","transformLineData","rotation","AssetsShape","isSelectedId","selectedId","PIDCanvas","stageRef","draw","innerWidth","setWidth","innerHeight","setHeight","setResWidth","setResHeight","imageData","setImageData","Size","pidUri","linegroup","accurateSymbols","getAPICall","shapes","setShapes","accuracyPID","shapesData","show1","setShow1","show2","setShow2","setDrag","setShape","stageScale","setStageScale","stageX","setStageX","stageY","setStageY","setSelectedLine","selectedAssetId","setSelectedAssetId","drawnShape","setDrawnShape","dummyShape","editAssetData","setEditAssetData","editLineData","setEditLineData","useImage","image","updateWidthAndHeight","newLineNumber","setNewLineNumber","getNewLineNumber","symbolsDetails","lgLength","setLgLength","sortedLineGroupsData","setLineGroup","setSpec","linenumber","resultWidth","resultHeight","lineNumberValidate","mtoDats","mtoDat","accuracyData","symbolsDat","km","cScoreArray","cScoreValid","val1","val2","lgNumber","rowValue","cScore","newShape","isOpen","toggle","center","relatedTo","newScale","newPos","getPointerPosition","round","onMousemove","point","xmin","ymin","xmax","ymax","new_width","new_height","_drawn_shape_","pop","onMouseup","editedData","onWheel","evt","stage","oldScale","mousePointTo","deltaY","dragBoundFunc","pos","boundFunc","onCloseEditLine","imageLoading","comp","expand","setInputData","imageSrc","accurateSymbols1","mtoAccurateData","docList","setAssetComponent","assetComp","show3","setShow3","selectedLine","selectedAssetData","handleMultiWaySelect","load","setLoad","Image","setAttribute","onload","pageStyle","classNamePrefix","pixelRatio","accurateData","rowHeaders","setRowHeaders","filterReset","retainedData","retainDataFormat","SaveDetails","exitPage","saveDetails","Preview","rankRows","imagePath","setImagePath","newAssets","setAssets","duplicate","duplicateMsg","setDuplicateMsg","sheetName","showMessage","setShowMessage","setAssetsData","save","setSave","apiData","setApiData","assetsList","filteredList","jsondata","setRows","ranking","showElement","setShowElement","navigatetoProcessgrid","isEqual","handleDuplicate","setSelected","isAllSelected","assetsDats","renderValue","ListItemIcon","indeterminate","ListItemText","primary","reject","remark","EditConfiguration","refreshdata","workspaceId2","confidId","deleteid","businessRuleId","addRow1","newrow","ChangeOutcome","addRow","phraseError","phraseMessage","rowSave","configTypeId","handleCloserow","editworkspace","ProjectName","WorkSpaceName","WorkSpaceId","BusinessRuleId","businessRules","change","feedWorkSpaceId","setConfigId","handleDropdownchangerowEdit","outcome","outcomeError","outcomeErrorMessage","handleDropdownchangerow","configtype","configType","inBusinessrule","proposalno","FormHelperText","Buisnessrule","newRow","deletedRow","members","bgColor","check","cellEdit","SelectEditChange","isRegExp","idValue","field","fieldName","SelectChange","REACT_APP_API_ENDPOINT_WORKSPACE","Buisnessrulessetup","disableAddButton","clickCount","disableAddButtonEdit","setIsRegExp","RegularExp","isTickBasedCreateWS","setRegExpEditID","editData","expression","weightage","handleListofCodesEdit","setListOfCodesEditID","listName","listValue","listScope","editLineGroups","uploadShow1","validFileType","Duplicatekey","exclude","saveRegexValidation","setIsExclusionRule","addRow2","uploadShow","saveListValidation","setIsGlobalListofCodes","uploadedCSVList","getKeyByValue","regExpFields","getValueByKey","dataforAPI","inclusionArray","exclusionArray","regularExpression","savedData","regId","isExclusionRule","weigh","exp","handleSaveRegexValidation","handleSaveListValidation","saveListofCodes","uploadeValue","listOfCodesforAPI","u","uploadListOfCodesData","listId","Value","deleteLOC","deleteidLOC","isGlobalListofCodes","isGlobal","duplicateFromNewList","savedListOfCodesData","o","regExpEditID","handleEditListOfCodesSave","listOfvalue","listOfCodesEditID","rowID","alldata","changedValue","handleLOCPurge","listOfCodesforAPIData","datatofeed","createWorkspacedata","fieldId1","fieldId2","fieldId3","fieldId4","parseFloat","reduce","setnewWorkspaceId","doColumnsort","navigatetoWorkSpace","editWorkspacedata","isEditWorkspaceFlag","include","radioListofCodes","handleFileUpload","Papa","skipEmptyLines","complete","results","handleListCodeChangeKey","handleListCodeChangeValue","handleModalClose","listofcodes","globalCode","projectCode","globalData","weightageMessage","editWeightageMessage","columns1","globaldataCount","GlobalData","globaleCodesforAPI","fieldRules","isometricFieldInclusionRules","isometricFieldExclusionRules","fileldKeyValues","row4","maxHeight","TextareaAutosize","minRows","App","routes","Home","SetDetectionlogic","PreviewPID","PIDUpload","route","exact","allReducers","combineReducers","action","lineGroupSpecification","initialList","symbolsList","filteredAssets","shortCodeL","newAddedAsset","editedJson","updatedJsonData","lineGSpec","transformData","lineGroup1","oldLineGroup2","updatedJson1","modifiedData1","lineGroup2","updatedJsonData1","editedData1","editedShortCodeList","lineGroupDelete","deleteModify","lineGroupDeleteLine","deleteLine","jsonMod","oldLg","rowData","tobeModified","lgFilter","rankingOrder","store","createStore","rootReducer","applyMiddleware","thunk","msalInstance","PublicClientApplication","msalConfig","ReactDOM","StrictMode","auth","clientId","authority","redirectUri","clientCapabilities","cache","cacheLocation","storeAuthStateInCookie","system","loggerOptions","loggerCallback","level","containsPii","LogLevel","Info","Verbose","Warning","scopes","graphConfig","graphMeEndpoint","graphProfiePicEndpoint","graphGetUsersEndpoint","myStore","userGroup","countforProgressPID","AccountInfoValue","editworkspacePID","filterProcessConfiguration","PIDfilterProcessConfiguration","stampSearchData","IsTickBasedCreateWS","makeObservable","observable","accepted","acceptedpid","roleid","query","token","email","countforProgresspid","newfile","formControl","selectEmpty","DetectionData","testtdata","detectionExpressionArray","setData","isEditWorkspace","setdetectionquery","sdQuery","attribute","setattribute","operator","setoperator","setarr","settesttdata","opendialog","setopendialog","setindex","messageselect","setmessageselect","getoperand","setgetoperand","changechipvalue","setchangechipvalue","setName","setuserEmpty","valueAtt","setValueAttribute","valueOpt","setValueOperator","dailogText","setDailogtext","ListItem","styled","chipData","setChipData","chipToDelete","chips","chip","attributes","operators","handleChangeDailogDropdown","handleChangeDropdownAttribute","handleChangeDropdownOperator","AddOperator","indexer","addSelectedValue","AddAttribute","attributeValue","expArray","c","eval","resultQuery","navigatetoWorkSpaceAgain","handledailogClose","doReset","onDelete","closeButton","Title","callMsGraph","accessToken","Headers","bearer","append","json","profilePic","graphData","graphDataforUsers","theImage","accounts","accountsValue","remaining","setRemaining","setElapsed","setLastActive","handleOnIdle","logoutRedirect","postLogoutRedirectUri","useIdleTimer","onIdle","pause","resume","getRemainingTime","getLastActiveTime","getElapsedTime","setInterval","sessionTimeoutNotify","handleLogout","apigraph","getToken","setaccountName","setUserEmail","username","setAccountInfo","sessionValidateTime","validateSession","setTime","interval","clearInterval","acquireTokenSilent","account","setToken","myuuid","uuidv4","userData","addUser","reader","FileReader","preview","ok","readAsDataURL","interceptors","use","originalRequest","BOTTOM_LEFT","err","pathnames","pathname","wname","separator","replace","routeTo"],"mappings":"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","file":"static/js/main.553921e0.chunk.js","sourcesContent":["import {ApplicationInsights} from '@microsoft/applicationinsights-web';\r\nimport {ReactPlugin} from '@microsoft/applicationinsights-react-js';\r\n\r\nlet reactPlugin = null;\r\nlet appInsights = null;\r\n\r\n/**\r\n * Create the App Insights Telemetry Service\r\n * @return {{reactPlugin: ReactPlugin, appInsights: Object, initialize: Function}} - Object\r\n */\r\nconst createTelemetryService = () => {\r\n\r\n /**\r\n * Initialize the Application Insights class\r\n * @param {string} instrumentationKey - Application Insights Instrumentation Key\r\n * @param {Object} browserHistory - client's browser history, supplied by the withRouter HOC\r\n * @return {void}\r\n */\r\n const initialize = (instrumentationKey, browserHistory) => {\r\n if (!browserHistory) {\r\n throw new Error('Could not initialize Telemetry Service');\r\n }\r\n if (!instrumentationKey) {\r\n throw new Error('Instrumentation key not provided in ./src/telemetry-provider.jsx')\r\n }\r\n\r\n reactPlugin = new ReactPlugin();\r\n\r\n appInsights = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: instrumentationKey,\r\n maxBatchInterval: 0,\r\n disableFetchTracking: false,\r\n extensions: [reactPlugin],\r\n extensionConfig: {\r\n [reactPlugin.identifier]: {\r\n history: browserHistory\r\n }\r\n }\r\n }\r\n });\r\n\r\n appInsights.loadAppInsights();\r\n\r\n const telemetryInitializer = (envelope) => {\r\n envelope.data.userMail = localStorage.getItem('userEmail');\r\n };\r\n appInsights.addTelemetryInitializer(telemetryInitializer);\r\n\r\n console.log('Ok!');\r\n };\r\n\r\n return {reactPlugin, appInsights, initialize};\r\n};\r\n\r\nexport const ai = createTelemetryService();\r\nexport const getAppInsights = () => appInsights;\r\n","import React, {Component, Fragment} from 'react';\r\nimport {withAITracking} from '@microsoft/applicationinsights-react-js';\r\nimport {ai} from './TelemetryService';\r\nimport {withRouter} from 'react-router-dom';\r\n\r\n/**\r\n * This Component provides telemetry with Azure App Insights\r\n *\r\n * NOTE: the package '@microsoft/applicationinsights-react-js' has a HOC withAITracking that requires this to be a Class Component rather than a Functional Component\r\n */\r\nclass TelemetryProvider extends Component {\r\n state = {\r\n initialized: false\r\n };\r\n\r\n componentDidMount() {\r\n const {history} = this.props;\r\n const {initialized} = this.state;\r\n const AppInsightsInstrumentationKey = this.props.instrumentationKey; // PUT YOUR KEY HERE\r\n if (!Boolean(initialized) && Boolean(AppInsightsInstrumentationKey) && Boolean(history)) {\r\n ai.initialize(AppInsightsInstrumentationKey, history);\r\n this.setState({initialized: true});\r\n }\r\n\r\n this.props.after();\r\n }\r\n\r\n render() {\r\n const {children} = this.props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withAITracking(ai.reactPlugin, TelemetryProvider));\r\n","import React, { Component } from 'react'\r\n\r\nexport default class ErrorBoundary extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { hasError: false };\r\n }\r\n \r\n componentDidCatch(error, info) {\r\n // Display fallback UI\r\n this.setState({ hasError: true });\r\n // You can also log the error to an error reporting service\r\n //logErrorToMyService(error, info);\r\n }\r\n \r\n render() {\r\n if (this.state.hasError) {\r\n // You can render any custom fallback UI\r\n return

Something went wrong.

;\r\n }\r\n return this.props.children;\r\n }\r\n }\r\n","import React, { useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport AppHeader from \"../../components/AppHeader/AppHeader\";\r\nimport AppFooter from \"../../components/AppFooter/AppFooter\";\r\nimport ErrorBoundary from \"../../components/Errorlog/ErrorBoundary\";\r\nimport UserStore from \"../../components/UserStore\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { loginRequest } from \"../../authConfig\";\r\nimport { AuthenticatedTemplate, UnauthenticatedTemplate, useMsal} from \"@azure/msal-react\";\r\nimport \"./Home.scss\";\r\n\r\nexport function Home() {\r\n const history = useHistory();\r\n // create msal instace \r\n const { instance } = useMsal();\r\n\r\n let name = UserStore.accountName;\r\n\r\n function navigateToWorkspaceSR() {\r\n history.push(\"/Workspace\");\r\n }\r\n\r\n function navigateToWorkspacePID() {\r\n localStorage.setItem(\"perwsdPageData\",\"10\");\r\n UserStore.setPerwsdPageData(\"10\");\r\n localStorage.setItem(\"perPageData\",\"10\");\r\n history.push(\"/WorkspacePID\");\r\n }\r\n\r\n // msal login function\r\n const Login = () => {\r\n instance.loginRedirect(loginRequest).catch((e) => {\r\n });\r\n };\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Hi {name}, please select the use case you would like\r\n to visit!\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Stamp Recognition

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

P & ID

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default observer(Home);\r\n","import React, { useRef } from 'react';\r\nimport \"./Suggestions.scss\";\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\n\r\nexport default function Suggestions(props) {\r\n\r\n const suggestionClickHandler = (e) => {\r\n props.suggestionClickHandler(e.currentTarget.id);\r\n }\r\n\r\n const myRef = useRef(null)\r\n\r\n const borders = {\r\n boxShadow: \"0 2px 3px #ccc\",\r\n boxSizing: \"border-box\",\r\n }\r\n\r\n let suggestions = props.suggestions.map((s, index) => {\r\n return (
{s.displayName} {s.mail}
);\r\n });\r\n\r\n return (\r\n
\r\n {suggestions}\r\n
\r\n );\r\n};\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { MuiThemeProvider, Button } from \"@material-ui/core\";\r\nimport AppHeader from \"../../AppHeader/AppHeader\";\r\nimport AppFooter from \"../../AppFooter/AppFooter\";\r\nimport ErrorBoundary from \"../../Errorlog/ErrorBoundary\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport Suggestions from \"../ProjectDetails/Suggestions\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport \"./ProjectDetails.scss\";\r\nimport axios from \"axios\";\r\nimport UserStore from \"../../UserStore\";\r\nimport BreadCrumbs from \"../../Upload/BreadCrumbs/BreadCrumbs\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport TextFieldMui from \"@material-ui/core/TextField\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport CircleChecked from \"@material-ui/icons/CheckCircleRounded\";\r\nimport Cancel from \"@material-ui/icons/Cancel\";\r\n// Importing toastify module\r\nimport { toast } from \"react-toastify\";\r\nimport { toJS } from \"mobx\";\r\n// Import toastify css file\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\n\r\n// toast-configuration method, it is compulsory method.\r\ntoast.configure();\r\n\r\nconst styles = (muiTheme) => ({\r\n label: {\r\n \"&$erroredLabel\": {\r\n color: \"black\",\r\n },\r\n },\r\n erroredLabel: {},\r\n});\r\nconst API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\nconst TextField = withStyles(styles)(function TextField({ classes, ...props }) {\r\n return (\r\n \r\n );\r\n});\r\nexport default class ProjectDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.wrapperRef = React.createRef();\r\n this.suggestionOutClickHandler = this.suggestionOutClickHandler.bind(this);\r\n if (\r\n UserStore.NewworkspaceName === \"\" &&\r\n localStorage.getItem(\"SetNewworkspaceName\")\r\n ) {\r\n UserStore.SetNewworkspaceName(\r\n localStorage.getItem(\"SetNewworkspaceName\")\r\n );\r\n }\r\n if (\r\n UserStore.NewProjectName === \"\" &&\r\n localStorage.getItem(\"SetNewProjectName\")\r\n ) {\r\n UserStore.SetNewProjectName(localStorage.getItem(\"SetNewProjectName\"));\r\n }\r\n if (\r\n UserStore.NewModelName === \"\" &&\r\n localStorage.getItem(\"SetNewModelName\")\r\n ) {\r\n UserStore.SetNewModelName(localStorage.getItem(\"SetNewModelName\"));\r\n }\r\n }\r\n handleCloseEmptyUser = () => {\r\n this.setState({ workSpacePopupError: false });\r\n this.setState({ clientPopupError: false });\r\n this.setState({ modelPopupError: false });\r\n this.setState({ userEmpty: false, duplicateData: false, emptyUser: false });\r\n };\r\n\r\n componentDidMount() {\r\n this.fetchUserTypes();\r\n document.addEventListener(\"mousedown\", this.suggestionOutClickHandler);\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener(\"mousedown\", this.suggestionOutClickHandler);\r\n }\r\n\r\n fetchUserTypes = async () => {\r\n const addedUser = toJS(UserStore.addUserforWorkspace).length\r\n ? toJS(UserStore.addUserforWorkspace)\r\n : localStorage.getItem(\"setUserforWorkspace\")\r\n ? JSON.parse(localStorage.getItem(\"setUserforWorkspace\"))\r\n : [];\r\n this.setState({\r\n useradd: addedUser,\r\n });\r\n\r\n const dropDownValues = await axios\r\n .get(`${API_Endpoint}/GetApplicationRoles`)\r\n .then((res) => {\r\n if (res.status === 200) {\r\n this.state.roles = res.data;\r\n this.setState({\r\n roles: res.data,\r\n });\r\n } else if (\r\n res.status === 400 ||\r\n res.status === 401 ||\r\n res.status === 404 ||\r\n res.status === 408\r\n ) {\r\n toast.error(\"service error\", {\r\n // Set to 5sec\r\n position: toast.POSITION.TOP_LEFT,\r\n autoClose: 5000,\r\n });\r\n }\r\n });\r\n };\r\n\r\n state = {\r\n list: [],\r\n open: false,\r\n workspace: false,\r\n projectname: false,\r\n workSpaceMessage: \"\",\r\n projectNameMessage: \"\",\r\n usersMessage: \"\",\r\n workSpaceError: \"\",\r\n projectNameError: false,\r\n usersError: false,\r\n count: -1,\r\n notification: [],\r\n role: \"Admin\",\r\n roles: [],\r\n rolearray: [],\r\n dropdownvalue: \"Admin\",\r\n suggestions: [],\r\n message: \"\",\r\n modifysuggestion: [],\r\n showSuggestions: false,\r\n q: \"\",\r\n personName: [],\r\n useradd: [],\r\n ocrweightage:[],\r\n OCRmessage: false,\r\n show: false,\r\n OCRshow: false,\r\n lineNum: '',\r\n lineNumThreshold: '',\r\n lineNumMessage:false,\r\n lineNumThresholdMessage:false,\r\n isoNum: '',\r\n isoNumMessage:\"\",\r\n isoNumThreshold: '',\r\n isoNumThresholdMessage:\"\",\r\n sheetNum: '',\r\n sheetNumMessage:\"\",\r\n sheetNumThreshold: '',\r\n sheetNumThresholdMessage:\"\",\r\n revNum: '',\r\n revNumMessage:\"\",\r\n revNumThreshold: '',\r\n revNumThresholdMessage:\"\",\r\n tootlTipErrorMessage: \"\",\r\n tooltipError: false,\r\n userEmpty: false,\r\n delete: false,\r\n count: 0,\r\n deleteUsers: \"\",\r\n workSpacePopupError: false,\r\n modelPopupError: false,\r\n clientPopupError: false,\r\n duplicateData: false,\r\n emptyUser: false,\r\n tick: false,\r\n phrase: true,\r\n customVision: \"\",\r\n };\r\n\r\n handleusers = (e) => {\r\n this.setState({\r\n list: this.state.list.push(e.target.value),\r\n });\r\n };\r\n\r\n createUseroptions = (e) => {\r\n return this.state.roles.map((option) => (\r\n \r\n ));\r\n };\r\n\r\n continue = async (e) => {\r\n e.preventDefault();\r\n const responsecheck = await axios.get(API_Endpoint + `/GetWorkSpaces`);\r\n if (\r\n UserStore.NewworkspaceName === \"\" &&\r\n localStorage.getItem(\"SetNewworkspaceName\")\r\n ) {\r\n UserStore.SetNewworkspaceName(\r\n localStorage.getItem(\"SetNewworkspaceName\")\r\n );\r\n }\r\n if (\r\n UserStore.NewProjectName === \"\" &&\r\n localStorage.getItem(\"SetNewProjectName\")\r\n ) {\r\n UserStore.SetNewProjectName(localStorage.getItem(\"SetNewProjectName\"));\r\n }\r\n if (\r\n UserStore.NewModelName === \"\" &&\r\n localStorage.getItem(\"SetNewModelName\")\r\n ) {\r\n UserStore.SetNewModelName(localStorage.getItem(\"SetNewModelName\"));\r\n }\r\n const checkworkspacename = UserStore.NewworkspaceName.toLowerCase();\r\n const checkprojectname = UserStore.NewProjectName;\r\n const data1 = responsecheck.data.filter(\r\n (item) => item.workSpaceName.toLowerCase() == checkworkspacename\r\n );\r\n\r\n let value = 0;\r\n // input validations\r\n if (data1.length > 0) {\r\n this.setState({\r\n userEmpty: true,\r\n duplicateData: true,\r\n });\r\n } else if (\r\n UserStore.NewProjectName === \"\" &&\r\n UserStore.NewworkspaceName === \"\" &&\r\n this.state.useradd.length === 0 &&\r\n this.state.ocrweightage.length === 0 &&\r\n value === 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message:\r\n \"Workspace Name and Client name are required. Please provide the details and select at least one user and add OCR Weightage to create new Project Workspace\",\r\n });\r\n } else if (\r\n UserStore.NewworkspaceName === \"\" &&\r\n UserStore.NewProjectName !== \"\" &&\r\n this.state.ocrweightage.length !== 0 &&\r\n this.state.useradd.length !== 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message: \"Workspace Name is required.\",\r\n });\r\n } else if (\r\n UserStore.NewworkspaceName !== \"\" &&\r\n UserStore.NewProjectName === \"\" &&\r\n this.state.useradd.length !== 0 &&\r\n this.state.ocrweightage.length !== 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message: \"Client Name is required.\",\r\n });\r\n } else if (\r\n UserStore.NewworkspaceName !== \"\" &&\r\n UserStore.NewProjectName !== \"\" &&\r\n this.state.useradd.length === 0 &&\r\n this.state.ocrweightage.length !== 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message: \"select at least one user to create new Project Workspace\",\r\n });\r\n \r\n }else if (\r\n UserStore.NewworkspaceName !== \"\" &&\r\n UserStore.NewProjectName !== \"\" &&\r\n this.state.useradd.length !== 0 &&\r\n this.state.ocrweightage.length === 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message: \"Add OCR Weightage to create new Project Workspace\",\r\n });\r\n }\r\n else if (\r\n UserStore.NewworkspaceName !== \"\" &&\r\n UserStore.NewProjectName === \"\" &&\r\n this.state.useradd.length === 0 &&\r\n this.state.ocrweightage.length !== 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message:\r\n \"Client name and one user is required to create new Project Workspace\",\r\n });\r\n } else if (\r\n UserStore.NewworkspaceName === \"\" &&\r\n UserStore.NewProjectName !== \"\" &&\r\n this.state.useradd.length === 0 &&\r\n this.state.ocrweightage.length !== 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message:\r\n \"Project Workspace name and one user is required to create new Project Workspace\",\r\n });\r\n } \r\n // else if (\r\n // UserStore.NewworkspaceName !== \"\" &&\r\n // UserStore.NewProjectName !== \"\" &&\r\n // this.state.ocrweightage.length !== 0 &&\r\n // this.state.useradd.length === 0\r\n // ) {\r\n // value = value + 1;\r\n // this.setState({\r\n // userEmpty: true,\r\n // message:\r\n // \"Model name and one user is required to create new Project Workspace\",\r\n // });\r\n // }\r\n else if (\r\n UserStore.NewworkspaceName !== \"\" &&\r\n UserStore.NewProjectName === \"\" &&\r\n this.state.useradd.length !== 0 &&\r\n this.state.ocrweightage.length === 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message:\r\n \"Client name and OCR Weightage is required to create new Project Workspace\",\r\n });\r\n } else if (\r\n UserStore.NewworkspaceName === \"\" &&\r\n UserStore.NewProjectName !== \"\" &&\r\n this.state.useradd.length !== 0 &&\r\n this.state.ocrweightage.length === 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message:\r\n \"Project Workspace name and OCR Weightage is required to create new Project Workspace\",\r\n });\r\n } \r\n else {\r\n if (this.state.useradd.length === 0 && value === 0) {\r\n this.setState({ userEmpty: true, emptyUser: true });\r\n } else {\r\n for (var i in this.state.useradd) {\r\n if (this.state.useradd[i].roleId == \"Admin\") {\r\n this.state.useradd[i].roleId = 1;\r\n } else if (this.state.useradd[i].roleId == \"Read / Write\") {\r\n this.state.useradd[i].roleId = 2;\r\n } else {\r\n this.state.useradd[i].roleId = 3;\r\n }\r\n }\r\n\r\n const data = {\r\n projectName: UserStore.NewProjectName,\r\n workSpaceName: UserStore.NewworkspaceName,\r\n aiModelId: UserStore.NewModelName,\r\n detectionExpression: UserStore.setDetectionQuery,\r\n workSpaceUsers: this.state.useradd,\r\n isIsometricTickBased: this.state.tick,\r\n fieldThreshold: this.state.ocrweightage,\r\n CustomVisionProcessingRequired : this.state.tick ? this.state.customVision : null,\r\n CustomVisionPredictionKey : this.state.tick ? this.state.customVision ? document.getElementById(\"modelNameCV\").value: null : null,\r\n CustomVisionModelName :this.state.tick ? this.state.customVision ? document.getElementById(\"modelIdCV\").value: null : null\r\n };\r\n\r\n UserStore.setCreateWorkspacedata(data);\r\n localStorage.setItem(\"createWorkspacedata\", JSON.stringify(data));\r\n if (value === 0) {\r\n if (this.state.phrase) {\r\n this.props.history.push(\r\n `${this.props.match.path}/SetDetectionlogic`\r\n );\r\n } else {\r\n this.props.history.push(\r\n `${this.props.match.path}/RegularExpression`\r\n );\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ open: false, projectname: false, workspace: false });\r\n };\r\n\r\n // Funcrion: Add new user to the workspace\r\n AddUser = () => {\r\n this.setState({ tooltipError: false, tootlTipErrorMessage: \"\" });\r\n const searchTerm = document\r\n .getElementById(\"search-box1\")\r\n .value.toLowerCase();\r\n if (\r\n this.state.suggestions.length == 1 &&\r\n this.state.suggestions.some((e) => e.mail === searchTerm)\r\n ) {\r\n document.getElementById(\"search-box1\").focus();\r\n this.state.personName[0] = searchTerm;\r\n }\r\n if (this.state.personName.length === 0) {\r\n this.setState({\r\n tooltipError: true,\r\n tootlTipErrorMessage: \"Kindly add a valid email address\",\r\n });\r\n } else {\r\n const personNameList = this.state.personName;\r\n for (var i = 0; i < personNameList.length; i++) {\r\n const userdata = {\r\n enterpriseId: personNameList[i],\r\n roleId: this.state.role,\r\n };\r\n this.state.useradd.push(userdata);\r\n this.setState({\r\n role: this.state.dropdownvalue,\r\n personName: [],\r\n suggestions: [],\r\n });\r\n }\r\n\r\n function getUnique(arr, index) {\r\n const unique = arr\r\n .map((e) => e[index])\r\n // store the keys of the unique objects\r\n .map((e, i, final) => final.indexOf(e) === i && i)\r\n\r\n // eliminate the dead keys & store unique objects\r\n .filter((e) => arr[e])\r\n .map((e) => arr[e]);\r\n return unique;\r\n }\r\n this.state.useradd.reverse();\r\n this.state.useradd = getUnique(this.state.useradd, \"enterpriseId\");\r\n UserStore.setUserforWorkspace(this.state.useradd);\r\n localStorage.setItem(\r\n \"setUserforWorkspace\",\r\n JSON.stringify(this.state.useradd)\r\n );\r\n document.getElementById(\"search-box1\").value = \"\";\r\n this.setState({\r\n show: true,\r\n q: \"\",\r\n });\r\n }\r\n };\r\n\r\n //-----------------------------------Dropdown for role change------------------------------\r\n\r\n handleRoleChange = (e) => {\r\n if (e.target.value === \"Admin\") {\r\n this.state.role = \"Admin\";\r\n this.setState({\r\n dropdownvalue: e.target.value,\r\n role: \"Admin\",\r\n });\r\n this.state.dropdownvalue = e.target.value;\r\n } else if (e.target.value === \"Read / Write\") {\r\n this.state.role = \"Read / Write\";\r\n this.setState({\r\n dropdownvalue: e.target.value,\r\n role: \"Read / Write\",\r\n });\r\n } else if (e.target.value === \"Read Only\") {\r\n this.state.role = \"Read Only\";\r\n this.setState({\r\n dropdownvalue: e.target.value,\r\n role: \"Read Only\",\r\n });\r\n }\r\n this.state.rolearray.push(e.target.value);\r\n };\r\n\r\n //---------------------get the suggestions----------------------------------------\r\n\r\n suggestionsCall = async (q) => {\r\n const res = await axios.get(\r\n `${process.env.REACT_APP_API_GETUSERLIST}/GetUsersList?username=${q}`\r\n );\r\n this.setState({\r\n suggestions: res.data,\r\n });\r\n\r\n this.state.modifysuggestion = this.state.suggestions;\r\n this.filterSearchText();\r\n };\r\n\r\n onSearchHandler = () => {\r\n this.setState({ showSuggestions: false });\r\n };\r\n pasteFunction = (e) => {\r\n let searchTerm = \"\";\r\n searchTerm = e.clipboardData.getData(\"text\").toLowerCase();\r\n this.setState({\r\n q: searchTerm,\r\n personName: [],\r\n });\r\n let substring = searchTerm.substring(0, 3);\r\n this.suggestionsCall(substring);\r\n // this.onChangeHandler1();\r\n this.filterSearchText();\r\n };\r\n\r\n onChangeHandler1 = async () => {\r\n let searchTerm = \"\";\r\n searchTerm = document.getElementById(\"search-box1\").value.toLowerCase();\r\n\r\n this.setState({\r\n q: searchTerm,\r\n personName: [],\r\n });\r\n if (searchTerm.length === 3) {\r\n this.suggestionsCall(searchTerm);\r\n this.setState({\r\n showSuggestions: true,\r\n });\r\n }\r\n this.filterSearchText();\r\n };\r\n\r\n filterSearchText = () => {\r\n let searchTerm = \"\";\r\n searchTerm = document.getElementById(\"search-box1\").value.toLowerCase();\r\n const updatedRowsforsearch = this.state.suggestions.filter(\r\n (row) =>\r\n row.mail.toLowerCase().includes(searchTerm) ||\r\n row.displayName.toLowerCase().includes(searchTerm)\r\n );\r\n this.setState({\r\n suggestions: updatedRowsforsearch,\r\n showSuggestions: true,\r\n });\r\n for (var i = 0; i < this.state.useradd.length; i++) {\r\n // alert(this.state.useradd[i])\r\n if (this.state.useradd[i].enterpriseId.toLowerCase() === searchTerm) {\r\n this.setState({\r\n tooltipError: true,\r\n tootlTipErrorMessage: \"override the user role\",\r\n });\r\n }\r\n }\r\n this.state.suggestions = this.state.modifysuggestion;\r\n const updatedRows = this.state.suggestions.filter(\r\n (row) =>\r\n row.mail.toLowerCase().includes(searchTerm) ||\r\n row.displayName.toLowerCase().includes(searchTerm)\r\n );\r\n this.setState({ suggestions: updatedRows });\r\n if (updatedRows.length == 1 && searchTerm.includes(\"@petrofac.com\")) {\r\n if (Object.values(updatedRows[0]).includes(searchTerm)) {\r\n document.getElementById(\"search-box1\").focus();\r\n this.state.personName[0] = searchTerm;\r\n return true;\r\n }\r\n }\r\n };\r\n\r\n onEnterButton = (event) => {\r\n if (event.keyCode === 13) {\r\n this.onSearchHandler();\r\n }\r\n };\r\n //--------------------------close dialog----------------------------\r\n handleClose = () => {\r\n this.setState({\r\n show: false,\r\n OCRshow: false,\r\n });\r\n };\r\n\r\n radioInput = (e) => {\r\n let inputValue = e.target.value;\r\n if (inputValue === \"TickRegular\" || inputValue === \"TickStandard\") {\r\n UserStore.setIsTickBasedCreateWS(true);\r\n this.setState({ tick: true, phrase: false });\r\n } else {\r\n UserStore.setIsTickBasedCreateWS(false);\r\n this.setState({ phrase: true, tick: false });\r\n }\r\n };\r\n\r\n customVisionInput = (e) => {\r\n let inputValue = e.target.value;\r\n if (inputValue === \"yes\") {\r\n this.setState({ customVision: true});\r\n } else {\r\n this.setState({customVision: false });\r\n }\r\n };\r\n\r\n handleChange = (e) => {\r\n if (e.target.name === \"WorkspaceName\") {\r\n UserStore.SetNewworkspaceName(e.target.value);\r\n localStorage.setItem(\"SetNewworkspaceName\", e.target.value);\r\n this.props.handleChange(e.target.value);\r\n if (e.target.value !== \"\") {\r\n this.setState({\r\n message: \"\",\r\n });\r\n }\r\n } else if (e.target.name === \"projectName\") {\r\n UserStore.SetNewProjectName(e.target.value);\r\n localStorage.setItem(\"SetNewProjectName\", e.target.value);\r\n this.props.handleChange(e.target.value);\r\n if (e.target.value !== \"\") {\r\n this.setState({\r\n message: \"\",\r\n });\r\n }\r\n } else if (e.target.name === \"modelName\") {\r\n UserStore.SetNewModelName(e.target.value);\r\n localStorage.setItem(\"SetNewModelName\", e.target.value);\r\n this.props.handleChange(e.target.value);\r\n if (e.target.value !== \"\") {\r\n this.setState({\r\n message: \"\",\r\n });\r\n }\r\n }\r\n };\r\n\r\n // ------------------Start:Function: Suggestions select------------------\r\n suggestionClickHandler = (s) => {\r\n document.getElementById(\"search-box1\").value = s;\r\n for (var i = 0; i < this.state.useradd.length; i++) {\r\n if (\r\n this.state.useradd[i].enterpriseId.toLowerCase() === s.toLowerCase()\r\n ) {\r\n this.setState({\r\n tooltipError: true,\r\n tootlTipErrorMessage: \"override the user role\",\r\n });\r\n }\r\n }\r\n this.state.personName[0] = s;\r\n this.setState({\r\n showSuggestions: false,\r\n });\r\n };\r\n // ------------------End:Function: Suggestions select------------------\r\n\r\n suggestionOutClickHandler = (event) => {\r\n if (this.wrapperRef.current) {\r\n if (!this.wrapperRef.current.contains(event.target)) {\r\n this.setState({\r\n showSuggestions: false,\r\n });\r\n }\r\n }\r\n };\r\n\r\n // ---------------Start:Function: Delete user\r\n handlePurge = (e, user) => {\r\n const updatedRows = this.state.useradd.filter(\r\n (row) =>\r\n row.enterpriseId.toLowerCase() !== user.enterpriseId.toLowerCase()\r\n );\r\n this.setState({\r\n useradd: updatedRows,\r\n delete: false,\r\n });\r\n };\r\n // ---------------End:Function: Delete user\r\n\r\n handleCloseDialog = () => {\r\n this.setState({ delete: false });\r\n };\r\n\r\n handleDelete = (e, user) => {\r\n this.setState({ delete: true, deleteUsers: user });\r\n };\r\n\r\n handleSave = (e) => { \r\n const allValue = [\r\n this.state.lineNum,\r\n this.state.lineNumThreshold,\r\n this.state.isoNum,\r\n this.state.isoNumThreshold,\r\n this.state.sheetNum,\r\n this.state.sheetNumThreshold,\r\n this.state.revNum,\r\n this.state.revNumThreshold\r\n ];\r\n if(allValue.every(value => { return value !== '' })) {\r\n const OCRapiData = []\r\n this.setState({\r\n OCRshow: false,\r\n OCRmessage: false,\r\n ocrweightage : [\r\n {\r\n \"fieldId\": 1,\r\n \"ConfidenceThreshold\": Number(this.state.lineNumThreshold).toFixed(1),\r\n \"OCRWeightage\": Number(this.state.lineNum).toFixed(1)\r\n },{\r\n \"fieldId\": 2,\r\n \"ConfidenceThreshold\": Number(this.state.isoNumThreshold).toFixed(1),\r\n \"OCRWeightage\": Number(this.state.isoNum).toFixed(1)\r\n },{\r\n \"fieldId\": 3,\r\n \"ConfidenceThreshold\": Number(this.state.sheetNumThreshold).toFixed(1),\r\n \"OCRWeightage\": Number(this.state.sheetNum).toFixed(1)\r\n },{\r\n \"fieldId\": 4,\r\n \"ConfidenceThreshold\": Number(this.state.revNumThreshold).toFixed(1),\r\n \"OCRWeightage\": Number(this.state.revNum).toFixed(1)\r\n },\r\n ]\r\n });\r\n }else {\r\n this.setState({\r\n OCRmessage: true \r\n }); \r\n }\r\n };\r\n\r\n render() {\r\n let suggestionDiv;\r\n if (this.state.showSuggestions) {\r\n suggestionDiv = (\r\n this.suggestionClickHandler(s)}\r\n >\r\n );\r\n } else {\r\n suggestionDiv =
;\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n

Create Project Workspace

\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Tick Based{\" \"}\r\n \r\n
\r\n {this.state.tick ? \r\n \r\n Custom Vision processing required ?\r\n \r\n \r\n \r\n \r\n \r\n Yes{\" \"}\r\n \r\n \r\n
\r\n : <>}\r\n\r\n {this.state.customVision ? \r\n
\r\n \r\n \r\n
: <>}\r\n\r\n
\r\n this.onEnterButton(e)}\r\n >
\r\n
\r\n

\r\n
\r\n {\r\n this.setState({ show: true });\r\n }}\r\n >\r\n Add User\r\n \r\n
\r\n\r\n
\r\n {\r\n this.setState({ OCRshow: true,\r\n OCRmessage: false,\r\n ocrweightage: []\r\n });\r\n }}\r\n >\r\n Add OCR Weightage\r\n \r\n
\r\n\r\n
\r\n {this.state.list.join(\",\")}\r\n {this.val}\r\n
\r\n\r\n
\r\n \r\n Next\r\n \r\n\r\n this.props.history.push(\"/workspace\")}\r\n style={{\r\n background: \"#ffffff\",\r\n border: \"0.05vw solid #0c629b\",\r\n borderRadius: \"0.15vw\",\r\n width: \"8.4vw\",\r\n height: \"2.29vw\",\r\n marginTop: \"-2vw\",\r\n padding: \"0.15vw 0\",\r\n fontSize: \"0.9vw\",\r\n color: \"#0c629b\",\r\n textTransform: \"none\",\r\n }}\r\n >\r\n Cancel\r\n \r\n
\r\n \r\n \r\n \r\n {this.state.message}\r\n {this.state.duplicateData ? (\r\n

Project workspace name already exists.

\r\n ) : (\r\n \"\"\r\n )}\r\n {this.state.workSpacePopupError ||\r\n this.state.clientPopupError ||\r\n this.state.modelPopupError ? (\r\n

\r\n select at least one user to create new Project\r\n Workspace\r\n

\r\n ) : (\r\n \"\"\r\n )}\r\n {this.state.emptyUser &&\r\n !(\r\n this.state.workSpacePopupError ||\r\n this.state.clientPopupError ||\r\n this.state.modelPopupError\r\n ) ? (\r\n

\r\n Please select at least one user to create new\r\n Project Workspace{\" \"}\r\n

\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n\r\n \r\n \r\n User Details\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n {\r\n {\r\n this.setState({ showSuggestions: false });\r\n }}\r\n >\r\n \r\n \r\n this.onEnterButton(e)}\r\n style={{ padding: \"0.95vw 0 0 0\" }}\r\n >\r\n
\r\n \r\n {\r\n this.pasteFunction(e);\r\n }}\r\n onBlur={(e) => {}}\r\n onClick={() => {\r\n if (this.state.suggestions.length > 0)\r\n this.setState({ showSuggestions: true });\r\n }}\r\n error={this.state.tooltipError}\r\n helperText={this.state.tootlTipErrorMessage}\r\n />\r\n \r\n {suggestionDiv}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {this.state.roles.map((option) => (\r\n \r\n {option.roleName}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n \r\n {this.state.useradd.map((items) => (\r\n \r\n \r\n \r\n {items.enterpriseId}\r\n \r\n \r\n {items.roleId}\r\n \r\n \r\n {\r\n this.handleDelete(e, items);\r\n }}\r\n src=\"/images/icon_delete.svg\"\r\n style={{ height: \"1.3vw\" }}\r\n />\r\n \r\n \r\n \r\n ))}\r\n \r\n }\r\n
\r\n \r\n \r\n Ok\r\n \r\n \r\n \r\n\r\n \r\n \r\n OCR Weightage\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n
\r\n \r\n Line No\r\n \r\n {if(e.target.value > 0.9){this.setState({lineNumMessage: true})}\r\n else if(e.target.value === 1){ this.setState({lineNum: e.target.value,lineNumMessage: false})}\r\n else { this.setState({lineNum: e.target.value,lineNumMessage: false})}\r\n }\r\n }\r\n style={{ paddingRight: \"1vw\" }}\r\n helperText={this.state.lineNumMessage ?

Enter value less than 1

: \"\"}\r\n />\r\n {if(e.target.value > 0.9){this.setState({lineNumThresholdMessage: true})}\r\n else if(e.target.value === 1){ this.setState({lineNumThreshold: e.target.value,lineNumThresholdMessage: false})}\r\n else { this.setState({lineNumThreshold: e.target.value,lineNumThresholdMessage: false})}\r\n }\r\n }\r\n helperText={this.state.lineNumThresholdMessage ?

Enter value less than 1

: \"\"}\r\n />\r\n
\r\n
\r\n \r\n Isometric No\r\n \r\n {if(e.target.value > 0.9){this.setState({isoNumMessage: true})}\r\n else if(e.target.value === 1){ this.setState({isoNum: e.target.value,isoNumMessage: false})}\r\n else { this.setState({isoNum: e.target.value,isoNumMessage: false})}\r\n }\r\n }\r\n style={{ paddingRight: \"1vw\" }}\r\n helperText={this.state.isoNumMessage ?

Enter value less than 1

: \"\"}\r\n />\r\n {if(e.target.value > 0.9){this.setState({isoNumThresholdMessage: true})}\r\n else if(e.target.value === 1){ this.setState({isoNumThreshold: e.target.value,isoNumThresholdMessage: false})}\r\n else { this.setState({isoNumThreshold: e.target.value,isoNumThresholdMessage: false})}\r\n }\r\n }\r\n helperText={this.state.isoNumThresholdMessage ?

Enter value less than 1

: \"\"}\r\n />\r\n
\r\n\r\n
\r\n \r\n Sheet No\r\n \r\n {if(e.target.value > 0.9){this.setState({sheetNumMessage: true})}\r\n else if(e.target.value === 1){ this.setState({sheetNum: e.target.value,sheetNumMessage: false})}\r\n else { this.setState({sheetNum: e.target.value,sheetNumMessage: false})}\r\n }\r\n }\r\n helperText={this.state.sheetNumMessage ?

Enter value less than 1

: \"\"}\r\n style={{ paddingRight: \"1vw\" }}\r\n />\r\n {if(e.target.value > 0.9){this.setState({sheetNumThresholdMessage: true})}\r\n else if(e.target.value === 1){ this.setState({sheetNumThreshold: e.target.value,sheetNumThresholdMessage: false})}\r\n else { this.setState({sheetNumThreshold: e.target.value,sheetNumThresholdMessage: false})}\r\n }\r\n }\r\n helperText={this.state.sheetNumThresholdMessage ?

Enter value less than 1

: \"\"}\r\n />\r\n
\r\n
\r\n \r\n Rev No\r\n \r\n {if(e.target.value > 0.9){this.setState({revNumMessage: true})}\r\n else if(e.target.value === 1){ this.setState({revNum: e.target.value,revNumMessage: false})}\r\n else { this.setState({revNum: e.target.value,revNumMessage: false})}\r\n }\r\n }\r\n helperText={this.state.revNumMessage ?

Enter value less than 1

: \"\"}\r\n style={{ paddingRight: \"1vw\" }}\r\n />\r\n {if(e.target.value > 0.9){this.setState({revNumThresholdMessage: true})}\r\n else if(e.target.value === 1){ this.setState({revNumThreshold: e.target.value,revNumThresholdMessage: false})}\r\n else { this.setState({revNumThreshold: e.target.value,revNumThresholdMessage: false})}\r\n }\r\n }\r\n helperText={this.state.revNumThresholdMessage ?

Enter value less than 1

: \"\"}\r\n />\r\n
\r\n
Add OCR Weightage and Threshold before Save
\r\n
\r\n \r\n \r\n Save\r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n Do you want to delete the user?\r\n
\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n this.handlePurge(e, this.state.deleteUsers)}\r\n style={{\r\n padding: \"0\",\r\n background: \"#0C629B\",\r\n color: \"white\",\r\n position: \"absolute\",\r\n right: \"2%\",\r\n }}\r\n >\r\n {\" \"}\r\n {\" \"}\r\n \r\n
\r\n \r\n\r\n \r\n \r\n Add Users\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n {\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.useradd.map((items) => (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n
UserRoleDelete
{items.enterpriseId}{items.roleId}\r\n {\r\n if (\r\n window.confirm(\r\n \"Are you sure you wish to remove this user\"\r\n )\r\n )\r\n this.handlePurge(e, items);\r\n }}\r\n src=\"/images/icon_delete.svg\"\r\n style={{ height: \"1.3vw\" }}\r\n />\r\n
\r\n }\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst ShowTheLocationWithRouter = withRouter(ProjectDetails);\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport LinearProgress from \"@material-ui/core/LinearProgress\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport UserStore from \"../UserStore\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport \"./Progress.scss\";\r\nimport { toJS } from \"mobx\";\r\n\r\nconst Progress = () => {\r\n const count = UserStore.countforProgress;\r\n let files = [];\r\n let files1 = [];\r\n let files2 = []; \r\n let selectedfiles = toJS(UserStore.selectedfilesforupload);\r\n let rejectedfiles = toJS(UserStore.rejectedfilesforupload); \r\n const [progress, setProgress] = React.useState(0);\r\n const [buffer, setBuffer] = React.useState(10);\r\n\r\n UserStore.setCount(1);\r\n const percent = UserStore.percentage;\r\n files = UserStore.fileSucceded.map((number) => (\r\n
\r\n \r\n {number}\r\n \r\n
\r\n
File Uploaded Successfully
\r\n \r\n ));\r\n\r\n files1 = selectedfiles.map((number) => (\r\n \r\n \r\n {number}\r\n \r\n \r\n \r\n ));\r\n\r\n if(rejectedfiles.length > 0){ \r\n files2 = UserStore.rejectedfilesforupload.map((number) => (\r\n \r\n
\r\n \r\n {number}\r\n \r\n
\r\n
File Upload Failed
\r\n \r\n ));\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {files}\r\n {files1}\r\n {files2}\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default observer(Progress);\r\n","import React, { Component } from \"react\";\r\nimport Progress from \"../Progress\";\r\nimport UserStore from \"../../UserStore\";\r\nimport { toJS } from \"mobx\";\r\nimport \"./DragDrop.scss\";\r\nclass DragAndDrop extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n drag: false,\r\n renderView: 0,\r\n filelist: [],\r\n show: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n handleClick = () => {\r\n this.setState({\r\n renderView: 10,\r\n });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ show: false });\r\n };\r\n\r\n dropRef = React.createRef();\r\n handleDrag = (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n };\r\n\r\n handleDragIn = (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.dragCounter++;\r\n if (e.dataTransfer.items && e.dataTransfer.items.length > 0) {\r\n this.setState({ drag: true });\r\n }\r\n };\r\n\r\n handleDragOut = (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.dragCounter--;\r\n if (this.dragCounter === 0) {\r\n this.setState({ drag: false });\r\n }\r\n };\r\n\r\n handlebrowseFile = (e) => {\r\n this.props.handleDrop(e.target.files);\r\n this.fileInput.value = \"\";\r\n };\r\n\r\n handleDrop = (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.setState({ drag: false });\r\n\r\n this.props.handleDrop(e.dataTransfer.files);\r\n };\r\n\r\n componentDidMount() {\r\n let div = this.dropRef.current;\r\n div.addEventListener(\"dragenter\", this.handleDragIn);\r\n div.addEventListener(\"dragleave\", this.handleDragOut);\r\n div.addEventListener(\"dragover\", this.handleDrag);\r\n div.addEventListener(\"drop\", this.handleDrop);\r\n }\r\n\r\n componentWillUnmount() {\r\n let div = this.dropRef.current;\r\n div.removeEventListener(\"dragenter\", this.handleDragIn);\r\n div.removeEventListener(\"dragleave\", this.handleDragOut);\r\n div.removeEventListener(\"dragover\", this.handleDrag);\r\n div.removeEventListener(\"drop\", this.handleDrop);\r\n }\r\n\r\n handleChange = async (event) => {\r\n const file = event.target.files[0];\r\n if (file) {\r\n }\r\n };\r\n\r\n render() {\r\n const { handleDrop, files, succeded, tempFiles, handleCheckboxCheck } =\r\n this.props;\r\n let valueofdropfiles = toJS(UserStore.droppedFiles);\r\n let completeFiles = toJS(UserStore.fileSucceded);\r\n let progressFile = toJS(UserStore.selectedfilesforupload);\r\n let failedfiles = toJS(UserStore.rejectedfilesforupload);\r\n const displayHide =\r\n valueofdropfiles.length === 0 && completeFiles.length === 0 && failedfiles.length === 0 && progressFile.length === 0\r\n ? true\r\n : false;\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Please upload pdf file less than 1GB\r\n \r\n \r\n Drag and drop files here
or{\" \"}\r\n
\r\n \r\n {displayHide ? (\r\n Choose Files\r\n ) : (\r\n Browse\r\n )}\r\n \r\n this.fileInput = ref}\r\n onChange={this.handlebrowseFile}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n {files.map((file, index) => (\r\n
\r\n \r\n {file}\r\n \r\n
\r\n ))}\r\n \r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default DragAndDrop;\r\n","import React, { Component } from \"react\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport axios from \"axios\";\r\nimport DragAndDrop from \"../DragDrop/DragDrop\";\r\nimport UserStore from \"../../UserStore\";\r\nimport { toJS } from \"mobx\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport Radio from \"@material-ui/core/Radio\";\r\nimport RadioGroup from \"@material-ui/core/RadioGroup\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport ErrorBoundary from \"../../Errorlog/ErrorBoundary\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport { TextField, Button } from \"@material-ui/core\";\r\nimport createBrowserHistory from \"history/createBrowserHistory\";\r\nimport \"./FileList.scss\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport AccessTimeIcon from \"@material-ui/icons/AccessTime\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport Cancel from \"@material-ui/icons/Cancel\";\r\nimport CircleChecked from \"@material-ui/icons/CheckCircleRounded\";\r\n\r\nconst { BlockBlobClient } = require(\"@azure/storage-blob\");\r\nconst history = createBrowserHistory();\r\nconst API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n\r\nexport default class FileList extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.openModal = this.openModal.bind(this);\r\n this.state = {\r\n files: [],\r\n file: [],\r\n submitted: false,\r\n obj: {},\r\n Check: false,\r\n isSelectAll: false,\r\n uploadPercentage: 0,\r\n countSeletedItem: 0,\r\n selectedFiles: [],\r\n droppedFiles: [],\r\n uploadedFile: [],\r\n taggedFiles: [],\r\n checkFiles: [],\r\n apifileName: [],\r\n transmittalno: \"\",\r\n taggeddropdown: [],\r\n uploadblob: false,\r\n tagValue: \"Tag Files\",\r\n tempFiles: [],\r\n tFiles: [],\r\n count: 0,\r\n countmsg: \"\",\r\n showfiletypedailog: false,\r\n fileSucceded: [],\r\n fileFailed: [],\r\n showSetTimings: false,\r\n batchTime: \"\",\r\n batchProcess: false,\r\n selectedTime: \"\",\r\n openDatePicker: false,\r\n errorTransmittalNo: false,\r\n errorMsgTransmittalNo: false,\r\n };\r\n }\r\n\r\n async componentDidMount() {\r\n this.setState({\r\n submitted: true,\r\n });\r\n let valueofdropfiles = toJS(UserStore.droppedFiles);\r\n let valueofselectedfiles = toJS(UserStore.selectedFiles);\r\n let completeFiles = toJS(UserStore.fileSucceded);\r\n let differencearray = valueofdropfiles.filter(\r\n (val) => !valueofselectedfiles.includes(val.name)\r\n );\r\n UserStore.dropfiles(differencearray);\r\n let fileNamefordrop = differencearray.map((value) => {\r\n return value.name;\r\n });\r\n\r\n this.setState({\r\n files: fileNamefordrop,\r\n droppedFiles: differencearray,\r\n fileSucceded: completeFiles,\r\n });\r\n }\r\n\r\n Input = ({ onChange, placeholder, value, onClick }) => (\r\n \r\n );\r\n\r\n // --------------------Start: Function: Date change ---------------------------\r\n handleTimeDateChange = (e) => {\r\n this.setState({ openDatePicker: false });\r\n let dateTime = e + \"\";\r\n let time = dateTime.split(\" \");\r\n time = time[4] + \"\";\r\n let hh = time.split(\":\");\r\n let aa = \"\";\r\n\r\n if (time === \"12:00:00\" || time === \"12:30:00\") {\r\n hh[0] = \"12\";\r\n aa = \"PM\";\r\n } else if (time === \"00:00:00\" || time === \"00:30:00\") {\r\n hh[0] = \"12\";\r\n aa = \"AM\";\r\n } else if (parseInt(hh[0]) > 12) {\r\n hh[0] = parseInt(hh[0]) - 12;\r\n aa = \"PM\";\r\n }\r\n else {\r\n hh[0] = parseInt(hh[0]);\r\n aa = \"AM\";\r\n }\r\n dateTime = hh[0] + \":\" + hh[1] + \" \" + aa;\r\n\r\n this.setState({ selectedTime: dateTime });\r\n let standardTime = new Date(e);\r\n let batchtime = standardTime.toISOString().slice(0, 19);\r\n this.setState({ batchTime: batchtime });\r\n };\r\n // --------------------End: Function: Date change ---------------------------\r\n\r\n openTimePicker = () => {\r\n this.setState({ openDatePicker: true });\r\n };\r\n\r\n handleDrop = async (files) => {\r\n let fileList = this.state.files;\r\n\r\n for (var i = 0; i < files.length; i++) {\r\n if (files[i].name && files[i].name.slice(-4).toLowerCase() === \".pdf\") {\r\n if (files[i].size < 1073741825) {\r\n fileList.push(files[i].name);\r\n this.state.droppedFiles.push(files[i]);\r\n } else {\r\n this.setState({\r\n showfiletypedailog: true,\r\n showmessage: \"Please upload Pdf file less than 1GB\",\r\n });\r\n }\r\n } else {\r\n this.setState({\r\n showfiletypedailog: true,\r\n\r\n showmessage: \"Please upload only pdf file\",\r\n });\r\n }\r\n }\r\n\r\n UserStore.dropfiles(this.state.droppedFiles);\r\n\r\n this.setState({\r\n files: fileList,\r\n\r\n submitted: true,\r\n });\r\n };\r\n\r\n // -------------------------------Start: Function: Checkbox selections -----------------------\r\n handleCheckboxCheck = (e) => {\r\n var ele = document.getElementsByClassName(\"file-checkbox\");\r\n\r\n if (e.target.checked === true) {\r\n const fname = e.target.name;\r\n this.state.selectedFiles.push(fname);\r\n } else {\r\n const index = this.state.selectedFiles.indexOf(e.target.name);\r\n this.state.selectedFiles.splice(index, 1);\r\n \r\n }\r\n if(this.state.selectedFiles.length > 1)\r\n {\r\n this.setState({\r\n countmsg:\"Files selected\"\r\n })\r\n }\r\n else if(this.state.selectedFiles.length === 1)\r\n {\r\n this.setState({\r\n countmsg:\"File selected\"\r\n })\r\n }else {\r\n this.setState({\r\n countmsg:\"\"\r\n })\r\n }\r\n\r\n if(ele.length > this.state.selectedFiles.length) {\r\n this.setState({ isSelectAll: false });\r\n }\r\n\r\n if(ele.length === this.state.selectedFiles.length) {\r\n this.setState({ isSelectAll: true });\r\n }\r\n };\r\n\r\n selects() {\r\n var ele = document.getElementsByClassName(\"file-checkbox\");\r\n var allFiles = [];\r\n this.setState({ isSelectAll: !this.state.isSelectAll });\r\n\r\n if (!this.state.isSelectAll) {\r\n for (var i = 0; i < ele.length; i++) {\r\n if (ele[i].type === \"checkbox\") ele[i].checked = true;\r\n allFiles.push(ele[i].name);\r\n }\r\n }\r\n\r\n if (this.state.isSelectAll) {\r\n for (var i = 0; i < ele.length; i++) {\r\n if (ele[i].type === \"checkbox\") ele[i].checked = false;\r\n }\r\n }\r\n let msg = \"\";\r\n if(allFiles.length === 1)\r\n {\r\n msg = \"File selected\";\r\n }\r\n else{\r\n msg = \"Files selected\";\r\n }\r\n this.setState({ \r\n selectedFiles: allFiles,\r\n countmsg: msg,\r\n });\r\n }\r\n removeSelectAll = () => {\r\n this.setState({ \r\n isSelectAll: false,\r\n });\r\n };\r\n // -------------------------------End: Function: Checkbox selections -----------------------\r\n\r\n // -------------------- Start: Function: Delete files selected ------------------\r\n handleDelete = () => {\r\n if (this.state.selectedFiles.length === 0) {\r\n this.setState({\r\n fileSelectionError: true,\r\n fileSelectionErrorMsg: \"Please select at least one file to delete\",\r\n });\r\n } else {\r\n this.setState({ deletePopup: true });\r\n }\r\n };\r\n\r\n handleDeleteClose = () => {\r\n this.setState({ deletePopup: false });\r\n };\r\n\r\n handleDelete = () => {\r\n if (this.state.selectedFiles.length === 0) {\r\n this.setState({\r\n fileSelectionError: true,\r\n fileSelectionErrorMsg: \"Please select at least one file to delete\",\r\n });\r\n } else {\r\n this.setState({ deletePopup: true });\r\n }\r\n };\r\n // -------------------- Start: Function: Delete files selected ------------------\r\n\r\n handleDeleteClose = () => {\r\n this.setState({ deletePopup: false });\r\n };\r\n\r\n handleDeleteClose = () => {\r\n this.setState({ deletePopup: false });\r\n };\r\n\r\n delete() {\r\n this.setState({ deletePopup: false });\r\n const updatedFiles = [...this.state.files];\r\n const filesToDelete = [];\r\n const removeTagedFile = this.state.tempFiles;\r\n const deleteDropFile = this.state.droppedFiles;\r\n var ele = document.getElementsByClassName(\"file-checkbox\");\r\n for (var i = 0; i < ele.length; i++) {\r\n if (ele[i].type === \"checkbox\" && ele[i].checked === true) {\r\n filesToDelete.push(ele[i].name);\r\n }\r\n }\r\n\r\n filesToDelete.map((file) => {\r\n const index = updatedFiles.indexOf(file);\r\n updatedFiles.splice(index, 1);\r\n });\r\n let differencearrayremove = deleteDropFile.filter((val) =>\r\n updatedFiles.includes(val.name)\r\n );\r\n this.setState({\r\n files: updatedFiles,\r\n selectedFiles: [],\r\n droppedFiles: differencearrayremove,\r\n tempFiles: removeTagedFile.filter((val) => !filesToDelete.includes(val)),\r\n tFiles: removeTagedFile.filter((val) => !filesToDelete.includes(val)),\r\n });\r\n UserStore.dropfiles(updatedFiles);\r\n for (var i = 0; i < ele.length; i++) {\r\n if (ele[i].type === \"checkbox\") ele[i].checked = false;\r\n }\r\n this.removeSelectAll();\r\n if (!updatedFiles.length){\r\n this.setState({\r\n transmittalno: '' \r\n })\r\n }\r\n }\r\n\r\n filterPassedTime = (time) => {\r\n const currentDate = new Date();\r\n const selectedDate = new Date(time);\r\n\r\n return currentDate.getTime() < selectedDate.getTime();\r\n };\r\n\r\n // ----------------------------------Start: Function: Upload selected files ------------------------\r\n handleChange = async (event) => {\r\n let data = {};\r\n if (this.state.batchProcess) {\r\n let scheduleTime = {\r\n BatchScheduledDateTime: this.state.batchTime,\r\n };\r\n // API: Create a batch upload for the selected files\r\n await axios\r\n .post(API_Endpoint + `/CreateBatch`, scheduleTime)\r\n .then((res) => {\r\n if (res.status === 200) {\r\n data = {\r\n batchId: res.data.batchId,\r\n isBatchFileProcessing: true,\r\n };\r\n }\r\n });\r\n this.setState({\r\n selectedTime: \"\",\r\n batchTime: \"\",\r\n batchProcess: false,\r\n });\r\n }\r\n UserStore.selectedfiles(this.state.selectedFiles);\r\n var ele = document.getElementsByClassName(\"file-checkbox\");\r\n const updatedDropFile = toJS(UserStore.droppedFiles);\r\n const updatedSelectedList = this.state.selectedFiles;\r\n const count = UserStore.countforProgress;\r\n this.setState({\r\n countSeletedItem: this.state.selectedFiles.length,\r\n });\r\n UserStore.setCount(count + 1);\r\n const progessFile = toJS(UserStore.selectedfilesforupload);\r\n const allFile = [...progessFile, ...this.state.selectedFiles];\r\n UserStore.selectedFilesforupload(allFile);\r\n \r\n for(let t in this.state.selectedFiles) {\r\n var index = this.state.files.indexOf(this.state.selectedFiles[t]);\r\n if (index > -1) {\r\n this.state.files.splice(index, 1);\r\n }\r\n }\r\n \r\n for (let i in this.state.selectedFiles){\r\n var idx = this.state.droppedFiles.findIndex(p => p.name==this.state.selectedFiles[i]);\r\n this.state.droppedFiles.splice(idx,1); \r\n }\r\n \r\n this.setState({\r\n files: this.state.files,\r\n droppedFiles: this.state.droppedFiles,\r\n selectedFiles: [],\r\n });\r\n \r\n\r\n for (var i = 0; i < ele.length; i++) {\r\n if (ele[i].type === \"checkbox\") ele[i].checked = false;\r\n }\r\n \r\n for (let x = 0; x < updatedDropFile.length; x++) {\r\n let fileCount = 0;\r\n for (let z = 0; z < updatedSelectedList.length; z++) {\r\n if (updatedDropFile[x].name === updatedSelectedList[z]) {\r\n fileCount = fileCount + 1;\r\n updatedSelectedList[z]=\"\";\r\n \r\n const filename = updatedDropFile[x].name;\r\n // const workspaceid = UserStore.workspaceId;\r\n const workspaceid = UserStore.workspaceuploadID;\r\n const tagid = this.state.taggedFiles.filter((tag) => {\r\n if (tag.filename === filename) {\r\n return tag.tag;\r\n }\r\n });\r\n const tagIds = tagid.map((tg) => tg.tag);\r\n data = {\r\n ...data,\r\n workSpaceId: workspaceid,\r\n fileName: filename,\r\n tagIds: tagIds,\r\n transmittalNumber: this.state.transmittalno,\r\n };\r\n\r\n const file = updatedDropFile[x];\r\n\r\n const options = {\r\n // headers: { 'Ocp-Apim-Subscription-Key': '3fcb6bbb0dce4ca38442284bdfc12df2' },\r\n onUploadProgress: (ProgressEvent) => {\r\n const { loaded, total } = ProgressEvent;\r\n let percent = Math.floor((loaded * 100) / total);\r\n UserStore.getPercentage(percent);\r\n if (percent < 100) {\r\n this.setState({\r\n uploadPercentage: percent,\r\n });\r\n } else if (percent === 100) {\r\n this.state.uploadedFile.push(filename);\r\n }\r\n },\r\n };\r\n if (fileCount == 1) {\r\n // API: Upload path for individual files\r\n await axios\r\n .post(API_Endpoint + `/GetUploadPath`, data, options)\r\n\r\n .then((res) => {\r\n const filename = res.data.fileName;\r\n let uri = res.data.sasUri; \r\n if (res.status === 200) {\r\n \r\n this.setState({\r\n uploadblob: true,\r\n fileSucceded: [file.name],\r\n });\r\n const resid = this.handleblobLoad(uri, file, filename);\r\n \r\n } else {\r\n UserStore.getPercentage(0); \r\n this.setState({\r\n fileFailed: [file.name],\r\n }); \r\n this.handleFailed(uri, res.data.message, filename);\r\n }\r\n });\r\n } \r\n }\r\n }\r\n }\r\n UserStore.dropfiles(this.state.droppedFiles);\r\n this.setState({\r\n transmittalno: '' \r\n })\r\n };\r\n\r\n // -------------------------Start: Function: upload file to bobo storage -------------\r\n handleblobLoad = async (uri, file, filename) => {\r\n try{\r\n localStorage.setItem(\"apicalls\",\"active\");\r\n const blobServiceClient1 = new BlockBlobClient(uri);\r\n const uploadBlobResponse = await blobServiceClient1.uploadData(file);\r\n if(!uploadBlobResponse.requestId)\r\n {\r\n // API: Upload file to blob\r\n let res = await axios.post(API_Endpoint + `/FileUploadComplete`, {\r\n \"fileUploadCompletedList\":[\r\n {\r\n \"fileName\": filename,\r\n \"fileUploadedSuccessfully\": false,\r\n \"status\": \"No response from blob\"\r\n }\r\n ]}).then(() => {\r\n localStorage.setItem(\"apicalls\",\"inactive\");\r\n }); \r\n \r\n let files = toJS(UserStore.selectedfilesforupload);\r\n let splittedfilenames = filename.split(\"_\")[0];\r\n let filenameresults = filename.split(`${splittedfilenames}_`)[1];\r\n UserStore.selectedFilesforupload(\r\n files.filter((item) => item !== filenameresults)\r\n );\r\n \r\n \r\n } \r\n else\r\n {\r\n let res = await axios.post(API_Endpoint + `/FileUploadComplete`, {\r\n \"fileUploadCompletedList\":[\r\n {\r\n \"fileName\": filename,\r\n \"fileUploadedSuccessfully\": true,\r\n \"status\": \"File Uploaded Successfully\"\r\n }\r\n \r\n ]}).then(() => {\r\n localStorage.setItem(\"apicalls\",\"inactive\");\r\n });\r\n let filesnew = toJS(UserStore.selectedfilesforupload);\r\n let splittedfilenamesnew = filename.split(\"_\")[0];\r\n let filenameresultsnew = filename.split(`${splittedfilenamesnew}_`)[1];\r\n UserStore.selectedFilesforupload(\r\n filesnew.filter((item) => item !== filenameresultsnew)\r\n );\r\n } \r\n \r\n\r\n }\r\n \r\n catch (error) {\r\n let files = toJS(UserStore.selectedfilesforupload);\r\n let splittedfilename = filename.split(\"_\")[0];\r\n let filenameresult = filename.split(`${splittedfilename}_`)[1];\r\n \r\n UserStore.selectedFilesforupload(\r\n files.filter((item) => item !== filenameresult)\r\n );\r\n let errstr = error.message.split(\".\\n\")[0];\r\n\r\n this.logMyErrors(errstr, filename); \r\n throw new Error('Error Uploading the selfie to blob'); \r\n} \r\n\r\nUserStore.getprocessGrid(1);\r\n localStorage.setItem(\"getprocessGrid\", 1);\r\n const data = this.state.apifileName;\r\n this.state.apifileName.push(filename);\r\n this.state.count = this.state.count + 1;\r\n UserStore.addFiles(file.name);\r\n if (this.state.count === this.state.countSeletedItem) { \r\n history.push(\"/Workspace/UploadFiles\");\r\n this.setState({\r\n count: 0,\r\n batchProcess: false,\r\n });\r\n } \r\n \r\n };\r\n // -------------------------End: Function: upload file to bobo storage -------------\r\n // ----------------------------------End: Function: Upload selected files ------------------------\r\n\r\n // ------------------Start: Function: Log errors while uploading-----------------------\r\n logMyErrors = async(error,filename)=>\r\n {\r\n\r\n let splittedfilename = filename.split(\"_\")[0];\r\n let filenameresult = filename.split(`${splittedfilename}_`)[1];\r\n \r\n let delfiles = [...UserStore.rejectedfilesforupload,filenameresult];\r\n\r\n UserStore.rejectedFilesforupload(delfiles);\r\n \r\n let res = await axios.post(API_Endpoint + `/FileUploadComplete`, {\r\n \"fileUploadCompletedList\":[\r\n {\r\n \"fileName\": filename,\r\n \"fileUploadedSuccessfully\": false,\r\n \"status\": error\r\n }\r\n ]});\r\n \r\n }\r\n // ------------------End: Function: Log errors while uploading-----------------------\r\n\r\n handleFailed = async (uri, data, filename) => {\r\n let files = toJS(UserStore.selectedfilesforupload);\r\n let splittedfilename1 = filename.split(\"_\")[0];\r\n let filenameresult1 = filename.split(`${splittedfilename1}_`)[1];\r\n \r\n UserStore.selectedFilesforupload(\r\n files.filter((item) => item !== filenameresult1)\r\n );\r\n let delfiles = [...UserStore.rejectedfilesforupload,filename];\r\n UserStore.rejectedFilesforupload(delfiles);\r\n let res = await axios.post(API_Endpoint + `/FileUploadComplete`, {\r\n \"fileUploadCompletedList\":[\r\n {\r\n \"fileName\": filename,\r\n \"fileUploadedSuccessfully\": false,\r\n \"status\": data\r\n }\r\n ]});\r\n }\r\n\r\n openModal = () => {\r\n if (this.state.selectedFiles.length === 0) {\r\n this.setState({\r\n fileSelectionError: true,\r\n fileSelectionErrorMsg: \"Please select at least one file to upload\",\r\n });\r\n } else if (this.state.transmittalno === \"\") {\r\n this.setState({\r\n showfiletypedailog: true,\r\n showmessage: \"Please type Transmittal Number to upload\",\r\n });\r\n } else {\r\n this.setState({ show: true, showSetTimings: false });\r\n }\r\n };\r\n \r\n handleFileSelection = () => {\r\n this.setState({ fileSelectionError: false, fileSelectionErrorMsg: \"\" });\r\n };\r\n\r\n changeStatus = () => {\r\n this.setState({ openDatePicker: false });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({\r\n showfiletypedailog: false,\r\n });\r\n };\r\n\r\n handleTransmittalNoChange = (e) => {\r\n let Transno = e.target.value;\r\n this.setState({\r\n transmittalno: Transno,\r\n errorTransmittalNo: false,\r\n errorMsgTransmittalNo: \"\",\r\n });\r\n };\r\n\r\n handleClosePopup = () => {\r\n this.setState({\r\n show: false,\r\n selectedTime: \"\",\r\n batchProcess: false,\r\n batchTime: \"\",\r\n });\r\n };\r\n\r\n handleUploadSubmit = () => {\r\n this.handleChange();\r\n this.setState({ show: false });\r\n this.removeSelectAll();\r\n };\r\n\r\n showTimings = (e) => {\r\n if (e.target.value === \"batchProcess\") {\r\n this.setState({ showSetTimings: true, batchProcess: true });\r\n } else {\r\n this.setState({\r\n showSetTimings: false,\r\n batchProcess: false,\r\n batchTime: \"\",\r\n selectedTime: \"\",\r\n });\r\n }\r\n };\r\n\r\n showNextButton = () => {\r\n this.props.moveToUpload(1);\r\n };\r\n render() {\r\n const filesList = toJS(UserStore.droppedFiles);\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Select All\r\n \r\n
\r\n {/* */}\r\n this.handleTransmittalNoChange(e)}\r\n label=\"Transmittal Number\"\r\n error={this.state.errorTransmittalNo}\r\n helperText={this.state.errorMsgTransmittalNo}\r\n />\r\n
\r\n {this.state.selectedFiles.length > 0 && 0 ? {\r\n font: \"normal normal normal 1vw Helvetica\",\r\n marginLeft: \"23.4vw\"\r\n } : {\r\n font: \"normal normal normal 1vw Helvetica\",\r\n marginLeft: \"3vw\"\r\n }}\r\n >\r\n {this.state.selectedFiles.length} {this.state.countmsg}\r\n }\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
Are you sure to delete?
\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n {this.state.fileSelectionErrorMsg}\r\n {/* */}\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n }\r\n label=\"Upload files for processing now\"\r\n style={{ fontSize: \"0.9vw\" }}\r\n />\r\n }\r\n label=\"Upload files for batch processing\"\r\n style={{ fontSize: \"0.9vw\" }}\r\n />\r\n {this.state.showSetTimings ? (\r\n \r\n
\r\n \r\n at {this.state.selectedTime === \"\" ? \"____\" : this.state.selectedTime} \r\n \r\n
\r\n }\r\n />\r\n
\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n Submit\r\n \r\n\r\n \r\n Cancel\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.showmessage}\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n \r\n }\r\n}\r\n","import React from \"react\";\r\nimport Button from \"react-bootstrap/Button\";\r\nimport * as FileSaver from \"file-saver\";\r\nimport * as XLSX from \"xlsx\";\r\nimport axios from \"axios\";\r\nimport Moment from \"moment\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport { toJS } from \"mobx\";\r\nimport UserStore from \"../components/UserStore\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nvar rowget = [];\r\n\r\nconst API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n\r\n// Flags and data : id, fileName, flag, frompid depending on type of report\r\n\r\nconst ExportExcel = ({ id, fileName, flag, frompid, wType }) => {\r\n \r\n const fileType = \"application/vnd.ms-excel\";\r\n const fileExtension = \".xlsx\";\r\n var today = new Date();\r\n var startdate = Moment(\r\n today.getFullYear() + \"-\" + today.getMonth() + \"-\" + (today.getDate() + 4)\r\n ).format(\"YYYY-MM-DD\");\r\n var enddate = Moment(\r\n today.getFullYear() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getDate()\r\n ).format(\"YYYY-MM-DD\");\r\n\r\n const [show, setshow] = React.useState(false);\r\n const [message, setshowMessage] = React.useState(\"\");\r\n const [count, setcount] = React.useState(0);\r\n const handleClose = () => {\r\n setshow(false);\r\n };\r\n\r\n // setting report data for pid\r\n\r\n const formatpid = (item, dateFormat, index) => {\r\n let columnspid = {\r\n \"Sr No\":item.serialNumber,\r\n \"File Name\":\r\n item.fileName != null ? item.fileName : \"\",\r\n \"PID No\": item.isProcessed===\"No\" && item.processedPercentage===\"0%\" || item.isProcessed===false && item.processedPercentage===0 ?\"Not Detected\":item.pidNumber,\r\n \"PID Rev. No.\": item.isProcessed===\"No\" && item.processedPercentage===\"0%\" || item.isProcessed===false && item.processedPercentage===0 ?\"Not Detected\":item.pidRevisionNumber,\r\n \"Sheet No.\": item.sheetNumber != null ? item.sheetNumber : \"\",\r\n \"PID Description\": item.isProcessed===\"No\" && item.processedPercentage===\"0%\" || item.isProcessed===false && item.processedPercentage===0 ?\"Not Detected\":item.pidDescription,\r\n \"Upload Date & Time Stamp\": \r\n item.fileUploadDttm != \"\"\r\n ? Moment.utc(item.fileUploadDttm, \"DD/MM/YYYY hh:mm:ss a\")\r\n .local()\r\n .format(\"DD/MM/YYYY hh:mm:ss a\")\r\n : \"\",\r\n \"Upload User Name\": item.fileUploadedBy != null ? item.fileUploadedBy : \"\",\r\n \"Processed\":\r\n item.isProcessed != null\r\n ? item.isProcessed === true || item.isProcessed === \"Yes\"\r\n ? \"Yes\"\r\n : \"No\"\r\n : \"\",\r\n \"Processed %\":\r\n item.processedPercentage != null ? item.processedPercentage : \"\",\r\n \"Approved\": item.isApproved != null ? (item.isApproved ? \"Yes\" : \"No\") : \"\",\r\n \"Approved Date & Time\": \r\n item.approvedDttm != \"\"\r\n ? Moment.utc(item.approvedDttm, \"DD/MM/YYYY hh:mm:ss a\")\r\n .local()\r\n .format(\"DD/MM/YYYY hh:mm:ss a\")\r\n : \"\",\r\n \"Total Line Count\": item.totalLineCount!= null ? item.totalLineCount : \"\",\r\n \"Total Valve Count\": item.totalValveCount!= null ? item.totalValveCount : \"\",\r\n \"Duplicate File\":\r\n item.isDuplicateFile != null\r\n ? item.isDuplicateFile === true || item.isDuplicateFile === \"Yes\"\r\n ? \"Yes\"\r\n : \"No\"\r\n : \"\",\r\n \"Superseded\":\r\n item.isSuperseded != null\r\n ? item.isSuperseded === true || item.isSuperseded === \"Yes\"\r\n ? \"Yes\"\r\n : \"No\"\r\n : \"\",\r\n \"Rejection Remark\":\r\n item.rejectionRemark != null ? item.rejectionRemark : \"\",\r\n };\r\n return columnspid;\r\n\r\n }\r\n // setting report data for SR\r\n const format = (items, tickBased, dateFormat) => {\r\n let processingDate;\r\n let modifiedDate;\r\n\r\n if(items.isChange === false || items.isChange === true)\r\n {\r\n items.isChange = items.Change === true ? \"Yes\" : \"No\";\r\n }\r\n\r\n if(items.processingDate)\r\n {\r\n if(items.processingDate.includes(\"+\"))\r\n {\r\n processingDate = items.processingDate.includes(\"+\") ? items.processingDate.split(\"+\") : items.processingDate;\r\n processingDate = processingDate[0].trim().replaceAll(\"-\",\"/\");\r\n processingDate = Moment.utc(processingDate, \"YYYY/MM/DD hh:mm:ss\").local().format(\"DD/MM/YYYY hh:mm:ss a\");\r\n }\r\n else\r\n {\r\n processingDate = items.processingDate;\r\n } \r\n }else\r\n {\r\n processingDate = '';\r\n }\r\n\r\n if(items.modiffiedDate)\r\n {\r\n if(items.modiffiedDate.includes(\"+\"))\r\n {\r\n modifiedDate = items.modiffiedDate.includes(\"+\") ? items.modiffiedDate.split(\"+\") : items.modiffiedDate;\r\n modifiedDate = modifiedDate[0].trim().replaceAll(\"-\",\"/\");\r\n modifiedDate = Moment.utc(modifiedDate, \"YYYY/MM/DD hh:mm:ss\").local().format(\"DD/MM/YYYY hh:mm:ss a\");\r\n }\r\n else\r\n {\r\n modifiedDate = items.modiffiedDate;\r\n } \r\n }else\r\n {\r\n modifiedDate = '';\r\n }\r\n \r\n let columns = {\r\n \"Transmittal No.\":\r\n items.transmittalNumber != null ? items.transmittalNumber : \"\",\r\n \"Document Name\": items.documentName,\r\n Processed:\r\n items.isProcessed != null\r\n ? items.isProcessed === true || items.isProcessed === \"Yes\"\r\n ? \"Yes\"\r\n : \"No\"\r\n : \"\",\r\n Percentage:\r\n items.processedPercentage != null ? items.processedPercentage : \"\",\r\n \r\n \"Line No.\": items.lineNumber != null ? items.lineNumber : \"\",\r\n \"Isometric No.\":\r\n items.isometricNumber != null ? items.isometricNumber : \"\",\r\n \"Sheet No.\": items.sheetNumber != null ? items.sheetNumber : \"\",\r\n \"Rev. No.\": items.revisionNumber != null ? items.revisionNumber : \"\",\r\n };\r\n let columns2 = {\r\n Change:\r\n items.isChange === null || items.isChange === \"\" ? \"\" : items.isChange ,\r\n Duplicate:\r\n items.isDuplicate != null\r\n ? items.isDuplicate === \"Yes\" || items.isDuplicate === true\r\n ? \"Yes\"\r\n : \"No\"\r\n : \"\",\r\n \"Modified Doc.\": items.modifiedDoc != null ? items.modifiedDoc : \"\",\r\n \"Processing Date Time\":\r\n processingDate != \"\"\r\n ? processingDate\r\n : \"\",\r\n \"Modified Date Time\":\r\n modifiedDate != \"\"\r\n ? modifiedDate\r\n : \"\",\r\n \"Modified By\": items.modifiedBy != null ? items.modifiedBy : \"\",\r\n \"Acceptance Status\":\r\n items.acceptanceStatus != null\r\n ? items.acceptanceStatus === \"Accepted\" ||\r\n items.acceptanceStatus === \"Yes\"\r\n ? \"Yes\"\r\n : items.acceptanceStatus === \"Rejected\" ||\r\n items.acceptanceStatus === \"No\"\r\n ? \"No\"\r\n : \"\"\r\n : \"\",\r\n \"Confidence Level\":\r\n items.confidenceLevel != null ? items.confidenceLevel : \"\",\r\n \"Rejection Remarks\":\r\n items.rejectionRemark != null ? items.rejectionRemark : \"\",\r\n };\r\n if (tickBased === \"true\" || wType) {\r\n columns = {\r\n ...columns,\r\n \"Checkbox01 Label\":\r\n items.labelCheckbox01,\r\n \"Checkbox01 Selection\":\r\n items.checkbox01,\r\n \"Checkbox02 Label\": \r\n items.labelCheckbox02,\r\n \"Checkbox02 Selection\":\r\n items.checkbox02,\r\n \"Checkbox03 Label\":\r\n items.labelCheckbox03,\r\n \"Checkbox03 Selection\":\r\n items.checkbox03,\r\n \"Checkbox04 Label\":\r\n items.labelCheckbox04,\r\n \"Checkbox04 Selection\":\r\n items.checkbox04,\r\n ...columns2,\r\n };\r\n } else {\r\n columns = {\r\n ...columns,\r\n Detected:\r\n items.isDetected != null\r\n ? items.isDetected === \"Yes\" || items.isDetected === true\r\n ? \"Yes\"\r\n : \"No\"\r\n : \"\",\r\n \"Phrase 1\":\r\n items.phrase1 != null\r\n ? items.phrase1 === \"Found\" || items.phrase1 === true\r\n ? \"Found\"\r\n : \"Not Found\"\r\n : \"\",\r\n \"Phrase 2\":\r\n items.phrase2 != null\r\n ? items.phrase2 === \"Found\" || items.phrase2 === true\r\n ? \"Found\"\r\n : \"Not Found\"\r\n : \"\",\r\n \"Phrase 3\":\r\n items.phrase3 != null\r\n ? items.phrase3 === \"Found\" || items.phrase3 === true\r\n ? \"Found\"\r\n : \"Not Found\"\r\n : \"\",\r\n \"Phrase 4\":\r\n items.phrase4 != null\r\n ? items.phrase4 === \"Found\" || items.phrase4 === true\r\n ? \"Found\"\r\n : \"Not Found\"\r\n : \"\",\r\n ...columns2,\r\n };\r\n }\r\n return columns;\r\n };\r\n const exportToCSV = async (id, fileName, frompid) => {\r\n \r\n if (flag == 1) {\r\n rowget = [];\r\n let data = toJS(UserStore.reportData);\r\n if(data.length === 0) {\r\n data = toJS(UserStore.PIDProcessData);\r\n }\r\n let reportstamp = UserStore.reportstamp\r\n ? UserStore.reportstamp\r\n : localStorage.getItem(\"setreportStamp\")\r\n ? localStorage.getItem(\"setreportStamp\")\r\n : false;\r\n\r\n if(frompid === \"pid\")\r\n {\r\n var res = await axios.get(\r\n API_Endpoint + `/GetProcessedPidsReport?projectworkSpaceId=${id}`);\r\n }\r\n else\r\n {\r\n var res = await axios.get(\r\n API_Endpoint + `/GetProcessedIsometricsReport?workSpaceId=${id}`\r\n );\r\n }\r\n if (res.data.length != 0) {\r\n const myrows = res.data;\r\n myrows.map((items, index) => {\r\n if(frompid === \"pid\")\r\n {\r\n var row2 = formatpid(items, false, index);\r\n }\r\n else{\r\n var row2 = format(items, localStorage.getItem(\"isIsometricTickBased\"), true);\r\n }\r\n rowget.push(row2);\r\n });\r\n }\r\n \r\n var resdata = [];\r\n if (reportstamp == true) {\r\n data.map((items, index) => {\r\n const row3 = (frompid === \"pid\") ? formatpid(items, true, index) : format(items, localStorage.getItem(\"isIsometricTickBased\"), false);\r\n resdata.push(row3);\r\n });\r\n } else {\r\n resdata = rowget;\r\n rowget = [];\r\n }\r\n \r\n if (resdata.length == 0 && count == 0) {\r\n setcount(count + 1);\r\n setshow(true);\r\n setshowMessage(\"Please upload files for report generation\");\r\n } else if (resdata.length != 0) {\r\n const ws = XLSX.utils.json_to_sheet(resdata);\r\n const wb = { Sheets: { data: ws }, SheetNames: [\"data\"] };\r\n const excelBuffer = XLSX.write(wb, { bookType: \"xlsx\", type: \"array\" });\r\n const data = new Blob([excelBuffer], { type: fileType });\r\n FileSaver.saveAs(data, fileName + fileExtension);\r\n }\r\n } else {\r\n let res = [];\r\n resdata = toJS(UserStore.reportData)\r\n ? toJS(UserStore.reportData)\r\n : localStorage.getItem(\"itemChange\")\r\n ? localStorage.getItem(\"itemChange\")\r\n : [];\r\n \r\n if(frompid === \"pid\")\r\n {\r\n resdata = resdata.map((items,index) =>\r\n formatpid(items, true, index)\r\n );\r\n }\r\n else\r\n {\r\n resdata = resdata.map((items) =>\r\n format(items, localStorage.getItem(\"isIsometricTickBased\"), true)\r\n );\r\n }\r\n const ws = XLSX.utils.json_to_sheet(resdata);\r\n const wb = { Sheets: { data: ws }, SheetNames: [\"data\"] };\r\n const excelBuffer = XLSX.write(wb, { bookType: \"xlsx\", type: \"array\" });\r\n const data = new Blob([excelBuffer], { type: fileType });\r\n FileSaver.saveAs(data, fileName + fileExtension);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {\r\n exportToCSV(id, fileName, frompid);\r\n setcount(0);\r\n }}\r\n >\r\n\r\n\r\n \r\n \r\n {frompid === \"pid\"?\"Export Report\":\"Download Report\"}\r\n \r\n\r\n \r\n \r\n \r\n {\" \"}\r\n Please process at least one document to download the report\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ExportExcel;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\n * FilterListItem\r\n * @extends React\r\n */\r\nclass FilterListItem extends React.Component {\r\n /**\r\n * constructor\r\n * @param {Object} props\r\n */\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n /**\r\n * _checkBoxClicked function called when list item is clicked\r\n */\r\n _checkBoxClicked = () => {\r\n this.props.filterClicked(this.props.index);\r\n }\r\n\r\n /**\r\n * render\r\n * @return {JSX}\r\n */\r\n render() {\r\n const checkBoxClass = [this.props.selected ? 'selected ' : '', 'filter-check-box'].join('');\r\n return (
\r\n
\r\n
{this.props.label}
\r\n
);\r\n }\r\n}\r\n\r\n\r\nFilterListItem.propTypes = {\r\n filterClicked: PropTypes.func.isRequired,\r\n index: PropTypes.number.isRequired,\r\n label: PropTypes.any.isRequired,\r\n selected: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default FilterListItem;\r\n","import axios from \"axios\";\r\nimport React from \"react\";\r\nimport moment from \"moment\";\r\n\r\nclass DataGridPopup extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n rows: [],\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const APIEndpoint = process.env.REACT_APP_API_ENDPOINT;\r\n // alert(this.props.wsId);\r\n const res = axios\r\n .get(APIEndpoint + `/GetBatchStatus?workSpaceId=${this.props.wsId}`)\r\n .then((res) => {\r\n const myrows = res.data;\r\n let rowget = [];\r\n if (myrows) {\r\n myrows.map((items, index) => {\r\n const row2 = {\r\n id: items.batchId,\r\n batchScheduleDateTime: items.batchScheduleDateTime,\r\n batchCreationDateTime: items.batchCreationDateTime,\r\n batchProcessingDateTime: items.batchProcessingDateTime,\r\n batchCreatedBy: items.batchCreatedBy,\r\n filesProcessedSuccessfully: items.filesProcessedSuccessfully,\r\n filesProcessedFailure: items.filesProcessedFailure,\r\n fileWaitingForProcessing: items.fileWaitingForProcessing,\r\n totalFilesUploaded: items.totalFilesUploaded,\r\n totalIsometricUploaded: items.totalIsometricUploaded,\r\n isometricProcessedSuccessfully:\r\n items.isometricProcessedSuccessfully,\r\n isometricProcessedFailure: items.isometricProcessedFailure,\r\n isometricWaitingForProcessing:\r\n items.isometricWaitingForProcessing,\r\n };\r\n rowget.push(row2);\r\n });\r\n }\r\n this.setState({ rows: rowget });\r\n });\r\n }\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n {/* Batch Id */}\r\n Batch Schedule DateTime\r\n {/* Batch Creation DateTime (UTC) */}\r\n Batch Created By\r\n Batch Processing DateTime\r\n Total Files Uploaded\r\n Files Processed Successfully\r\n File Waiting For Processing\r\n Files Processed Failure\r\n Total Isometric Uploaded\r\n Isometric Processed Successfully\r\n Isometric Waiting For Processing\r\n Isometric Processed Failure\r\n \r\n \r\n \r\n {this.state.rows.map((items) => (\r\n \r\n {/* {items.id} */}\r\n {items.batchScheduleDateTime != \"\" ? moment.utc(items.batchScheduleDateTime, 'DD/MM/YYYY hh:mm:ss a').local().format('DD/MM/YYYY hh:mm:ss a') : \"\"}\r\n {items.batchCreatedBy}\r\n {items.batchProcessingDateTime != \"\" ? moment.utc(items.batchProcessingDateTime, 'DD/MM/YYYY hh:mm:ss a').local().format('DD/MM/YYYY hh:mm:ss a') : \"\"}\r\n {items.totalFilesUploaded}\r\n {items.filesProcessedSuccessfully}\r\n {items.fileWaitingForProcessing}\r\n {items.filesProcessedFailure}\r\n {items.totalIsometricUploaded}\r\n {items.isometricProcessedSuccessfully}\r\n {items.isometricWaitingForProcessing}\r\n {items.isometricProcessedFailure}\r\n \r\n ))}\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default DataGridPopup;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\n * SelectAllItem Select all list item\r\n * @extends React\r\n */\r\nclass SelectAllItem extends React.Component {\r\n /**\r\n * constructor\r\n * @param {Object} props\r\n */\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n /**\r\n * _selectAllClicked\r\n */\r\n _selectAllClicked = () => {\r\n this.props.filterClicked();\r\n }\r\n\r\n /**\r\n * render\r\n * @return {JSX}\r\n */\r\n render() {\r\n const checkBoxClass = [this.props.selected ? 'selected ' : '', 'filter-check-box'].join('');\r\n return (
\r\n
\r\n
Select All
\r\n
);\r\n }\r\n}\r\n\r\nSelectAllItem.propTypes = {\r\n filterClicked: PropTypes.func.isRequired,\r\n selected: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SelectAllItem;\r\n","'use strict';\r\n\r\nexport const isUndefined = (str, emptyStringCheck) => {\r\n if (typeof str === 'undefined' || str === null || str === 'undefined' || str === 'null') {\r\n return true;\r\n }\r\n if (emptyStringCheck && typeof str === 'string' && str.toString().trim().length === 0) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nexport const isTypeArray = (val) => {\r\n return Object.prototype.toString.call(val) === '[object Array]' ? true : false;\r\n};\r\n\r\nexport const isTypeString = (val) => {\r\n return Object.prototype.toString.call(val) === '[object String]' ? true : false;\r\n};\r\n\r\nexport const getValForKey = (obj, key) => {\r\n if (!isUndefined(key)) {\r\n if (isTypeString(key)) {\r\n const keyArray = key.split('.');\r\n\r\n if (keyArray.length === 1) {\r\n return obj[key];\r\n } else {\r\n let finalValue = obj;\r\n let i; let l;\r\n for (i=0, l=keyArray.length; i < l; i=i+1) {\r\n const currKey = keyArray[i];\r\n const currValue = finalValue[currKey];\r\n\r\n if (!isUndefined(currValue)) {\r\n finalValue = currValue;\r\n } else {\r\n finalValue = undefined;\r\n break;\r\n }\r\n }\r\n\r\n return finalValue;\r\n }\r\n } else {\r\n return obj[key];\r\n }\r\n }\r\n return;\r\n};\r\n\r\nexport const uniq = (array) => {\r\n if ((array != null && array.length)) {\r\n const unique = [...new Set(array)];\r\n return unique;\r\n }\r\n return [];\r\n};\r\n\r\nexport const without = (array, values=[]) => {\r\n const result = [];\r\n\r\n if (!array.length) {\r\n return result;\r\n }\r\n\r\n array.forEach((currItem) => {\r\n if (values.indexOf(currItem) < 0) {\r\n result.push(currItem);\r\n }\r\n });\r\n\r\n return result;\r\n};\r\n\r\nexport default {\r\n isUndefined,\r\n isTypeArray,\r\n isTypeString,\r\n getValForKey,\r\n uniq,\r\n without,\r\n};\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { isUndefined } from \"./lib/util\";\r\n\r\n/**\r\n * SearchBar search input component\r\n * @extends React\r\n */\r\nclass SearchBar extends React.Component {\r\n /**\r\n * constructor\r\n * @param {Object} props\r\n */\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n /**\r\n * _searchInputChanged\r\n * @param {Event} e\r\n */\r\n _searchInputChanged = (e) => {\r\n const newValue = document.getElementById(\"inputTag\").value;\r\n this._callSearchChanged(newValue);\r\n };\r\n\r\n _searchKeyEntered = (e) => {\r\n if (e.charCode === 13 || e.keyCode === 13) {\r\n const newValue = document.getElementById(\"inputTag\").value;\r\n this._callSearchChanged(newValue);\r\n }\r\n };\r\n\r\n /**\r\n * _callSearchChanged function called to update the filters according to search\r\n * @param {String} val\r\n */\r\n _callSearchChanged = (val) => {\r\n this.props.searchChanged && this.props.searchChanged(val);\r\n };\r\n\r\n /**\r\n * render\r\n * @return {JSX}\r\n */\r\n render() {\r\n const sortClass = !isUndefined(this.props.sortType)\r\n ? \" \" + this.props.sortType\r\n : \"\";\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nSearchBar.propTypes = {\r\n searchChanged: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SearchBar;\r\n","import {\r\n uniq,\r\n without,\r\n isTypeArray,\r\n} from '../util';\r\n\r\nexport default class EventTarget {\r\n constructor(target) {\r\n this.target = target;\r\n this._handlers = {};\r\n this._pools = {};\r\n }\r\n\r\n // ------------------------------------\r\n // Utils\r\n // ------------------------------------\r\n\r\n _emit(name) {\r\n return (event) => {\r\n Object.keys(this._pools).forEach((poolName) => {\r\n const handlers = this._pools[poolName];\r\n if (!handlers) return;\r\n handlers.forEach((handler) => handler(event));\r\n return;\r\n });\r\n };\r\n }\r\n\r\n _normalize(handlers) {\r\n return isTypeArray(handlers) ? handlers : [handlers];\r\n }\r\n\r\n // ------------------------------------\r\n // Listeners handling\r\n // ------------------------------------\r\n\r\n _listen(name) {\r\n if (this._handlers.hasOwnProperty(name)) return;\r\n const handler = this._emit(name);\r\n\r\n this.target.addEventListener(name, handler);\r\n this._handlers[name] = handler;\r\n }\r\n\r\n _unlisten(name) {\r\n if (this._pools[name]) return;\r\n const handler = this._handlers[name];\r\n\r\n this.target.removeEventListener(name, handler);\r\n delete this._handlers[name];\r\n }\r\n\r\n empty() {\r\n return (this._handlers && Object.keys(this._handlers).length > 0) ? false : true;\r\n }\r\n\r\n // ------------------------------------\r\n // Pub/sub\r\n // ------------------------------------\r\n\r\n sub(name, handlers) {\r\n const newHandlers = this._normalize(handlers);\r\n const prevHandlers = this._pools[`${name}`] || [];\r\n const events = uniq([\r\n ...prevHandlers,\r\n ...newHandlers,\r\n ]);\r\n\r\n this._listen(name);\r\n this._pools[`${name}`] = events;\r\n }\r\n\r\n unsub(name, handlers) {\r\n const toRemoveHandlers = this._normalize(handlers);\r\n const prevHandlers = this._pools[`${name}`] || [];\r\n const events = without(\r\n prevHandlers,\r\n toRemoveHandlers,\r\n );\r\n\r\n if (events.length > 0) {\r\n this._pools[`${name}`] = events;\r\n return;\r\n }\r\n this._pools[`${name}`] = undefined;\r\n this._unlisten(name);\r\n }\r\n}\r\n","/**\r\n * Normalizes `target` for EventStack, because `target` can be passed as `boolean` or `string`.\r\n *\r\n * @param {boolean|string|HTMLElement|Window} target Value for normalization.\r\n * @return {HTMLElement|Window} A DOM node.\r\n */\r\nconst normalizeTarget = (target) => {\r\n if (target === 'document') return document;\r\n if (target === 'window') return window;\r\n return target || document;\r\n};\r\n\r\nexport default normalizeTarget;\r\n","import EventStack from './eventStack';\r\n\r\nexport default EventStack;\r\n","import EventTarget from './eventTarget';\r\nimport normalizeTarget from './normalizeTarget';\r\n\r\nclass EventStack {\r\n constructor() {\r\n this._targets = new Map();\r\n }\r\n\r\n // ------------------------------------\r\n // Target utils\r\n // ------------------------------------\r\n\r\n _find(target, autoCreate = true) {\r\n const normalized = normalizeTarget(target);\r\n\r\n if (this._targets.has(normalized)) return this._targets.get(normalized);\r\n if (!autoCreate) return;\r\n\r\n const eventTarget = new EventTarget(normalized);\r\n this._targets.set(normalized, eventTarget);\r\n\r\n return eventTarget;\r\n }\r\n\r\n _remove(target) {\r\n const normalized = normalizeTarget(target);\r\n\r\n this._targets.delete(normalized);\r\n }\r\n\r\n sub(name, handlers, options = {}) {\r\n const {target = document, pool = 'default'} = options;\r\n const eventTarget = this._find(target);\r\n\r\n eventTarget.sub(name, handlers, pool);\r\n }\r\n\r\n unsub(name, handlers, options = {}) {\r\n const {target = document, pool = 'default'} = options;\r\n const eventTarget = this._find(target, false);\r\n\r\n if (eventTarget) {\r\n eventTarget.unsub(name, handlers, pool);\r\n if (eventTarget.empty()) this._remove(target);\r\n }\r\n }\r\n}\r\n\r\nconst instance = new EventStack();\r\n\r\nexport default instance;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\n/**\r\n * FilterIcon\r\n * @extends React\r\n */\r\nclass FilterIcon extends React.Component {\r\n /**\r\n * constructor\r\n * @param {Object} props\r\n */\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n /**\r\n * _iconClicked filter icon clicked\r\n */\r\n _iconClicked = () => {\r\n this.props.iconClicked && this.props.iconClicked();\r\n };\r\n\r\n /**\r\n * render\r\n * @return {JSX}\r\n */\r\n render() {\r\n const className = [\r\n this.props.selected ? \"selected \" : \"\",\r\n \"table-filter-icon\",\r\n ].join(\"\");\r\n return
;\r\n }\r\n}\r\n\r\nFilterIcon.propTypes = {\r\n iconClicked: PropTypes.func.isRequired, // Function to be called when filter icon is clicked\r\n selected: PropTypes.bool,\r\n};\r\n\r\nexport default FilterIcon;\r\n","import React from 'react';\r\nimport {\r\n isUndefined,\r\n} from './lib/util';\r\nimport PropTypes from 'prop-types';\r\n\r\nclass SortIcon extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n _sortClicked = () => {\r\n this.props.sort();\r\n }\r\n\r\n render() {\r\n const sortClass = !isUndefined(this.props.sortType) ? (' ' + this.props.sortType) : '';\r\n return (
\r\n
\r\n
\r\n
);\r\n }\r\n}\r\n\r\nSortIcon.propTypes = {\r\n sort: PropTypes.func.isRequired,\r\n sortType: PropTypes.string,\r\n};\r\n\r\nexport default SortIcon;\r\n","import React from \"react\";\r\nimport FilterListItem from \"./filterListItem\";\r\nimport SelectAllItem from \"./selectAllItem\";\r\nimport SearchBar from \"./searchBar\";\r\nimport EventStack from \"./lib/eventStack\";\r\nimport FilterIcon from \"./filterIcon\";\r\nimport SortIcon from \"./sortIcon\";\r\nimport PropTypes from \"prop-types\";\r\nimport { ASC_VALUE, DSC_VALUE } from \"./lib/constants\";\r\nimport { isUndefined } from \"./lib/util\";\r\n\r\n/**\r\n * FilterList List of options displayed in the header of the table\r\n * @extends React\r\n */\r\nclass FilterList extends React.Component {\r\n /**\r\n * constructor\r\n * @param {Object} props\r\n */\r\n constructor(props) {\r\n super(props);\r\n\r\n this.appliedSearchFilters = undefined;\r\n this.searchValue = undefined;\r\n this.state = {\r\n showFilter: false,\r\n searchEnabled: false,\r\n };\r\n }\r\n\r\n /**\r\n * componentWillUnmount\r\n */\r\n componentWillUnmount() {\r\n /* Remove body click listener*/\r\n EventStack.unsub(\"click\", this._handleOutsideClick);\r\n }\r\n\r\n /**\r\n * _handleOutsideClick Function to hide open filter list when click is done anywhere else\r\n * @param {Event} e\r\n */\r\n _handleOutsideClick = (e) => {\r\n if (!this.filterIconNode.contains(e.target)) {\r\n this._hideFilter();\r\n }\r\n };\r\n\r\n /**\r\n * _filterIconClicked function handles click on filter icon\r\n * @param {Event} e\r\n */\r\n _filterIconClicked = (e) => {\r\n const filterState = this.state.showFilter;\r\n const newState = !filterState;\r\n\r\n if (newState) {\r\n this._displayFilter();\r\n } else {\r\n this._hideFilter();\r\n }\r\n };\r\n\r\n /**\r\n * _displayFilter function handles display of filter list\r\n */\r\n _displayFilter = () => {\r\n /* Body Click listener added*/\r\n EventStack.sub(\"click\", this._handleOutsideClick);\r\n this.setState({\r\n showFilter: true,\r\n });\r\n };\r\n\r\n /**\r\n * _hideFilter function hides filter list\r\n */\r\n _hideFilter = () => {\r\n /* Body Click listener removed*/\r\n EventStack.unsub(\"click\", this._handleOutsideClick);\r\n this.setState({\r\n showFilter: false,\r\n searchEnabled: false,\r\n });\r\n };\r\n\r\n /**\r\n * _filterUpdated method called when a filter list item is clicked\r\n * @param {Number} index Index of the filter clicked\r\n */\r\n _filterUpdated = (index) => {\r\n const allFilters = this.props.filterList;\r\n if (!isUndefined(allFilters[index])) {\r\n const newFilterState = !allFilters[index][\"selected\"];\r\n this._filterData(allFilters[index][\"key\"], !newFilterState);\r\n }\r\n };\r\n\r\n /**\r\n * [=_selectAllClicked method called when a select all item is clicked\r\n */\r\n _selectAllClicked = () => {\r\n const selectAllState = this.props.selectAllFilters;\r\n const newSelectAllState = !selectAllState;\r\n const searchState = this.state.searchEnabled;\r\n // const searchValue = this.searchValue;\r\n\r\n if (searchState) {\r\n return;\r\n }\r\n this.appliedSearchFilters = undefined;\r\n\r\n const visibleFiltersValues = this.props.filterList\r\n .filter((filterItem) => {\r\n if (newSelectAllState) {\r\n return filterItem.visible && !filterItem.selected;\r\n } else {\r\n return filterItem.visible && filterItem.selected;\r\n }\r\n })\r\n .map((filterItem) => {\r\n return filterItem.key;\r\n });\r\n\r\n this._resetData(visibleFiltersValues, newSelectAllState);\r\n };\r\n\r\n /**\r\n * _filterData Method calls parent props filter mehtod when filters are changed\r\n * @param {String} filterValue Filter value\r\n * @param {Boolean} addFilter Add/Remove\r\n */\r\n _filterData = (filterValue = undefined, addFilter = true) => {\r\n this.props.filterRows(\r\n filterValue,\r\n this.props.filterkey,\r\n addFilter,\r\n this.props.itemDisplayValueFunc\r\n );\r\n };\r\n\r\n /**\r\n * _resetData Method calls parent props reset mehtod\r\n * @param {Array} filterValues Array of filter values\r\n * @param {Boolean} selectAll Add/Remove\r\n */\r\n _resetData = (filterValues = [], selectAll = true) => {\r\n this.props.resetRows(\r\n filterValues,\r\n this.props.filterkey,\r\n selectAll,\r\n this.props.itemDisplayValueFunc\r\n );\r\n };\r\n\r\n /**\r\n * _sortClicked description\r\n */\r\n _sortClicked = () => {\r\n const currentSortType = this.props.sortType;\r\n let newSortType;\r\n if (isUndefined(currentSortType) || currentSortType === DSC_VALUE) {\r\n newSortType = ASC_VALUE;\r\n } else {\r\n newSortType = DSC_VALUE;\r\n }\r\n\r\n this.props.sortRows(newSortType, {\r\n itemSortValueFunc: this.props.itemSortValueFunc,\r\n caseSensitive: this.props.casesensitive === \"true\" ? true : false,\r\n key: this.props.filterkey,\r\n });\r\n };\r\n\r\n /**\r\n * _searchChanged Method called when search is triggered\r\n * @param {String} searchValue [Search value]\r\n */\r\n _searchChanged = (searchValue) => {\r\n const propKey = this.props.filterkey;\r\n this.searchValue = searchValue;\r\n\r\n const prevAppliedFilters = this.appliedSearchFilters;\r\n if (!isUndefined(searchValue, true)) {\r\n this.setState({\r\n searchEnabled: true,\r\n });\r\n\r\n searchValue = searchValue.toLowerCase();\r\n const filterList = this.props.filterList;\r\n\r\n const filtersToApply = filterList\r\n .filter((filterItem) => {\r\n const filterKey = filterItem.key.toString().toLowerCase();\r\n if (filterKey.indexOf(searchValue) < 0 && filterItem.visible) {\r\n return true;\r\n }\r\n return false;\r\n })\r\n .map((filterItem) => {\r\n return {\r\n key: propKey,\r\n value: filterItem.key,\r\n };\r\n });\r\n this.appliedSearchFilters = filtersToApply;\r\n this.props.filterMultipleRows(\r\n filtersToApply,\r\n prevAppliedFilters,\r\n this.props.itemDisplayValueFunc\r\n );\r\n } else {\r\n this.setState({\r\n searchEnabled: false,\r\n });\r\n\r\n this.appliedSearchFilters = [];\r\n this.props.filterMultipleRows(\r\n [],\r\n prevAppliedFilters,\r\n this.props.itemDisplayValueFunc\r\n );\r\n }\r\n };\r\n\r\n /**\r\n * render\r\n * @return {JSX}\r\n */\r\n render() {\r\n const filterState = this.state.showFilter;\r\n const showSearch = this.props.showsearch === \"false\" ? false : true;\r\n\r\n const filterListItemHtml = [];\r\n let filterListHtml;\r\n\r\n if (this.props.filterList.length > 1) {\r\n if (filterState) {\r\n const searchBarHtml = showSearch ? (\r\n \r\n ) : null;\r\n\r\n this.props.filterList.map((filterItem, index) => {\r\n if (filterItem.visible) {\r\n if (this.state.searchEnabled) {\r\n const filterKey = filterItem.key.toString().toLowerCase();\r\n if (filterKey.indexOf(this.searchValue.toLowerCase()) >= 0) {\r\n return filterListItemHtml.push(\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n filterListItemHtml.push(\r\n \r\n );\r\n }\r\n }\r\n });\r\n\r\n const filterListClass = [\r\n this.props.alignleft === \"true\" ? \"align-left \" : \"\",\r\n \"filter-list\",\r\n ].join(\"\");\r\n\r\n filterListHtml = (\r\n
\r\n {searchBarHtml}\r\n \r\n \r\n {filterListItemHtml}\r\n
\r\n );\r\n }\r\n\r\n const filterActive = !this.props.selectAllFilters || filterState;\r\n return (\r\n {\r\n this.filterIconNode = node;\r\n }}\r\n >\r\n \r\n {filterListHtml}\r\n \r\n );\r\n } else {\r\n return
;\r\n }\r\n }\r\n}\r\n\r\nFilterList.propTypes = {\r\n filterRows: PropTypes.func.isRequired,\r\n resetRows: PropTypes.func.isRequired,\r\n sortRows: PropTypes.func.isRequired,\r\n sortType: PropTypes.string,\r\n filterkey: PropTypes.string.isRequired,\r\n itemDisplayValueFunc: PropTypes.func,\r\n itemSortValueFunc: PropTypes.func,\r\n casesensitive: PropTypes.string,\r\n filterMultipleRows: PropTypes.func.isRequired,\r\n showsearch: PropTypes.string,\r\n alignleft: PropTypes.string,\r\n filterList: PropTypes.array,\r\n selectAllFilters: PropTypes.bool,\r\n};\r\n\r\nexport default FilterList;\r\n","export const BLANK_LABEL = '(blank)';\r\nexport const ASC_VALUE = 'asc';\r\nexport const DSC_VALUE = 'dsc';\r\n\r\nexport default {\r\n BLANK_LABEL,\r\n ASC_VALUE,\r\n DSC_VALUE,\r\n};\r\n","'use strict';\r\n\r\nimport {\r\n isUndefined,\r\n isTypeString,\r\n getValForKey,\r\n} from './util';\r\n\r\n/**\r\n * Function to sort an array (asc or dsc) w.r.t to an filter\r\n * @param {Array} inputArray Array to be sorted\r\n * @param {String} type asc or dsc\r\n * @param {Function} options.valueFunc Function to calculate value of an item(optional)\r\n * @param {Boolean} options.caseSensitive Whether case sensitive or not\r\n * @param {String} options.key Filter Key\r\n * @return {Array} Sorted array\r\n */\r\nexport const sortAction = (inputArray=[], type=undefined, {valueFunc=undefined, caseSensitive=false, key=undefined} ={}) => {\r\n if (!isUndefined(type)) {\r\n const inputCopy = [...inputArray];\r\n\r\n const sortFunc = (a, b) => {\r\n let aValue; let bValue;\r\n\r\n if (!isUndefined(key)) {\r\n aValue = getValForKey(a, key);\r\n bValue = getValForKey(b, key);\r\n } else {\r\n aValue = a;\r\n bValue = b;\r\n }\r\n\r\n if (!isUndefined(valueFunc)) {\r\n aValue = valueFunc(aValue);\r\n bValue = valueFunc(bValue);\r\n } else {\r\n if (!isNaN(Number(aValue)) && !isNaN(Number(bValue))) {\r\n aValue = Number(aValue);\r\n bValue = Number(bValue);\r\n }\r\n\r\n if (isTypeString(aValue)) {\r\n aValue = aValue.trim();\r\n if (!caseSensitive) {\r\n aValue = aValue.toUpperCase();\r\n }\r\n }\r\n\r\n if (isTypeString(bValue)) {\r\n bValue = bValue.trim();\r\n if (!caseSensitive) {\r\n bValue = bValue.toUpperCase();\r\n }\r\n }\r\n }\r\n\r\n if (isUndefined(aValue)) {\r\n aValue = '';\r\n }\r\n\r\n if (isUndefined(bValue)) {\r\n bValue = '';\r\n }\r\n\r\n let result = 0;\r\n\r\n if (aValue < bValue) {\r\n result = -1;\r\n } else {\r\n result = 1;\r\n }\r\n\r\n if (type === 'asc') {\r\n return result;\r\n } else {\r\n return -(result);\r\n }\r\n };\r\n\r\n return inputCopy.sort(sortFunc);\r\n }\r\n return inputArray;\r\n};\r\n\r\nexport default sortAction;\r\n","\"use strict\";\r\n\r\nimport { isUndefined, isTypeString, getValForKey } from \"./util\";\r\n\r\nimport { sortAction } from \"./sort\";\r\nimport { BLANK_LABEL, ASC_VALUE } from \"./constants\";\r\n\r\nexport const filterActions = (\r\n inputArray = [],\r\n filterArray = [],\r\n addFilter = true,\r\n valueFunc = undefined\r\n) => {\r\n const filteredArray = [];\r\n const dataWithFilter = inputArray.map((item) => {\r\n const itemCopy = Object.assign({}, item);\r\n\r\n let i;\r\n let l;\r\n\r\n if (isUndefined(itemCopy.appliedFilters)) {\r\n itemCopy.appliedFilters = {};\r\n }\r\n\r\n for (i = 0, l = filterArray.length; i < l; i = i + 1) {\r\n const filterItem = filterArray[i];\r\n const key = filterItem.key;\r\n let value = filterItem.value;\r\n\r\n if (isUndefined(value)) {\r\n value = \"\";\r\n }\r\n\r\n let itemValue = getValForKey(item, key);\r\n if (!isUndefined(valueFunc)) {\r\n itemValue = valueFunc(itemValue);\r\n }\r\n\r\n if (isUndefined(itemValue)) {\r\n itemValue = \"\";\r\n }\r\n\r\n if (isTypeString(itemValue)) {\r\n itemValue = itemValue.trim();\r\n }\r\n\r\n if (addFilter) {\r\n if (itemValue === value) {\r\n if (!itemCopy.appliedFilters[key]) {\r\n itemCopy.appliedFilters[key] = 0;\r\n }\r\n itemCopy.appliedFilters[key] += 1;\r\n }\r\n } else {\r\n if (itemValue === value) {\r\n itemCopy.appliedFilters[key] -= 1;\r\n if (itemCopy.appliedFilters[key] === 0) {\r\n delete itemCopy.appliedFilters[key];\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (Object.keys(itemCopy.appliedFilters).length === 0) {\r\n delete itemCopy[\"appliedFilters\"];\r\n filteredArray.push(Object.assign({}, itemCopy));\r\n }\r\n\r\n return itemCopy;\r\n });\r\n\r\n return {\r\n filteredArray,\r\n dataWithFilter,\r\n };\r\n};\r\n\r\n/**\r\n * [Function to apply a filter to an Array]\r\n * @param {Array} inputArray [Array to be filtered]\r\n * @param {Object} filter [{key, value} filter key and value]\r\n * @param {Boolean} addFilter\r\n * @param {Function} valueFunc [Function to calculate value of the property(optional)]\r\n * @return {Object}\r\n * filteredArray [Filtered items after appying filter]\r\n * dataWithFilter [inputArray along with modification due to applied filters]\r\n */\r\nexport const filterAction = (\r\n inputArray = [],\r\n filter = {},\r\n addFilter = true,\r\n valueFunc = undefined\r\n) => {\r\n const key = filter.key;\r\n let value = filter.value;\r\n\r\n if (isUndefined(value)) {\r\n value = \"\";\r\n }\r\n if (!isUndefined(key)) {\r\n const filteredArray = [];\r\n const dataWithFilter = inputArray.map((item) => {\r\n const itemCopy = Object.assign({}, item);\r\n let itemValue = getValForKey(item, key);\r\n\r\n if (!isUndefined(valueFunc)) {\r\n itemValue = valueFunc(itemValue);\r\n }\r\n\r\n if (isUndefined(itemValue)) {\r\n itemValue = \"\";\r\n }\r\n\r\n if (isUndefined(itemCopy.appliedFilters)) {\r\n itemCopy.appliedFilters = {};\r\n }\r\n\r\n if (isTypeString(itemValue)) {\r\n itemValue = itemValue.trim();\r\n }\r\n\r\n if (addFilter) {\r\n if (itemValue === value) {\r\n if (!itemCopy.appliedFilters[key]) {\r\n itemCopy.appliedFilters[key] = 0;\r\n }\r\n itemCopy.appliedFilters[key] += 1;\r\n }\r\n } else {\r\n if (itemValue === value) {\r\n itemCopy.appliedFilters[key] -= 1;\r\n if (itemCopy.appliedFilters[key] === 0) {\r\n delete itemCopy.appliedFilters[key];\r\n }\r\n }\r\n }\r\n\r\n if (Object.keys(itemCopy.appliedFilters).length === 0) {\r\n delete itemCopy[\"appliedFilters\"];\r\n filteredArray.push(Object.assign({}, itemCopy));\r\n }\r\n\r\n return itemCopy;\r\n });\r\n\r\n return {\r\n filteredArray,\r\n dataWithFilter,\r\n };\r\n }\r\n\r\n return;\r\n};\r\n\r\n/**\r\n * [Function to reset certain values for a filter]\r\n * @param {Array} inputArray [Array to be filtered]\r\n * @param {Array} values [Filter values to reset]\r\n * @param {[type]} key [Filter key]\r\n * @param {Boolean} selectAll\r\n * @param {Function} valueFunc [Function to calculate value of the property(optional)]\r\n * @return {[type]}\r\n */\r\nexport const filtersReset = (\r\n inputArray = [],\r\n values = [],\r\n key = undefined,\r\n selectAll = true,\r\n valueFunc = undefined\r\n) => {\r\n const filteredArray = [];\r\n const dataWithFilter = inputArray.map((item) => {\r\n const itemCopy = Object.assign({}, item);\r\n\r\n if (isUndefined(itemCopy.appliedFilters)) {\r\n itemCopy.appliedFilters = {};\r\n }\r\n\r\n let itemValue = getValForKey(itemCopy, key);\r\n\r\n if (!isUndefined(valueFunc)) {\r\n itemValue = valueFunc(itemValue);\r\n }\r\n\r\n if (isUndefined(itemValue)) {\r\n itemValue = \"\";\r\n }\r\n\r\n if (isTypeString(itemValue)) {\r\n itemValue = itemValue.trim();\r\n }\r\n\r\n if (values.indexOf(itemValue) >= 0) {\r\n if (selectAll) {\r\n delete itemCopy.appliedFilters[key];\r\n } else {\r\n if (!itemCopy.appliedFilters[key]) {\r\n itemCopy.appliedFilters[key] = 0;\r\n }\r\n itemCopy.appliedFilters[key]++;\r\n }\r\n }\r\n\r\n if (Object.keys(itemCopy.appliedFilters).length === 0) {\r\n delete itemCopy[\"appliedFilters\"];\r\n filteredArray.push(Object.assign({}, itemCopy));\r\n }\r\n\r\n return itemCopy;\r\n });\r\n\r\n return {\r\n filteredArray,\r\n dataWithFilter,\r\n };\r\n};\r\n\r\n/**\r\n * createFiltersFromItems calculate current filter's list items and state\r\n * @param {Array} dataArray Input Item list\r\n * @param {String} filterkey\r\n * @param {Function} itemDisplayValueFunc\r\n * @param {Function} itemSortValueFunc\r\n * @return {Object}\r\n */\r\nexport const createFiltersFromItems = (\r\n dataArray,\r\n filterkey,\r\n itemDisplayValueFunc,\r\n itemSortValueFunc\r\n) => {\r\n const filteredData = dataArray ? [...dataArray] : [];\r\n const usedKeys = [];\r\n let filterList = [];\r\n\r\n let selectState = true;\r\n if (filterkey !== \"processingDate\") {\r\n filteredData.map((item) => {\r\n let itemKey = getValForKey(item, filterkey);\r\n let orinigalValue = itemKey;\r\n\r\n const appliedFilters = item.appliedFilters || {};\r\n let displayName = itemKey;\r\n\r\n if (isUndefined(itemKey) || itemKey === \"\") {\r\n displayName = BLANK_LABEL;\r\n itemKey = \"\";\r\n orinigalValue = displayName;\r\n } else if (isTypeString(itemKey)) {\r\n itemKey = itemKey.trim();\r\n if (itemKey.length === 0) {\r\n displayName = BLANK_LABEL;\r\n orinigalValue = displayName;\r\n }\r\n }\r\n\r\n if (!usedKeys.includes(itemKey)) {\r\n if (!isUndefined(itemDisplayValueFunc)) {\r\n itemKey = itemDisplayValueFunc(itemKey);\r\n }\r\n\r\n if (usedKeys.indexOf(itemKey) === -1) {\r\n if (\r\n !isUndefined(appliedFilters) &&\r\n Object.keys(appliedFilters).length > 0\r\n ) {\r\n if (\r\n Object.keys(appliedFilters).length === 1 &&\r\n Object.keys(appliedFilters)[0] === filterkey\r\n ) {\r\n selectState = false;\r\n filterList.push({\r\n key: itemKey,\r\n display: displayName,\r\n selected: false,\r\n visible: true,\r\n orinigalValue: orinigalValue,\r\n });\r\n } else {\r\n filterList.push({\r\n key: itemKey,\r\n display: displayName,\r\n selected: true,\r\n visible: false,\r\n orinigalValue: orinigalValue,\r\n });\r\n }\r\n } else {\r\n filterList.push({\r\n key: itemKey,\r\n display: displayName,\r\n selected: true,\r\n visible: true,\r\n orinigalValue: orinigalValue,\r\n });\r\n }\r\n usedKeys.push(itemKey);\r\n }\r\n } else {\r\n const filterIndex = usedKeys.indexOf(itemKey);\r\n let filterItem = filterList[filterIndex];\r\n if (Object.keys(appliedFilters).length === 0) {\r\n if (!filterItem.selected || !filterItem.visible) {\r\n filterItem = Object.assign({}, filterItem, {\r\n selected: true,\r\n visible: true,\r\n });\r\n filterList[filterIndex] = filterItem;\r\n }\r\n }\r\n\r\n if (\r\n Object.keys(appliedFilters).length === 1 &&\r\n Object.keys(appliedFilters)[0] === filterkey\r\n ) {\r\n selectState = false;\r\n filterItem = Object.assign({}, filterItem, {\r\n selected: false,\r\n visible: true,\r\n });\r\n filterList[filterIndex] = filterItem;\r\n }\r\n }\r\n });\r\n }\r\n // filterList = sortAction(filterList, ASC_VALUE, {\r\n // valueFunc: itemSortValueFunc,\r\n // key: 'orinigalValue',\r\n // });\r\n\r\n return {\r\n filterList,\r\n selectState,\r\n };\r\n};\r\n\r\n/**\r\n * calculateFilterProps calculate single filterList props from input data and other parameters\r\n * @param {Array} filteredData input data\r\n * @param {String} filterkey object key for the current filter\r\n * @param {Function} itemDisplayValueFunc\r\n * @param {Function} itemSortValueFunc\r\n * @param {String} sortKey current sort key if any\r\n * @param {String} sortType\r\n * @return {Object}\r\n */\r\nexport const calculateFilterProps = ({\r\n filteredData,\r\n filterkey,\r\n itemDisplayValueFunc,\r\n itemSortValueFunc,\r\n sortKey,\r\n sortType,\r\n}) => {\r\n const { filterList, selectState } = createFiltersFromItems(\r\n filteredData,\r\n filterkey,\r\n itemDisplayValueFunc,\r\n itemSortValueFunc\r\n );\r\n const sortTypeState =\r\n !isUndefined(sortKey) && sortKey === filterkey ? sortType : undefined;\r\n\r\n return {\r\n filterList: filterList,\r\n selectAllFilters: selectState,\r\n sortType: sortTypeState,\r\n };\r\n};\r\n","import React from 'react';\r\nimport FilterList from './filterList';\r\nimport {\r\n isUndefined,\r\n isTypeArray,\r\n} from './lib/util';\r\nimport styles from './css/tableFilter.scss';\r\nimport {\r\n calculateFilterProps,\r\n} from './lib/filter';\r\n\r\n/**\r\n * Main render function of the TableFilter\r\n * @return {JSX}\r\n */\r\nconst render = function() {\r\n const children = this.props.children;\r\n const finalChildren = [];\r\n const {\r\n filteredData,\r\n sortType,\r\n sortKey,\r\n } = this.state;\r\n\r\n if (!isUndefined(children) && children.length > 0) {\r\n React.Children.map(this.props.children, (child, index) => {\r\n if (!isUndefined(child) && !isUndefined(child.props.filterkey, true)) {\r\n let childClass = child.props.className;\r\n let childChildren = child.props.children || [];\r\n const {\r\n filterkey,\r\n itemDisplayValueFunc,\r\n itemSortValueFunc,\r\n } = child.props;\r\n\r\n if (!isTypeArray(childChildren)) {\r\n childChildren = [childChildren];\r\n }\r\n\r\n if (isUndefined(childClass, true)) {\r\n childClass = 'apply-filter';\r\n } else {\r\n childClass = [childClass, ' ', 'apply-filter'].join('');\r\n }\r\n\r\n const filterProps = calculateFilterProps({\r\n filteredData,\r\n filterkey,\r\n itemDisplayValueFunc,\r\n itemSortValueFunc,\r\n sortKey,\r\n sortType,\r\n }); // filterList, selectAllFilters, sortType\r\n\r\n if (child.props.filterAdded != 'true') {\r\n childChildren.push();\r\n } else {\r\n childChildren[childChildren.length - 1] = ();\r\n }\r\n\r\n const newProps = {\r\n className: childClass,\r\n filteradded: 'true',\r\n };\r\n\r\n const clonedChild = React.cloneElement(child, newProps, [...childChildren]);\r\n finalChildren.push(clonedChild);\r\n } else {\r\n if (!isUndefined(child)) {\r\n const clonedChild = React.cloneElement(child);\r\n finalChildren.push(clonedChild);\r\n }\r\n }\r\n });\r\n } else {\r\n console.error('TableFilter Error: Should contain one or more children');\r\n }\r\n\r\n let rowHtml;\r\n // The child columns will by default be placed inside component. If 'rowComponent' is\r\n // passed in via props it will be used\r\n if (!isUndefined(this.props.rowComponent)) {\r\n const rowComponent = this.props.rowComponent;\r\n const newProps = {\r\n className: [this.props.rowClass ? this.props.rowClass + ' ': '', 'table-filter-row'].join(''),\r\n };\r\n const clonedRowComponent = React.cloneElement(rowComponent, newProps, [...finalChildren]);\r\n rowHtml = clonedRowComponent;\r\n } else {\r\n rowHtml = (\r\n \r\n { finalChildren }\r\n \r\n );\r\n }\r\n\r\n return rowHtml;\r\n};\r\n\r\nexport default render;\r\n","import {Component} from 'react';\r\nimport Template from './template.js';\r\nimport {\r\n isUndefined,\r\n} from './lib/util';\r\nimport {\r\n filterAction,\r\n filterActions,\r\n filtersReset,\r\n} from './lib/filter';\r\nimport {\r\n sortAction,\r\n} from './lib/sort';\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\n * TableFilter Main Component\r\n * @extends Component\r\n */\r\nclass TableFilter extends Component {\r\n /**\r\n * constructor\r\n * @param {Object} props\r\n */\r\n constructor(props) {\r\n //console.log('From Filter Code index.js')\r\n super(props);\r\n this.currentFilters = this.props.initialFilters || {};\r\n const rows = this._applyInitialFilters(this.props.rows);\r\n const stateData = this._createData(rows);\r\n\r\n this.state = {\r\n initialData: stateData.initialData,\r\n filteredData: stateData.filteredData,\r\n sortKey: undefined,\r\n };\r\n }\r\n\r\n /**\r\n * _applyInitialFilters If initial filters are provided we apply the filters to given data to maintain filter state\r\n * @param {Array} rows Data on which filters will be applied\r\n * @return {Array} Data with filter props applied\r\n */\r\n _applyInitialFilters = (rows=[]) => {\r\n const currentFilters = this.currentFilters;\r\n if ( !isUndefined(currentFilters) && Object.keys(currentFilters).length > 0 ) {\r\n const filterKeys = Object.keys(currentFilters);\r\n let filteredArray;\r\n filterKeys.map((currKey) => {\r\n const filterValues = currentFilters[currKey];\r\n const filterToApply = filterValues.map((currValue) => {\r\n return {\r\n key: currKey,\r\n value: currValue,\r\n };\r\n });\r\n\r\n const result = filterActions(rows, filterToApply, true, this._getValueFunctionForKey(currKey));\r\n filteredArray = result.filteredArray;\r\n rows = result.dataWithFilter;\r\n });\r\n\r\n this.props.onFilterUpdate && this.props.onFilterUpdate(filteredArray, currentFilters);\r\n }\r\n\r\n return rows;\r\n }\r\n\r\n /**\r\n * _getValueFunctionForKey Method to get the itemDisplayValueFunc(if any) provided to individual filter list element\r\n * @param {String} filterKey key\r\n * @return {Function} Value function for that filter list\r\n */\r\n _getValueFunctionForKey = (filterKey) => {\r\n let valueFunc;\r\n this.props.children.map((child, index) => {\r\n if (!isUndefined(child) && !isUndefined(child.props.filterkey, true) && child.props.filterkey === filterKey) {\r\n valueFunc = child.props.itemDisplayValueFunc;\r\n }\r\n });\r\n\r\n return valueFunc;\r\n }\r\n\r\n // This method to be done with web worker\r\n /**\r\n * _createData The data passed via props is copied to another array(to avoid mutation). // TODO - only one level\r\n * of mutation is prohibited right now.\r\n * @param {Array} rows Data passed through props\r\n * @return {Object} Created Data to be used in Filtering\r\n */\r\n _createData = (rows = []) => {\r\n const initialData = [];\r\n const filteredData = [];\r\n rows.map((item) => {\r\n initialData.push(Object.assign({}, item));\r\n filteredData.push(Object.assign({}, item));\r\n });\r\n\r\n return {\r\n initialData,\r\n filteredData,\r\n };\r\n }\r\n\r\n /**\r\n * _filterMulipleRows function handles add/remove of multiple filters. Ex.\r\n * in case of select all or search etc\r\n * @param {Array} [addFilterArray=[]] Filters to add\r\n * @param {Array} [removeFilterArray=[]] Filter to remove\r\n * @param {Function} [valueFunc=undefined] Optional function used to get value for item\r\n */\r\n _filterMulipleRows = (addFilterArray=[], removeFilterArray=[], valueFunc=undefined) => {\r\n const filteredData = this.state.filteredData;\r\n\r\n if (!isUndefined(addFilterArray)) {\r\n removeFilterArray.map((filterItem) => {\r\n this._updateCurrentFilter(filterItem.value, false, filterItem.key);\r\n });\r\n\r\n addFilterArray.map((filterItem) => {\r\n this._updateCurrentFilter(filterItem.value, true, filterItem.key);\r\n });\r\n let result = filterActions(filteredData, removeFilterArray, false, valueFunc);\r\n\r\n result = filterActions(result.dataWithFilter, addFilterArray, true, valueFunc);\r\n\r\n if (!isUndefined(result)) {\r\n const filteredArray = result.filteredArray;\r\n const dataWithFilter = result.dataWithFilter;\r\n\r\n this.setState({\r\n filteredData: dataWithFilter,\r\n });\r\n this.props.onFilterUpdate && this.props.onFilterUpdate(filteredArray, this._getCurrentFilters());\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * _filterRows Function passed as a prop to FilterList Componenet and called in case a filter is applied\r\n * or removed\r\n * @param {String} value Filter value\r\n * @param {String} key Filter key\r\n * @param {Boolean} addFilter Add or remove fitler\r\n * @param {Function} valueFunc(optional) Function passed to calculate the value of an item\r\n */\r\n _filterRows = (value=undefined, key=undefined, addFilter=true, valueFunc=undefined) => {\r\n const filteredData = this.state.filteredData;\r\n if (!isUndefined(value) && !isUndefined(key)) {\r\n this._updateCurrentFilters([value], addFilter, key);\r\n const result = filterAction(filteredData, {key, value}, addFilter, valueFunc);\r\n if (!isUndefined(result)) {\r\n const filteredArray = result.filteredArray;\r\n const dataWithFilter = result.dataWithFilter;\r\n\r\n this.setState({\r\n filteredData: dataWithFilter,\r\n });\r\n this.props.onFilterUpdate && this.props.onFilterUpdate(filteredArray, this._getCurrentFilters());\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * _updateCurrentFilter Method to update current filter configuration, used to maintain state if component is unmounted\r\n * @param {String} filter Filter value to add/remove\r\n * @param {Boolean} add add/remove filter option\r\n * @param {String} key Filter key\r\n */\r\n _updateCurrentFilter = (filter, add=true, key=undefined) => {\r\n if (!isUndefined(key, true) && !isUndefined(filter, true)) {\r\n if (isUndefined(this.currentFilters[key])) {\r\n this.currentFilters[key] = [];\r\n }\r\n\r\n if (add) {\r\n if (this.currentFilters[key].indexOf(filter) < 0) {\r\n this.currentFilters[key].push(filter);\r\n }\r\n } else {\r\n if (this.currentFilters[key].indexOf(filter) >= 0) {\r\n const index = this.currentFilters[key].indexOf(filter);\r\n this.currentFilters[key] = [...this.currentFilters[key].slice(0, index), ...this.currentFilters[key].slice(index + 1)];\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * _updateCurrentFilters Mehtod to update current filter configuration with multiple values\r\n * @param {Array} filters Array of filters to add/remove\r\n * @param {Boolean} add add/remove filter option\r\n * @param {String} key Filter key\r\n */\r\n _updateCurrentFilters = (filters=[], add=true, key) => {\r\n if (!isUndefined(filters) && !isUndefined(key)) {\r\n filters.map((filterItem) => {\r\n this._updateCurrentFilter(filterItem, add, key);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * _getCurrentFilters get method for current filter configuration\r\n * @return {Object} current filter configuration\r\n */\r\n _getCurrentFilters = () => {\r\n return this.currentFilters;\r\n }\r\n\r\n /**\r\n * _resetRows Function called to reset the selected filters.\r\n * @param {Array} filterValues Array of values for which filter is to be removed\r\n * @param {String} key Key of the filter to be removed\r\n * @param {Boolean} selectAll option to select all / remove all\r\n * @param {Function} valueFunc Get value function for filter\r\n */\r\n _resetRows = (filterValues=[], key=undefined, selectAll=true, valueFunc=undefined) => {\r\n if (!isUndefined(key)) {\r\n const filteredData = this.state.filteredData;\r\n this._updateCurrentFilters(filterValues, !selectAll, key);\r\n const result = filtersReset(filteredData, filterValues, key, selectAll, valueFunc);\r\n if (!isUndefined(result)) {\r\n const filteredArray = result.filteredArray;\r\n const dataWithFilter = result.dataWithFilter;\r\n\r\n this.setState({\r\n filteredData: dataWithFilter,\r\n });\r\n this.props.onFilterUpdate && this.props.onFilterUpdate(filteredArray, this._getCurrentFilters());\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * _sortRows Function to sort the values according to a filter\r\n * @param {String} sortType\r\n * @param {[type]} options.valueFunc (optional) Function to calculate the value of the item\r\n * @param {Boolean} options.caseSensitive Case Sensitive or not\r\n * @param {[String]} options.key Key to sort by\r\n */\r\n _sortRows = (sortType=undefined, {valueFunc=undefined, caseSensitive=false, key=undefined} = {}) => {\r\n if (!isUndefined(sortType)) {\r\n const filteredData = this.state.filteredData;\r\n const result = sortAction(filteredData, sortType, {valueFunc, caseSensitive, key} );\r\n\r\n const filteredArray = [];\r\n\r\n this.setState({\r\n filteredData: result,\r\n sortKey: key,\r\n sortType: sortType,\r\n });\r\n\r\n result.map((item) => {\r\n if (isUndefined(item.appliedFilters) || Object.keys(item.appliedFilters).length === 0) {\r\n const itemCopy = Object.assign({}, item);\r\n delete itemCopy['appliedFilters'];\r\n filteredArray.push(itemCopy);\r\n }\r\n });\r\n\r\n this.props.onFilterUpdate && this.props.onFilterUpdate(filteredArray, this._getCurrentFilters());\r\n }\r\n }\r\n\r\n /**\r\n * reset Function called from parent(main code) to load/reset data of the filters\r\n * @param {Array} rows\r\n * @param {Boolean} resetFilters Option to reset current filters\r\n */\r\n reset = (rows, resetFilters=true) => {\r\n if (!resetFilters) {\r\n rows = this._applyInitialFilters(rows);\r\n } else {\r\n this.currentFilters = {};\r\n }\r\n\r\n const stateData = this._createData(rows);\r\n this.setState({\r\n initialData: stateData.initialData,\r\n filteredData: stateData.filteredData,\r\n });\r\n }\r\n\r\n /**\r\n * render\r\n * @return {JSX}\r\n */\r\n render() {\r\n return Template.call(this);\r\n }\r\n}\r\n\r\nTableFilter.propTypes = {\r\n rows: PropTypes.array.isRequired, // Filterable Data\r\n onFilterUpdate: PropTypes.func.isRequired, // Function to be called with updated data when filters are applied or removed\r\n rowClass: PropTypes.string, // Optional class to be attached to row elements\r\n initialFilters: PropTypes.array, // Initial filter configuration if any(provided as a parameter in onFilterUpdate)\r\n rowComponent: PropTypes.func,\r\n children: PropTypes.any,\r\n};\r\n\r\nexport default TableFilter;\r\n","import React, {useState, useEffect, memo} from 'react';\r\nimport './Pager.scss';\r\n\r\n function Pager(props) {\r\n\r\n let [selectedPage, setSelectedPage] = useState(props.currentPage);\r\n let totalPages = Math.ceil(props.resultCount / props.resultsPerPage);\r\n let [count, setCount] = useState(0);\r\n \r\n useEffect(_=>{\r\n setSelectedPage(props.currentPage);\r\n // props.setCurrentPageValue(selectedPage);\r\n }, [props]);\r\n\r\n useEffect(() => {\r\n props.setCurrentPageValue(selectedPage,count);\r\n setCount(1);\r\n },[selectedPage])\r\n\r\n function pagenumberUpdate(pageIndex) {\r\n setSelectedPage(pageIndex);\r\n // props.setCurrentPageValue(pageIndex);\r\n }\r\n function goToNextPage() { \r\n setSelectedPage(selectedPage + 1);\r\n // UserStore.setCurrentPage(selectedPage + 1);\r\n // props.setCurrentPageValue(selectedPage + 1);\r\n }\r\n\r\n function goToPreviousPage() {\r\n setSelectedPage(selectedPage - 1);\r\n // UserStore.setCurrentPage(selectedPage - 1);\r\n // props.setCurrentPageValue(selectedPage - 1);\r\n }\r\n\r\n var i = 0;\r\n var page_links = [];\r\n\r\n var minPage = 1;\r\n var maxPage = totalPages;\r\n\r\n if (selectedPage - minPage > 2) {\r\n minPage = selectedPage - 2;\r\n }\r\n\r\n if (maxPage - selectedPage > 2) {\r\n maxPage = parseInt(selectedPage) + 2;\r\n }\r\n\r\n\r\n for (i = minPage; i <= maxPage; i++) {\r\n if (i === parseInt(selectedPage)) {\r\n page_links.push(\r\n
  • \r\n \r\n {i}\r\n \r\n
  • \r\n );\r\n } else {\r\n page_links.push(\r\n
  • \r\n \r\n
  • \r\n );\r\n }\r\n }\r\n\r\n var previousButton;\r\n if (parseInt(selectedPage) === 1) {\r\n previousButton = (
  • \r\n Previous\r\n
  • );\r\n } else {\r\n previousButton = (
  • \r\n \r\n
  • );\r\n }\r\n var nextButton;\r\n if (parseInt(selectedPage) === totalPages) {\r\n nextButton = (
  • \r\n Next\r\n
  • );\r\n } else {\r\n nextButton = (
  • \r\n \r\n
  • );\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default memo(Pager);","import React, {\r\n useState,\r\n useEffect,\r\n useRef,\r\n useCallback,\r\n memo,\r\n Profiler,\r\n} from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport \"react-table-filter/lib/styles.css\";\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport { toJS } from \"mobx\";\r\n//import TableFilter from \"react-table-filter\";\r\nimport TableFilter from \"./ReactFilter/index\";\r\nimport UserStore from \"../../UserStore\";\r\nimport Pager from \"./PagerPID/PagerSR\";\r\nimport {} from \"./StampGrid.scss\";\r\nimport {} from \"./lib/styles.css\";\r\nimport { isUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nimport Moment from \"moment\";\r\n\r\nconst StampGridTable = ({\r\n data,\r\n onRowSelected,\r\n searchrows,\r\n dropdownChange,\r\n}) => {\r\n const tableRef = useRef(null);\r\n const location = useLocation();\r\n const [isSelectAll, setIsSelectAll] = useState(false);\r\n const [firstLoad, setfirstLoad] = useState(false);\r\n let [excelreportrow, setexcelreportrow] = useState([]);\r\n const [pageChange, setPageChange] = useState(false);\r\n useEffect(() => {\r\n if (localStorage.getItem(\"perPageData\") === null) {\r\n localStorage.setItem(\"perPageData\", 10);\r\n }\r\n UserStore.SetPerPageData(localStorage.getItem(\"perPageData\"));\r\n }, []);\r\n const [currentPage, setCurrentPage] = useState(\r\n Number(toJS(UserStore.skipData)) / Number(toJS(UserStore.perPageData)) + 1\r\n );\r\n let [filterConfig, setFilterConfig] = useState({});\r\n const [skip, setSkip] = useState(\r\n new URLSearchParams(location.search).get(\"skip\") ?? 0\r\n );\r\n let storeData = toJS(UserStore.PIDProcessData);\r\n\r\n const [tableRows, setTableRows] = useState(data);\r\n const [top, topValueUpdate] = useState(\r\n new URLSearchParams(location.search).get(\"top\") ??\r\n toJS(UserStore.perPageData)\r\n );\r\n const [processData, setProcessData] = useState(\r\n storeData.slice(skip, Number(skip) + Number(top))\r\n );\r\n\r\n let isTickBased = localStorage.getItem(\"isIsometricTickBased\")\r\n ? JSON.parse(localStorage.getItem(\"isIsometricTickBased\"))\r\n : UserStore.isTickBasedIsometric;\r\n let resultsPerPage = top;\r\n\r\n const filterFn = () => {\r\n const countOfData = Number(skip) + Number(top);\r\n const slicedData = storeData.slice(skip, countOfData);\r\n setProcessData(slicedData);\r\n if (searchrows && !firstLoad) {\r\n setDataPerPage(searchrows);\r\n setfirstLoad(true);\r\n }\r\n\r\n if (pageChange) {\r\n const items = document.getElementsByClassName(\"file-checkbox\");\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i].type == \"checkbox\" && items[i].checked === true)\r\n items[i].checked = false;\r\n }\r\n // setSelectedRows([])\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (Number(toJS(UserStore.skipData)) === 0) {\r\n setCurrentPage(1);\r\n setSkip((1 - 1) * top);\r\n }\r\n }, [UserStore.skipData]);\r\n useEffect(() => {\r\n const skipValue =\r\n searchrows ||\r\n dropdownChange === \"Processing Failed\" ||\r\n dropdownChange === \"Processed\"\r\n ? 0\r\n : skip;\r\n const countOfData = Number(skipValue) + Number(top);\r\n const slicedData = storeData.slice(skipValue, countOfData);\r\n setProcessData(slicedData);\r\n if (\r\n dropdownChange === \"Processing Failed\" ||\r\n dropdownChange === \"Processed\"\r\n ) {\r\n UserStore.PIDselectedRowID = [];\r\n }\r\n if (pageChange) {\r\n const items = document.getElementsByClassName(\"file-checkbox\");\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i].type == \"checkbox\" && items[i].checked === true)\r\n items[i].checked = false;\r\n }\r\n // setSelectedRows([])\r\n }\r\n }, [skip, currentPage, filterConfig, pageChange, searchrows, dropdownChange]);\r\n\r\n if (searchrows && !firstLoad) {\r\n setCurrentPage(1);\r\n setSkip((1 - 1) * top);\r\n UserStore.setSkipData((1 - 1) * top);\r\n setfirstLoad(true);\r\n excelreportrow = [];\r\n excelreportrow.push(storeData);\r\n UserStore.addReportdata([]);\r\n UserStore.PIDselectedRowID = [];\r\n }\r\n\r\n const setDataPerPage = () => {\r\n const countOfData = Number(skip) + Number(top);\r\n const slicedData = storeData.slice(skip, countOfData);\r\n setProcessData(slicedData);\r\n UserStore.setreportStamp(true);\r\n localStorage.setItem(\"setreportStamp\", true);\r\n };\r\n\r\n const filterUpdated = (newData, filterConfiguration) => {\r\n setCurrentPage(1);\r\n setSkip((1 - 1) * top);\r\n UserStore.setSkipData((1 - 1) * top);\r\n setFilterConfig(filterConfiguration);\r\n // setProcessData(newData);\r\n setDataPerPage(newData);\r\n UserStore.setFilterProcessConfiguration(filterConfiguration);\r\n UserStore.setPIDProcessData(newData);\r\n storeData = toJS(UserStore.PIDProcessData);\r\n UserStore.setStampFilterData(newData);\r\n filterFn();\r\n UserStore.PIDselectedRowID = [];\r\n setexcelreportrow([]);\r\n UserStore.addReportdata([]);\r\n document.getElementById(\"row_count\").innerHTML = \"0\";\r\n setIsSelectAll(false);\r\n };\r\n\r\n const updatePagination = (newPageNumber, count) => {\r\n if (count !== 0) {\r\n UserStore.setLoader(true);\r\n }\r\n setCurrentPage(newPageNumber);\r\n setSkip((newPageNumber - 1) * top);\r\n if (newPageNumber > 1) setPageChange(true);\r\n UserStore.setSkipData((newPageNumber - 1) * top);\r\n };\r\n\r\n const customPagination = (e, dat, s) => {\r\n setCurrentPage(1);\r\n setSkip((1 - 1) * top);\r\n UserStore.setSkipData((1 - 1) * top);\r\n topValueUpdate(e.target.selectedOptions[0].value);\r\n if (e.target.selectedOptions[0].value === \"30\") {\r\n const slicedData2 = dat.slice(skip, 3 * 10);\r\n\r\n setProcessData(slicedData2);\r\n } else if (e.target.selectedOptions[0].value === \"50\") {\r\n const slicedData3 = dat.slice(skip, 5 * 10);\r\n\r\n setProcessData(slicedData3);\r\n } else if (e.target.selectedOptions[0].value === \"100\") {\r\n const slicedData4 = dat.slice(skip, 10 * 10);\r\n\r\n setProcessData(slicedData4);\r\n } else {\r\n const slicedData1 = dat.slice(skip, 1 * 10);\r\n\r\n setProcessData(slicedData1);\r\n }\r\n UserStore.SetPerPageData(e.target.selectedOptions[0].value);\r\n localStorage.setItem(\"perPageData\", e.target.selectedOptions[0].value);\r\n };\r\n\r\n const handleCheckbox = (e, item) => {\r\n if (e.target.checked === true) {\r\n if (toJS(UserStore.reportData).length === 0) {\r\n excelreportrow = [];\r\n } else {\r\n excelreportrow = toJS(UserStore.reportData);\r\n }\r\n UserStore.setPIDselectedRowID(item);\r\n excelreportrow.push(item);\r\n UserStore.addReportdata(excelreportrow);\r\n UserStore.setreportStamp(true);\r\n localStorage.setItem(\"setreportStamp\", true);\r\n document.getElementById(\"row_count\").innerHTML =\r\n toJS(UserStore.PIDselectedRowID).length + \"\";\r\n } else {\r\n // let newRows = [];\r\n const givefilter = toJS(UserStore.PIDselectedRowID);\r\n let newRows = givefilter.filter(\r\n (sr) => sr.splitedFileId !== item.splitedFileId\r\n );\r\n excelreportrow = newRows;\r\n if (newRows.length === 0) {\r\n UserStore.addReportdata([]);\r\n } else {\r\n UserStore.addReportdata(newRows);\r\n }\r\n UserStore.PIDselectedRowID = [];\r\n UserStore.PIDselectedRowID = newRows;\r\n document.getElementById(\"row_count\").innerHTML =\r\n toJS(UserStore.PIDselectedRowID).length + \"\";\r\n }\r\n\r\n if (storeData.length > toJS(UserStore.PIDselectedRowID).length) {\r\n setIsSelectAll(false);\r\n }\r\n\r\n if (storeData.length === toJS(UserStore.PIDselectedRowID).length) {\r\n setIsSelectAll(true);\r\n }\r\n };\r\n useEffect(() => {\r\n if (isSelectAll) {\r\n for (var i = 0; i < processData.length; i++) {\r\n document.getElementById(\r\n `_checkbox${processData[i].splitedFileId}`\r\n ).checked = true;\r\n }\r\n } else if (isSelectAll === false) {\r\n const selectedRowsList = toJS(UserStore.PIDselectedRowID);\r\n for (var i = 0; i < processData.length; i++) {\r\n const retainSelectedRow = selectedRowsList.filter(\r\n (row) => row.splitedFileId === processData[i].splitedFileId\r\n );\r\n if (retainSelectedRow.length === 1) {\r\n document.getElementById(\r\n `_checkbox${retainSelectedRow[0].splitedFileId}`\r\n ).checked = true;\r\n } else {\r\n document.getElementById(\r\n `_checkbox${processData[i].splitedFileId}`\r\n ).checked = false;\r\n }\r\n }\r\n }\r\n }, [processData]);\r\n\r\n const selects = (e) => {\r\n const sel = e.target.checked;\r\n setIsSelectAll(!isSelectAll);\r\n if (sel) {\r\n for (var i = 0; i < processData.length; i++) {\r\n document.getElementById(\r\n `_checkbox${processData[i].splitedFileId}`\r\n ).checked = true;\r\n }\r\n document.getElementById(\"row_count\").innerHTML = storeData.length + \"\";\r\n // allRows.push(ele[i].name);\r\n // setSelectedRows(processData);\r\n // UserStore.addReportdata(data);\r\n // UserStore.PIDselectedRowID = data;\r\n // if(!toJS(UserStore.PIDProcessData.length)) {\r\n UserStore.PIDselectedRowID = toJS(UserStore.PIDProcessData);\r\n excelreportrow = toJS(UserStore.PIDProcessData);\r\n UserStore.addReportdata(excelreportrow);\r\n // }\r\n // else {\r\n // UserStore.PIDselectedRowID = UserStore.PIDProcessData;\r\n // }\r\n } else {\r\n for (var i = 0; i < processData.length; i++) {\r\n document.getElementById(\r\n `_checkbox${processData[i].splitedFileId}`\r\n ).checked = false;\r\n }\r\n document.getElementById(\"row_count\").innerHTML = \"0\";\r\n // setSelectedRows([])\r\n UserStore.PIDselectedRowID = [];\r\n excelreportrow = [];\r\n UserStore.addReportdata([]);\r\n setexcelreportrow([]);\r\n // UserStore.addReportdata(data);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const checkedRow = document.getElementById(\r\n `_checkbox${UserStore.PIDselectedRowID}`\r\n );\r\n if (checkedRow) checkedRow.checked = true;\r\n }, [UserStore.PIDselectedRowID]);\r\n\r\n let elementsHtml = processData.map((item, index) => {\r\n // const selectedRowID = toJS(UserStore.PIDselectedRowID);\r\n // const arr = selectedRowID.some(e => e.splitedFileId === item.splitedFileId);\r\n return (\r\n \r\n \r\n handleCheckbox(e, item)}\r\n type=\"checkbox\"\r\n />\r\n \r\n {item.transmittalNumber}\r\n {item.documentName}\r\n \r\n {item.isProcessed === \"Yes\" ? (\r\n

    \r\n Yes{\" \"}\r\n

    \r\n ) : (\r\n

    \r\n No{\" \"}\r\n

    \r\n )}{\" \"}\r\n \r\n {item.processedPercentage}{\" \"}\r\n {!isTickBased && (\r\n \r\n {item.isDetected === \"Yes\" ? (\r\n

    \r\n Yes{\" \"}\r\n

    \r\n ) : (\r\n

    \r\n No{\" \"}\r\n

    \r\n )}\r\n \r\n )}\r\n {item.lineNumber}\r\n {item.isometricNumber}\r\n {item.sheetNumber}\r\n {item.revisionNumber}\r\n \r\n {isTickBased ? (\r\n item.labelCheckbox01\r\n ) : item.phrase1 == \"Found\" ? (\r\n \"Found\"\r\n ) : (\r\n Not Found\r\n )}\r\n \r\n \r\n {isTickBased ? (\r\n item.checkbox01\r\n ) : item.phrase2 == \"Found\" ? (\r\n \"Found\"\r\n ) : (\r\n Not Found\r\n )}\r\n \r\n \r\n {isTickBased ? (\r\n item.labelCheckbox02\r\n ) : item.phrase3 == \"Found\" ? (\r\n \"Found\"\r\n ) : (\r\n Not Found\r\n )}\r\n \r\n \r\n {isTickBased ? (\r\n item.checkbox02\r\n ) : item.phrase4 == \"Found\" ? (\r\n \"Found\"\r\n ) : (\r\n Not Found\r\n )}\r\n \r\n \r\n {isTickBased ? (\r\n item.labelCheckbox03\r\n ) : item.isChange === \"Yes\" ? (\r\n

    \r\n Yes\r\n

    \r\n ) : item.isChange === \"No\" ? (\r\n

    \r\n No\r\n

    \r\n ) : (\r\n

    \r\n )}\r\n \r\n \r\n {isTickBased ? (\r\n item.checkbox03\r\n ) : item.isDuplicate === \"Yes\" ? (\r\n

    \r\n Yes\r\n

    \r\n ) : (\r\n

    \r\n No\r\n

    \r\n )}\r\n \r\n \r\n {isTickBased ? item.labelCheckbox04 : item.modifiedDoc}\r\n \r\n \r\n {isTickBased ? item.checkbox04 : !isUndefined(item.processingDate) ? Moment.utc(item.processingDate.includes(\"+\") ? item.processingDate.split(\"+\")[0].trim().replaceAll(\"-\", \"/\") : item.processingDate, \"YYYY/MM/DD hh:mm:ss a\").local().format(\"DD/MM/YYYY hh:mm:ss a\"): \"\"}\r\n \r\n {isTickBased && (\r\n \r\n {item.isChange === \"Yes\" ? (\r\n

    \r\n Yes\r\n

    \r\n ) : item.isChange === \"No\" ? (\r\n

    \r\n No\r\n

    \r\n ) : (\r\n

    \r\n )}\r\n \r\n )}\r\n {isTickBased && (\r\n \r\n {item.isDuplicate === \"Yes\" ? (\r\n

    \r\n Yes\r\n

    \r\n ) : (\r\n

    \r\n No\r\n

    \r\n )}\r\n \r\n )}\r\n {isTickBased && {item.modifiedDoc}}\r\n {isTickBased && {!isUndefined(item.processingDate) ? Moment.utc(item.processingDate.includes(\"+\") ? item.processingDate.split(\"+\")[0].trim().replaceAll(\"-\", \"/\") : item.processingDate, \"YYYY/MM/DD hh:mm:ss a\").local().format(\"DD/MM/YYYY hh:mm:ss a\"): \"\"}}\r\n {isTickBased && {!isUndefined(item.modiffiedDate) ? Moment.utc(item.modiffiedDate.includes(\"+\") ? item.modiffiedDate.split(\"+\")[0].trim().replaceAll(\"-\", \"/\") : item.modiffiedDate, \"YYYY/MM/DD hh:mm:ss a\").local().format(\"DD/MM/YYYY hh:mm:ss a\"): \"\"}}\r\n {isTickBased && {item.modifiedBy}}\r\n {isTickBased && {item.acceptanceStatus}}\r\n {isTickBased && {item.confidenceLevel}}\r\n {isTickBased && {item.rejectionRemark}}\r\n {!isTickBased && {!isUndefined(item.modiffiedDate) ? Moment.utc(item.modiffiedDate.includes(\"+\") ? item.modiffiedDate.split(\"+\")[0].trim().replaceAll(\"-\", \"/\") : item.modiffiedDate, \"YYYY/MM/DD hh:mm:ss a\").local().format(\"DD/MM/YYYY hh:mm:ss a\"): \"\"}}\r\n {!isTickBased && {item.modifiedBy}}\r\n {!isTickBased && {item.acceptanceStatus}}\r\n {!isTickBased && {item.confidenceLevel}}\r\n {!isTickBased && {item.rejectionRemark}}\r\n \r\n );\r\n });\r\n\r\n // const xlRepotdata = toJS(UserStore.PIDselectedRowID).length > 0 ? toJS(UserStore.PIDselectedRowID) : storeData;\r\n // UserStore.addReportdata(xlRepotdata);\r\n useEffect(() => {\r\n UserStore.setLoader(false);\r\n });\r\n\r\n return (\r\n
    \r\n {/* {\r\n console.log({id, phase, actualDuration, baseDuration,startTime,commitTime,interactions})\r\n }\r\n }> */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    Transmittal No.
    \r\n \r\n \r\n
    Document Name
    \r\n \r\n \r\n
    Processed
    \r\n \r\n \r\n
    Percentage
    \r\n \r\n {!isTickBased && (\r\n \r\n
    Detected
    \r\n \r\n )}\r\n \r\n
    Line No.
    \r\n \r\n \r\n
    Isometric No.
    \r\n \r\n \r\n
    Sheet No.
    \r\n \r\n \r\n
    Rev. No.
    \r\n \r\n \r\n
    \r\n {isTickBased ? \"Checkbox01 Label\" : \"Phrase 1\"}\r\n
    \r\n \r\n \r\n
    \r\n {isTickBased ? \"Checkbox01 Selection\" : \"Phrase 2\"}\r\n
    \r\n \r\n \r\n
    \r\n {isTickBased ? \"Checkbox02 Label\" : \"Phrase 3\"}\r\n
    \r\n \r\n \r\n
    \r\n {isTickBased ? \"Checkbox02 Selection\" : \"Phrase 4\"}\r\n
    \r\n \r\n \r\n
    \r\n {isTickBased ? \"Checkbox03 Label\" : \"Change\"}\r\n
    \r\n \r\n \r\n
    \r\n {isTickBased ? \"Checkbox03 Selection\" : \"Duplicate\"}\r\n
    \r\n \r\n \r\n
    \r\n {isTickBased ? \"Checkbox04 Label\" : \"Modified Doc.\"}\r\n
    \r\n \r\n \r\n
    \r\n {isTickBased ? \"Checkbox04 Selection\" : \"Processing Date Time\"}\r\n
    \r\n \r\n {isTickBased && (\r\n \r\n
    Change
    \r\n \r\n )}\r\n {isTickBased && (\r\n \r\n
    Duplicate
    \r\n \r\n )}\r\n {isTickBased && (\r\n \r\n
    Modified Doc.
    \r\n \r\n )}\r\n {isTickBased && (\r\n \r\n
    Processing Date
    \r\n \r\n )}\r\n {isTickBased && (\r\n \r\n
    Modified Date Time
    \r\n \r\n )}\r\n {isTickBased && (\r\n \r\n
    Modified By
    \r\n \r\n )}\r\n {isTickBased && (\r\n \r\n
    Acceptance Status
    \r\n \r\n )}\r\n {isTickBased && (\r\n \r\n
    Confidence Level
    \r\n \r\n )}\r\n {isTickBased && (\r\n \r\n
    Rejection Remark
    \r\n \r\n )}\r\n {!isTickBased && (\r\n \r\n
    Modified Date Time
    \r\n \r\n )}\r\n {!isTickBased && (\r\n \r\n
    Modified By
    \r\n \r\n )}\r\n {!isTickBased && (\r\n \r\n
    Acceptance Status
    \r\n \r\n )}\r\n {!isTickBased && (\r\n \r\n
    Confidence Level
    \r\n \r\n )}\r\n {!isTickBased && (\r\n \r\n
    Rejection Remark
    \r\n \r\n )}\r\n \r\n
    \r\n {elementsHtml}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Total : {storeData.length}\r\n

    \r\n  \r\n

    \r\n 0 Row(s) Selected\r\n

    \r\n
    \r\n
    \r\n \r\n customPagination(e, UserStore.PIDProcessData)}\r\n defaultValue={toJS(UserStore.perPageData)}\r\n defaultChecked={toJS(UserStore.perPageData)}\r\n >\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n
    \r\n
    \r\n {/* */}\r\n \r\n );\r\n};\r\n\r\nexport default memo(StampGridTable);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport Collapse from \"@material-ui/core/Collapse\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableContainer from \"@material-ui/core/TableContainer\";\r\nimport axios from \"axios\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport moment from \"moment\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport KeyboardArrowDownIcon from \"@material-ui/icons/KeyboardArrowDown\";\r\nimport KeyboardArrowUpIcon from \"@material-ui/icons/KeyboardArrowUp\";\r\n\r\nfunction createData(name, calories, fat, carbs, protein, price) {\r\n return {\r\n name,\r\n calories,\r\n fat,\r\n carbs,\r\n protein,\r\n price,\r\n history: [\r\n {\r\n date: \"2020-01-05\",\r\n customerId: \"11091700\",\r\n amount: 3,\r\n },\r\n {\r\n date: \"2020-01-02\",\r\n customerId: \"Anonymous\",\r\n amount: 1,\r\n },\r\n ],\r\n };\r\n}\r\n\r\nfunction Row(props) {\r\n const items = props.row;\r\n const [open, setOpen] = React.useState(false);\r\n\r\n if(props.frompid !== \"pid\")\r\n {\r\n\r\n return (\r\n \r\n *\": { borderBottom: \"unset\" } }}>\r\n \r\n setOpen(!open)}\r\n >\r\n {open ? : }\r\n \r\n \r\n \r\n {items.batchScheduleDateTime !== \"\"\r\n ? moment\r\n .utc(items.batchScheduleDateTime, \"DD/MM/YYYY hh:mm:ss a\")\r\n .local()\r\n .format(\"DD/MM/YYYY hh:mm:ss a\")\r\n : \"\"}\r\n \r\n {items.batchCreatedBy}\r\n \r\n {items.batchProcessingDateTime !== \"\"\r\n ? moment\r\n .utc(items.batchProcessingDateTime, \"DD/MM/YYYY hh:mm:ss a\")\r\n .local()\r\n .format(\"DD/MM/YYYY hh:mm:ss a\")\r\n : \"\"}\r\n \r\n {items.totalFilesUploaded}\r\n {items.filesProcessedSuccessfully}\r\n {items.fileWaitingForProcessing}\r\n {items.filesProcessedFailure}\r\n {items.totalIsometricUploaded}\r\n \r\n {items.isometricProcessedSuccessfully}\r\n \r\n \r\n {items.isometricWaitingForProcessing}\r\n \r\n {items.isometricProcessedFailure}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Binder File Name\r\n Total Isometrics\r\n \r\n Isometric Processed Successfully\r\n \r\n \r\n Isometric Waiting For Processing\r\n \r\n Isometric Processed Failure\r\n \r\n \r\n \r\n {items.binderFilesInformation.map((items) => (\r\n \r\n \r\n {items.binderFileName}\r\n \r\n \r\n {items.totalIsometrics}\r\n \r\n \r\n {items.isometricProcessedSuccessfully}\r\n \r\n \r\n {items.isometricWaitingForProcessing}\r\n \r\n \r\n {items.isometricProcessedFailure}\r\n \r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n else{\r\n return (\r\n \r\n *\": { borderBottom: \"unset\" } }}>\r\n \r\n setOpen(!open)}\r\n >\r\n {open ? : }\r\n \r\n \r\n \r\n {items.batchScheduleDateTime !== \"\"\r\n ? moment\r\n .utc(items.batchScheduleDateTime, \"DD/MM/YYYY hh:mm:ss a\")\r\n .local()\r\n .format(\"DD/MM/YYYY hh:mm:ss a\")\r\n : \"\"}\r\n \r\n {items.batchCreatedBy}\r\n \r\n {items.batchProcessingDateTime !== \"\"\r\n ? moment\r\n .utc(items.batchProcessingDateTime, \"DD/MM/YYYY hh:mm:ss a\")\r\n .local()\r\n .format(\"DD/MM/YYYY hh:mm:ss a\")\r\n : \"\"}\r\n \r\n {items.totalFilesUploaded}\r\n {items.filesProcessedSuccessfully}\r\n {items.fileWaitingForProcessing}\r\n {items.filesProcessedFailure}\r\n {items.totalSheetUploaded}\r\n \r\n {items.sheetsProcessedSuccessfully}\r\n \r\n \r\n {items.sheetsWaitingForProcessing}\r\n \r\n {items.sheetsProcessedFailure}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Binder File Name\r\n Total Sheets\r\n \r\n Sheets Processed Successfully\r\n \r\n \r\n Sheets Waiting For Processing\r\n \r\n Sheets Processed Failure\r\n \r\n \r\n \r\n {items.binderFilesInformation.map((items) => (\r\n \r\n \r\n {items.binderFileName}\r\n \r\n \r\n {items.totalPids}\r\n \r\n \r\n {items.pidProcessedSuccessfully}\r\n \r\n \r\n {items.pidWaitingForProcessing}\r\n \r\n \r\n {items.pidProcessedFailure}\r\n \r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nRow.propTypes = {\r\n row: PropTypes.shape({\r\n calories: PropTypes.number.isRequired,\r\n carbs: PropTypes.number.isRequired,\r\n fat: PropTypes.number.isRequired,\r\n history: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n amount: PropTypes.number.isRequired,\r\n customerId: PropTypes.string.isRequired,\r\n date: PropTypes.string.isRequired,\r\n })\r\n ).isRequired,\r\n name: PropTypes.string.isRequired,\r\n price: PropTypes.number.isRequired,\r\n protein: PropTypes.number.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nexport default function BatchTable(props) {\r\n const [rows1, Setrows] = useState([]);\r\n let pid = props.frompid;\r\n \r\n\r\n useEffect(() => {\r\n // Update the document title using the browser API\r\n const APIEndpoint = process.env.REACT_APP_API_ENDPOINT;\r\n if (props.frompid !== \"pid\") {\r\n const res = axios\r\n .get(APIEndpoint + `/GetBatchStatus?workSpaceId=${props.wsId}`)\r\n .then((res) => {\r\n const myrows = res.data;\r\n let rowget = [];\r\n if (myrows) {\r\n myrows.map((items, index) => {\r\n const row2 = {\r\n id: items.batchId,\r\n batchScheduleDateTime: items.batchScheduleDateTime,\r\n batchCreationDateTime: items.batchCreationDateTime,\r\n batchProcessingDateTime: items.batchProcessingDateTime,\r\n batchCreatedBy: items.batchCreatedBy,\r\n filesProcessedSuccessfully: items.filesProcessedSuccessfully,\r\n filesProcessedFailure: items.filesProcessedFailure,\r\n binderFilesInformation: items.binderFilesInformation,\r\n fileWaitingForProcessing: items.fileWaitingForProcessing,\r\n totalFilesUploaded: items.totalFilesUploaded,\r\n totalIsometricUploaded: items.totalIsometricUploaded,\r\n isometricProcessedSuccessfully:\r\n items.isometricProcessedSuccessfully,\r\n isometricProcessedFailure: items.isometricProcessedFailure,\r\n isometricWaitingForProcessing:\r\n items.isometricWaitingForProcessing,\r\n };\r\n\r\n rowget.push(row2);\r\n });\r\n }\r\n Setrows(rowget);\r\n });\r\n } else {\r\n const res = axios\r\n .get(APIEndpoint + `/GetPidBatchStatus?workSpaceId=${props.wsId}`)\r\n .then((res) => {\r\n const myrows = res.data;\r\n let rowget = [];\r\n if (myrows) {\r\n myrows.map((items, index) => {\r\n const row2 = {\r\n id: items.batchId,\r\n batchScheduleDateTime: items.batchScheduleDateTime,\r\n batchCreationDateTime: items.batchCreationDateTime,\r\n batchProcessingDateTime: items.batchProcessingDateTime,\r\n batchCreatedBy: items.batchCreatedBy,\r\n filesProcessedSuccessfully: items.filesProcessedSuccessfully,\r\n filesProcessedFailure: items.filesProcessedFailure,\r\n binderFilesInformation: items.binderFilesInformation,\r\n fileWaitingForProcessing: items.fileWaitingForProcessing,\r\n totalFilesUploaded: items.totalFilesUploaded,\r\n totalSheetUploaded: items.totalSheetUploaded,\r\n sheetsProcessedSuccessfully:items.sheetsProcessedSuccessfully,\r\n sheetsProcessedFailure: items.sheetsProcessedFailure,\r\n sheetsWaitingForProcessing:items.sheetsWaitingForProcessing,\r\n };\r\n\r\n rowget.push(row2);\r\n });\r\n }\r\n Setrows(rowget);\r\n });\r\n }\r\n }, []);\r\n\r\n if (props.frompid !== \"pid\") {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Batch Schedule DateTime\r\n Batch Created By\r\n Batch Processing DateTime\r\n Total Files Uploaded\r\n Files Processed Successfully\r\n File Waiting For Processing\r\n Files Processed Failure\r\n Total Isometric Uploaded\r\n \r\n Isometric Processed Successfully\r\n \r\n \r\n Isometric Waiting For Processing\r\n \r\n Isometric Processed Failure\r\n \r\n \r\n \r\n {rows1.map((row) => (\r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n );\r\n } else {\r\n return(\r\n \r\n \r\n \r\n \r\n \r\n Batch Schedule DateTime\r\n Batch Created By\r\n Batch Processing DateTime\r\n Total Files Uploaded\r\n Files Processed Successfully\r\n File Waiting For Processing\r\n Files Processed Failure\r\n Total Sheets Uploaded\r\n Sheets Processed Successfully\r\n Sheets Waiting For Processing\r\n Sheets Processed Failure\r\n \r\n \r\n \r\n {rows1.map((row) => (\r\n \r\n ))}\r\n \r\n
    \r\n
    );\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { GridOverlay } from \"@material-ui/data-grid\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport \"./StampGrid.scss\";\r\nimport axios from \"axios\";\r\nimport \"antd/dist/antd.css\";\r\nimport ExportExcel from \"../../ExportExcel\";\r\nimport UserStore from \"../../UserStore\";\r\nimport Moment from \"moment\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nimport LoadingOverlay from \"react-loading-overlay\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport \"react-day-picker/lib/style.css\";\r\nimport \"moment/locale/en-gb\";\r\nimport Cancel from \"@material-ui/icons/Cancel\";\r\nimport { toJS } from \"mobx\";\r\nimport { DatePicker } from \"antd\";\r\nimport CircleChecked from \"@material-ui/icons/CheckCircleRounded\";\r\nimport Assessment from \"@material-ui/icons/Assessment\";\r\nimport DataGridPopup from \"./DataGridPopup\";\r\nimport StampGridTable from \"../StampGrid/StampGridTable\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport BatchTable from \"../BatchTable\";\r\nimport { isUndefined } from \"@microsoft/applicationinsights-core-js\";\r\n\r\nvar rowget = [];\r\n\r\n// ant datepicker variables\r\nconst dateFormat = \"DD/MMM/YYYY\";\r\n// ends here\r\n\r\n// setting start date\r\nconst customContentStyle = {\r\n width: \"100%\",\r\n maxWidth: \"none\",\r\n};\r\nvar startdate = \"\";\r\nvar enddate = \"\";\r\nvar startdate1 = \"\";\r\nvar enddate1 = \"\";\r\nlet searchrows = false;\r\nvar today = new Date();\r\ntoday.setDate(today.getDate() - 15);\r\n//var daysToMove = -8;\r\nconst APIEndpoint = process.env.REACT_APP_API_ENDPOINT;\r\nstartdate1 = Moment(\r\n today.getFullYear() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getDate()\r\n).format(\"YYYY-MM-DD\");\r\nstartdate1 = Moment(\r\n today.getFullYear() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getDate()\r\n).format(\"DD/MMM/YYYY\");\r\nstartdate = startdate1.toString();\r\nconst editWorkSpaceData = toJS(UserStore.editRow)[0];\r\nMoment(startdate).format(\"YYYY-MM-DD\");\r\n\r\n// setting end date\r\ntoday.setDate(today.getDate() + 15);\r\nenddate1 = Moment(\r\n today.getFullYear() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getDate()\r\n).format(\"DD/MMM/YYYY\");\r\n\r\nenddate = enddate1.toString();\r\nMoment(enddate).format(\"YYYY-MM-DD\");\r\nconst API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\nlet intervalID;\r\nclass StampGrid extends React.Component {\r\n constructor(props) {\r\n const editWorkSpaceData1 = toJS(UserStore.editRow)[0];\r\n if (!editWorkSpaceData1) {\r\n if (localStorage.getItem(\"startdateforProcess\") === null) {\r\n startdate = Moment(localStorage.getItem(\"startdate\")).format(\r\n \"DD/MMM/YYYY\"\r\n );\r\n } else {\r\n startdate = Moment(localStorage.getItem(\"startdateforProcess\")).format(\r\n \"DD/MMM/YYYY\"\r\n );\r\n }\r\n enddate =\r\n localStorage.getItem(\"enddateforProcess\") === null\r\n ? Moment(localStorage.getItem(\"enddate\")).format(\"DD/MMM/YYYY\")\r\n : Moment(localStorage.getItem(\"enddateforProcess\")).format(\r\n \"DD/MMM/YYYY\"\r\n );\r\n } else {\r\n const createdOn1 = editWorkSpaceData1.createdOn.toString();\r\n var stdate = Moment(createdOn1, \"DD/MM/YYYY\");\r\n stdate = Moment(stdate).format(\"DD/MMM/YYYY\");\r\n startdate = stdate;\r\n enddate1 = Moment(\r\n today.getFullYear() +\r\n \"-\" +\r\n (today.getMonth() + 1) +\r\n \"-\" +\r\n today.getDate()\r\n ).format(\"DD/MMM/YYYY\");\r\n enddate = enddate1.toString();\r\n Moment(enddate).format(\"YYYY-MM-DD\");\r\n }\r\n if (UserStore.UploadDateForProcess) {\r\n enddate = Moment(UserStore.UploadDateForProcess).format(\"DD/MMM/YYYY\");\r\n }\r\n if (UserStore.UploadRromDateForProcess) {\r\n startdate = Moment(UserStore.UploadRromDateForProcess).format(\r\n \"DD/MMM/YYYY\"\r\n );\r\n }\r\n\r\n super(props);\r\n this.tableRef = React.createRef();\r\n this.state = {\r\n initvalue: \"All\",\r\n deleteshow: false,\r\n dateValidation: false,\r\n dateValidationValue: \"\",\r\n pdfUri: \"\",\r\n selectedrowforDeletion: [],\r\n noOfRowSelected: 0,\r\n rows1: [],\r\n loading: true,\r\n columns: [\r\n {\r\n accessor: \"transmittalNumber\",\r\n header: \"Transmittal No.\",\r\n width: 170,\r\n },\r\n {\r\n accessor: \"documentName\",\r\n header: \"Document Name\",\r\n width: 200,\r\n },\r\n {\r\n accessor: \"isProcessed\",\r\n header: \"Processed\",\r\n width: 150,\r\n renderCell: this.IsProcessed,\r\n },\r\n { accessor: \"processedPercentage\", header: \"Percentage\", width: 160 },\r\n {\r\n accessor: \"isDetected\",\r\n header: \"Detected\",\r\n width: 150,\r\n renderCell: this.isDetected,\r\n },\r\n {\r\n accessor: \"lineNumber\",\r\n header: \"Line No.\",\r\n width: 150,\r\n renderCell: this.lineNumber,\r\n },\r\n {\r\n accessor: \"isometricNumber\",\r\n header: \"Isometric No.\",\r\n width: 170,\r\n },\r\n { accessor: \"sheetNumber\", header: \"Sheet No.\", width: 140 },\r\n { accessor: \"revisionNumber\", header: \"Rev. No.\", width: 150 },\r\n {\r\n accessor: \"phrase1\",\r\n header: \"Phrase 1\",\r\n width: 140,\r\n renderCell: this.Phrase1,\r\n },\r\n {\r\n accessor: \"phrase2\",\r\n header: \"Phrase 2\",\r\n width: 140,\r\n renderCell: this.Phrase2,\r\n },\r\n {\r\n accessor: \"phrase3\",\r\n header: \"Phrase 3\",\r\n width: 140,\r\n renderCell: this.Phrase3,\r\n },\r\n {\r\n accessor: \"phrase4\",\r\n header: \"Phrase 4\",\r\n width: 140,\r\n renderCell: this.Phrase4,\r\n },\r\n {\r\n accessor: \"isChange\",\r\n header: \"Change\",\r\n width: 140,\r\n renderCell: this.isChange,\r\n },\r\n {\r\n accessor: \"isDuplicate\",\r\n header: \"Duplicate\",\r\n width: 150,\r\n renderCell: this.isDuplicate,\r\n },\r\n { accessor: \"modifiedDoc\", header: \"Modified Doc.\", width: 170 },\r\n {\r\n accessor: \"processingDate\",\r\n header: \"Processing Date Time\",\r\n width: 200,\r\n },\r\n {\r\n accessor: \"modiffiedDate\",\r\n header: \"Modified Date Time\",\r\n width: 210,\r\n },\r\n { accessor: \"modifiedBy\", header: \"Modified By\", width: 170 },\r\n {\r\n accessor: \"acceptanceStatus\",\r\n header: \"Acceptance Status\",\r\n width: 200,\r\n },\r\n {\r\n accessor: \"confidenceLevel\",\r\n header: \"Confidence Level\",\r\n width: 220,\r\n },\r\n {\r\n accessor: \"rejectionRemark\",\r\n header: \"Rejection Remark\",\r\n width: 220,\r\n },\r\n ],\r\n deletedRows: [],\r\n selectedRows: [],\r\n CountAll: 0,\r\n CountProcessfailed: 0,\r\n searchvalue: \"Search by document name\",\r\n id: \"\",\r\n show: false,\r\n initarr: [],\r\n fillarr: [],\r\n startDate: startdate,\r\n endDate: enddate,\r\n oldEndDate: \"\",\r\n oldStartDate: \"\",\r\n showuser: true,\r\n showDownload: false,\r\n showBatchStatusDialog: false,\r\n previewValue: false,\r\n wsId: UserStore.workspaceId,\r\n showBatchStatus: false,\r\n disablePreview: false,\r\n responseIsometrics: {},\r\n showBulkAccept: false,\r\n fileprocessedStatus: true,\r\n accepteddoc: false,\r\n errorMEssage: \"\",\r\n dropArr: [],\r\n dropChange: false,\r\n };\r\n localStorage.removeItem(\"setreportStamp\");\r\n UserStore.setreportStamp(false);\r\n }\r\n\r\n handleCloseBatchStatus = () => {\r\n this.setState({ showBatchStatusDialog: false });\r\n };\r\n\r\n // ---------------------start: Function: Show batch details -------------------\r\n showBatchStatus = async () => {\r\n let val = 0;\r\n // API: GET batch details\r\n const res = axios\r\n .get(APIEndpoint + `/GetBatchStatus?workSpaceId=${this.state.wsId}`)\r\n .then((res) => {\r\n if (res.data.length !== 0) {\r\n this.setState({ showBatchStatusDialog: true });\r\n } else {\r\n this.setState({ showBatchStatus: true });\r\n }\r\n });\r\n };\r\n // ---------------------End: Function: Show batch details -------------------\r\n\r\n handleCloseBatch = () => {\r\n this.setState({ showBatchStatus: false });\r\n };\r\n\r\n handleDateChange1 = (day, datestring) => {\r\n this.state.oldStartDate = \"\";\r\n this.state.oldStartDate = \"\";\r\n let date1 = Moment(day).format(\"DD-MMM-YYYY\");\r\n localStorage.setItem(\r\n \"startdateforProcess\",\r\n Moment(date1).format(\"DD/MMM/YYYY\")\r\n );\r\n let date = Moment(day).format(\"YYYY-MM-DD\");\r\n UserStore.setUploadFromDateForProcess(date);\r\n this.state.oldStartDate = this.state.startDate;\r\n this.state.startDate = date;\r\n this.handleDatechange(\"start\");\r\n };\r\n\r\n handleDateChange2 = (day, datestring) => {\r\n this.state.oldStartDate = \"\";\r\n this.state.oldStartDate = \"\";\r\n let date1 = Moment(day).format(\"DD-MMM-YYYY\");\r\n localStorage.setItem(\r\n \"enddateforProcess\",\r\n Moment(date1).format(\"DD/MMM/YYYY\")\r\n );\r\n let date = Moment(day).format(\"YYYY-MM-DD\");\r\n UserStore.setUploadDateForProcess(date);\r\n this.state.oldEndDate = this.state.endDate;\r\n this.state.endDate = date;\r\n this.handleDatechange(\"end\");\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ show: false, previewValue: false, errorMEssage: \"\" });\r\n };\r\n\r\n handledeleteClose = () => {\r\n this.setState({ deleteshow: false });\r\n };\r\n\r\n handleDownloadClose = () => {\r\n this.setState({ showDownload: false });\r\n };\r\n\r\n handleBulkAcceptClose = () => {\r\n this.setState({ showBulkAccept: false });\r\n };\r\n\r\n handleDateeClose = () => {\r\n this.setState({ dateValidation: false });\r\n };\r\n\r\n handleShow = () => {\r\n let selectedrowstodelete = [];\r\n selectedrowstodelete = toJS(UserStore.PIDselectedRowID);\r\n this.state.selectedRows = selectedrowstodelete;\r\n if (\r\n this.state.selectedRows[0] === undefined ||\r\n this.state.selectedRows.length > 1\r\n ) {\r\n const messageToSet =\r\n selectedrowstodelete.length > 1\r\n ? \"Please select only one file to preview.\"\r\n : \"Please select a file to preview.\";\r\n this.setState({\r\n show: true,\r\n previewValue: true,\r\n errorMEssage: messageToSet,\r\n });\r\n }\r\n if (this.state.selectedRows.length === 1) {\r\n if (this.state.selectedRows[0].isProcessed === \"No\") {\r\n this.setState({\r\n show: true,\r\n previewValue: true,\r\n errorMEssage: \"Please select a file which is processed.\",\r\n disablePreview: true,\r\n });\r\n } else this.navigateToPreviewStamp();\r\n }\r\n };\r\n\r\n // ---------------------------------- Start: Cell styling in table-----------------------\r\n IsProcessed(params) {\r\n const isProcessed = params.row.isProcessed;\r\n return (\r\n
    \r\n {isProcessed === \"\" ? (\r\n \"\"\r\n ) : isProcessed == \"Yes\" ? (\r\n

    \r\n Yes\r\n

    \r\n ) : (\r\n

    \r\n No\r\n

    \r\n )}\r\n
    \r\n );\r\n }\r\n\r\n lineNumber(params) {\r\n return (\r\n \r\n
    {params.row.lineNumber}
    \r\n
    \r\n );\r\n }\r\n\r\n isDetected(params) {\r\n const isDetected = params.row.isDetected;\r\n return (\r\n
    \r\n {isDetected === \"\" ? (\r\n \"\"\r\n ) : isDetected == \"Yes\" ? (\r\n

    \r\n Yes\r\n

    \r\n ) : (\r\n

    \r\n No\r\n

    \r\n )}\r\n
    \r\n );\r\n }\r\n\r\n isDuplicate(params) {\r\n const isDuplicate = params.row.isDuplicate;\r\n return (\r\n
    \r\n {isDuplicate === \"\" ? (\r\n \"\"\r\n ) : isDuplicate == \"Yes\" ? (\r\n

    \r\n Yes\r\n

    \r\n ) : (\r\n

    \r\n No\r\n

    \r\n )}\r\n
    \r\n );\r\n }\r\n\r\n Phrase1(params) {\r\n const phrase1 = params.row.phrase1;\r\n return (\r\n
    \r\n {phrase1 === \"\" ? (\r\n \"\"\r\n ) : phrase1 == \"Found\" ? (\r\n \"Found\"\r\n ) : (\r\n Not Found\r\n )}\r\n
    \r\n );\r\n }\r\n\r\n Phrase2(params) {\r\n const phrase2 = params.row.phrase2;\r\n return (\r\n
    \r\n {phrase2 === \"\" ? (\r\n \"\"\r\n ) : phrase2 == \"Found\" ? (\r\n \"Found\"\r\n ) : (\r\n Not Found\r\n )}\r\n
    \r\n );\r\n }\r\n\r\n Phrase3(params) {\r\n const phrase3 = params.row.phrase3;\r\n return (\r\n
    \r\n {phrase3 === \"\" ? (\r\n \"\"\r\n ) : phrase3 == \"Found\" ? (\r\n \"Found\"\r\n ) : (\r\n Not Found\r\n )}\r\n
    \r\n );\r\n }\r\n\r\n Phrase4(params) {\r\n const phrase4 = params.row.phrase4;\r\n return (\r\n
    \r\n {phrase4 === \"\" ? (\r\n \"\"\r\n ) : phrase4 == \"Found\" ? (\r\n \"Found\"\r\n ) : (\r\n Not Found\r\n )}\r\n
    \r\n );\r\n }\r\n\r\n checkBox01(params) {\r\n let cbVal = params.row.labelCheckbox01;\r\n let label = params.row.checkbox01;\r\n var splitStr = label.toLowerCase().split(\" \");\r\n for (var i = 0; i < splitStr.length; i++) {\r\n splitStr[i] =\r\n splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);\r\n }\r\n label = splitStr.join(\" \");\r\n\r\n return (\r\n
    \r\n {label !== \"\" || cbVal !== \"\" ? (\r\n

    \r\n {label}\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n );\r\n }\r\n checkBox02(params) {\r\n let cbVal = params.row.labelCheckbox02;\r\n let label = params.row.checkbox02;\r\n var splitStr = label.toLowerCase().split(\" \");\r\n for (var i = 0; i < splitStr.length; i++) {\r\n splitStr[i] =\r\n splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);\r\n }\r\n label = splitStr.join(\" \");\r\n return (\r\n
    \r\n {label !== \"\" || cbVal !== \"\" ? (\r\n

    \r\n {label}\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n );\r\n }\r\n checkBox03(params) {\r\n let cbVal = params.row.labelCheckbox03;\r\n let label = params.row.checkbox03;\r\n var splitStr = label.toLowerCase().split(\" \");\r\n for (var i = 0; i < splitStr.length; i++) {\r\n splitStr[i] =\r\n splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);\r\n }\r\n label = splitStr.join(\" \");\r\n return (\r\n
    \r\n {label !== \"\" || cbVal !== \"\" ? (\r\n

    \r\n {label}\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n );\r\n }\r\n checkBox04(params) {\r\n let cbVal = params.row.labelCheckbox04;\r\n let label = params.row.checkbox04;\r\n var splitStr = label.toLowerCase().split(\" \");\r\n for (var i = 0; i < splitStr.length; i++) {\r\n splitStr[i] =\r\n splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);\r\n }\r\n label = splitStr.join(\" \");\r\n return (\r\n
    \r\n {label !== \"\" || cbVal !== \"\" ? (\r\n

    \r\n {label}\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n );\r\n }\r\n // ---------------------------------- End: Cell styling in table-----------------------\r\n\r\n changeHeader() {\r\n let column = [\r\n {\r\n accessor: \"transmittalNumber\",\r\n header: \"Transmittal No.\",\r\n width: 170,\r\n },\r\n {\r\n accessor: \"documentName\",\r\n header: \"Document Name\",\r\n width: 200,\r\n },\r\n {\r\n accessor: \"isProcessed\",\r\n header: \"Processed\",\r\n width: 150,\r\n renderCell: this.IsProcessed,\r\n },\r\n { accessor: \"processedPercentage\", header: \"Percentage\", width: 160 },\r\n {\r\n accessor: \"isDetected\",\r\n header: \"Detected\",\r\n width: 150,\r\n renderCell: this.isDetected,\r\n },\r\n {\r\n accessor: \"lineNumber\",\r\n header: \"Line No.\",\r\n width: 150,\r\n renderCell: this.lineNumber,\r\n },\r\n {\r\n accessor: \"isometricNumber\",\r\n header: \"Isometric No.\",\r\n width: 170,\r\n },\r\n { accessor: \"sheetNumber\", header: \"Sheet No.\", width: 140 },\r\n { accessor: \"revisionNumber\", header: \"Rev. No.\", width: 150 },\r\n {\r\n accessor: \"checkbox01\",\r\n header: \"Checkbox01 Label\",\r\n width: 200,\r\n renderCell: this.checkBox01,\r\n },\r\n {\r\n accessor: \"labelCheckbox01\",\r\n header: \"Checkbox01 Selection\",\r\n width: 200,\r\n },\r\n {\r\n accessor: \"checkbox02\",\r\n header: \"Checkbox02 Label\",\r\n width: 200,\r\n renderCell: this.checkBox02,\r\n },\r\n {\r\n accessor: \"labelCheckbox02\",\r\n header: \"Checkbox02 Selection\",\r\n width: 200,\r\n },\r\n {\r\n accessor: \"checkbox03\",\r\n header: \"Checkbox03 Label\",\r\n width: 200,\r\n renderCell: this.checkBox03,\r\n },\r\n {\r\n accessor: \"labelCheckbox03\",\r\n header: \"Checkbox03 Selection\",\r\n width: 200,\r\n },\r\n {\r\n accessor: \"checkbox04\",\r\n header: \"Checkbox04 Label\",\r\n width: 200,\r\n renderCell: this.checkBox04,\r\n },\r\n {\r\n accessor: \"labelCheckbox04\",\r\n header: \"Checkbox04 Selection\",\r\n width: 200,\r\n },\r\n\r\n {\r\n accessor: \"isChange\",\r\n header: \"Change\",\r\n width: 140,\r\n renderCell: this.isChange,\r\n },\r\n {\r\n accessor: \"isDuplicate\",\r\n header: \"Duplicate\",\r\n width: 150,\r\n renderCell: this.isDuplicate,\r\n },\r\n { accessor: \"modifiedDoc\", header: \"Modified Doc.\", width: 170 },\r\n { accessor: \"processingDate\", header: \"Processing Date\", width: 200 },\r\n {\r\n accessor: \"modiffiedDate\",\r\n header: \"Modified Date Time\",\r\n width: 210,\r\n },\r\n { accessor: \"modifiedBy\", header: \"Modified By\", width: 170 },\r\n {\r\n accessor: \"acceptanceStatus\",\r\n header: \"Acceptance Status\",\r\n width: 200,\r\n },\r\n { accessor: \"confidenceLevel\", header: \"Confidence Level\", width: 220 },\r\n { accessor: \"rejectionRemark\", header: \"Rejection Remark\", width: 220 },\r\n ];\r\n this.setState({ columns: column });\r\n }\r\n\r\n isChange(params) {\r\n const isChange = params.row.isChange;\r\n return (\r\n
    \r\n {isChange === \"\" ? (\r\n \"\"\r\n ) : isChange == \"Yes\" ? (\r\n

    \r\n Yes\r\n

    \r\n ) : (\r\n

    \r\n No\r\n

    \r\n )}\r\n
    \r\n );\r\n }\r\n\r\n async componentDidMount() {\r\n localStorage.setItem(\r\n \"startdateforProcess\",\r\n Moment(this.state.startDate).format(\"DD/MMM/YYYY\")\r\n );\r\n localStorage.setItem(\r\n \"enddateforProcess\",\r\n Moment(this.state.endDate).format(\"DD/MMM/YYYY\")\r\n );\r\n const user = \"Admin\";\r\n if (user === \"read\") {\r\n this.setState({\r\n showuser: false,\r\n });\r\n }\r\n localStorage.removeItem(\"itemChange\");\r\n const workspaceId = UserStore.workspaceId;\r\n const editWorkSpaceData = toJS(UserStore.editRow)[0];\r\n\r\n if (!editWorkSpaceData) {\r\n startdate = localStorage.getItem(\"startdateforProcess\");\r\n let date = Moment(startdate).format(\"YYYY-MM-DD\");\r\n var stdate = date;\r\n } else {\r\n const createdOn = editWorkSpaceData.createdOn.toString();\r\n var stdate = Moment(createdOn, \"DD-MM-YYYY\");\r\n stdate = Moment(this.state.startDate).format(\"YYYY-MM-DD\");\r\n }\r\n this.setState({\r\n startdate: stdate,\r\n });\r\n\r\n var etdate = \"\";\r\n if (UserStore.UploadDateForProcess) {\r\n etdate = UserStore.UploadDateForProcess;\r\n } else {\r\n etdate = Moment(enddate).format(\"YYYY-MM-DD\");\r\n }\r\n\r\n if (UserStore.processGridData.length === 0) {\r\n localStorage.setItem(\"startDateSR\", stdate);\r\n localStorage.setItem(\"endDateSR\", etdate);\r\n localStorage.setItem(\"workspaceIDSR\", workspaceId);\r\n let res = await axios.get(\r\n API_Endpoint +\r\n `/GetProcessedIsometrics?fromdate=${stdate}&todate=${etdate}&workSpaceId=${workspaceId}`\r\n );\r\n\r\n UserStore.setProcessGridData(res.data);\r\n } else {\r\n await new Promise((resolve) => setTimeout(resolve, 1));\r\n }\r\n var myrows;\r\n this.setState({ responseIsometrics: UserStore.processGridData });\r\n myrows = UserStore.processGridData;\r\n rowget = [];\r\n let tickBased = false;\r\n this.setState({ rows1: myrows });\r\n // if (myrows.length) {\r\n // myrows.forEach((items, index) => {\r\n // tickBased = items.isTickBasedIsometric;\r\n // const row2 = this.dataRows(items);\r\n // this.state.rows1.push(row2);\r\n // rowget.push(row2);\r\n // });\r\n // UserStore.setPIDProcessData(rowget);\r\n // }\r\n\r\n if (tickBased) {\r\n this.changeHeader();\r\n }\r\n this.setState({\r\n initarr: this.state.rows1,\r\n fillarr: this.state.rows1,\r\n loading: false,\r\n });\r\n //}\r\n }\r\n // Start: Function => To change the grid data when Grid data is refreshed\r\n async refreshProcessedStatus() {\r\n let res;\r\n //var stdate = Moment(startdate).format(\"YYYY-MM-DD\");\r\n var stdate = Moment(this.state.startDate).format(\"YYYY-MM-DD\");\r\n var etdate = Moment(enddate).format(\"YYYY-MM-DD\");\r\n const workspaceId = UserStore.workspaceId;\r\n this.setState({ rows1: [], loading: true });\r\n UserStore.setStampFilterRetain(false);\r\n UserStore.PIDselectedRowID = [];\r\n UserStore.reportData = [];\r\n // API: Get processed isometrics cased on selected date range\r\n res = await axios.get(\r\n API_Endpoint +\r\n `/GetProcessedIsometrics?fromdate=${stdate}&todate=${etdate}&workSpaceId=${workspaceId}`\r\n );\r\n\r\n this.setState({ responseIsometrics: res.data });\r\n // localStorage.setItem(\"responseIsometrics\",JSON.stringify(res.data));\r\n UserStore.setProcessGridData(res.data);\r\n\r\n if (res.status === 400) {\r\n toast.error(\"Request error:\" + res.data.map((row) => row.error), {\r\n // Set to 5sec\r\n position: toast.POSITION.TOP_LEFT,\r\n autoClose: 5000,\r\n });\r\n } else {\r\n const myrows = this.state.responseIsometrics;\r\n rowget = [];\r\n let tickBased = false;\r\n this.setState({ rows1: [] });\r\n if (myrows.length) {\r\n this.setState({ rows1: myrows });\r\n }\r\n if (tickBased) {\r\n this.changeHeader();\r\n }\r\n this.setState({\r\n initarr: this.state.rows1,\r\n fillarr: this.state.rows1,\r\n deletedRows: [],\r\n selectedRows: [],\r\n initvalue: \"All\",\r\n loading: false,\r\n });\r\n UserStore.setreportStamp(false);\r\n localStorage.setItem(\"setreportStamp\", false);\r\n UserStore.setSkipData(0);\r\n }\r\n }\r\n\r\n CustomNoRowsOverlay() {\r\n return (\r\n \r\n
    No Rows
    \r\n
    \r\n );\r\n }\r\n\r\n ShowbatchTable() {\r\n return ;\r\n }\r\n\r\n //handling dropdown change for the files\r\n handleDropdownChange = async (e) => {\r\n let res;\r\n //var stdate = Moment(startdate).format(\"YYYY-MM-DD\");\r\n var stdate = Moment(this.state.startDate).format(\"YYYY-MM-DD\");\r\n var etdate = Moment(enddate).format(\"YYYY-MM-DD\");\r\n const workspaceId = UserStore.workspaceId;\r\n this.setState({ rows1: [], loading: true });\r\n UserStore.setStampFilterRetain(false);\r\n UserStore.PIDselectedRowID = [];\r\n UserStore.reportData = [];\r\n localStorage.setItem(\"perPageData\", \"10\");\r\n UserStore.SetPerPageData(\"10\");\r\n UserStore.setSkipData(0);\r\n // API: Get processed isometrics cased on selected date range\r\n res = await axios.get(\r\n API_Endpoint +\r\n `/GetProcessedIsometrics?fromdate=${stdate}&todate=${etdate}&workSpaceId=${workspaceId}`\r\n );\r\n this.setState({ responseIsometrics: res.data });\r\n UserStore.setProcessGridData(res.data);\r\n\r\n if (res.status === 400) {\r\n toast.error(\"Request error:\" + res.data.map((row) => row.error), {\r\n // Set to 5sec\r\n position: toast.POSITION.TOP_LEFT,\r\n autoClose: 5000,\r\n });\r\n this.setState({ loading: false });\r\n } else {\r\n this.setState({\r\n loading: false,\r\n });\r\n let myrows = this.state.responseIsometrics;\r\n\r\n if (e.target.value === \"Processed\") {\r\n myrows = myrows.filter((row) => {\r\n return row.isProcessed === \"Yes\";\r\n });\r\n } else if (e.target.value === \"Processing Failed\") {\r\n myrows = myrows.filter((row) => {\r\n return row.isProcessed === \"No\";\r\n });\r\n }\r\n rowget = [];\r\n let tickBased = false;\r\n if (myrows.length) {\r\n this.setState({ rows1: myrows });\r\n }\r\n if (tickBased) {\r\n this.changeHeader();\r\n }\r\n this.setState({\r\n initarr: rowget,\r\n fillarr: this.state.responseIsometrics,\r\n // deletedRows: [],\r\n // selectedRows: [],\r\n initvalue: e.target.value,\r\n });\r\n }\r\n console.log(this.state.fillarr);\r\n };\r\n\r\n dataRows = (items) => {\r\n let processingDate =\r\n items.ProcessingDate !== null && items.ProcessingDate !== undefined\r\n ? items.ProcessingDate.includes(\"+\")\r\n ? items.ProcessingDate.split(\"+\")\r\n : items.ProcessingDate\r\n : \"\";\r\n processingDate =\r\n items.ProcessingDate !== null && items.ProcessingDate !== undefined\r\n ? items.ProcessingDate.includes(\"+\")\r\n ? processingDate[0].trim().replaceAll(\"-\", \"/\")\r\n : items.ProcessingDate\r\n : \"\";\r\n let modifiedDate = items.ModiffiedDate\r\n ? items.ModiffiedDate.includes(\"+\")\r\n ? items.ModiffiedDate.split(\"+\")\r\n : items.ModiffiedDate\r\n : \"\";\r\n modifiedDate = items.ModiffiedDate\r\n ? items.ModiffiedDate.includes(\"+\")\r\n ? modifiedDate[0].trim().replaceAll(\"-\", \"/\")\r\n : items.ModiffiedDate\r\n : \"\";\r\n const addPer = UserStore.stampFilterRetain ? \"\" : \"%\";\r\n const row = {\r\n splitedFileId: items.SplitedFileId != null ? items.SplitedFileId : \"\",\r\n transmittalNumber:\r\n items.TransmittalNumber != null ? items.TransmittalNumber : \"\",\r\n documentName: items.DocumentName != null ? items.DocumentName : \"\",\r\n isProcessed:\r\n items.IsProcessed != null\r\n ? items.IsProcessed === true || items.IsProcessed === \"Yes\"\r\n ? \"Yes\"\r\n : \"No\"\r\n : \"\",\r\n processedPercentage: items.ProcessedPercentage\r\n ? items.ProcessedPercentage + addPer\r\n : \"\",\r\n isDetected:\r\n items.isDetected != null\r\n ? items.isDetected === true || items.isDetected === \"Yes\"\r\n ? \"Yes\"\r\n : \"No\"\r\n : \"\",\r\n lineNumber: items.LineNumber != null ? items.LineNumber : \"\",\r\n isometricNumber:\r\n items.IsometricNumber != null ? items.IsometricNumber : \"\",\r\n sheetNumber: items.SheetNumber != null ? items.SheetNumber : \"\",\r\n revisionNumber: items.RevisionNumber != null ? items.RevisionNumber : \"\",\r\n phrase1:\r\n items.phrase1 != null\r\n ? items.phrase1 === true || items.phrase1 === \"Found\"\r\n ? \"Found\"\r\n : \"Not Found\"\r\n : \"\",\r\n phrase2:\r\n items.phrase2 != null\r\n ? items.phrase2 === true || items.phrase2 === \"Found\"\r\n ? \"Found\"\r\n : \"Not Found\"\r\n : \"\",\r\n phrase3:\r\n items.phrase3 != null\r\n ? items.phrase3 === true || items.phrase3 === \"Found\"\r\n ? \"Found\"\r\n : \"Not Found\"\r\n : \"\",\r\n phrase4:\r\n items.phrase4 != null\r\n ? items.phrase4 === true || items.phrase4 === \"Found\"\r\n ? \"Found\"\r\n : \"Not Found\"\r\n : \"\",\r\n isChange:\r\n items.IsChange != null\r\n ? items.IsChange === true || items.IsChange === \"Yes\"\r\n ? \"Yes\"\r\n : \"No\"\r\n : \"\",\r\n isDuplicate:\r\n items.IsDuplicate != null\r\n ? items.IsDuplicate === true || items.IsDuplicate === \"Yes\"\r\n ? \"Yes\"\r\n : \"No\"\r\n : \"\",\r\n processingDate:\r\n items.ProcessingDate != \"\"\r\n ? Moment.utc(processingDate, \"YYYY/MM/DD hh:mm:ss a\")\r\n .local()\r\n .format(\"DD/MM/YYYY hh:mm:ss a\")\r\n : \"\",\r\n modiffiedDate:\r\n items.ModiffiedDate != \"\"\r\n ? Moment.utc(modifiedDate, \"YYYY/MM/DD hh:mm:ss a\")\r\n .local()\r\n .format(\"DD/MM/YYYY hh:mm:ss a\")\r\n : \"\",\r\n modifiedBy: items.ModifiedBy != null ? items.ModifiedBy : \"\",\r\n modifiedDoc: items.ModifiedDoc != null ? items.ModifiedDoc : \"\",\r\n acceptanceStatus:\r\n items.AcceptanceStatus != null\r\n ? items.AcceptanceStatus === \"Accepted\" ||\r\n items.AcceptanceStatus === \"Yes\"\r\n ? \"Yes\"\r\n : items.AcceptanceStatus === \"Rejected\" ||\r\n items.AcceptanceStatus === \"No\"\r\n ? \"No\"\r\n : \"\"\r\n : \"\",\r\n confidenceLevel:\r\n items.ConfidenceLevel != null ? items.ConfidenceLevel : \"\",\r\n checkbox01: items.LabelCheckbox01 != null ? items.LabelCheckbox01 : \"\",\r\n checkbox02: items.LabelCheckbox02 != null ? items.LabelCheckbox02 : \"\",\r\n checkbox03: items.LabelCheckbox03 != null ? items.LabelCheckbox03 : \"\",\r\n checkbox04: items.LabelCheckbox04 != null ? items.LabelCheckbox04 : \"\",\r\n labelCheckbox01:\r\n items.Checkbox01 != null\r\n ? items.Checkbox01 === true || items.Checkbox01 === \"Yes\"\r\n ? \"Yes\"\r\n : \"No\"\r\n : \"\",\r\n labelCheckbox02:\r\n items.Checkbox02 != null\r\n ? items.Checkbox02 === true || items.Checkbox02 === \"Yes\"\r\n ? \"Yes\"\r\n : \"No\"\r\n : \"\",\r\n labelCheckbox03:\r\n items.Checkbox03 != null\r\n ? items.Checkbox03 === true || items.Checkbox03 === \"Yes\"\r\n ? \"Yes\"\r\n : \"No\"\r\n : \"\",\r\n labelCheckbox04:\r\n items.Checkbox04 != null\r\n ? items.Checkbox04 === true || items.Checkbox04 === \"Yes\"\r\n ? \"Yes\"\r\n : \"No\"\r\n : \"\",\r\n rejectionRemark:\r\n items.RejectionRemark != null ? items.RejectionRemark : \"\",\r\n isTickBasedIsometric: items.isTickBasedIsometric,\r\n };\r\n return row;\r\n };\r\n\r\n // For handling the data when date is changed\r\n\r\n handleDatechange = async (findDateChange) => {\r\n this.setState({\r\n fillarr: [...this.state.rows1],\r\n });\r\n\r\n if (\r\n this.state.startDate === \"Invalid date\" ||\r\n this.state.endDate === \"Invalid date\"\r\n ) {\r\n this.setState({\r\n dateValidation: true,\r\n dateValidationValue: \"Upload Date or To Date cannot be empty\",\r\n });\r\n } else {\r\n var fromDate = this.state.startDate;\r\n fromDate = Moment(fromDate).format(\"YYYY-MM-DD\");\r\n var toDate = this.state.endDate;\r\n toDate = Moment(toDate).format(\"YYYY-MM-DD\");\r\n this.setState({\r\n endDate: toDate,\r\n });\r\n\r\n const x = new Date(this.state.startDate);\r\n const y = new Date(toDate);\r\n var z = new Date();\r\n z.setDate(today.getDate());\r\n Moment(z).format(\"YYYY/MM/DD\");\r\n if (Moment(x).format(\"YYYY/MM/DD\") > Moment(y).format(\"YYYY/MM/DD\")) {\r\n if (findDateChange === \"start\") {\r\n this.state.startDate = this.state.oldStartDate;\r\n startdate = Moment(this.state.oldStartDate).format(\"DD/MMM/YYYY\");\r\n UserStore.setUploadFromDateForProcess(this.state.oldStartDate);\r\n localStorage.setItem(\r\n \"startdateforProcess\",\r\n Moment(this.state.oldStartDate).format(\"DD/MMM/YYYY\")\r\n );\r\n this.state.oldStartDate = \"\";\r\n } else {\r\n this.state.endDate = Moment(this.state.oldEndDate).format(\r\n \"DD/MMM/YYYY\"\r\n );\r\n UserStore.setUploadDateForProcess(this.state.oldEndDate);\r\n localStorage.setItem(\r\n \"enddateforProcess\",\r\n Moment(this.state.oldEndDate).format(\"DD/MMM/YYYY\")\r\n );\r\n enddate = Moment(this.state.oldEndDate).format(\"DD/MMM/YYYY\");\r\n this.setState({\r\n endDate: Moment(this.state.oldEndDate).format(\"DD/MMM/YYYY\"),\r\n });\r\n this.state.oldEndDate = \"\";\r\n }\r\n this.setState({\r\n dateValidation: true,\r\n dateValidationValue: \"To Date cannot be earlier than Upload Date\",\r\n });\r\n } else if (\r\n Moment(x).format(\"YYYY/MM/DD\") > Moment(z).format(\"YYYY/MM/DD\")\r\n ) {\r\n if (findDateChange === \"start\") {\r\n this.state.startDate = this.state.oldStartDate;\r\n localStorage.setItem(\r\n \"startdateforProcess\",\r\n Moment(this.state.oldStartDate).format(\"DD/MMM/YYYY\")\r\n );\r\n startdate = Moment(this.state.oldStartDate).format(\"DD/MMM/YYYY\");\r\n UserStore.setUploadFromDateForProcess(this.state.oldStartDate);\r\n this.state.oldStartDate = \"\";\r\n } else {\r\n this.state.endDate = Moment(this.state.oldEndDate).format(\r\n \"DD/MMM/YYYY\"\r\n );\r\n UserStore.setUploadDateForProcess(this.state.oldEndDate);\r\n localStorage.setItem(\r\n \"enddateforProcess\",\r\n Moment(this.state.oldEndDate).format(\"DD/MMM/YYYY\")\r\n );\r\n enddate = Moment(this.state.oldEndDate).format(\"DD/MMM/YYYY\");\r\n this.setState({\r\n endDate: Moment(this.state.oldEndDate).format(\"DD/MMM/YYYY\"),\r\n });\r\n this.state.oldEndDate = \"\";\r\n }\r\n this.setState({\r\n dateValidation: true,\r\n dateValidationValue: \"Upload Date cannot be beyond To Date\",\r\n });\r\n } else {\r\n rowget = [];\r\n this.state.oldStartDate = \"\";\r\n this.state.oldStartDate = \"\";\r\n const workspaceIdfordropdown = UserStore.workspaceId;\r\n const workspaceIdDate = UserStore.workspaceId;\r\n let res;\r\n enddate = Moment(this.state.endDate).format(\"DD/MMM/YYYY\");\r\n startdate = Moment(this.state.startDate).format(\"DD/MMM/YYYY\");\r\n res = await axios.get(\r\n API_Endpoint +\r\n `/GetProcessedIsometrics?fromdate=${fromDate}&todate=${toDate}&workSpaceId=${workspaceIdfordropdown}`\r\n );\r\n\r\n UserStore.setProcessGridData(res.data);\r\n if (res.status === 200) {\r\n this.setState({\r\n rows1: [],\r\n });\r\n }\r\n\r\n if (res.data.length != 0) {\r\n let myrows = res.data;\r\n rowget = myrows;\r\n // myrows.map((items, index) => {\r\n // const row2 = this.dataRows(items);\r\n // rowget.push(row2);\r\n // });\r\n\r\n this.setState({\r\n rows1: rowget,\r\n fillarr: rowget,\r\n });\r\n } else {\r\n const feed = [];\r\n this.setState({\r\n rows1: feed,\r\n fillarr: rowget,\r\n });\r\n }\r\n }\r\n }\r\n this.setState({ loading: false });\r\n };\r\n\r\n OnChangeHandler = () => {\r\n var searchTerm1 = document.getElementById(\"searchbox\").value;\r\n if (this.state.dropArr.length > 0 && searchTerm1 === \"\") {\r\n this.setState({\r\n rows1: this.state.dropArr,\r\n });\r\n } else if (searchTerm1 === \"\") {\r\n this.setState({\r\n rows1: this.state.initarr,\r\n });\r\n this.doSomethingWith();\r\n }\r\n };\r\n\r\n keyDownSearch = (e) => {\r\n if (e.charCode === 13 || e.keyCode === 13) {\r\n this.doSomethingWith();\r\n }\r\n };\r\n\r\n doSomethingWith = () => {\r\n //const fillarr = [...this.state.rows1];\r\n let searchTerm = document.getElementById(\"searchbox\").value.trim();\r\n\r\n if (this.state.dropChange === true) {\r\n let searchData1 = [];\r\n const dataFromDropdown =\r\n this.state.dropArr.length > 0 ? this.state.dropArr : this.state.initarr;\r\n if (\r\n searchTerm === \"Search by document name\" ||\r\n searchTerm === \"\" ||\r\n searchTerm.length === 0\r\n ) {\r\n searchData1 = dataFromDropdown;\r\n searchrows = false;\r\n this.setState({\r\n rows1: searchData1,\r\n });\r\n UserStore.setPIDProcessData(searchData1);\r\n } else {\r\n searchrows = true;\r\n searchData1 = dataFromDropdown.filter((row) => {\r\n return row.documentName\r\n .toLowerCase()\r\n .includes(searchTerm.toLowerCase());\r\n });\r\n\r\n this.setState({\r\n rows1: searchData1,\r\n });\r\n UserStore.setStampSearchData(searchData1);\r\n UserStore.setPIDProcessData(searchData1);\r\n }\r\n setTimeout(() => {\r\n searchrows = false;\r\n }, 1000);\r\n }\r\n\r\n let searchData = [];\r\n const dataFromFiltering =\r\n toJS(UserStore.stampFilterData).length > 0\r\n ? toJS(UserStore.stampFilterData)\r\n : this.state.initarr;\r\n if (\r\n searchTerm === \"Search by document name\" ||\r\n searchTerm === \"\" ||\r\n searchTerm.length === 0\r\n ) {\r\n searchData = dataFromFiltering;\r\n searchrows = false;\r\n this.setState({\r\n rows1: searchData,\r\n });\r\n UserStore.setPIDProcessData(searchData);\r\n } else {\r\n searchrows = true;\r\n\r\n searchData = dataFromFiltering.filter((row) => {\r\n if(row.documentName.toLowerCase().includes(searchTerm.toLowerCase()) || \r\n (!isUndefined(row.lineNumber) && row.lineNumber.toLowerCase().includes(searchTerm.toLowerCase())) ||\r\n (!isUndefined(row.isometricNumber) && row.isometricNumber.toLowerCase().includes(searchTerm.toLowerCase())))\r\n {\r\n return row;\r\n }\r\n });\r\n\r\n this.setState({\r\n rows1: searchData,\r\n });\r\n UserStore.setStampSearchData(searchData);\r\n UserStore.setPIDProcessData(searchData);\r\n }\r\n setTimeout(() => {\r\n searchrows = false;\r\n }, 1000);\r\n };\r\n\r\n checkallSelected = (e) => {\r\n let selectedValue = e.rowIds.map((item) => {\r\n return parseInt(item);\r\n });\r\n let itemChange = this.state.rows1.filter((val) =>\r\n selectedValue.includes(val.id)\r\n );\r\n if (\r\n this.state.fillarr.length === e.rowIds.length ||\r\n e.rowIds.length === 0\r\n ) {\r\n UserStore.setreportStamp(false);\r\n localStorage.setItem(\"setreportStamp\", false);\r\n } else {\r\n UserStore.setreportStamp(true);\r\n localStorage.setItem(\"setreportStamp\", true);\r\n }\r\n\r\n UserStore.addReportdata(itemChange);\r\n localStorage.setItem(\"itemChange\", JSON.stringify(itemChange));\r\n this.setState({\r\n noOfRowSelected: e.rowIds.length,\r\n deletedRows: itemChange,\r\n selectedRows: itemChange,\r\n });\r\n };\r\n\r\n handleRowSelection = async (item) => {\r\n if (item === undefined || item === null) {\r\n this.setState({ disablePreview: false });\r\n } else {\r\n UserStore.setreportStamp(true);\r\n localStorage.setItem(\"setreportStamp\", true);\r\n if (item) {\r\n this.setState({ id: item.splitedFileId });\r\n this.state.id = item.splitedFileId;\r\n if (item.isProcessed === \"No\") {\r\n this.state.disablePreview = false;\r\n } else {\r\n this.setState({ disablePreview: true });\r\n UserStore.setreportStamp(true);\r\n localStorage.setItem(\"setreportStamp\", true);\r\n\r\n this.setState({ id: item.splitedFileId });\r\n }\r\n }\r\n }\r\n };\r\n\r\n async handleBulkAccept() {\r\n let ids = [];\r\n let processedStatus = [];\r\n const acceptedRows = toJS(UserStore.PIDselectedRowID);\r\n this.setState({ selectedRows: acceptedRows });\r\n acceptedRows.map((row) => {\r\n ids.push(row.splitedFileId);\r\n processedStatus.push(row.isProcessed);\r\n });\r\n\r\n if (processedStatus.includes(\"No\")) {\r\n this.setState({ fileprocessedStatus: false });\r\n }\r\n if (ids.length === 0 || processedStatus.includes(\"No\")) {\r\n this.setState({ showBulkAccept: true });\r\n return;\r\n }\r\n\r\n let body = {\r\n splitedFileIds: ids,\r\n };\r\n\r\n await axios.post(APIEndpoint + `/AcceptMultipleIsometrics`, body);\r\n this.refreshProcessedStatus();\r\n }\r\n\r\n handleDownloadIsometrics = async () => {\r\n let ids = [];\r\n const acceptedRows = toJS(UserStore.PIDselectedRowID);\r\n this.setState({ selectedRows: acceptedRows });\r\n acceptedRows.map((row) => {\r\n ids.push(row.splitedFileId);\r\n });\r\n\r\n if (ids.length === 0) {\r\n this.setState({ showDownload: true });\r\n return;\r\n }\r\n\r\n let body = {\r\n splitedFileIds: ids,\r\n };\r\n\r\n // API: Download selected isometrics in zip\r\n fetch(APIEndpoint + `/DownloadProcessedIsometricsZip`, {\r\n method: \"post\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${UserStore.accesstoken}`,\r\n },\r\n body: JSON.stringify(body),\r\n }).then((response) => {\r\n response.blob().then((blob) => {\r\n let url = window.URL.createObjectURL(blob);\r\n let a = document.createElement(\"a\");\r\n a.href = url;\r\n a.download = `Isometrics_${UserStore.workspaceName}`;\r\n a.click();\r\n });\r\n });\r\n };\r\n\r\n handleDeleteFiles = () => {\r\n let selectedrowstodelete = [];\r\n selectedrowstodelete = toJS(UserStore.PIDselectedRowID);\r\n this.state.deletedRows = selectedrowstodelete;\r\n // this.setState({\r\n // selectedRows:selectedrowstodelete,\r\n // })\r\n if (this.state.deletedRows.length === 0) {\r\n this.setState({\r\n deleteshow: true,\r\n });\r\n } else {\r\n this.setState({ deletePopup: true });\r\n }\r\n };\r\n\r\n handleDeleteFilesClose = () => {\r\n this.setState({ deletePopup: false });\r\n };\r\n\r\n handlePurge = async () => {\r\n this.setState({ deletePopup: false });\r\n if (this.state.deletedRows.length >= 1) {\r\n this.setState({\r\n rows1: this.state.rows1.filter(\r\n (r) =>\r\n this.state.deletedRows.filter(\r\n (sr) => sr.splitedFileId === r.splitedFileId\r\n ).length < 1\r\n ),\r\n });\r\n let ids = [];\r\n this.state.deletedRows.map((row) => {\r\n ids.push(row.splitedFileId);\r\n });\r\n const delrow = ids;\r\n const data = delrow;\r\n\r\n var res = await axios.post(\r\n API_Endpoint + `//DeleteProcessedIsometric`,\r\n data\r\n );\r\n this.setState({\r\n deletedRows: [],\r\n selectedRows: [],\r\n });\r\n UserStore.PIDselectedRowID = [];\r\n if (res.status === 200) {\r\n this.refreshProcessedStatus();\r\n }\r\n } else {\r\n this.setState({\r\n deleteshow: true,\r\n });\r\n }\r\n };\r\n navigateToPreviewStamp = () => {\r\n UserStore.setUploadDateForProcess(this.state.endDate);\r\n UserStore.setUploadFromDateForProcess(this.state.startDate);\r\n UserStore.setSplitedFileId(this.state.selectedRows[0].splitedFileId);\r\n if (\r\n this.state.selectedRows[0].acceptanceStatus === \"Accepted\" ||\r\n this.state.selectedRows[0].acceptanceStatus === \"Rejected\"\r\n ) {\r\n UserStore.isaccepteddoc(true);\r\n localStorage.setItem(\"accepteddoc\", true);\r\n } else {\r\n UserStore.isaccepteddoc(false);\r\n localStorage.setItem(\"accepteddoc\", false);\r\n }\r\n localStorage.setItem(\r\n \"splitedFileId\",\r\n this.state.selectedRows[0].splitedFileId\r\n );\r\n this.props.history.push(\r\n `/Workspace/UploadFiles/${this.state.selectedRows[0].documentName}`\r\n );\r\n };\r\n\r\n disabledDate = (current) => {\r\n return current && current > Moment().endOf(\"day\");\r\n };\r\n\r\n render() {\r\n const readonly = localStorage.getItem(\"isreadOnly\")\r\n ? JSON.parse(localStorage.getItem(\"isreadOnly\"))\r\n : UserStore.readOnly;\r\n const returnData =\r\n UserStore.stampFilterRetain === true\r\n ? toJS(UserStore.PIDProcessData)\r\n : this.state.rows1;\r\n\r\n UserStore.setPIDProcessData(returnData);\r\n UserStore.setLoader(false);\r\n UserStore.addReportdata([]);\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n Upload Date:\r\n \r\n\r\n To:\r\n \r\n\r\n \r\n File Status:\r\n \r\n \r\n \r\n \r\n \r\n All({this.state.fillarr.length})\r\n \r\n \r\n Processed(\r\n {\r\n this.state.fillarr.filter(\r\n (item) => item.isProcessed === \"Yes\"\r\n ).length\r\n }\r\n )  \r\n \r\n \r\n Processing Failed(\r\n {\r\n this.state.fillarr.filter(\r\n (item) => item.isProcessed === \"No\"\r\n ).length\r\n }\r\n )  \r\n \r\n \r\n \r\n
    \r\n
    \r\n {toJS(UserStore.PIDselectedRowID).length === 1 ? (\r\n \r\n \r\n \r\n \r\n Preview\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n Preview\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n Delete\r\n \r\n \r\n \r\n\r\n \r\n \r\n Download Report\r\n \r\n \r\n \r\n \r\n \r\n \r\n Download Isometric\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Bulk Accept\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Batch Status\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Refresh Grid\r\n \r\n \r\n
    \r\n \r\n \r\n Batch Status\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n {this.state.previewValue\r\n ? this.state.errorMEssage\r\n : \"Please select only one file to preview.\"}\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
    Are you sure to delete?
    \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n this.handlePurge(e)}\r\n style={{\r\n padding: \"0\",\r\n background: \"#0C629B\",\r\n color: \"white\",\r\n position: \"absolute\",\r\n right: \"2%\",\r\n }}\r\n >\r\n {\" \"}\r\n {\" \"}\r\n \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n No batches are created for this workspace.\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Please select atleast one file to delete.\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Please select atleast one file to download isometric.\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {this.state.fileprocessedStatus ? (\r\n \r\n Please select atleast one file to accept isometric.\r\n \r\n ) : (\r\n \r\n Please select only processed file to accept isometric.\r\n \r\n )}\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {\" \"}\r\n {this.state.dateValidationValue}\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n
    \r\n {this.state.rows1.length > 0 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(StampGrid);\r\n","import React, { useEffect, useState } from \"react\";\r\nimport * as FileSaver from \"file-saver\";\r\nimport * as XLSX from \"xlsx\";\r\nimport axios from \"axios\";\r\nimport { toJS } from \"mobx\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport UserStore from \"../../UserStore\";\r\n\r\nexport const ExportToExcel = ({ fileName, datafromfilelog, fromfilelog }) => {\r\n var checkname = false;\r\n const [MTOShow, setMTOShow] = useState(false);\r\n const [exportMTOValue, setExportMTOValue] = useState(false);\r\n const fileType =\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\r\n const fileExtension = \".xlsx\";\r\n const API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n\r\n const handleClose = () => {\r\n setMTOShow(false);\r\n };\r\n\r\n//Used to update the document title using the browser API\r\n useEffect(() => {\r\n checkname = true;\r\n }, []);\r\n\r\n//Used to change the raw data format to the below specified one\r\n const changeDataFormat = (mtoResult) => {\r\n let k = [];\r\n mtoResult.map((data) => {\r\n let mtoData = {\r\n \"LINE NUMBER\": data.lineNumber,\r\n SEQ: data.seq,\r\n PID: data.pidNumber,\r\n SPEC: data.spec,\r\n \"SHORT CODE\": data.shortCode,\r\n \"IS JACKETED LINE\": data.isJacketedLine === true ? \"Y\" : \"N\",\r\n \"HDR SIZE\":\r\n data.hdrSize === null ||\r\n data.hdrSize === undefined ||\r\n data.hdrSize === \"\"\r\n ? \"\"\r\n : data.hdrSize.split(/[\" ']+/)[0],\r\n \"SIZE-1\":\r\n data.size1 === null || data.size1 === undefined || data.size1 === \"\"\r\n ? \"\"\r\n : parseInt(data.size1),\r\n \"SIZE-2\":\r\n data.size2 === null || data.size2 === undefined || data.size2 === \"\"\r\n ? \"\"\r\n : parseInt(data.size2),\r\n QTY: data.qty,\r\n \"INSUL TYPE\": data.insulType,\r\n \"AG/UG\": data.ugAg,\r\n FLUID: data.fluid,\r\n PIPINGCOMPTYPE:\r\n data.pipingCompType === null ||\r\n data.pipingCompType === undefined ||\r\n data.pipingCompType === \"\"\r\n ? \"\"\r\n : data.pipingCompType.toUpperCase(),\r\n SEAT: data.seat,\r\n VALVEBODY: data.valveBody,\r\n \"EXTENDED BONNET\": data.extendedBonnet,\r\n \"LIMIT SWITCH\": data.limitSwitch,\r\n HOLD: data.hold === true ? \"Y\" : \"N\",\r\n SUPPLY: data.supply,\r\n FROM: data.fromLine,\r\n TO: data.toLine,\r\n \"ITEM ORDER\": data.itemOrder,\r\n REMARKS: data.remarks,\r\n RATING: data.rating,\r\n };\r\n k.push(mtoData);\r\n });\r\n return k;\r\n };\r\n\r\n//Used to export all the data to an excel sheet\r\n const exportToCSV = async (fileName) => {\r\n const selectedIdList = toJS(UserStore.selectedRowID).map((item) => {\r\n return item.sheetId;\r\n });\r\n if (fromfilelog === \"Yes\") {\r\n if (datafromfilelog.length !== 0) {\r\n const ws = XLSX.utils.json_to_sheet(datafromfilelog);\r\n const wb = { Sheets: { data: ws }, SheetNames: [\"data\"] };\r\n const excelBuffer = XLSX.write(wb, { bookType: \"xlsx\", type: \"array\" });\r\n const data = new Blob([excelBuffer], { type: fileType });\r\n FileSaver.saveAs(data, fileName + fileExtension);\r\n } else {\r\n setMTOShow(true);\r\n setExportMTOValue(true);\r\n }\r\n } else {\r\n if (selectedIdList.length >= 1) {\r\n let res = await axios.post(\r\n API_Endpoint + `/ExportPidMto`,\r\n JSON.stringify({ sheetIds: selectedIdList })\r\n );\r\n let mtoResult = \"\";\r\n mtoResult = changeDataFormat(res.data);\r\n\r\n const ws = XLSX.utils.json_to_sheet(mtoResult);\r\n const wb = { Sheets: { data: ws }, SheetNames: [\"data\"] };\r\n const excelBuffer = XLSX.write(wb, { bookType: \"xlsx\", type: \"array\" });\r\n const data = new Blob([excelBuffer], { type: fileType });\r\n FileSaver.saveAs(data, fileName + fileExtension);\r\n } else {\r\n setMTOShow(true);\r\n setExportMTOValue(true);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n exportToCSV(fileName)}>\r\n {fromfilelog === \"Yes\" ? \"Export Log\" : \"Export MTO\"}\r\n \r\n\r\n \r\n \r\n \r\n {exportMTOValue && fromfilelog !== \"Yes\"\r\n ? \"Please select atleast one processed row to export the MTO\"\r\n : \"File log not available\"}\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { GridOverlay } from \"@material-ui/data-grid\";\r\nimport \"./StampGrid.scss\";\r\nimport axios from \"axios\";\r\nimport \"antd/dist/antd.css\";\r\nimport UserStore from \"../../UserStore\";\r\nimport { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nimport LoadingOverlay from \"react-loading-overlay\";\r\nimport \"react-day-picker/lib/style.css\";\r\nimport \"moment/locale/en-gb\";\r\nimport moment from \"moment\";\r\nimport { toJS } from \"mobx\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport { ExportToExcel } from \"../../UploadPID/Process/ExportToExcel\";\r\n\r\nvar rowget = [];\r\nvar filename = \"\";\r\n\r\nconst API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\nclass FileLog extends React.Component {\r\n \r\n constructor(props) {\r\n \r\n const editWorkSpaceData1 = toJS(UserStore.editRow)[0];\r\n \r\n super(props);\r\n this.tableRef = React.createRef();\r\n this.state = {\r\n loading: true,\r\n responseIsometrics:[], \r\n columns: [\r\n { dataField: \"File Name\", text: \"File Name\", width: \"300\"},\r\n { dataField: \"Status\", text: \"Status\", width: \"200\" },\r\n { dataField: \"Uploaded By\", text: \"Uploaded By\", width: \"200\" },\r\n { dataField: \"Upload Date & Time\", text: \"Upload Date & Time\", width: \"200\" },\r\n { dataField: \"File Uploaded Successfully\", text: \"File Uploaded Successfully\", width: \"200\"}\r\n ],\r\n selectedrowforDeletion: [],\r\n noOfRowSelected: 0,\r\n rows1: [], \r\n id: \"\",\r\n wsId: UserStore.workspaceId,\r\n };\r\n localStorage.removeItem('setreportStamp');\r\n UserStore.setreportStamp(false);\r\n }\r\n\r\n\r\n async componentDidMount() { \r\n \r\n \r\n UserStore.PIDselectedRowID = [];\r\n UserStore.selectedRowID = []\r\n const workspaceId = UserStore.workspaceId;\r\n const workspaceIdPid = UserStore.PIDworkspaceID;\r\n \r\n let res;\r\n // checking whether the call is from Sr or PId Application\r\n if(this.props.frompid !== \"pid\")\r\n {\r\n filename = \"LogData_\" + UserStore.workspaceName;\r\n res = await axios.get(\r\n API_Endpoint +\r\n `/GetFileUploadLogs?workSpaceId=${workspaceId}`\r\n );\r\n }\r\n else{\r\n filename = \"LogData_\" + UserStore.workspaceNamePID;\r\n res = await axios.get(\r\n API_Endpoint +\r\n `/GetPidFileUploadLogs?workSpaceId=${workspaceIdPid}`\r\n );\r\n }\r\n\r\n this.setState({ responseIsometrics: res.data });\r\n\r\n if (res.status === 400) {\r\n toast.error(\"Request error:\" + res.data.map((row) => row.error), {\r\n // Set to 5sec\r\n position: toast.POSITION.TOP_LEFT,\r\n autoClose: 5000,\r\n });\r\n this.setState({ loading: false });\r\n } else {\r\n this.setState({ loading: false });\r\n let myrows = res.data;\r\n \r\n rowget = [];\r\n if (myrows) {\r\n const url = window.location.href;\r\n const splitUrl = url.split(\"/\");\r\n myrows =(splitUrl[3] === 'WorkspacePID') ? myrows.filter((item) => item.isFileUploadedSuccessfully === false) : myrows;\r\n myrows.map((items, index) => {\r\n const row2 = this.dataRows(items, index);\r\n this.state.rows1.push(row2);\r\n rowget.push(row2);\r\n });\r\n }\r\n this.setState({\r\n initarr: rowget,\r\n fillarr: this.state.rows1,\r\n });\r\n }\r\n }\r\n\r\n CustomNoRowsOverlay() {\r\n return (\r\n \r\n
    No Rows
    \r\n
    \r\n );\r\n } \r\n\r\n dataRows = (items, index) => { \r\n var row = { \r\n \"File Name\": items.fileName != null ? items.fileName : \"\",\r\n Status: items.status != null ? items.status : \"\",\r\n \"Uploaded By\": items.uploadedBy != null ? items.uploadedBy : \"\",\r\n \"Upload Date & Time\":\r\n items.uploadDateTime != null ? moment.utc(items.uploadDateTime, 'DD/MM/YYYY hh:mm:ss a').local().format('DD/MM/YYYY hh:mm:ss a'): \"\",\r\n \"File Uploaded Successfully\": items.isFileUploadedSuccessfully != null ? (items.isFileUploadedSuccessfully ? 'Yes': 'No' ) : ''\r\n }; \r\n return row;\r\n };\r\n\r\n render() {\r\n const localurl = window.location.href;\r\n const splitUrllocal = localurl.split(\"/\");\r\n return (\r\n \r\n
    \r\n {splitUrllocal[3] === 'WorkspacePID' ? \r\n \r\n \r\n \r\n \r\n : ''\r\n }\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(FileLog);\r\n","import React, {useState, useEffect} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport FileList from '../FileList/FileList';\r\nimport './StampUpload.scss';\r\nimport StampGrid from '../StampGrid/StampGrid'\r\nimport FileLog from '../StampGrid/FileLog'\r\nimport AppFooter from '../../AppFooter/AppFooter';\r\nimport UserStore from '../../UserStore';\r\n\r\nfunction TabPanel(props) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nTabPanel.propTypes = {\r\n children: PropTypes.node,\r\n index: PropTypes.any.isRequired,\r\n value: PropTypes.any.isRequired,\r\n};\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`, \r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n flexGrow: 0, \r\n backgroundColor: theme.palette.background.paper,\r\n },\r\n}));\r\n\r\nexport default function StampUpload() {\r\n \r\n const processgridvalue = localStorage.getItem(\"getprocessGrid\") ? Number(localStorage.getItem(\"getprocessGrid\")): UserStore.showprocessgrid;\r\n const [value, setValue] = useState(processgridvalue);\r\n let user = false;\r\n UserStore.PIDselectedRowID = [];\r\n let isTickBased = localStorage.getItem(\"isIsometricTickBased\") ? JSON.parse(localStorage.getItem(\"isIsometricTickBased\")): UserStore.isTickBasedIsometric;\r\n useEffect(() => {\r\n \r\n let userType = \"Admin\"\r\n if(userType === \"read\"){\r\n user = true;\r\n }\r\n else{\r\n user = false;\r\n }\r\n \r\n}, []);\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue); \r\n UserStore.getprocessGrid(newValue);\r\n localStorage.setItem('getprocessGrid', newValue);\r\n };\r\n\r\n const handleTabChange = (indexValue) => {\r\n setValue(indexValue);\r\n UserStore.getprocessGrid(indexValue);\r\n localStorage.setItem('getprocessGrid', indexValue);\r\n };\r\n\r\n if(!user)\r\n {\r\n \r\nconst readonly = localStorage.getItem(\"isreadOnly\") ? JSON.parse(localStorage.getItem(\"isreadOnly\")): UserStore.readOnly;\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Note: Please click on Processed Files tab to view the processed files after the{isTickBased ? \" Tick Based \" : \" Phrase Based \"}Isometric documents are uploaded
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n else \r\n return(\r\n
    \r\n \r\n \r\n
    )\r\n \r\n \r\n \r\n}\r\n","import React, { Component } from 'react';\r\nimport BreadCrumbsStamp from '../../Upload/BreadCrumbs/BreadCrumbs';\r\nimport AppHeader from '../../AppHeader/AppHeader';\r\nimport StampUpload from '../StampUpload/StampUpload';\r\n\r\nexport default function UploadFiles() {\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import React, { Component } from 'react'\r\nimport { BrowserRouter as Router, Switch, Route, browserHistory } from 'react-router-dom';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { TextField, MuiThemeProvider, Button } from '@material-ui/core';\r\nimport AppHeader from '../../AppHeader/AppHeader';\r\nimport AppFooter from '../../AppFooter/AppFooter';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '@material-ui/core/Select';\r\nimport UploadFiles from '../../Upload/UploadFiles/UploadFiles';\r\nimport StampUpload from '../../Upload/StampUpload/StampUpload';\r\nimport BreadCrumbs from '../../Upload/BreadCrumbs/BreadCrumbs';\r\nimport './ProjectSetupdetails.scss';\r\nimport axios from 'axios';\r\n\r\nconst API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\nexport class ProjectSetupdetails extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n \r\n this.state = {\r\n setShow: false,\r\n }\r\n }\r\n \r\n back = e => {\r\n e.preventDefault();\r\n this.props.prevStep();\r\n }\r\n\r\n Save = e => {\r\n const userlist = [];\r\n userlist.push(this.props.values.userlist)\r\n\r\n const data = {\r\n \"projectName\": this.props.values.PetrofacProjectName,\r\n \"workSpaceName\": this.props.values.WorkspaceName,\r\n \"memberEnterpriseIds\": userlist,\r\n \"areaId\": 1\r\n }\r\n\r\n axios.post(API_Endpoint +`//CreateWorkSpace`, data)\r\n this.props.history.push(`${this.props.match.path}/UploadFiles`)\r\n }\r\n\r\n render() {\r\n if (!this.state.setShow) {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n

    Create new Workspace

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Line no designation\r\n \r\n
    \r\n
    \r\n Document no designation\r\n \r\n
    \r\n
    \r\n
    \r\n Project Setup\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n else\r\n return \r\n }\r\n}\r\n\r\nconst styles = {\r\n button: {\r\n margin: 15\r\n }\r\n}\r\n\r\nconst ShowTheLocationWithRouter = withRouter(ProjectSetupdetails);\r\nexport default ProjectSetupdetails;\r\n","import React, { Component } from 'react'\r\nimport ProjectDetails from '../ProjectDetails/ProjectDetails';\r\nimport ProjectSetupdetails from '../ProjectSetupdetails/ProjectSetupdetails';\r\n\r\nexport class UserForm extends Component {\r\n\r\n state = {\r\n step: 1,\r\n WorkspaceName: '',\r\n PetrofacProjectName: '',\r\n Users: '',\r\n userlist:[]\r\n }\r\n\r\n // proceed to next step\r\n nextStep = () => {\r\n const { step } = this.state;\r\n this.setState({\r\n step: step + 1\r\n });\r\n }\r\n\r\n // proceed to previous step\r\n prevStep = () => {\r\n const { step } = this.state;\r\n this.setState({\r\n step: step - 1\r\n });\r\n }\r\n\r\n // handle field change\r\n handleChange = input => e => {\r\n if(e.target.name === \"WorkspaceName\") {\r\n this.setState({ WorkspaceName: e.target.value })\r\n }\r\n else {\r\n this.setState({ [input]: e.target.value })\r\n }\r\n }\r\n\r\n render() {\r\n const { step } = this.state;\r\n const { WorkspaceName, PetrofacProjectName, Users, userlist } = this.state;\r\n const values = { WorkspaceName, PetrofacProjectName, Users, userlist }\r\n const { history, location, match } = this.props;\r\n\r\n switch (step) {\r\n case 1:\r\n return (\r\n \r\n )\r\n\r\n case 2:\r\n return (\r\n \r\n )\r\n default : return\r\n }\r\n }\r\n}\r\n\r\nexport default UserForm;","import React, { Component } from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport cellEditFactory from \"react-bootstrap-table2-editor\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport \"react-bootstrap-table2-paginator/dist/react-bootstrap-table2-paginator.min.css\";\r\nimport \"react-bootstrap-table2-filter/dist/react-bootstrap-table2-filter.min.css\";\r\nimport filterFactory from \"react-bootstrap-table2-filter\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport axios from \"axios\";\r\nimport AppHeader from \"../../../components/AppHeader/AppHeader\";\r\nimport AppFooter from \"../../../components/AppFooter/AppFooter\";\r\nimport BreadCrumbs from \"../../Upload/BreadCrumbs/BreadCrumbs\";\r\nimport LoadingOverlay from \"react-loading-overlay\";\r\nimport UserForm from \"../CreatenewWorkspace/UserForm\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Cancel from \"@material-ui/icons/Cancel\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport UserStore from \"../../UserStore\";\r\nimport ExportExcel from \"../../ExportExcel\";\r\nimport TextFieldMui from \"@material-ui/core/TextField\";\r\nimport { withStyles} from \"@material-ui/core/styles\";\r\nimport { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport CircleChecked from \"@material-ui/icons/CheckCircleRounded\";\r\nimport \"./DataGrid.scss\";\r\nimport Moment from \"moment\";\r\nimport \"moment/locale/en-gb\";\r\n\r\ntoast.configure();\r\nconst { BlockBlobClient } = require(\"@azure/storage-blob\");\r\nconst API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n\r\n// which user has logged in to application\r\nconst user = \"Admin\";\r\n\r\nconst customContentStyle = {\r\n width: \"70%\",\r\n maxWidth: \"none\",\r\n};\r\n\r\nconst styles = (muiTheme) => ({\r\n label: {\r\n \"&$erroredLabel\": {\r\n color: \"black\",\r\n },\r\n },\r\n erroredLabel: {},\r\n});\r\n\r\nconst TextField = withStyles(styles)(function TextField({ classes, ...props }) {\r\n return (\r\n \r\n );\r\n});\r\n\r\nvar today = new Date();\r\nexport class DataGrid extends Component {\r\n \r\n constructor(props) {\r\n super(props);\r\n \r\n this.state = {\r\n count: 0,\r\n result: {},\r\n myrow: [],\r\n myrowedit: [],\r\n setShow: false,\r\n showForm: false,\r\n // for user login \r\n userFlag: true,\r\n sortcolumn: false,\r\n showUsers: false,\r\n showQuery: false,\r\n loading: true,\r\n users: [],\r\n filtereduserData: \"\",\r\n filterquery: \"\",\r\n editProducts: [],\r\n modalId: \"\",\r\n delete: false,\r\n columns: [ \r\n { dataField: \"Wname\", text: \"Project Workspace\", width: \"200\"},\r\n { dataField: \"Wtype\", text: \"Workspace Type\", width: \"200\" },\r\n { dataField: \"Pname\", text: \"Client Name\", width: \"200\" },\r\n { dataField: \"users\", text: \"Users\", width: \"200\" },\r\n { dataField: \"detectionQuery\", text: \"Detection Query\", width: \"200\"},\r\n { dataField: \"Reports\", text: \"Export Report\", width: \"200\" }, \r\n { dataField: \"More\", text: \"More Actions\", width: \"200\" },\r\n ],\r\n products: [],\r\n reportDataexcel: [],\r\n expandMenu: true,\r\n loggedInUser: UserStore.accountName,\r\n globalAdmin: false,\r\n loggedInuserEmail: UserStore.userEmail.toLowerCase(),\r\n };\r\n\r\n this.showMenu = this.showMenu.bind(this);\r\n }\r\n\r\n fetchIsometricFields = async () => {\r\n await axios.get(API_Endpoint + `/GetIsometricFields`).then((res) => {\r\n if (res.status === 200) {\r\n UserStore.setRegExpFields(res.data)\r\n }\r\n });\r\n };\r\n\r\n async componentDidMount() {\r\n let uuid = localStorage.getItem(\"uuid\");\r\n UserStore.setIsTickBasedCreateWS(false);\r\n localStorage.setItem(\"perPageData\",10);\r\n UserStore.SetPerPageData(10);\r\n this.checkGlobalAdmin();\r\n UserStore.setEditworkspace(false);\r\n UserStore.getWorkspaceId('');\r\n UserStore.setworkspaceuploadID('');\r\n UserStore.getworkspaceName(''); \r\n UserStore.isreadOnly(false);\r\n UserStore.emptyRejectedFiles();\r\n UserStore.emptySuccededFiles(); \r\n UserStore.setInbusinessrule(false);\r\n UserStore.setStampFilterRetain(false);\r\n UserStore.setUploadDateForProcess(\"\");\r\n UserStore.setUploadFromDateForProcess(\"\");\r\n UserStore.setSkipData(0);\r\n UserStore.setProcessGridData([]);\r\n localStorage.clear();\r\n localStorage.setItem(\"uuid\",uuid);\r\n let columnsortval = UserStore.columnsortFlag;\r\n let createworkspace = UserStore.createworkspaceflag;\r\n UserStore.NewProjectName = \"\";\r\n UserStore.NewworkspaceName = \"\";\r\n UserStore.NewModelName = \"\";\r\n UserStore.addUserforWorkspace = [];\r\n UserStore.setDetectionQuery = \"\"; \r\n UserStore.newWorkspaceId = \"\";\r\n this.fetchIsometricFields();\r\n\r\n if (columnsortval == true) {\r\n this.state.sortcolumn = true;\r\n }\r\n\r\n if (user == \"read/write\" && columnsortval == false) {\r\n this.setState({\r\n columns: [ \r\n { dataField: \"Wname\", text: \"Project Workspace\" },\r\n { dataField: \"Wtype\", text: \"Workspace Type\" },\r\n { dataField: \"Pname\", text: \"Client Name\" },\r\n { dataField: \"users\", text: \"Users\" },\r\n { dataField: \"detectionQuery\", text: \"Detection Query\" },\r\n { dataField: \"Reports\", text: \"Export Report\" }, \r\n { dataField: \"More\", text: \"More Actions\" },\r\n ],\r\n });\r\n } else if (user == \"read/write\" && columnsortval == true) {\r\n this.setState({\r\n columns: [ \r\n { dataField: \"Wname\", text: \"Project Workspace\" },\r\n { dataField: \"Wtype\", text: \"Workspace Type\" },\r\n { dataField: \"Pname\", text: \"Client Name\" },\r\n { dataField: \"users\", text: \"Users\" },\r\n { dataField: \"detectionQuery\", text: \"Detection Query\" },\r\n { dataField: \"Reports\", text: \"Export Report\" }, \r\n { dataField: \"More\", text: \"More Actions\" },\r\n ],\r\n });\r\n } else if (user == \"read\") {\r\n this.setState({\r\n columns: [ \r\n { dataField: \"Wname\", text: \"Project Workspace\" },\r\n { dataField: \"Wtype\", text: \"Workspace Type\" },\r\n { dataField: \"Pname\", text: \"Client Name\" },\r\n { dataField: \"users\", text: \"Users\" },\r\n { dataField: \"detectionQuery\", text: \"Detection Query\" },\r\n { dataField: \"Reports\", text: \"Export Report\" }, \r\n { dataField: \"More\", text: \"More Actions\" },\r\n ],\r\n });\r\n }\r\n\r\n try {\r\n // ----------------------API: GET is logged in user global admin details------------------------\r\n const res = await axios.get(API_Endpoint + `/IsUserGlobalAdmin`);\r\n this.setState({globalAdmin : res.data});\r\n // ------------------------API: GET logged in user workspaces---------------------\r\n axios.get(API_Endpoint + `/GetWorkSpaces`).then((res) => {\r\n if (res.data) {\r\n \r\n this.setState({\r\n loading: false,\r\n });\r\n }\r\n\r\n if(res.status != 200) {\r\n this.setState({\r\n loading: false,\r\n });\r\n }\r\n\r\n UserStore.setreportStamp(false);\r\n this.state.users = res.data;\r\n this.setState(\r\n {\r\n loggedInuserEmail: UserStore.userEmail.toLowerCase()\r\n }\r\n );\r\n if (res.data) {\r\n const rows1 = res.data.reverse();\r\n rows1.map((items, index) => { \r\n const row2 = {\r\n id: items.workSpaceId,\r\n Wname: \r\n \r\n
    {\r\n \r\n this.workSpaceClick(items);\r\n UserStore.addRowdata(items);\r\n UserStore.setworkspaceuploadID(items.workSpaceId);\r\n UserStore.getWorkspaceId(items.workSpaceId);\r\n }}\r\n style={{cursor:\"pointer\",color: \"#0C629B\", wordBreak: 'break-all'}}\r\n >\r\n {items.workSpaceName}\r\n
    \r\n
    , \r\n Wtype:items.isIsometricTickBased === false?\"Phrase based\":\"Tick based\",\r\n Pname: items.projectName,\r\n Reports: (\r\n
    \r\n \r\n Report\r\n \r\n
    \r\n ),\r\n\r\n users: (\r\n
    \r\n \r\n \r\n {items.workSpaceUsers.length}\r\n \r\n \r\n
    \r\n ),\r\n detectionQuery:(\r\n
    \r\n \r\n {\r\n let id = items.workSpaceId;\r\n const queryValue = this.state.users\r\n .filter((item) => item.workSpaceId == id).map(({ detectionExpression }) => ({ detectionExpression })); \r\n \r\n let filterQuery = queryValue.length ? queryValue[0].detectionExpression : '';\r\n this.setState({\r\n showQuery: true,\r\n filterquery: filterQuery,\r\n });\r\n \r\n }}\r\n style={items.isIsometricTickBased ? {opacity: \"0.5\", cursor: \"not-allowed\", pointerEvents: \"none\"} : {fontFamily: 'Helvetica' }}\r\n >\r\n {\r\n let id = items.workSpaceId;\r\n const queryValue = this.state.users\r\n .filter((item) => item.workSpaceId == id).map(({ detectionExpression }) => ({ detectionExpression })); \r\n \r\n let filterQuery = queryValue.length ? queryValue[0].detectionExpression : '';\r\n this.setState({\r\n showQuery: true,\r\n filterquery: filterQuery,\r\n });\r\n \r\n }} className=\"MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiBox-root css-1om0hkc\" focusable=\"false\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" data-testid=\"QueryStatsIcon\">\r\n \r\n \r\n
    \r\n ),\r\n More: (\r\n
    \r\n \r\n \r\n
    x.enterpriseId.toLowerCase() === this.state.loggedInuserEmail.toLowerCase()).roleId === 1 || items.workSpaceUsers.find(x => x.enterpriseId.toLowerCase() === this.state.loggedInuserEmail.toLowerCase()).roleId === 2 ? {marginLeft: \"-17%\"} : {marginLeft: \"-17%\", opacity: \"0.5\", cursor: \"not-allowed\", pointerEvents: \"none\"}) : {marginLeft: \"-17%\"}}>\r\n {\r\n this.props.history.push(\r\n `${this.props.match.path}/UploadFiles`\r\n );\r\n UserStore.getWorkspaceId(items.workSpaceId);\r\n UserStore.setworkspaceuploadID(items.workSpaceId);\r\n UserStore.emptySuccededFiles();\r\n UserStore.getprocessGrid(0);\r\n UserStore.getworkspaceName(items.workSpaceName);\r\n UserStore.setTickBasedIsometric(items.isIsometricTickBased);\r\n this.setWorkspace(items);\r\n localStorage.setItem('getprocessGrid', 0);\r\n UserStore.addRowdata(items);\r\n localStorage.setItem('EditWSData', JSON.stringify(items));\r\n const createdate = Moment(items.createdOn.toString(), \"DD/MM/YYYY\")\r\n localStorage.setItem(\"startdate\",createdate);\r\n const convertEndate = Moment(\r\n today.getFullYear() +\r\n \"-\" +\r\n (today.getMonth() + 1) +\r\n \"-\" +\r\n today.getDate()\r\n ).format(\"MM/DD/YYYY\");\r\n const stringEndDate = convertEndate.toString();\r\n localStorage.setItem(\"enddate\", Moment(stringEndDate).format(\"DD/MMM/YYYY\"));\r\n }}\r\n >\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n { this.editClick(items);}}\r\n style={!this.state.globalAdmin ? (items.workSpaceUsers.find(x => x.enterpriseId.toLowerCase() === this.state.loggedInuserEmail.toLowerCase()).roleId === (1) ? { marginLeft: \"12%\", cursor: \"pointer\" } : {marginLeft: \"12%\", cursor: \"not-allowed\", opacity: \"0.5\", pointerEvents: \"none\"}) : { marginLeft: \"12%\", cursor: \"pointer\" }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n this.state.myrow.push(row2);\r\n });\r\n this.setState({\r\n count: 1,\r\n });\r\n }\r\n\r\n this.setState({\r\n products: this.state.myrow,\r\n });\r\n });\r\n } catch (error) {\r\n if (error.response) {\r\n } else if (error.request) {\r\n } else {\r\n }\r\n }\r\n }\r\n\r\n // ----------------------Start:Function: Navigate to upload page-------------------\r\n workSpaceClick = (items) => {\r\n const findRole = !this.state.globalAdmin ? (items.workSpaceUsers.find((x) => x.enterpriseId.toLowerCase() === this.state.loggedInuserEmail.toLowerCase()).roleId) : 1;\r\n if (findRole === 3) {\r\n UserStore.isreadOnly(true);\r\n localStorage.setItem('isreadOnly', true);\r\n } else {\r\n UserStore.isreadOnly(false);\r\n localStorage.setItem('isreadOnly', false);\r\n }\r\n \r\n UserStore.getWorkspaceId(items.workSpaceId);\r\n UserStore.setworkspaceuploadID(items.workSpaceId);\r\n UserStore.getprocessGrid(1);\r\n localStorage.setItem('getprocessGrid', 1);\r\n UserStore.getworkspaceName(items.workSpaceName);\r\n UserStore.emptySuccededFiles();\r\n UserStore.setTickBasedIsometric(items.isIsometricTickBased);\r\n this.props.history.push(`/Workspace/UploadFiles`);\r\n this.setWorkspace(items); \r\n }\r\n // ----------------------End:Function: Navigate to upload page-------------------\r\n\r\n setWorkspace = (items) => {\r\n localStorage.setItem('WorkspaceId', items.workSpaceId);\r\n localStorage.setItem('workspaceName', items.workSpaceName);\r\n localStorage.setItem('isIsometricTickBased', items.isIsometricTickBased);\r\n }\r\n\r\n // --------------------------Start:Funtion: check logged in user is global admin------------------\r\n checkGlobalAdmin = async () => {\r\n // ----------------------API: GET logged in user is global admin or not--------------\r\n const res = await axios.get(API_Endpoint + `/IsUserGlobalAdmin`);\r\n this.setState({globalAdmin : res.data});\r\n \r\n }\r\n // --------------------------End:Funtion: check logged in user is global admin------------------\r\n\r\n showUsername = (users) => {\r\n let id = users.target.id;\r\n this.state.filtereduserData = this.state.users\r\n .filter((item) => item.workSpaceId == id)\r\n .map(({ workSpaceUsers }) => ({ workSpaceUsers }));\r\n this.setState({\r\n showUsers: true,\r\n });\r\n\r\n };\r\n\r\n showMenu() {\r\n this.setState({ expandMenu: !this.state.expandMenu });\r\n }\r\n\r\n UserNameList = (users) => {\r\n return users\r\n .map((item) => {\r\n return item.enterpriseId;\r\n })\r\n .join(\",\");\r\n };\r\n\r\n // --------------------Start:Function: download workspace report-----------------------\r\n async getReportdata(fromDate, toDate, workSpaceId) {\r\n // -----------------------API: GET workspace report-------------------\r\n const res = await axios.get(\r\n API_Endpoint +\r\n `/GetProcessedIsometricsReport?workSpaceId=${workSpaceId}`\r\n );\r\n return res.data;\r\n }\r\n // --------------------End:Function: download workspace report-----------------------\r\n\r\n async FetchData() {\r\n this.setState({\r\n products: [],\r\n myrowedit: [],\r\n });\r\n \r\n UserStore.cleareReportdata();\r\n UserStore.setreportStamp(false);\r\n try {\r\n // ------------------API: GET logged in user workspaces----------------------\r\n axios.get(API_Endpoint + `/GetWorkSpaces`).then((res) => {\r\n const rows1 = res.data;\r\n \r\n if (rows1) {\r\n rows1.map((items, index) => {\r\n const row2 = {\r\n id: items.workSpaceId,\r\n Wname: items.workSpaceName,\r\n Pname: items.projectName,\r\n Reports: (\r\n
    \r\n \r\n Report\r\n \r\n
    \r\n ),\r\n\r\n users: (\r\n
    \r\n \r\n \r\n {items.workSpaceUsers.length}\r\n \r\n \r\n
    \r\n ),\r\n More: (\r\n
    \r\n \r\n \r\n
    x.enterpriseId.toLowerCase() === this.state.loggedInuserEmail.toLowerCase()).roleId === 1 || items.workSpaceUsers.find(x => x.enterpriseId.toLowerCase() === this.state.loggedInuserEmail.toLowerCase()).roleId === 2 ? { marginLeft: \"-17%\" } : { marginLeft: \"-17%\", opacity: \"0.5\", cursor: \"not-allowed\", pointerEvents: \"none\" }) : { marginLeft: \"-17%\" } }>\r\n {\r\n this.workSpaceClick(items);\r\n UserStore.addRowdata(items);\r\n localStorage.setItem('EditWSData', JSON.stringify(items));\r\n }}\r\n >\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n { this.editClick(items);}}\r\n style={!this.state.globalAdmin ? (items.workSpaceUsers.find(x => x.enterpriseId.toLowerCase() === this.state.loggedInuserEmail.toLowerCase()).roleId === 1 ? { marginLeft: \"12%\", cursor: \"pointer\" } : { marginLeft: \"12%\", cursor: \"not-allowed\", opacity: \"0.5\", pointerEvents: \"none\" }) : { marginLeft: \"12%\", cursor: \"pointer\" }}\r\n >\r\n \r\n \r\n \r\n \r\n {\r\n if (\r\n window.confirm(\r\n \"Are you sure you wish to delete this item?\"\r\n )\r\n )\r\n this.handlePurge(e);\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n\r\n this.state.myrowedit.push(row2);\r\n });\r\n }\r\n this.setState({\r\n products: this.state.myrowedit,\r\n });\r\n });\r\n } catch (error) {\r\n if (error.response) {\r\n } else if (error.request) {\r\n } else {\r\n }\r\n }\r\n }\r\n\r\n handleEdit = (items) => {\r\n let data = items;\r\n };\r\n\r\n handleDelete = (e) => {\r\n this.setState({ delete: true });\r\n };\r\n\r\n handleCloseDialog = () => {\r\n this.setState({ delete: false });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({\r\n setShow: false,\r\n showUsers: false,\r\n showQuery:false,\r\n });\r\n };\r\n\r\n handleShow = () => {\r\n this.setState({ setShow: true });\r\n };\r\n\r\n handlerole = (role) => {\r\n switch (role) {\r\n case 1:\r\n return \"Admin\";\r\n\r\n case 2:\r\n return \"Read / Write\";\r\n\r\n case 3:\r\n return \"Read Only\";\r\n }\r\n };\r\n\r\n handleSave = () => {\r\n // send the output data to the service\r\n const result = this.state.products.filter(\r\n (row) => row.id == this.state.modalId\r\n );\r\n const data = {\r\n workSpaceId: result[0].id,\r\n workSpaceName: result[0].Wname,\r\n projectName: result[0].Pname,\r\n areaId: 1,\r\n };\r\n\r\n let value = 0;\r\n // -----------------input validations----------------------\r\n if (data.projectName === \"\") {\r\n value = value + 1;\r\n this.setState({\r\n projectNameError: true,\r\n projectNameMessage: \"Project Name should not be empty\",\r\n });\r\n }\r\n if (data.workSpaceName === \"\") {\r\n value = value + 1;\r\n this.setState({\r\n workSpaceError: true,\r\n workSpaceMessage: \"Work Space should not be empty\",\r\n });\r\n }\r\n if (/[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]+/.test(data.workSpaceName)) {\r\n value = value + 1;\r\n this.setState({\r\n workSpaceError: true,\r\n workSpaceMessage:\r\n \"work space name should not contain special characters\",\r\n });\r\n }\r\n if (/[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]+/.test(data.projectName)) {\r\n value = value + 1;\r\n this.setState({\r\n projectNameError: true,\r\n projectNameMessage:\r\n \"project name should not contain special characters\",\r\n });\r\n }\r\n if (value === 0) {\r\n axios.post(API_Endpoint + `/EditWorkSpace`, data).then((res) => {\r\n if (res.statusText === \"OK\") {\r\n this.FetchData();\r\n }\r\n });\r\n this.setState({\r\n products: [],\r\n setShow: false,\r\n });\r\n }\r\n };\r\n\r\n // open the new Create Workspace page\r\n Openworkspace = () => {\r\n this.setState({ showForm: true });\r\n };\r\n\r\n handleChange1 = (event) => {\r\n let id = event.target.id;\r\n const rowneeded = this.state.products.filter((row) => row.id === id);\r\n if (event.target.name === \"Wname\") {\r\n rowneeded[0].Wname = event.target.value;\r\n } else if (event.target.name === \"users\") {\r\n rowneeded[0].users = event.target.value;\r\n } else {\r\n rowneeded[0].Pname = event.target.value;\r\n }\r\n const rowneeded2 = this.state.products.filter((row) => row.id != id);\r\n rowneeded2.push(rowneeded[0]);\r\n this.setState({ editProducts: rowneeded });\r\n };\r\n\r\n // ---------------------Start:Function: Delete workspace-------------------\r\n handlePurge = (e) => {\r\n let id = this.state.deleteId;\r\n const rowneeded = this.state.products.filter((row) => row.id != id);\r\n const data = { workSpaceId: id };\r\n this.setState({ products: rowneeded, delete: false });\r\n // API: DELETE workspace\r\n axios.post(API_Endpoint + `/DeleteWorkSpace`, data);\r\n };\r\n // ---------------------End:Function: Delete workspace-------------------\r\n\r\n handleDelete = (e) => {\r\n this.setState({\r\n delete: true,\r\n deleteId: e.target.id,\r\n });\r\n };\r\n\r\n handleOnSelect = (row, isSelect) => {\r\n this.props.history.push(`${this.props.match.path}/UploadFiles`);\r\n };\r\n\r\n handleChange = async (event) => {\r\n const file = event.target.files[0];\r\n const filename = file.name;\r\n const data = {\r\n workSpaceId: 1,\r\n fileName: filename,\r\n areaId: 1,\r\n tagIds: [1, 2],\r\n };\r\n\r\n await axios.post(API_Endpoint + `/GetUploadPath`, data).then((res) => {\r\n let uri = res.data.sasUri;\r\n const blobServiceClient1 = new BlockBlobClient(uri);\r\n const uploadBlobResponse = blobServiceClient1.uploadData(file);\r\n });\r\n };\r\n\r\n // --------------------Start:Function: Edit workspace---------------\r\n editClick = (items) => {\r\n UserStore.addRowdata(items); \r\n this.setWorkspace(items);\r\n UserStore.getWorkspaceId(items.workSpaceId);\r\n UserStore.setworkspaceuploadID(items.workSpaceId);\r\n UserStore.getworkspaceName(items.workSpaceName);\r\n this.props.history.push(`/Workspace/EditWorkSpaceStamp`);\r\n localStorage.setItem('EditWSData', JSON.stringify(items));\r\n UserStore.setEditworkspace(true);\r\n localStorage.setItem(\"Editworkspace\", true);\r\n }\r\n // --------------------End:Function: Edit workspace---------------\r\n\r\n render() {\r\n const selectRow = {\r\n mode: \"radio\",\r\n clickToSelect: true,\r\n onSelect: this.handleOnSelect,\r\n };\r\n\r\n const cellEdit = cellEditFactory({\r\n mode: \"click\",\r\n blurToSave: true,\r\n });\r\n\r\n if (!this.state.showForm) {\r\n return (\r\n
    \r\n {this.showForm && }\r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    PROJECT WORKSPACE
    \r\n
    \r\n {this.state.globalAdmin && (\r\n {\r\n this.props.history.push(\r\n `${this.props.match.path}/CreateNewWorkspace`\r\n );\r\n }\r\n : \"\"\r\n }\r\n style={{ fontSize: \"1vw\", width: \"15vw\" }}\r\n >\r\n \r\n Create Project Workspace\r\n
    \r\n )}\r\n
    \r\n
    \r\n\r\n {this.state.userFlag && (\r\n
    \r\n \r\n
    \r\n )}\r\n {!this.state.userFlag && (\r\n
    \r\n \r\n
    \r\n )}\r\n {this.state.setShow && this.state.editProducts && (\r\n \r\n Edit Workspace\r\n \r\n this.handleChange1(e)}\r\n fullWidth\r\n helperText={this.state.workSpaceMessage}\r\n />\r\n this.handleChange1(e)}\r\n fullWidth\r\n helperText={this.state.projectNameMessage}\r\n />\r\n this.handleChange1(e)}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n Save\r\n \r\n \r\n Cancel\r\n \r\n \r\n {/* */}\r\n \r\n )}\r\n {this.state.showUsers && (\r\n \r\n \r\n User Details\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n {\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.filtereduserData[0].workSpaceUsers.map(\r\n (items) => (\r\n \r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n
    UsersUser Group
    {items.enterpriseId}{this.handlerole(items.roleId)}
    \r\n }\r\n
    \r\n \r\n )}\r\n {this.state.showQuery && (\r\n \r\n \r\n Detection Query\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n {\r\n this.state.filterquery\r\n }\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n
    Are you sure to delete?
    \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n this.handlePurge(e)}\r\n style={{\r\n padding: \"0\",\r\n background: \"#0C629B\",\r\n color: \"white\",\r\n position: \"absolute\",\r\n right: \"2%\",\r\n }}\r\n >\r\n {\" \"}\r\n {\" \"}\r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n );\r\n } else {\r\n return ;\r\n }\r\n }\r\n}\r\nexport default DataGrid;\r\n\r\n\r\n","import React, { useState, useEffect} from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\n// !IMPORTANT do not delete these 2 lines !IMPORTANT\r\nimport DocViewer, { DocViewerRenderers } from \"react-doc-viewer\";\r\nimport FileViewer from \"react-file-viewer\";\r\n// !IMPORTANT do not delete these 2 lines !IMPORTANT\r\nimport { Document, Page } from \"react-pdf\";\r\nimport { Button } from \"@material-ui/core\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport ClickAwayListener from \"@material-ui/core/ClickAwayListener\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport AppHeader from \"../../components/AppHeader/AppHeader\";\r\nimport AppFooter from \"../../components/AppFooter/AppFooter\";\r\nimport Breadcrumbs from \"../Upload/BreadCrumbs/BreadCrumbs\";\r\nimport UserStore from \"../UserStore\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport ExportExcel from \"../../components/ExportExcel\";\r\nimport { toJS } from \"mobx\";\r\nimport { TextField } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport \"./Preview.scss\";\r\nimport { TransformWrapper, TransformComponent } from \"react-zoom-pan-pinch\";\r\nimport Moment from \"moment\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n input: {\r\n border: \" 0.8px solid #0C629B\",\r\n borderRadius: \"2px\",\r\n padding: \"1%\",\r\n height: \"38px\",\r\n marginLeft: theme.spacing(2),\r\n marginRight: theme.spacing(1),\r\n width: \"20ch\",\r\n backgroundColor: \"white\",\r\n },\r\n}));\r\n\r\nexport function Preview(props) {\r\n let { id } = useParams();\r\n const [show, setShow] = useState(false);\r\n const [accept, setAccept] = useState(false);\r\n const [acceptit, setAcceptit] = useState(false);\r\n const [message, setMessage] = useState(\"\");\r\n const [message1, setMessage1] = useState(\"\");\r\n const [phrase1BB, setphrase1BB] = useState([]);\r\n const [phrase2BB, setphrase2BB] = useState([]);\r\n const [reportdata, setreportdata] = useState([]);\r\n const [docNoBB, setdocNoBB] = useState([]);\r\n const [sheetNoBB, setsheetNoBB] = useState([]);\r\n const [revNoBB, setrevNoBB] = useState([]);\r\n const [lineNoBB, setlineNoBB] = useState([]);\r\n const [phrase1text, setphrase1text] = useState(\"\");\r\n const [phrase2text, setphrase2text] = useState(\"\");\r\n const [docNotext, setdocNotext] = useState(\"\");\r\n const [sheetNotext, setsheetNotext] = useState(\"\");\r\n const [lineNotext, setlineNotext] = useState(\"\");\r\n const [revNotext, setrevNotext] = useState(\"\");\r\n const [modifieddoctext, setmodifieddoctext] = useState(\"\");\r\n const [filepath, setfilepath] = useState(\"\");\r\n const [response, setresponse] = useState([]);\r\n const [stampType, setStampType] = useState(false);\r\n const fileID = UserStore.splitedFileId !== 0 ? UserStore.splitedFileId : (localStorage.getItem('splitedFileId') ? localStorage.getItem('splitedFileId') : 0);\r\n const [p1score, setp1score] = useState(\"\");\r\n const [p2score, setp2score] = useState(\"\");\r\n const [docnumscore, setdocnumscore] = useState(\"\");\r\n const [sheetnumscore, setsheetnumscore] = useState(\"\");\r\n const [linenumscore, setlinenumscore] = useState(\"\");\r\n const [revnumscore, setrevnumscore] = useState(\"\");\r\n const [showUser, setshowUser] = useState(true);\r\n const APIEndpoint = process.env.REACT_APP_API_ENDPOINT;\r\n const scoreCutoff = process.env.REACT_APP_CONFIDENCE_SCORE_CUTOFF;\r\n const [errorMsgIsometricNumber, setErrorMsgIsometricNumber] = useState(\"\");\r\n const [errorMsgLineNumber, setErrorMsgLineNumber] = useState(\"\");\r\n const [errorMsgSheetNumber, setErrorMsgSheetNumber] = useState(\"\");\r\n const [errorMsgRevisioNumber, setErrorMsgRevisionNumber] = useState(\"\");\r\n const [errorMsgModifiedDoc, setErrorMsgModifiedDoc] = useState(\"\");\r\n const [errorIsometricNumber, setErrorIsometricNumber] = useState(false);\r\n const [errorLineNumber, setErrorLineNumber] = useState(false);\r\n const [errorSheetNumber, setErrorSheetNumber] = useState(false);\r\n const [errorRevisioNumber, setErrorRevisionNumber] = useState(false);\r\n const [errorModifiedDoc, setErrorModifiedDoc] = useState(false);\r\n const [revLabel, setrevLabel] = useState(false);\r\n const [pdfWidth, setPdfWidth] = useState(\"\");\r\n const [pdfHeight, setPdfHeight] = useState(\"\");\r\n const [DocViewerWidth, setDocViewerWidth] = useState(\"\");\r\n const [DocViewerHeight, setDocViewerHeight] = useState(\"\");\r\n const [checkbox1, setCheckbox1] = useState([]);\r\n const [checkbox2, setCheckbox2] = useState([]);\r\n const [checkbox3, setCheckbox3] = useState([]);\r\n const [checkbox4, setCheckbox4] = useState([]);\r\n const [labelcheckbox1, setLabelCheckbox1] = useState([]);\r\n const [labelcheckbox2, setLabelCheckbox2] = useState([]);\r\n const [labelcheckbox3, setLabelCheckbox3] = useState([]);\r\n const [labelcheckbox4, setLabelCheckbox4] = useState([]);\r\n const [labelcheckboxtext1, setLabelCheckboxText1] = useState([]);\r\n const [labelcheckboxtext2, setLabelCheckboxText2] = useState([]);\r\n const [labelcheckboxtext3, setLabelCheckboxText3] = useState([]);\r\n const [labelcheckboxtext4, setLabelCheckboxText4] = useState([]);\r\n const [c1score, setc1score] = useState(\"\");\r\n const [c2score, setc2score] = useState(\"\");\r\n const [c3score, setc3score] = useState(\"\");\r\n const [c4score, setc4score] = useState(\"\");\r\n const [l1score, setl1score] = useState(\"\");\r\n const [l2score, setl2score] = useState(\"\");\r\n const [l3score, setl3score] = useState(\"\");\r\n const [l4score, setl4score] = useState(\"\");\r\n const [changeheight, setchangeheight] = useState(\"\");\r\n const [changewidth, setchangewidth] = useState(\"\");\r\n const [isPixels,setIsPixels] = useState(\"\");\r\n const readonly = localStorage.getItem(\"isreadOnly\") ? JSON.parse(localStorage.getItem(\"isreadOnly\")): UserStore.readOnly;\r\n const acceptanceStatus = localStorage.getItem(\"accepteddoc\") ? JSON.parse(localStorage.getItem(\"accepteddoc\")) : UserStore.accepteddoc;\r\n const classes = useStyles();\r\n\r\n // -----------------Start: Function: Fetch the isometric details ---------------------\r\n async function previewAPIcall() {\r\n const user = \"Admin\";\r\n if (user === \"read\") {\r\n setshowUser(false);\r\n }\r\n // API: GET Isometric details\r\n const res = await axios.get(\r\n APIEndpoint + `/PreviewProcessedIsometric?splitedFileId=${fileID}`\r\n );\r\n if (res.data) {\r\n setIsPixels(res.data.extractedJson[0].IsPDFConvertedToImage);\r\n if (res.data.extractedJson[0].Fields.hasOwnProperty(\"Phrase1\")) {\r\n setphrase1BB(\r\n res.data.extractedJson[0].Fields.Phrase1.ValueData.BoundingBox\r\n );\r\n setphrase1text(res.data.extractedJson[0].Fields.Phrase1.ValueData.Text);\r\n setp1score(res.data.extractedJson[0].Fields.Phrase1.Confidence);\r\n }\r\n if (res.data.extractedJson[0].Fields.hasOwnProperty(\"Checkbox01\")) {\r\n setCheckbox1(\r\n res.data.extractedJson[0].Fields.Checkbox01.ValueData.BoundingBox\r\n );\r\n setc1score(res.data.extractedJson[0].Fields.Checkbox01.Confidence);\r\n }\r\n if (res.data.extractedJson[0].Fields.hasOwnProperty(\"Checkbox02\")) {\r\n setCheckbox2(\r\n res.data.extractedJson[0].Fields.Checkbox02.ValueData.BoundingBox\r\n );\r\n setc2score(res.data.extractedJson[0].Fields.Checkbox02.Confidence);\r\n }\r\n if (res.data.extractedJson[0].Fields.hasOwnProperty(\"Checkbox03\")) {\r\n setCheckbox3(\r\n res.data.extractedJson[0].Fields.Checkbox03.ValueData.BoundingBox\r\n );\r\n setc3score(res.data.extractedJson[0].Fields.Checkbox03.Confidence);\r\n }\r\n if (res.data.extractedJson[0].Fields.hasOwnProperty(\"Checkbox04\")) {\r\n setCheckbox4(\r\n res.data.extractedJson[0].Fields.Checkbox04.ValueData.BoundingBox\r\n );\r\n setc4score(res.data.extractedJson[0].Fields.Checkbox04.Confidence);\r\n }\r\n if (res.data.extractedJson[0].Fields.hasOwnProperty(\"LabelCheckbox01\")) {\r\n setLabelCheckbox1(\r\n res.data.extractedJson[0].Fields.LabelCheckbox01.ValueData.BoundingBox\r\n );\r\n setLabelCheckboxText1(\r\n res.data.extractedJson[0].Fields.LabelCheckbox01.ValueData.Text\r\n );\r\n setl1score(res.data.extractedJson[0].Fields.LabelCheckbox01.Confidence);\r\n }\r\n if (res.data.extractedJson[0].Fields.hasOwnProperty(\"LabelCheckbox02\")) {\r\n setLabelCheckbox2(\r\n res.data.extractedJson[0].Fields.LabelCheckbox02.ValueData.BoundingBox\r\n );\r\n setLabelCheckboxText2(\r\n res.data.extractedJson[0].Fields.LabelCheckbox02.ValueData.Text\r\n );\r\n setl2score(res.data.extractedJson[0].Fields.LabelCheckbox02.Confidence);\r\n }\r\n if (res.data.extractedJson[0].Fields.hasOwnProperty(\"LabelCheckbox03\")) {\r\n setLabelCheckbox3(\r\n res.data.extractedJson[0].Fields.LabelCheckbox03.ValueData.BoundingBox\r\n );\r\n setLabelCheckboxText3(\r\n res.data.extractedJson[0].Fields.LabelCheckbox03.ValueData.Text\r\n );\r\n setl3score(res.data.extractedJson[0].Fields.LabelCheckbox03.Confidence);\r\n }\r\n if (res.data.extractedJson[0].Fields.hasOwnProperty(\"LabelCheckbox04\")) {\r\n setLabelCheckbox4(\r\n res.data.extractedJson[0].Fields.LabelCheckbox04.ValueData.BoundingBox\r\n );\r\n setLabelCheckboxText4(\r\n res.data.extractedJson[0].Fields.LabelCheckbox04.ValueData.Text\r\n );\r\n setl4score(res.data.extractedJson[0].Fields.LabelCheckbox04.Confidence);\r\n }\r\n if (res.data.extractedJson[0].Fields.hasOwnProperty(\"Phrase2\")) {\r\n setphrase2BB(\r\n res.data.extractedJson[0].Fields.Phrase2.ValueData.BoundingBox\r\n );\r\n setphrase2text(res.data.extractedJson[0].Fields.Phrase2.ValueData.Text);\r\n setp2score(res.data.extractedJson[0].Fields.Phrase2.Confidence);\r\n }\r\n if(res.data.hasOwnProperty(\"isometricNumber\")){\r\n if (res.data.extractedJson[0].Fields.hasOwnProperty(\"DocumentNumber\")) {\r\n setdocNoBB(\r\n res.data.extractedJson[0].Fields.DocumentNumber.ValueData.BoundingBox\r\n ); \r\n setdocnumscore(\r\n res.data.extractedJson[0].Fields.DocumentNumber.Confidence\r\n );\r\n }\r\n setdocNotext(res.data.isometricNumber);\r\n }\r\n if(res.data.hasOwnProperty(\"lineNumber\")){\r\n if (res.data.extractedJson[0].Fields.hasOwnProperty(\"LineNumber\")) {\r\n setlineNoBB(\r\n res.data.extractedJson[0].Fields.LineNumber.ValueData.BoundingBox\r\n ); \r\n setlinenumscore(res.data.extractedJson[0].Fields.LineNumber.Confidence);\r\n }\r\n setlineNotext(res.data.lineNumber);\r\n }\r\n if (res.data.hasOwnProperty(\"revisionNumber\")) {\r\n if (res.data.extractedJson[0].Fields.hasOwnProperty(\"RevisionNumber\")) {\r\n setrevNoBB(\r\n res.data.extractedJson[0].Fields.RevisionNumber.ValueData.BoundingBox\r\n );\r\n setrevnumscore(\r\n res.data.extractedJson[0].Fields.RevisionNumber.Confidence\r\n );\r\n }else if (\r\n res.data.extractedJson[0].Fields.hasOwnProperty(\"RevisionNumberLabel\")\r\n ) {\r\n setrevLabel(true);\r\n setrevNoBB(\r\n res.data.extractedJson[0].Fields.RevisionNumberLabel.ValueData.BoundingBox\r\n );\r\n setrevnumscore(\r\n res.data.extractedJson[0].Fields.RevisionNumberLabel.Confidence\r\n );\r\n } \r\n setrevNotext(res.data.revisionNumber); \r\n }else {\r\n if (\r\n res.data.extractedJson[0].Fields.hasOwnProperty(\"RevisionNumberLabel\")\r\n ) {\r\n setrevLabel(true);\r\n setrevNoBB(\r\n res.data.extractedJson[0].Fields.RevisionNumberLabel.ValueData.BoundingBox\r\n );\r\n setrevNotext(res.data.revisionNumber);\r\n setrevnumscore(\r\n res.data.extractedJson[0].Fields.RevisionNumberLabel.Confidence\r\n );\r\n }\r\n }\r\n // if (res.data.extractedJson[0].Fields.hasOwnProperty(\"RevisionNumber\")) {\r\n // setrevNoBB(\r\n // res.data.extractedJson[0].Fields.RevisionNumber.ValueData.BoundingBox\r\n // );\r\n setmodifieddoctext(res.data.modifiedDoc);\r\n // setrevnumscore(\r\n // res.data.extractedJson[0].Fields.RevisionNumber.Confidence\r\n // );\r\n //}\r\n if (res.data.hasOwnProperty(\"sheetNumber\")) {\r\n if (res.data.extractedJson[0].Fields.hasOwnProperty(\"SheetNumber\")) {\r\n setsheetNoBB(\r\n res.data.extractedJson[0].Fields.SheetNumber.ValueData.BoundingBox\r\n );\r\n \r\n setsheetnumscore(\r\n res.data.extractedJson[0].Fields.SheetNumber.Confidence\r\n );\r\n }\r\n setsheetNotext(res.data.sheetNumber);\r\n }\r\n setfilepath(res.data.isometricUri);\r\n setresponse(res.data);\r\n if(!toJS(UserStore.reportData).length && localStorage.getItem('itemChange')) {\r\n UserStore.addReportdata(JSON.parse(localStorage.getItem('itemChange')));\r\n }\r\n const data = toJS(UserStore.reportData);\r\n reportdata.push(data);\r\n setreportdata(reportdata);\r\n setStampType(res.data.isChange);\r\n setPdfWidth(res.data.extractedJson[0].Pages[0].Width);\r\n setPdfHeight(res.data.extractedJson[0].Pages[0].Height);\r\n }\r\n }\r\n\r\n function base64ToArrayBuffer(data) {\r\n let binaryString = window.atob(data);\r\n // var binaryString = window.atob(window.btoa(data));\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n return bytes;\r\n};\r\n // -----------------End: Function: Fetch the isometric details ---------------------\r\n\r\n useEffect(() => {\r\n UserStore.getprocessGrid(1);\r\n UserStore.PIDselectedRowID = [];\r\n localStorage.setItem('getprocessGrid', 1);\r\n previewAPIcall();\r\n }, []);\r\n\r\n // --------------Start: Function: Validate empty fields---------------\r\n function validateEmpty() {\r\n if (docNotext === \"\") {\r\n setErrorIsometricNumber(true);\r\n setErrorMsgIsometricNumber(\"Field is not identified\");\r\n }\r\n if (lineNotext === \"\") {\r\n setErrorLineNumber(true);\r\n setErrorMsgLineNumber(\"Field is not identified\");\r\n }\r\n if (revNotext === \"\") {\r\n setErrorRevisionNumber(true);\r\n setErrorMsgRevisionNumber(\"Field is not identified\");\r\n }\r\n if (sheetNotext === \"\") {\r\n setErrorSheetNumber(true);\r\n setErrorMsgSheetNumber(\"Field is not identified\");\r\n }\r\n }\r\n // --------------End: Function: Validate empty fields---------------\r\n function padTo2Digits(num) {\r\n return num.toString().padStart(2, '0');\r\n }\r\n function formatDate(date) {\r\n return (\r\n [\r\n date.getFullYear(),\r\n padTo2Digits(date.getUTCMonth() + 1),\r\n padTo2Digits(date.getUTCDate()),\r\n ].join('/') +\r\n ' ' +\r\n [\r\n padTo2Digits(date.getUTCHours()),\r\n padTo2Digits(date.getUTCMinutes()),\r\n padTo2Digits(date.getUTCSeconds())\r\n ].join(':') +\r\n ' +00:00'\r\n );\r\n }\r\n\r\n // ---------------Start: Function: Accept / Modify isometric ------------------\r\n const acceptMsg = async(nameforbutton) => {\r\n const newdate = formatDate(new Date());\r\n localStorage.setItem(\"modifiedtime\", newdate);\r\n setMessage(\"\");\r\n setMessage1(\"\");\r\n setAccept(false);\r\n setAcceptit(false); \r\n let chooseApi = nameforbutton;\r\n let value = 0;\r\n let body = {\r\n splitedFileId: fileID,\r\n isChange: stampType,\r\n isometricNumber: docNotext,\r\n lineNumber: lineNotext,\r\n sheetNumber: sheetNotext,\r\n revisionNumber: revNotext,\r\n modifiedDoc: modifieddoctext,\r\n };\r\n if (body.isometricNumber === \"\") {\r\n value = value + 1;\r\n setErrorIsometricNumber(true);\r\n setErrorMsgIsometricNumber(\"Field should not be empty\");\r\n }\r\n if (body.lineNumber === \"\") {\r\n value = value + 1;\r\n setErrorLineNumber(true);\r\n setErrorMsgLineNumber(\"Field should not be empty\");\r\n }\r\n if (body.sheetNumber === \"\") {\r\n value = value + 1;\r\n setErrorSheetNumber(true);\r\n setErrorMsgSheetNumber(\"Field should not be empty\");\r\n }\r\n if (body.modifiedDoc !== null && body.modifiedDoc.length > 5) {\r\n value = value + 1;\r\n setErrorModifiedDoc(true);\r\n setErrorMsgModifiedDoc(\"Field size exceeded\");\r\n } else if ( /[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]+/.test(body.modifiedDoc)) {\r\n value = value + 1;\r\n setErrorModifiedDoc(true);\r\n setErrorMsgModifiedDoc(\r\n \"special characters are not allowed\"\r\n );\r\n }\r\n if (body.revisionNumber === \"\") {\r\n value = value + 1;\r\n setErrorRevisionNumber(true);\r\n setErrorMsgRevisionNumber(\"Field should not be empty\");\r\n } else if ( /[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]+/.test(body.revisionNumber)) {\r\n value = value + 1;\r\n setErrorRevisionNumber(true);\r\n setErrorMsgRevisionNumber(\r\n \"Revision Number should not contain special characters\"\r\n );\r\n } else {\r\n setErrorRevisionNumber(false);\r\n setErrorMsgRevisionNumber(\"\");\r\n }\r\n if (value === 0) { \r\n setErrorIsometricNumber(false);\r\n setErrorMsgIsometricNumber(\"\");\r\n setErrorLineNumber(false);\r\n setErrorMsgLineNumber(\"\");\r\n setErrorSheetNumber(false);\r\n setErrorMsgSheetNumber(\"\");\r\n setErrorRevisionNumber(false);\r\n setErrorMsgRevisionNumber(\"\");\r\n setErrorMsgModifiedDoc(\"\");\r\n setErrorModifiedDoc(false);\r\n if(chooseApi === \"save\")\r\n {\r\n // API: Modify isometric with edited fields\r\n const res = await axios.post(\r\n APIEndpoint + `/ModifyProcessedIsometric`,\r\n body\r\n );\r\n if(res.status === 200) {\r\n setAcceptit(true);\r\n setMessage1(\"Document is saved successfully.\");\r\n handleGetProcessedIsometrics(body,chooseApi);\r\n }\r\n } else {\r\n // API: Accept isometric with same or edited fields\r\n const res = await axios.post(\r\n APIEndpoint + `/AcceptProcessedIsometric`,\r\n body\r\n );\r\n if(res.status === 200) {\r\n UserStore.isaccepteddoc(true);\r\n localStorage.setItem('accepteddoc', true);\r\n setAccept(true);\r\n setMessage(\"Document is accepted successfully.\");\r\n handleGetProcessedIsometrics(body,chooseApi);\r\n }\r\n }\r\n }\r\n }\r\n // ------------------End: Function: Accept / Modify isometric ------------------\r\n\r\n const handleGetProcessedIsometrics = async(body,chooseApi) =>{\r\n const processedData = toJS(UserStore.processGridData);\r\n const data = processedData.map((val) => {\r\n if(val.splitedFileId === fileID) {\r\n val.isChange = body.isChange != null ? body.isChange === \"true\" ? \"Yes\" : \"No\" : null;\r\n val.isometricNumber = body.isometricNumber;\r\n val.lineNumber = body.lineNumber;\r\n val.sheetNumber = body.sheetNumber;\r\n val.revisionNumber = body.revisionNumber;\r\n val.modifiedDoc = body.modifiedDoc;\r\n val.modifiedBy = localStorage.getItem(\"userEmail\");\r\n val.modiffiedDate = localStorage.getItem(\"modifiedtime\");\r\n if(chooseApi !== \"save\") {\r\n val.isAccepted = true;\r\n val.acceptanceStatus = \"Accepted\";\r\n }\r\n localStorage.setItem(\"processingTime\",val.processingDate);\r\n let processingDate = val.processingDate.includes(\"+\") ? val.processingDate.split(\"+\") : val.processingDate;\r\n val.processingDate = processingDate[0].trim().replaceAll(\"-\",\"/\")\r\n val.processingDate = Moment.utc(val.processingDate, \"YYYY/MM/DD hh:mm:ss a\").local().format(\"DD/MM/YYYY hh:mm:ss a\")\r\n val.modiffiedDate = Moment.utc(val.modiffiedDate, \"YYYY/MM/DD hh:mm:ss a\").local().format(\"DD/MM/YYYY hh:mm:ss a\")\r\n UserStore.addReportdata([val])\r\n val.modiffiedDate = localStorage.getItem(\"modifiedtime\");\r\n val.processingDate = localStorage.getItem(\"processingTime\");\r\n }\r\n return val;\r\n })\r\n \r\n UserStore.setProcessGridData(data)\r\n }\r\n\r\n function handleShow() {\r\n setShow(true);\r\n }\r\n\r\n const handleClose = () => {\r\n setShow(false);\r\n };\r\n\r\n // -------------------Start: Function: Close the remarks dialog box --------------------\r\n async function handleCloseAPI() {\r\n let remarks = document.getElementById(\"remarks-field\").value;\r\n if(remarks != \"\") {\r\n let body = {\r\n SplitedFileId: fileID,\r\n Remarks: remarks,\r\n };\r\n // API: Reject the isometric\r\n const res = await axios.post(\r\n APIEndpoint + `/RejectProcessedIsometric`,\r\n body\r\n );\r\n setShow(false);\r\n if(res.status === 200) {\r\n setAcceptit(true);\r\n setMessage1(\"Document is rejected successfully.\")\r\n handleRejectData(remarks);\r\n }\r\n }\r\n }\r\n\r\n const handleRejectData = (remarks) => {\r\n const processedData = toJS(UserStore.processGridData);\r\n const data = processedData.map((val) => {\r\n if(val.splitedFileId === fileID) {\r\n val.isAccepted = false;\r\n val.acceptanceStatus = \"Rejected\";\r\n val.rejectionRemark = remarks;\r\n localStorage.setItem(\"processingTime\",val.processingDate);\r\n let processingDate = val.processingDate.includes(\"+\") ? val.processingDate.split(\"+\") : val.processingDate;\r\n val.processingDate = processingDate[0].trim().replaceAll(\"-\",\"/\")\r\n val.processingDate = Moment.utc(val.processingDate, \"YYYY/MM/DD hh:mm:ss a\").local().format(\"DD/MM/YYYY hh:mm:ss a\");\r\n UserStore.addReportdata([val]);\r\n val.processingDate = localStorage.getItem(\"processingTime\")\r\n }\r\n return val;\r\n })\r\n UserStore.setProcessGridData(data);\r\n }\r\n // -------------------End: Function: Close the remarks dialog box --------------------\r\n\r\n // ----------------------Start: Tooltips for highlighted boundary boxes on the isometric---------------------\r\n const [open1, setOpen1] = useState(false);\r\n const [open2, setOpen2] = useState(false);\r\n const [open3, setOpen3] = useState(false);\r\n const [open4, setOpen4] = useState(false);\r\n const [open5, setOpen5] = useState(false);\r\n const [open6, setOpen6] = useState(false);\r\n const [open7, setOpen7] = useState(false);\r\n const [open8, setOpen8] = useState(false);\r\n const [open9, setOpen9] = useState(false);\r\n const [open10, setOpen10] = useState(false);\r\n const [open11, setOpen11] = useState(false);\r\n const [open12, setOpen12] = useState(false);\r\n const [open13, setOpen13] = useState(false);\r\n const [open14, setOpen14] = useState(false);\r\n const [tooltipTitle, settooltipTitle] = useState(\"\");\r\n\r\n const handleTooltipClose1 = () => {\r\n setOpen1(false);\r\n };\r\n\r\n const handleTooltipOpen1 = () => {\r\n setOpen1(true);\r\n let title = `${phrase1text}, ${p1score * 100}%`;\r\n settooltipTitle(`Text: ${title}`);\r\n };\r\n\r\n const handleTooltipClose2 = () => {\r\n setOpen2(false);\r\n };\r\n\r\n const handleTooltipOpen2 = () => {\r\n setOpen2(true);\r\n let title = `${phrase2text}, ${p2score * 100}%`;\r\n settooltipTitle(`Text: ${title}`);\r\n };\r\n\r\n const handleTooltipClose3 = () => {\r\n setOpen3(false);\r\n };\r\n\r\n const handleTooltipOpen3 = () => {\r\n setOpen3(true);\r\n let title = `${docNotext}, ${docnumscore * 100}%`;\r\n settooltipTitle(`Text: ${title}`);\r\n };\r\n\r\n const handleTooltipClose4 = () => {\r\n setOpen4(false);\r\n };\r\n\r\n const handleTooltipOpen4 = () => {\r\n setOpen4(true);\r\n let title = `${lineNotext}, ${linenumscore * 100}%`;\r\n settooltipTitle(`Text: ${title}`);\r\n };\r\n\r\n const handleTooltipClose5 = () => {\r\n setOpen5(false);\r\n };\r\n\r\n const navigatetoProcessgrid = () => {\r\n UserStore.cleareReportdata();\r\n UserStore.setreportStamp(false);\r\n localStorage.setItem('setreportStamp', false);\r\n props.history.push(`/Workspace/UploadFiles`);\r\n };\r\n\r\n const handleTooltipOpen5 = () => {\r\n setOpen5(true);\r\n let title = `${revNotext}, ${revnumscore * 100}%`;\r\n settooltipTitle(`Text: ${title}`);\r\n };\r\n\r\n const handleTooltipClose6 = () => {\r\n setOpen6(false);\r\n };\r\n\r\n const handleTooltipOpen6 = () => {\r\n setOpen6(true);\r\n let title = `${sheetNotext}, ${sheetnumscore * 100}%`;\r\n settooltipTitle(`Text: ${title}`);\r\n };\r\n\r\n const handleTooltipOpen7 = () => {\r\n setOpen7(true);\r\n let title = `${c1score * 100}%`;\r\n settooltipTitle(`${title}`);\r\n };\r\n const handleTooltipOpen8 = () => {\r\n setOpen8(true);\r\n let title = `${c2score * 100}%`;\r\n settooltipTitle(`${title}`);\r\n };\r\n const handleTooltipOpen9 = () => {\r\n setOpen9(true);\r\n let title = `${c3score * 100}%`;\r\n settooltipTitle(`${title}`);\r\n };\r\n const handleTooltipOpen10 = () => {\r\n setOpen10(true);\r\n let title = `${c4score * 100}%`;\r\n settooltipTitle(`${title}`);\r\n };\r\n const handleTooltipClose7 = () => {\r\n setOpen7(false);\r\n };\r\n const handleTooltipClose8 = () => {\r\n setOpen8(false);\r\n };\r\n const handleTooltipClose9 = () => {\r\n setOpen9(false);\r\n };\r\n const handleTooltipClose10 = () => {\r\n setOpen10(false);\r\n };\r\n\r\n const handleTooltipOpen11 = () => {\r\n setOpen11(true);\r\n let title = `${labelcheckboxtext1}, ${l1score * 100}%`;\r\n settooltipTitle(`Text: ${title}`);\r\n };\r\n const handleTooltipOpen12 = () => {\r\n setOpen12(true);\r\n let title = `${labelcheckboxtext2}, ${l2score * 100}%`;\r\n settooltipTitle(`Text: ${title}`);\r\n };\r\n const handleTooltipOpen13 = () => {\r\n setOpen13(true);\r\n let title = `${labelcheckboxtext3}, ${l3score * 100}%`;\r\n settooltipTitle(`Text: ${title}`);\r\n };\r\n const handleTooltipOpen14 = () => {\r\n setOpen14(true);\r\n let title = `${labelcheckboxtext4}, ${l4score * 100}%`;\r\n settooltipTitle(`Text: ${title}`);\r\n };\r\n\r\n const handleTooltipClose11 = () => {\r\n setOpen11(false);\r\n };\r\n\r\n const handleTooltipClose13 = () => {\r\n setOpen13(false);\r\n };\r\n\r\n const handleTooltipClose12 = () => {\r\n setOpen12(false);\r\n };\r\n\r\n const handleTooltipClose14 = () => {\r\n setOpen14(false);\r\n };\r\n // ----------------------End: Tooltips for highlighted boundary boxes on the isometric---------------------\r\n\r\n // ------------------------Start: Calculations to display bounding boxes over the isomteric ---------------------\r\n let inchToPxConverter = isPixels ? 1 : 96;\r\n setTimeout(() => {\r\n if (document.querySelector(\".doc-viewer\")) {\r\n setDocViewerWidth(document.querySelector(\".doc-viewer\").clientWidth);\r\n setDocViewerHeight(\r\n document.querySelector(\".doc-viewer\").clientHeight - 17\r\n );\r\n }\r\n }, 3000);\r\n \r\n let PDFwidth = pdfWidth * inchToPxConverter;\r\n let PDFheight = pdfHeight * inchToPxConverter;\r\n let top2 = ((phrase1BB[1] * inchToPxConverter) / PDFheight) * 100;\r\n if (DocViewerHeight > 500) {\r\n PDFheight = PDFheight + 10;\r\n }\r\n top2 = ((phrase1BB[1] * inchToPxConverter) / PDFheight) * 100;\r\n let top3 = ((phrase2BB[1] * inchToPxConverter) / PDFheight) * 100;\r\n let top4 = ((docNoBB[1] * inchToPxConverter) / PDFheight) * 100;\r\n let top5 = ((lineNoBB[1] * inchToPxConverter) / PDFheight) * 100;\r\n let top6;\r\n if (revLabel) {\r\n top6 = ((revNoBB[1] * inchToPxConverter) / PDFheight) * 100 + 1;\r\n } else {\r\n top6 = ((revNoBB[1] * inchToPxConverter) / PDFheight) * 100;\r\n }\r\n let top7 = ((sheetNoBB[1] * inchToPxConverter) / PDFheight) * 100;\r\n let top8 = ((checkbox1[1] * inchToPxConverter) / PDFheight) * 100;\r\n let top9 = ((checkbox2[1] * inchToPxConverter) / PDFheight) * 100;\r\n let top10 = ((checkbox3[1] * inchToPxConverter) / PDFheight) * 100;\r\n let top11 = ((checkbox4[1] * inchToPxConverter) / PDFheight) * 100;\r\n let top12 = ((labelcheckbox1[1] * inchToPxConverter) / PDFheight) * 100;\r\n let top13 = ((labelcheckbox2[1] * inchToPxConverter) / PDFheight) * 100;\r\n let top14 = ((labelcheckbox3[1] * inchToPxConverter) / PDFheight) * 100;\r\n let top15 = ((labelcheckbox4[1] * inchToPxConverter) / PDFheight) * 100;\r\n let left2 = ((phrase1BB[0] * inchToPxConverter) / PDFwidth) * 100;\r\n let left3 = ((phrase2BB[0] * inchToPxConverter) / PDFwidth) * 100;\r\n let left4 = ((docNoBB[0] * inchToPxConverter) / PDFwidth) * 100;\r\n let left5 = ((lineNoBB[0] * inchToPxConverter) / PDFwidth) * 100;\r\n let left6 = ((revNoBB[0] * inchToPxConverter) / PDFwidth) * 100;\r\n let left7 = ((sheetNoBB[0] * inchToPxConverter) / PDFwidth) * 100;\r\n let left8 = ((checkbox1[0] * inchToPxConverter) / PDFwidth) * 100;\r\n let left9 = ((checkbox2[0] * inchToPxConverter) / PDFwidth) * 100;\r\n let left10 = ((checkbox3[0] * inchToPxConverter) / PDFwidth) * 100;\r\n let left11 = ((checkbox4[0] * inchToPxConverter) / PDFwidth) * 100;\r\n let left12 = ((labelcheckbox1[0] * inchToPxConverter) / PDFwidth) * 100;\r\n let left13 = ((labelcheckbox2[0] * inchToPxConverter) / PDFwidth) * 100;\r\n let left14 = ((labelcheckbox3[0] * inchToPxConverter) / PDFwidth) * 100;\r\n let left15 = ((labelcheckbox4[0] * inchToPxConverter) / PDFwidth) * 100;\r\n let length2 = phrase1BB[2] - phrase1BB[0];\r\n let breadth2 = phrase1BB[5] - phrase1BB[3];\r\n let height2 = (((breadth2 * inchToPxConverter) / PDFheight) * 100);\r\n let width2 = ((length2 * inchToPxConverter) / PDFwidth) * 100;\r\n let length3 = phrase2BB[2] - phrase2BB[0];\r\n let breadth3 = phrase2BB[5] - phrase2BB[3];\r\n let height3 = (((breadth3 * inchToPxConverter) / PDFheight) * 100);\r\n let width3 = ((length3 * inchToPxConverter) / PDFwidth) * 100;\r\n let length4 = docNoBB[2] - docNoBB[0];\r\n let breadth4 = docNoBB[5] - docNoBB[3];\r\n let height4 = (((breadth4 * inchToPxConverter) / PDFheight) * 100);\r\n let width4 = ((length4 * inchToPxConverter) / PDFwidth) * 100;\r\n let length5 = lineNoBB[2] - lineNoBB[0];\r\n let breadth5 = lineNoBB[5] - lineNoBB[3];\r\n let height5 = (((breadth5 * inchToPxConverter) / PDFheight) * 100);\r\n let width5 = ((length5 * inchToPxConverter) / PDFwidth) * 100;\r\n let length6 = revNoBB[2] - revNoBB[0];\r\n let breadth6 = revNoBB[5] - revNoBB[3];\r\n let height6 = (((breadth6 * inchToPxConverter) / PDFheight) * 100);\r\n let width6 = ((length6 * inchToPxConverter) / PDFwidth) * 100;\r\n let length7 = sheetNoBB[2] - sheetNoBB[0];\r\n let breadth7 = sheetNoBB[5] - sheetNoBB[3];\r\n let height7 = (((breadth7 * inchToPxConverter) / PDFheight) * 100);\r\n let width7 = ((length7 * inchToPxConverter) / PDFwidth) * 100;\r\n let length8 = checkbox1[2] - checkbox1[0];\r\n let breadth8 = checkbox1[5] - checkbox1[3];\r\n let height8 = (((breadth8 * inchToPxConverter) / PDFheight) * 100);\r\n let width8 = ((length8 * inchToPxConverter) / PDFwidth) * 100;\r\n let length9 = checkbox2[2] - checkbox2[0];\r\n let breadth9 = checkbox2[5] - checkbox2[3];\r\n let height9 = (((breadth9 * inchToPxConverter) / PDFheight) * 100);\r\n let width9 = ((length9 * inchToPxConverter) / PDFwidth) * 100;\r\n let length10 = checkbox3[2] - checkbox3[0];\r\n let breadth10 = checkbox3[5] - checkbox3[3];\r\n let height10 = (((breadth10 * inchToPxConverter) / PDFheight) * 100);\r\n let width10 = ((length10 * inchToPxConverter) / PDFwidth) * 100;\r\n let length11 = checkbox4[2] - checkbox4[0];\r\n let breadth11 = checkbox4[5] - checkbox4[3];\r\n let height11 = (((breadth11 * inchToPxConverter) / PDFheight) * 100);\r\n let width11 = ((length11 * inchToPxConverter) / PDFwidth) * 100;\r\n let length12 = labelcheckbox1[2] - labelcheckbox1[0];\r\n let breadth12 = labelcheckbox1[5] - labelcheckbox1[3];\r\n let height12 = (((breadth12 * inchToPxConverter) / PDFheight) * 100);\r\n let width12 = ((length12 * inchToPxConverter) / PDFwidth) * 100;\r\n let length13 = labelcheckbox2[2] - labelcheckbox2[0];\r\n let breadth13 = labelcheckbox2[5] - labelcheckbox2[3];\r\n let height13 = (((breadth13 * inchToPxConverter) / PDFheight) * 100);\r\n let width13 = ((length13 * inchToPxConverter) / PDFwidth) * 100;\r\n let length14 = labelcheckbox3[2] - labelcheckbox3[0];\r\n let breadth14 = labelcheckbox3[5] - labelcheckbox3[3];\r\n let height14 = (((breadth14 * inchToPxConverter) / PDFheight) * 100);\r\n let width14 = ((length14 * inchToPxConverter) / PDFwidth) * 100;\r\n let length15 = labelcheckbox4[2] - labelcheckbox4[0];\r\n let breadth15 = labelcheckbox4[5] - labelcheckbox4[3];\r\n let height15 = (((breadth15 * inchToPxConverter) / PDFheight) * 100);\r\n let width15 = ((length15 * inchToPxConverter) / PDFwidth) * 100;\r\n\r\n let overlayStyle1 = {\r\n position: \"absolute\",\r\n top: (top2 / 100) * DocViewerHeight + 1 + \"px\",\r\n left: (left2 / 100) * DocViewerWidth + \"px\",\r\n backgroundColor: p1score > scoreCutoff ? \"#F7E454\" : \"red\",\r\n height: (height2 / 100) * DocViewerHeight + 3 + \"px\",\r\n width: (width2 / 100) * DocViewerWidth + \"px\",\r\n opacity: \"0.35\",\r\n zIndex: \"9\",\r\n cursor: \"pointer\",\r\n };\r\n\r\n let offset1 = (top2 / 100) * DocViewerHeight + 1 + \"px\";\r\n let offset2 = (left2 / 100) * DocViewerWidth + \"px\"\r\n // ------------------------End: Calculations to display bounding boxes over the isomteric ---------------------\r\n\r\n // ---------------------------Start: Overlay box css styles--------------------------\r\n let overlayStyle2 = {\r\n position: \"absolute\",\r\n top: (top3 / 100) * DocViewerHeight + 1 + \"px\",\r\n left: (left3 / 100) * DocViewerWidth + \"px\",\r\n backgroundColor: p2score > scoreCutoff ? \"#F7E454\" : \"red\",\r\n height: (height3 / 100) * DocViewerHeight + 3 + \"px\",\r\n width: (width3 / 100) * DocViewerWidth + \"px\",\r\n opacity: \"0.35\",\r\n zIndex: \"9\",\r\n cursor: \"pointer\",\r\n };\r\n\r\n let overlayStyle3 = {\r\n position: \"absolute\",\r\n top: (top4 / 100) * DocViewerHeight + 1 + \"px\",\r\n left: (left4 / 100) * DocViewerWidth + \"px\",\r\n backgroundColor: docnumscore > scoreCutoff ? \"#F7E454\" : \"red\",\r\n height: (height4 / 100) * DocViewerHeight + 3 + \"px\",\r\n width: (width4 / 100) * DocViewerWidth + \"px\",\r\n opacity: \"0.35\",\r\n zIndex: \"9\",\r\n cursor: \"pointer\",\r\n };\r\n\r\n let overlayStyle4 = {\r\n position: \"absolute\",\r\n top: (top5 / 100) * DocViewerHeight + 1 + \"px\",\r\n left: (left5 / 100) * DocViewerWidth + \"px\",\r\n backgroundColor: linenumscore > scoreCutoff ? \"#F7E454\" : \"red\",\r\n height: (height5 / 100) * DocViewerHeight + 3 + \"px\",\r\n width: (width5 / 100) * DocViewerWidth + \"px\",\r\n opacity: \"0.35\",\r\n zIndex: \"9\",\r\n cursor: \"pointer\",\r\n };\r\n\r\n let overlayStyle5 = {\r\n position: \"absolute\",\r\n top: (top6 / 100) * DocViewerHeight + 1 + \"px\",\r\n left: (left6 / 100) * DocViewerWidth + \"px\",\r\n backgroundColor: revnumscore > scoreCutoff ? \"#F7E454\" : \"red\",\r\n height: (height6 / 100) * DocViewerHeight + 3 + \"px\",\r\n width: (width6 / 100) * DocViewerWidth + \"px\",\r\n opacity: \"0.35\",\r\n zIndex: \"9\",\r\n cursor: \"pointer\",\r\n };\r\n\r\n let overlayStyle6 = {\r\n position: \"absolute\",\r\n top: (top7 / 100) * DocViewerHeight + 1 + \"px\",\r\n left: (left7 / 100) * DocViewerWidth + \"px\",\r\n backgroundColor: sheetnumscore > scoreCutoff ? \"#F7E454\" : \"red\",\r\n height: (height7 / 100) * DocViewerHeight + 3 + \"px\",\r\n width: (width7 / 100) * DocViewerWidth + \"px\",\r\n opacity: \"0.35\",\r\n zIndex: \"9\",\r\n cursor: \"pointer\",\r\n };\r\n\r\n let overlayStyle7 = {\r\n position: \"absolute\",\r\n top: (top8 / 100) * DocViewerHeight + 1 + \"px\",\r\n left: (left8 / 100) * DocViewerWidth + \"px\",\r\n backgroundColor: c1score > scoreCutoff ? \"#F7E454\" : \"red\",\r\n height: (height8 / 100) * DocViewerHeight + 3 + \"px\",\r\n width: (width8 / 100) * DocViewerWidth + \"px\",\r\n opacity: \"0.35\",\r\n zIndex: \"9\",\r\n cursor: \"pointer\",\r\n };\r\n let overlayStyle8 = {\r\n position: \"absolute\",\r\n top: (top9 / 100) * DocViewerHeight + 1 + \"px\",\r\n left: (left9 / 100) * DocViewerWidth + \"px\",\r\n backgroundColor: c2score > scoreCutoff ? \"#F7E454\" : \"red\",\r\n height: (height9 / 100) * DocViewerHeight + 3 + \"px\",\r\n width: (width9 / 100) * DocViewerWidth + \"px\",\r\n opacity: \"0.35\",\r\n zIndex: \"9\",\r\n cursor: \"pointer\",\r\n };\r\n let overlayStyle9 = {\r\n position: \"absolute\",\r\n top: (top10 / 100) * DocViewerHeight + 1 + \"px\",\r\n left: (left10 / 100) * DocViewerWidth + \"px\",\r\n backgroundColor: c3score > scoreCutoff ? \"#F7E454\" : \"red\",\r\n height: (height10 / 100) * DocViewerHeight + 3 + \"px\",\r\n width: (width10 / 100) * DocViewerWidth + \"px\",\r\n opacity: \"0.35\",\r\n zIndex: \"9\",\r\n cursor: \"pointer\",\r\n };\r\n let overlayStyle10 = {\r\n position: \"absolute\",\r\n top: (top11 / 100) * DocViewerHeight + 1 + \"px\",\r\n left: (left11 / 100) * DocViewerWidth + \"px\",\r\n backgroundColor: c4score > scoreCutoff ? \"#F7E454\" : \"red\",\r\n height: (height11 / 100) * DocViewerHeight + 3 + \"px\",\r\n width: (width11 / 100) * DocViewerWidth + \"px\",\r\n opacity: \"0.35\",\r\n zIndex: \"9\",\r\n cursor: \"pointer\",\r\n };\r\n\r\n let overlayStyle11 = {\r\n position: \"absolute\",\r\n top: (top12 / 100) * DocViewerHeight + 1 + \"px\",\r\n left: (left12 / 100) * DocViewerWidth + \"px\",\r\n backgroundColor: l1score > scoreCutoff ? \"#F7E454\" : \"red\",\r\n height: (height12 / 100) * DocViewerHeight + 3 + \"px\",\r\n width: (width12 / 100) * DocViewerWidth + \"px\",\r\n opacity: \"0.35\",\r\n zIndex: \"9\",\r\n cursor: \"pointer\",\r\n };\r\n\r\n let overlayStyle12 = {\r\n position: \"absolute\",\r\n top: (top13 / 100) * DocViewerHeight + 1 + \"px\",\r\n left: (left13 / 100) * DocViewerWidth + \"px\",\r\n backgroundColor: l2score > scoreCutoff ? \"#F7E454\" : \"red\",\r\n height: (height13 / 100) * DocViewerHeight + 3 + \"px\",\r\n width: (width13 / 100) * DocViewerWidth + \"px\",\r\n opacity: \"0.35\",\r\n zIndex: \"9\",\r\n cursor: \"pointer\",\r\n };\r\n let overlayStyle13 = {\r\n position: \"absolute\",\r\n top: (top14 / 100) * DocViewerHeight + 1 + \"px\",\r\n left: (left14 / 100) * DocViewerWidth + \"px\",\r\n backgroundColor: l3score > scoreCutoff ? \"#F7E454\" : \"red\",\r\n height: (height14 / 100) * DocViewerHeight + 3 + \"px\",\r\n width: (width14 / 100) * DocViewerWidth + \"px\",\r\n opacity: \"0.35\",\r\n zIndex: \"9\",\r\n cursor: \"pointer\",\r\n };\r\n let overlayStyle14 = {\r\n position: \"absolute\",\r\n top: (top15 / 100) * DocViewerHeight + 1 + \"px\",\r\n left: (left15 / 100) * DocViewerWidth + \"px\",\r\n backgroundColor: l4score > scoreCutoff ? \"#F7E454\" : \"red\",\r\n height: (height15 / 100) * DocViewerHeight + 3 + \"px\",\r\n width: (width15 / 100) * DocViewerWidth + \"px\",\r\n opacity: \"0.35\",\r\n zIndex: \"9\",\r\n cursor: \"pointer\",\r\n };\r\n // ---------------------------End: Overlay box css styles--------------------------\r\n\r\n const [numPages, setNumPages] = useState(null);\r\n const [pageNumber, setPageNumber] = useState(1);\r\n\r\n function onDocumentLoadSuccess({ numPages }) {\r\n setNumPages(numPages);\r\n validateEmpty();\r\n }\r\n\r\n function handleStampTypeChange() {\r\n setStampType(document.getElementById(\"stamp-type\").value);\r\n }\r\n\r\n function handleFormValueChange() {\r\n setdocNotext(document.getElementById(\"doc-no\").value);\r\n setlineNotext(document.getElementById(\"line-no\").value);\r\n setsheetNotext(document.getElementById(\"sheet-no\").value);\r\n setrevNotext(document.getElementById(\"revision-no\").value);\r\n let modifiedDoc = document.getElementById(\"modified-doc\").value;\r\n \r\n if (modifiedDoc.length > 5) {\r\n // value = value + 1;\r\n setErrorModifiedDoc(true);\r\n setErrorMsgModifiedDoc(\"Field size exceeded\");\r\n } else if (\r\n /[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|/\\s/,.<>\\/?]+/.test(modifiedDoc)\r\n ) {\r\n setErrorModifiedDoc(true);\r\n setErrorMsgModifiedDoc(\r\n \"Special characters are not allowed\"\r\n );\r\n }\r\n else {\r\n setmodifieddoctext(modifiedDoc);\r\n setErrorModifiedDoc(false);\r\n setErrorMsgModifiedDoc(\"\");\r\n }\r\n }\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n {message} \r\n \r\n
    \r\n \r\n \r\n {message1} \r\n \r\n \r\n
    \r\n
    \r\n \r\n Back\r\n
    \r\n
    \r\n \r\n Download Report\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {({ zoomIn, zoomOut, resetTransform, ...rest }) => (\r\n \r\n
    \r\n zoomIn()} className=\"zoomIn\" title=\"Zoom In\">\r\n zoomOut()} className=\"zoomOut\" title= \"Zoom Out\">\r\n resetTransform()} className=\"resetZoom\" title=\"Reset Zoom\">\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
    \r\n
    \r\n \r\n Please validate the extracted details\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {showUser ? (\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n \r\n {\r\n e.target.value = e.target.value.slice(0,5)\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {showUser ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n

    \r\n {(!readonly) && (\r\n
    \r\n \r\n {acceptMsg(\"save\");}} \r\n style={\r\n (accept || acceptanceStatus || readonly) ? { display: \"none\" } : { display: \"block\",background: \"#0C629B 0% 0% no-repeat padding-box\",textTransform: \"capitalize\",\r\n background: \"#0C629B 0% 0% no-repeat padding-box\",\r\n border: \"1px solid #0C629B\",\r\n borderRadius: \"4px\",\r\n color: \"#FFFFFF\",\r\n width: \"8.4vw\",\r\n height: \"2.29vw\",\r\n marginRight: \"1.3vw\",\r\n font: \"normal normal normal 0.78vw Helvetica\", \r\n }}\r\n >\r\n Save\r\n \r\n {acceptMsg(\"Accept\");}} \r\n style={\r\n (accept || acceptanceStatus || readonly) ? { display: \"none\" } : { display: \"block\",background: \"#0C629B 0% 0% no-repeat padding-box\",textTransform: \"capitalize\",\r\n border: \"1px solid #0C629B\",\r\n borderRadius: \"4px\",\r\n color: \"#FFFFFF\",\r\n width: \"8.4vw\",\r\n height: \"2.29vw\",\r\n marginRight: \"1.3vw\",\r\n font: \"normal normal normal 0.78vw Helvetica\", }\r\n }\r\n >\r\n Accept\r\n \r\n \r\n Reject\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Submit\r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default observer(Preview);\r\n","import React, { Component } from \"react\";\r\nimport { MuiThemeProvider, Button } from \"@material-ui/core\";\r\nimport AppHeader from \"../../AppHeader/AppHeader\";\r\nimport AppFooter from \"../../AppFooter/AppFooter\";\r\nimport ErrorBoundary from \"../../Errorlog/ErrorBoundary\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport Suggestions from \"../ProjectDetails/Suggestions\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport axios from \"axios\";\r\nimport { toJS, observer } from \"mobx\";\r\nimport UserStore from \"../../UserStore\";\r\nimport BreadCrumbs from \"../../Upload/BreadCrumbs/BreadCrumbs\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport TextFieldMui from \"@material-ui/core/TextField\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport CircleChecked from \"@material-ui/icons/CheckCircleRounded\";\r\nimport Cancel from \"@material-ui/icons/Cancel\";\r\nimport \"./EditWorkSpaceStamp.scss\";\r\nimport LoadingOverlay from \"react-loading-overlay\";\r\n\r\n// Importing toastify module\r\nimport { toast } from \"react-toastify\";\r\n\r\n// Import toastify css file\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\n\r\n// toast-configuration method, it is compulsory method.\r\ntoast.configure();\r\n\r\nconst styles = (muiTheme) => ({\r\n label: {\r\n \"&$erroredLabel\": {\r\n color: \"black\",\r\n },\r\n },\r\n erroredLabel: {},\r\n});\r\n\r\nconst API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\nvar result;\r\nconst TextField = withStyles(styles)(function TextField({ classes, ...props }) {\r\n return (\r\n \r\n );\r\n});\r\nexport default class EditWorkSpaceStamp extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.wrapperRef = React.createRef();\r\n this.suggestionOutClickHandler = this.suggestionOutClickHandler.bind(this);\r\n const editWorkSpaceData = toJS(UserStore.editRow).length\r\n ? toJS(UserStore.editRow)[0]\r\n : localStorage.getItem(\"EditWSData\")\r\n ? JSON.parse(localStorage.getItem(\"EditWSData\"))\r\n : [];\r\n if (!toJS(UserStore.editRow).length && localStorage.getItem(\"EditWSData\")) {\r\n UserStore.addRowdata(JSON.parse(localStorage.getItem(\"EditWSData\")));\r\n }\r\n this.state = {\r\n list: [],\r\n open: false,\r\n workspace: false,\r\n projectname: false,\r\n projectNameNew: \"\",\r\n modelNameNew: \"\",\r\n WorkspaceNameNew: \"\",\r\n WorkspaceIdNew: \"\",\r\n workSpaceMessage: \"\",\r\n projectNameMessage: \"\",\r\n modelNameMessage: \"\",\r\n usersMessage: \"\",\r\n workSpaceError: false,\r\n projectNameError: false,\r\n modelNameError: false,\r\n usersError: false,\r\n count: -1,\r\n notification: [],\r\n role: \"Admin\",\r\n roles: [],\r\n rolearray: [],\r\n dropdownvalue: \"Admin\",\r\n suggestions: [],\r\n modifysuggestion: [],\r\n showSuggestions: false,\r\n q: \"\",\r\n personName: [],\r\n useradd: [],\r\n show: false,\r\n OCRshow: false,\r\n ocrweightage: [],\r\n lineNum: \"\",\r\n lineNumThreshold: \"\",\r\n isoNum: \"\",\r\n isoNumThreshold: \"\",\r\n sheetNum: \"\",\r\n sheetNumThreshold: \"\",\r\n revNum: \"\",\r\n revNumThreshold: \"\",\r\n tootlTipErrorMessage: \"\",\r\n tooltipError: false,\r\n userEmpty: false,\r\n delete: false,\r\n deleteUsers: \"\",\r\n editRow: editWorkSpaceData,\r\n workSpacePopupError: false,\r\n clientPopupError: false,\r\n modelPopupError: false,\r\n emptyUser: false,\r\n loading: true,\r\n };\r\n }\r\n\r\n handleCloseEmptyUser = () => {\r\n this.setState({ workSpacePopupError: false });\r\n this.setState({ clientPopupError: false });\r\n this.setState({ modelPopupError: false });\r\n this.setState({ userEmpty: false, duplicateData: false, emptyUser: false });\r\n };\r\n\r\n componentDidMount() {\r\n this.fetchUserTypes();\r\n this.fetchOCRWeightages();\r\n\r\n document.addEventListener(\"mousedown\", this.suggestionOutClickHandler);\r\n this.setState({\r\n WorkspaceNameNew: toJS(this.state.editRow.workSpaceName),\r\n projectNameNew: toJS(this.state.editRow.projectName),\r\n modelNameNew: toJS(this.state.editRow.aiModelId),\r\n });\r\n let rolesedit = [];\r\n \r\n if (UserStore.setDetectionQuery == \"\") {\r\n UserStore.SetDetectionQuery(toJS(this.state.editRow.detectionExpression));\r\n localStorage.setItem(\r\n \"SetDetectionQuery\",\r\n toJS(this.state.editRow.detectionExpression)\r\n );\r\n }\r\n\r\n rolesedit = toJS(this.state.editRow.workSpaceUsers);\r\n\r\n for (var i = 0; i < rolesedit.length; i++) {\r\n if (rolesedit[i].roleId == 1) {\r\n rolesedit[i].roleId = \"Admin\";\r\n } else if (rolesedit[i].roleId == 2) {\r\n rolesedit[i].roleId = \"Read / Write\";\r\n } else {\r\n rolesedit[i].roleId = \"Read Only\";\r\n }\r\n }\r\n this.setState({\r\n useradd: rolesedit,\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener(\"mousedown\", this.suggestionOutClickHandler);\r\n }\r\n\r\n fetchOCRWeightages = async () => {\r\n let thresholdArray = [];\r\n await axios\r\n .get(\r\n API_Endpoint +\r\n `/GetIsometricFieldRules?workSpaceId=${toJS(\r\n UserStore.editRow[0].workSpaceId\r\n )}`\r\n )\r\n .then((res) => {\r\n const rows1 = res.data;\r\n thresholdArray = [...rows1.isometricFieldThreshold];\r\n this.setState({ ocrweightage: thresholdArray });\r\n thresholdArray.map((items) => {\r\n if (items.fieldId === 1) {\r\n this.setState({\r\n lineNum: items.ocrWeightage,\r\n lineNumThreshold: items.confidenceThreshold,\r\n });\r\n } else if (items.fieldId === 2) {\r\n this.setState({\r\n isoNum: items.ocrWeightage,\r\n isoNumThreshold: items.confidenceThreshold,\r\n });\r\n } else if (items.fieldId === 3) {\r\n this.setState({\r\n sheetNum: items.ocrWeightage,\r\n sheetNumThreshold: items.confidenceThreshold,\r\n });\r\n } else {\r\n this.setState({\r\n revNum: items.ocrWeightage,\r\n revNumThreshold: items.confidenceThreshold,\r\n });\r\n }\r\n });\r\n });\r\n };\r\n\r\n fetchUserTypes = async () => {\r\n const responsecheck = await axios.get(API_Endpoint + `/GetWorkSpaces`);\r\n const wID = this.state.editRow.workSpaceId;\r\n result = responsecheck.data.filter(function (v, i) {\r\n return v.workSpaceId !== wID;\r\n });\r\n if (responsecheck.data) {\r\n this.setState({\r\n loading: false,\r\n });\r\n }\r\n const dropDownValues = await axios\r\n .get(`${API_Endpoint}/GetApplicationRoles`)\r\n .then((res) => {\r\n if (res.status === 200) {\r\n this.state.roles = res.data;\r\n this.setState({\r\n roles: res.data,\r\n });\r\n } else if (\r\n res.status === 400 ||\r\n res.status === 401 ||\r\n res.status === 404 ||\r\n res.status === 408\r\n ) {\r\n toast.error(\"service error\", {\r\n // Set to 5sec\r\n position: toast.POSITION.TOP_LEFT,\r\n autoClose: 5000,\r\n });\r\n }\r\n });\r\n };\r\n\r\n handleusers = (e) => {\r\n this.setState({\r\n list: this.state.list.push(e.target.value),\r\n });\r\n };\r\n\r\n createUseroptions = (e) => {\r\n return this.state.roles.map((option) => (\r\n \r\n ));\r\n };\r\n\r\n savedata = async () => {\r\n for (var i in this.state.useradd) {\r\n if (this.state.useradd[i].roleId == \"Admin\") {\r\n this.state.useradd[i].roleId = 1;\r\n } else if (this.state.useradd[i].roleId == \"Read / Write\") {\r\n this.state.useradd[i].roleId = 2;\r\n } else {\r\n this.state.useradd[i].roleId = 3;\r\n }\r\n }\r\n const data = {\r\n workSpaceId: this.state.editRow.workSpaceId,\r\n projectName: this.state.projectNameNew,\r\n workSpaceName: this.state.WorkspaceNameNew,\r\n aiModelId: this.state.modelNameNew,\r\n workSpaceUsers: this.state.useradd,\r\n detectionExpression: UserStore.setDetectionQuery,\r\n };\r\n\r\n // API: Send edited details for workspace\r\n // await axios.post(API_Endpoint + `/EditWorkSpace`, data).then((res) => {\r\n // if (res.status === 200) {\r\n // this.props.history.push(`/Workspace`);\r\n // }\r\n // });\r\n };\r\n\r\n handleSave = (e) => {\r\n const allValue = [\r\n this.state.lineNum,\r\n this.state.lineNumThreshold,\r\n this.state.isoNum,\r\n this.state.isoNumThreshold,\r\n this.state.sheetNum,\r\n this.state.sheetNumThreshold,\r\n this.state.revNum,\r\n this.state.revNumThreshold,\r\n ];\r\n if (\r\n allValue.every((value) => {\r\n return value !== \"\";\r\n })\r\n ) {\r\n const OCRapiData = [];\r\n this.setState({\r\n OCRshow: false,\r\n OCRmessage: false,\r\n ocrweightage: [\r\n {\r\n fieldId: 1,\r\n ConfidenceThreshold: Number(this.state.lineNumThreshold).toFixed(1),\r\n OCRWeightage: Number(this.state.lineNum).toFixed(1),\r\n },\r\n {\r\n fieldId: 2,\r\n ConfidenceThreshold: Number(this.state.isoNumThreshold).toFixed(1),\r\n OCRWeightage: Number(this.state.isoNum).toFixed(1),\r\n },\r\n {\r\n fieldId: 3,\r\n ConfidenceThreshold: Number(this.state.sheetNumThreshold).toFixed(\r\n 1\r\n ),\r\n OCRWeightage: Number(this.state.sheetNum).toFixed(1),\r\n },\r\n {\r\n fieldId: 4,\r\n ConfidenceThreshold: Number(this.state.revNumThreshold).toFixed(1),\r\n OCRWeightage: Number(this.state.revNum).toFixed(1),\r\n },\r\n ],\r\n });\r\n } else {\r\n this.setState({\r\n OCRmessage: true,\r\n });\r\n }\r\n };\r\n\r\n continue = async (e) => {\r\n e.preventDefault();\r\n const data = {\r\n workSpaceId: this.state.editRow.workSpaceId,\r\n projectName: this.state.projectNameNew,\r\n workSpaceName: this.state.WorkspaceNameNew,\r\n aiModelId: this.state.modelNameNew,\r\n workSpaceUsers: this.state.useradd,\r\n detectionExpression: UserStore.setDetectionQuery,\r\n };\r\n\r\n let value = 0;\r\n\r\n // input validations\r\n if (\r\n data.projectName === \"\" &&\r\n data.workSpaceName === \"\" &&\r\n data.modelName === \"\" &&\r\n this.state.useradd.length === 0 &&\r\n this.state.ocrweightage.length === 0 &&\r\n value === 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message:\r\n \"Workspace Name, Client name and Model Name are required. Please provide the details and select at least one user and add OCR Weightage to create new Project Workspace\",\r\n });\r\n } else if (\r\n data.workSpaceName === \"\" &&\r\n data.projectName === \"\" &&\r\n data.modelName === \"\" &&\r\n this.state.useradd.length !== 0 &&\r\n this.state.ocrweightage.length !== 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message: \"Workspace Name, Client name and Model Name are required.\",\r\n });\r\n } else if (\r\n data.workSpaceName === \"\" &&\r\n data.projectName !== \"\" &&\r\n data.modelName !== \"\" &&\r\n this.state.useradd.length !== 0 &&\r\n this.state.ocrweightage.length !== 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message: \"Workspace Name is required.\",\r\n });\r\n } else if (\r\n data.workSpaceName !== \"\" &&\r\n data.projectName === \"\" &&\r\n data.modelName !== \"\" &&\r\n this.state.useradd.length !== 0 &&\r\n this.state.ocrweightage.length !== 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message: \"Client Name is required.\",\r\n });\r\n } else if (\r\n data.workSpaceName !== \"\" &&\r\n data.projectName !== \"\" &&\r\n data.modelName === \"\" &&\r\n this.state.useradd.length !== 0 &&\r\n this.state.ocrweightage.length !== 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message: \"Model Name is required.\",\r\n });\r\n } else if (\r\n data.workSpaceName !== \"\" &&\r\n data.projectName !== \"\" &&\r\n data.modelName !== \"\" &&\r\n this.state.useradd.length === 0 &&\r\n this.state.ocrweightage.length !== 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message: \"select at least one user to Edit Project Workspace\",\r\n });\r\n }\r\n // } else if (\r\n // data.workSpaceName !== \"\" &&\r\n // data.projectName !== \"\" &&\r\n // data.modelName !== \"\" &&\r\n // this.state.useradd.length !== 0 &&\r\n // this.state.ocrweightage.length === 0\r\n // ) {\r\n // value = value + 1;\r\n // this.setState({\r\n // userEmpty: true,\r\n // message: \"Add OCR Weightage to Edit Project Workspace\",\r\n // });\r\n // } else if (\r\n else if (\r\n data.workSpaceName !== \"\" &&\r\n data.projectName === \"\" &&\r\n data.modelName !== \"\" &&\r\n this.state.useradd.length === 0 &&\r\n this.state.ocrweightage.length !== 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message:\r\n \"Client name and one user is required to create new Project Workspace\",\r\n });\r\n } else if (\r\n data.workSpaceName === \"\" &&\r\n data.projectName !== \"\" &&\r\n data.modelName !== \"\" &&\r\n this.state.useradd.length === 0 &&\r\n this.state.ocrweightage.length !== 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message:\r\n \"Project Workspace name and one user is required to create new Project Workspace\",\r\n });\r\n } else if (\r\n data.workSpaceName !== \"\" &&\r\n data.projectName !== \"\" &&\r\n data.modelName === \"\" &&\r\n this.state.useradd.length === 0 &&\r\n this.state.ocrweightage.length !== 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message:\r\n \"Model Name and one user is required to create new Project Workspace\",\r\n });\r\n } else if (\r\n data.workSpaceName !== \"\" &&\r\n data.projectName === \"\" &&\r\n data.modelName !== \"\" &&\r\n this.state.useradd.length !== 0 &&\r\n this.state.ocrweightage.length === 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message:\r\n \"Client name and OCR Weightage is required to create new Project Workspace\",\r\n });\r\n } else if (\r\n data.workSpaceName === \"\" &&\r\n data.projectName !== \"\" &&\r\n data.modelName !== \"\" &&\r\n this.state.useradd.length !== 0 &&\r\n this.state.ocrweightage.length === 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message:\r\n \"Project Workspace name and OCR Weightage is required to create new Project Workspace\",\r\n });\r\n } else if (\r\n data.workSpaceName !== \"\" &&\r\n data.projectName !== \"\" &&\r\n data.modelName === \"\" &&\r\n this.state.useradd.length !== 0 &&\r\n this.state.ocrweightage.length === 0\r\n ) {\r\n value = value + 1;\r\n this.setState({\r\n userEmpty: true,\r\n message:\r\n \"Model Name and OCR Weightage is required to create new Project Workspace\",\r\n });\r\n } else {\r\n const checkworkspacename = this.state.WorkspaceNameNew;\r\n const checkprojectname = this.state.projectNameNew;\r\n const checkmodelname = this.state.modelNameNew;\r\n const data1 = result.filter(\r\n (item) =>\r\n item.projectName == checkprojectname &&\r\n item.workSpaceName == checkworkspacename &&\r\n item.modelName == checkmodelname\r\n );\r\n\r\n if (data1.length > 0) {\r\n this.setState({\r\n userEmpty: true,\r\n duplicateData: true,\r\n });\r\n } else {\r\n this.setState({\r\n workSpaceError: false,\r\n projectNameError: false,\r\n modelNameError: false,\r\n workSpaceMessage: \"\",\r\n projectNameMessage: \"\",\r\n modelNameMessage: \"\",\r\n });\r\n if (this.state.WorkspaceNameNew === \"\") {\r\n this.setState({ workSpacePopupError: true });\r\n }\r\n if (this.state.projectNameNew === \"\") {\r\n this.setState({ clientPopupError: true });\r\n }\r\n if (this.state.modelNameNew === \"\") {\r\n this.setState({ modelPopupError: true });\r\n }\r\n\r\n if (this.state.useradd.length === 0) {\r\n this.setState({ userEmpty: true, emptyUser: true });\r\n } else {\r\n for (var i in this.state.useradd) {\r\n if (this.state.useradd[i].roleId == \"Admin\") {\r\n this.state.useradd[i].roleId = 1;\r\n } else if (this.state.useradd[i].roleId == \"Read / Write\") {\r\n this.state.useradd[i].roleId = 2;\r\n } else {\r\n this.state.useradd[i].roleId = 3;\r\n }\r\n }\r\n if (this.state.WorkspaceNameNew == \"\") {\r\n this.state.WorkspaceNameNew = this.state.editRow.workSpaceName;\r\n } else if (this.state.projectNameNew == \"\") {\r\n this.state.projectNameNew = this.state.editRow.projectName;\r\n } else if (this.state.modelNameNew == \"\") {\r\n this.state.modelNameNew = this.state.editRow.aiModelId;\r\n }\r\n const data = {\r\n workSpaceId: this.state.editRow.workSpaceId,\r\n projectName: this.state.projectNameNew,\r\n workSpaceName: this.state.WorkspaceNameNew,\r\n aiModelId: this.state.modelNameNew,\r\n workSpaceUsers: this.state.useradd,\r\n detectionExpression: UserStore.setDetectionQuery,\r\n };\r\n\r\n UserStore.setEditWorkspacedata(data);\r\n localStorage.setItem(\"setEditWorkspacedata\", JSON.stringify(data));\r\n }\r\n if (value === 0) {\r\n if (this.state.editRow.isIsometricTickBased) {\r\n this.props.history.push(\r\n `${this.props.match.path}/RegularExpression`\r\n );\r\n // const data = toJS(UserStore.editWorkspacedata);\r\n // await axios.post(API_Endpoint + `/EditWorkSpace`, data);\r\n } else {\r\n this.props.history.push(\r\n `${this.props.match.path}/SetDetectionlogic`\r\n );\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ open: false, projectname: false, workspace: false });\r\n };\r\n\r\n // Function: Add new user to the workspace\r\n AddUser = () => {\r\n this.setState({ tooltipError: false, tootlTipErrorMessage: \"\" });\r\n if (this.state.personName.length === 0) {\r\n this.setState({\r\n tooltipError: true,\r\n tootlTipErrorMessage: \"Kindly add a valid email address\",\r\n });\r\n } else {\r\n for (var i = 0; i < this.state.personName.length; i++) {\r\n const userdata = {\r\n enterpriseId: this.state.personName[i],\r\n roleId: this.state.role,\r\n };\r\n this.state.useradd.push(userdata);\r\n UserStore.editRow[0].workSpaceUsers.push(userdata);\r\n this.setState({\r\n role: this.state.dropdownvalue,\r\n personName: [],\r\n suggestions: [],\r\n });\r\n }\r\n\r\n function getUnique(arr, index) {\r\n const unique = arr\r\n .map((e) => e[index])\r\n // store the keys of the unique objects\r\n .map((e, i, final) => final.indexOf(e) === i && i)\r\n\r\n // eliminate the dead keys & store unique objects\r\n .filter((e) => arr[e])\r\n .map((e) => arr[e]);\r\n return unique;\r\n }\r\n this.state.useradd.reverse();\r\n this.state.useradd = getUnique(this.state.useradd, \"enterpriseId\");\r\n document.getElementById(\"search-box1\").value = \"\";\r\n this.setState({\r\n show: true,\r\n q: \"\",\r\n });\r\n }\r\n };\r\n\r\n //-----------------------------------Dropdown for role change------------------------------\r\n\r\n handleRoleChange = (e) => {\r\n if (e.target.value === \"Admin\") {\r\n this.state.role = \"Admin\";\r\n this.setState({\r\n dropdownvalue: e.target.value,\r\n role: \"Admin\",\r\n });\r\n this.state.dropdownvalue = e.target.value;\r\n } else if (e.target.value === \"Read / Write\") {\r\n this.state.role = \"Read / Write\";\r\n this.setState({\r\n dropdownvalue: e.target.value,\r\n role: \"Read / Write\",\r\n });\r\n } else if (e.target.value === \"Read Only\") {\r\n this.state.role = \"Read Only\";\r\n this.setState({\r\n dropdownvalue: e.target.value,\r\n role: \"Read Only\",\r\n });\r\n }\r\n this.state.rolearray.push(e.target.value);\r\n };\r\n\r\n //---------------------get the suggestions----------------------------------------\r\n\r\n suggestionsCall = async (q) => {\r\n const res = await axios.get(\r\n `${process.env.REACT_APP_API_GETUSERLIST}/GetUsersList?username=${q}`\r\n );\r\n this.setState({\r\n suggestions: res.data,\r\n });\r\n this.state.modifysuggestion = this.state.suggestions;\r\n this.filterSearchText();\r\n };\r\n\r\n onSearchHandler = () => {\r\n this.setState({ showSuggestions: false });\r\n };\r\n\r\n onChangeHandler1 = () => {\r\n let searchTerm = \"\";\r\n searchTerm = document.getElementById(\"search-box1\").value.toLowerCase();\r\n this.setState({\r\n q: searchTerm,\r\n });\r\n if (searchTerm.length === 3) {\r\n this.suggestionsCall(searchTerm);\r\n this.setState({\r\n showSuggestions: true,\r\n });\r\n }\r\n this.filterSearchText();\r\n };\r\n\r\n pasteFunction = (e) => {\r\n let searchTerm = \"\";\r\n searchTerm = e.clipboardData.getData(\"text\").toLowerCase();\r\n this.setState({\r\n q: searchTerm,\r\n personName: [],\r\n });\r\n let substring = searchTerm.substring(0, 3);\r\n this.suggestionsCall(substring);\r\n this.filterSearchText();\r\n };\r\n\r\n filterSearchText = () => {\r\n let searchTerm = \"\";\r\n searchTerm = document.getElementById(\"search-box1\").value.toLowerCase();\r\n for (var i = 0; i < this.state.useradd.length; i++) {\r\n if (this.state.useradd[i].enterpriseId === searchTerm) {\r\n this.setState({\r\n tooltipError: true,\r\n tootlTipErrorMessage: \"override the user role\",\r\n });\r\n }\r\n }\r\n this.state.suggestions = this.state.modifysuggestion;\r\n const updatedRows = this.state.suggestions.filter(\r\n (row) =>\r\n row.mail.toLowerCase().includes(searchTerm) ||\r\n row.displayName.toLowerCase().includes(searchTerm)\r\n );\r\n\r\n this.setState({ suggestions: updatedRows });\r\n if (updatedRows.length == 1 && searchTerm.includes(\"@petrofac.com\")) {\r\n if (Object.values(updatedRows[0]).includes(searchTerm)) {\r\n document.getElementById(\"search-box1\").focus();\r\n this.state.personName[0] = searchTerm;\r\n return true;\r\n }\r\n }\r\n };\r\n onEnterButton = (event) => {\r\n if (event.keyCode === 13) {\r\n this.onSearchHandler();\r\n }\r\n };\r\n //--------------------------close dialog----------------------------\r\n handleClose = () => {\r\n this.setState({\r\n show: false,\r\n OCRshow: false,\r\n });\r\n };\r\n\r\n inputValidation = () => {\r\n let value = 0;\r\n const data = {\r\n workSpaceId: this.state.editRow.workSpaceId,\r\n projectName: this.state.projectNameNew,\r\n workSpaceName: this.state.WorkspaceNameNew,\r\n aiModelId: this.state.modelNameNew,\r\n };\r\n\r\n if (/[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]+/.test(data.workSpaceName)) {\r\n value = value + 1;\r\n this.setState({\r\n workSpaceError: true,\r\n workSpaceMessage:\r\n \"Workspace name should not contain special characters\",\r\n });\r\n }\r\n if (/[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]+/.test(data.projectName)) {\r\n value = value + 1;\r\n this.setState({\r\n projectNameError: true,\r\n projectNameMessage:\r\n \"Project name should not contain special characters\",\r\n });\r\n }\r\n if (/[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]+/.test(data.aiModelId)) {\r\n value = value + 1;\r\n this.setState({\r\n modelNameError: true,\r\n modelNameMessage: \"Model name should not contain special characters\",\r\n });\r\n }\r\n if (value === 0) {\r\n this.setState({\r\n workSpaceError: false,\r\n workSpaceMessage: \"\",\r\n projectNameError: false,\r\n projectNameMessage: \"\",\r\n modelNameError: false,\r\n modelNameMessage: \"\",\r\n });\r\n }\r\n };\r\n\r\n handleChange = (e) => {\r\n if (e.target.id === \"1\") {\r\n this.setState({\r\n WorkspaceNameNew: e.target.value,\r\n });\r\n if (e.target.value !== \"\") {\r\n this.setState({\r\n message: \"\",\r\n });\r\n }\r\n } else if (e.target.id === \"2\") {\r\n this.setState({\r\n projectNameNew: e.target.value,\r\n });\r\n if (e.target.value !== \"\") {\r\n this.setState({\r\n message: \"\",\r\n });\r\n }\r\n } else {\r\n this.setState({\r\n modelNameNew: e.target.value,\r\n });\r\n if (e.target.value !== \"\") {\r\n this.setState({\r\n message: \"\",\r\n });\r\n }\r\n }\r\n };\r\n\r\n // -------------------------Start:Function: Suggestions select------------------\r\n suggestionClickHandler = (s) => {\r\n document.getElementById(\"search-box1\").value = s;\r\n\r\n for (var i = 0; i < this.state.useradd.length; i++) {\r\n if (this.state.useradd[i].enterpriseId === s) {\r\n this.setState({\r\n tooltipError: true,\r\n tootlTipErrorMessage: \"override the user role\",\r\n });\r\n }\r\n }\r\n this.state.personName[0] = s;\r\n this.setState({\r\n showSuggestions: false,\r\n });\r\n };\r\n // -------------------------End:Function: Suggestions select------------------\r\n\r\n suggestionOutClickHandler = (event) => {\r\n if (this.wrapperRef.current) {\r\n if (!this.wrapperRef.current.contains(event.target)) {\r\n this.setState({\r\n showSuggestions: false,\r\n });\r\n }\r\n }\r\n };\r\n\r\n // ------------------------Start:Function: Delete user in workspace------------------\r\n handlePurge = (e, user) => {\r\n const updatedRows = this.state.useradd.filter(\r\n (row) => row.enterpriseId !== user.enterpriseId\r\n );\r\n this.setState({\r\n useradd: updatedRows,\r\n delete: false,\r\n });\r\n };\r\n // ------------------------End:Function: Delete user in workspace------------------\r\n\r\n handleCloseDialog = () => {\r\n this.setState({ delete: false });\r\n };\r\n\r\n handleDelete = (e, user) => {\r\n this.setState({ delete: true, deleteUsers: user });\r\n };\r\n\r\n render() {\r\n let suggestionDiv;\r\n if (this.state.showSuggestions) {\r\n suggestionDiv = (\r\n this.suggestionClickHandler(s)}\r\n >\r\n );\r\n } else {\r\n suggestionDiv =
    ;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n

    Edit Project Workspace

    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n \r\n\r\n
    \r\n this.onEnterButton(e)}\r\n >
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n Tick Based{\" \"}\r\n \r\n
    \r\n {this.state.editRow.isIsometricTickBased ? \r\n \r\n Custom Vision processing required ?\r\n \r\n \r\n \r\n \r\n \r\n Yes{\" \"}\r\n \r\n \r\n
    \r\n : <>}\r\n\r\n {this.state.editRow.customVisionProcessingRequired ? \r\n
    \r\n \r\n \r\n
    \r\n : <>} \r\n\r\n

    \r\n
    \r\n {\r\n this.setState({ show: true });\r\n }}\r\n >\r\n Edit User\r\n \r\n
    \r\n\r\n
    \r\n {\r\n this.setState({ OCRshow: true });\r\n }}\r\n >\r\n Edit OCR Weightage\r\n \r\n
    \r\n\r\n
    \r\n {this.state.list.join(\",\")}\r\n {this.val}\r\n
    \r\n\r\n
    \r\n {/* {!this.state.editRow.isIsometricTickBased &&\r\n \r\n Save \r\n } */}\r\n \r\n Next\r\n \r\n this.props.history.push(\"/Workspace\")}\r\n style={{\r\n background: \"#ffffff\",\r\n border: \"0.05vw solid #0c629b\",\r\n borderRadius: \"0.15vw\",\r\n width: \"8.4vw\",\r\n height: \"2.29vw\",\r\n marginTop: \"-2vw\",\r\n padding: \"0.15vw 0\",\r\n fontSize: \"0.9vw\",\r\n color: \"#0c629b\",\r\n textTransform: \"none\",\r\n }}\r\n >\r\n Cancel\r\n \r\n
    \r\n \r\n \r\n \r\n {this.state.message}\r\n {this.state.duplicateData ? (\r\n

    Project workspace name already exists. exists.

    \r\n ) : (\r\n \"\"\r\n )}\r\n {this.state.emptyUser &&\r\n !(\r\n this.state.workSpacePopupError ||\r\n this.state.clientPopupError ||\r\n this.state.modelPopupError\r\n ) ? (\r\n

    \r\n Please select at least one user to Edit Project\r\n Workspace{\" \"}\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n\r\n \r\n \r\n User Details\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n {\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.useradd.map((items) => (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n
    \r\n this.onEnterButton(e)}\r\n style={{ marginTop: \"1%\" }}\r\n >\r\n
    \r\n \r\n {\r\n this.pasteFunction(e);\r\n }}\r\n onBlur={(e) => {}}\r\n onClick={() => {\r\n if (this.state.suggestions.length > 0)\r\n this.setState({ showSuggestions: true });\r\n }}\r\n error={this.state.tooltipError}\r\n helperText={this.state.tootlTipErrorMessage}\r\n style={{ marginTop: \"5%\" }}\r\n />\r\n \r\n {suggestionDiv}\r\n
    \r\n \r\n
    \r\n \r\n {this.state.roles.map((option) => (\r\n \r\n {option.roleName}\r\n \r\n ))}\r\n \r\n \r\n

    \r\n \r\n \r\n \r\n

    \r\n
    {items.enterpriseId}{items.roleId}\r\n \r\n {\r\n this.handleDelete(e, items);\r\n }}\r\n src=\"/images/icon_delete.svg\"\r\n style={{ height: \"1.3vw\" }}\r\n />\r\n \r\n
    \r\n }\r\n
    \r\n \r\n \r\n Ok\r\n \r\n \r\n \r\n\r\n \r\n \r\n OCR Weightage\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n
    \r\n \r\n Line No\r\n \r\n {this.setState({lineNum: e.target.value})}}\r\n style={{ paddingRight: \"1vw\" }}\r\n />\r\n {this.setState({lineNumThreshold: e.target.value})}}\r\n />\r\n
    \r\n
    \r\n \r\n Isometric No\r\n \r\n {this.setState({isoNum: e.target.value})}}\r\n style={{ paddingRight: \"1vw\" }}\r\n />\r\n {this.setState({isoNumThreshold: e.target.value})}}\r\n />\r\n
    \r\n\r\n
    \r\n \r\n Sheet No\r\n \r\n {this.setState({sheetNum: e.target.value})}}\r\n style={{ paddingRight: \"1vw\" }}\r\n />\r\n {this.setState({sheetNumThreshold: e.target.value})}}\r\n />\r\n
    \r\n
    \r\n \r\n Rev No\r\n \r\n {this.setState({revNum: e.target.value})}}\r\n style={{ paddingRight: \"1vw\" }}\r\n />\r\n {this.setState({revNumThreshold: e.target.value})}}\r\n />\r\n
    \r\n \r\n Add OCR Weightage and Threshold before Save\r\n \r\n
    \r\n \r\n \r\n Save\r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
    \r\n Do you want to delete the user?\r\n
    \r\n
    \r\n \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n this.handlePurge(e, this.state.deleteUsers)}\r\n style={{\r\n padding: \"0\",\r\n background: \"#0C629B\",\r\n color: \"white\",\r\n position: \"absolute\",\r\n right: \"2%\",\r\n }}\r\n >\r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n\r\n \r\n \r\n Add Users\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n {\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.useradd.map((items) => (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n
    UserRoleDelete
    {items.enterpriseId}{items.roleId}\r\n {\r\n if (\r\n window.confirm(\r\n \"Are you sure you wish to remove this user\"\r\n )\r\n )\r\n this.handlePurge(e, items);\r\n }}\r\n src=\"/images/icon_delete.svg\"\r\n style={{ height: \"1.3vw\" }}\r\n />\r\n
    \r\n }\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport \"./PagerPID.scss\";\r\n\r\nexport default function Pager(props) {\r\n let [selectedPage, setSelectedPage] = useState(props.currentPage);\r\n let totalPages = Math.ceil(props.resultCount / props.resultsPerPage);\r\n\r\n useEffect(\r\n (_) => {\r\n setSelectedPage(props.currentPage);\r\n },\r\n [props]\r\n );\r\n\r\n//Used to update the Page Number\r\n function pagenumberUpdate(pageIndex) {\r\n setSelectedPage(pageIndex);\r\n props.setCurrentPageValue(pageIndex);\r\n }\r\n\r\n//Used to go to the Next Page\r\n function goToNextPage() {\r\n setSelectedPage(selectedPage + 1);\r\n props.setCurrentPageValue(selectedPage + 1);\r\n }\r\n\r\n//Used to go to the Previous Page\r\n function goToPreviousPage() {\r\n setSelectedPage(selectedPage - 1);\r\n props.setCurrentPageValue(selectedPage - 1);\r\n }\r\n\r\n var i = 0;\r\n var page_links = [];\r\n\r\n var minPage = 1;\r\n var maxPage = totalPages;\r\n\r\n if (selectedPage - minPage > 2) {\r\n minPage = selectedPage - 2;\r\n }\r\n\r\n if (maxPage - selectedPage > 2) {\r\n maxPage = parseInt(selectedPage) + 2;\r\n }\r\n\r\n for (i = minPage; i <= maxPage; i++) {\r\n if (i === parseInt(selectedPage)) {\r\n page_links.push(\r\n
  • \r\n {i}\r\n
  • \r\n );\r\n } else {\r\n page_links.push(\r\n
  • \r\n pagenumberUpdate(parseInt(e.currentTarget.id))}\r\n >\r\n {i}\r\n \r\n
  • \r\n );\r\n }\r\n }\r\n\r\n var previousButton;\r\n if (parseInt(selectedPage) === 1) {\r\n previousButton = (\r\n
  • \r\n Previous\r\n
  • \r\n );\r\n } else {\r\n previousButton = (\r\n
  • \r\n \r\n
  • \r\n );\r\n }\r\n var nextButton;\r\n if (parseInt(selectedPage) === totalPages) {\r\n nextButton = (\r\n
  • \r\n Next\r\n
  • \r\n );\r\n } else {\r\n nextButton = (\r\n
  • \r\n \r\n
  • \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n","import React, {useState} from 'react';\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Cancel from \"@material-ui/icons/Cancel\";\r\nimport CircleChecked from \"@material-ui/icons/CheckCircleRounded\";\r\n\r\nexport default function ConfirmationDialog(props) {\r\n\r\n return (\r\n \r\n \r\n \r\n
    Are you sure to delete?
    \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n props.handlePurge(e)} style={{\r\n padding: \"0\",\r\n background: \"#0C629B\",\r\n color: \"white\",\r\n position: \"absolute\",\r\n right: \"2%\",\r\n }}\r\n >\r\n {\" \"}\r\n {\" \"}\r\n \r\n
    \r\n
    \r\n )\r\n}","import React from \"react\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\n\r\nconst customContentStyle = {\r\n width: \"70%\",\r\n maxWidth: \"none\",\r\n};\r\n\r\nexport default function ShowUsers(props) {\r\n return (\r\n \r\n \r\n User Details\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n {\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.filtereduserData[0].workSpaceUsers.map(\r\n (items) => (\r\n \r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n
    UsersUser Group
    {items.enterpriseId}{props.handlerole(items.roleId)}
    \r\n }\r\n
    \r\n
    \r\n )\r\n}","import React, {useState, useEffect} from 'react';\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { browserRouter as Router, useHistory} from 'react-router-dom';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport ToolkitProvider, { CSVExport } from 'react-bootstrap-table2-toolkit';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport axios from 'axios';\r\nimport AppHeader from '../../AppHeader/AppHeader';\r\nimport AppFooter from '../../AppFooter/AppFooter';\r\nimport BreadCrumbs from '../../Upload/BreadCrumbs/BreadCrumbs';\r\n//import SettingsApplicationsIcon from '@material-ui/icons/SettingsApplications';\r\nimport { toJS } from \"mobx\";\r\nimport Pager from \"../../UploadPID/Process/ProcessGrid/PagerPID/PagerPID\";\r\nimport SettingsOutlinedIcon from '@material-ui/icons/SettingsOutlined';\r\nimport UserStore from '../../UserStore';\r\nimport LoadingOverlay from \"react-loading-overlay\";\r\nimport TextFieldMui from \"@material-ui/core/TextField\";\r\nimport { withStyles} from \"@material-ui/core/styles\";\r\nimport { toast } from \"react-toastify\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport ConfirmationDialog from '../../ConfirmationDialog/ConfirmationDialog';\r\nimport ShowUsers from '../ShowUsers';\r\nimport './workspaceDashboard.scss';\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nimport \"react-bootstrap-table2-paginator/dist/react-bootstrap-table2-paginator.min.css\";\r\nimport \"react-bootstrap-table2-filter/dist/react-bootstrap-table2-filter.min.css\";\r\nimport Moment from \"moment\";\r\ntoast.configure();\r\nconst { BlockBlobClient } = require(\"@azure/storage-blob\");\r\n\r\nconst customContentStyle = {\r\n width: \"70%\",\r\n maxWidth: \"none\",\r\n};\r\n\r\nconst styles = (muiTheme) => ({\r\n label: {\r\n \"&$erroredLabel\": {\r\n color: \"black\",\r\n },\r\n },\r\n erroredLabel: {},\r\n});\r\n\r\nconst TextField = withStyles(styles)(function TextField({ classes, ...props }) {\r\n return (\r\n \r\n );\r\n});\r\n\r\nexport default function WorkspaceDashboard() {\r\n const API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n const [loggedInuserEmail, setloggedInuserEmail] = useState(localStorage.getItem('userEmail') ? localStorage.getItem('userEmail') : UserStore.userEmail);\r\n const { ExportCSVButton } = CSVExport;\r\n const history = useHistory();\r\n const location = useLocation();\r\n var reportData = [];\r\n const row = [];\r\n const [pageSize,setPageSize] = useState(toJS(UserStore.perwsdPageData) === '' ? UserStore.setPerwsdPageData(\"10\") : localStorage.getItem(\"perwsdPageData\"));\r\n const [rows,setrows] = useState([]);\r\n const [globalAdmin,setglobalAdmin] = useState(false);\r\n const [isdelete,setdelete] = useState(false);\r\n const [deleteworkspaceid,setdeleteworkspaceid] = useState(\"\");\r\n const [loading, setloading] = useState(true);\r\n const [showUsers, setshowUsers] = useState(false);\r\n const [setShow, setSetShow] = useState(false);\r\n //const [firstLoad, setfirstLoad] = useState(false);\r\n const [filtereduserData, setfiltereduserData] = useState(\"\");\r\n const [pageChange, setPageChange] = useState(false);\r\n const [currentPage, setCurrentPage] = useState(\r\n Number(toJS(UserStore.skipwsdData)) / Number(toJS(UserStore.perwsdPageData)) + 1\r\n );\r\n const [skip, setSkip] = useState(\r\n new URLSearchParams(location.search).get(\"skip\") ?? toJS(UserStore.skipwsdData)\r\n );\r\n const [top, topValueUpdate] = useState(\r\n new URLSearchParams(location.search).get(\"top\") ??\r\n toJS(UserStore.perwsdPageData)\r\n );\r\n let resultsPerPage = top;\r\n UserStore.setSkipData(0);\r\n \r\n let storeData = toJS(UserStore.PIDwsData);\r\n let columns = [\r\n // { dataField: 'projectWorkSpaceId', text: \"Workspace ID\", sort: true},\r\n { dataField: 'projNo', text: 'Proposal/Project No.', width: \"200\"},\r\n { dataField: 'projName',width: \"200\", text: 'Project Name',csvFormatter: (cell, row, rowIndex) => `${cell.props.children.props.children.props.children}`},\r\n { dataField: 'clientName', text: 'Client Name' ,width: \"200\"},\r\n { dataField: 'location', text: 'Location', width: \"200\" },\r\n { dataField: 'PlantDesc', text: 'Plant Description', width: \"200\" },\r\n { dataField: 'mainOffice', text: 'Main Office', width: \"200\" },\r\n { dataField: 'satteliteOffice', text: 'Satellite Office', width: \"200\" },\r\n { dataField: 'startDate', width: \"100\", text: 'Start Date',csvFormatter: (cell, row, rowIndex) => ` ${cell}` },\r\n { dataField: 'finishDate',width: \"100\", text: 'Finish Date',csvFormatter: (cell, row, rowIndex) => ` ${cell}` },\r\n { dataField: 'users', width: \"100\", text: 'Users',csvFormatter: (cell, row, rowIndex) => ` ${cell.props.children.props.children.props.children}` },\r\n { dataField: 'moreActions', width: \"200\", text: 'More Actions',csvExport: false},\r\n ];\r\n UserStore.setPIDFilterRetain(false);\r\n\r\n async function checkGlobalAdmin() {\r\n const res = await axios.get(API_Endpoint + `/IsUserPidGlobalAdmin`);\r\n setglobalAdmin(res.data);\r\n UserStore.changePIDGlobalAdmin(res.data);\r\n GetPidWorkSpaces(res.data);\r\n // setglobalAdmin(true);\r\n }\r\n const MyExportCSV = (props) => {\r\n const handleClick = () => {\r\n if (reportData.length === 0) setSetShow(true);\r\n else{\r\n props.onExport();\r\n }\r\n };\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n Export Report\r\n \r\n \r\n
    \r\n );\r\n };\r\n\r\n const handleClicktoshowmodel = () => {\r\n setSetShow(true);\r\n };\r\n\r\n const handleDownloadClose = () => {\r\n setSetShow(false);\r\n };\r\n\r\n\r\n async function GetPidWorkSpaces() {\r\n const globalAdminResult = UserStore.PIDGlobalAdmin;\r\n try {\r\n axios.get(API_Endpoint + `/GetPidWorkSpaces`)\r\n .then(res => {\r\n if(res.data || res.status != 200) {\r\n setloading(false);\r\n }\r\n UserStore.setPIDworkspaceData(res.data);\r\n setloggedInuserEmail(localStorage.getItem('userEmail') ? localStorage.getItem('userEmail') : UserStore.userEmail);\r\n if(res.data) {\r\n const rows1 = res.data.reverse();\r\n {\r\n rows1.map((items, index) => { \r\n const findRole = items.workSpaceUsers.find(x => x.enterpriseId.toLowerCase() == localStorage.getItem('userEmail'));\r\n let roleIdentifier = 0;\r\n \r\n if(findRole){\r\n roleIdentifier = findRole.roleId;\r\n }\r\n const row2 = {\r\n projectWorkSpaceId: items.projectWorkSpaceId,\r\n projNameforedit: items.projectName,\r\n projNo: items.projectNumber,\r\n projName: \r\n \r\n
    {workSpaceClick(items, 1)}}>\r\n {items.projectName}\r\n
    \r\n
    ,\r\n clientName: items.clientName,\r\n location: items.location,\r\n PlantDesc: items.plantDescription,\r\n mainOffice:items.mainOffice,\r\n satteliteOffice:items.satelliteOffice,\r\n startDate: Moment(items.startDate).format(\"DD/MMM/YYYY\"),\r\n finishDate: Moment(items.finishDate).format(\"DD/MMM/YYYY\"),\r\n users: \r\n
    \r\n \r\n \r\n {items.workSpaceUsers.length}\r\n \r\n \r\n
    ,\r\n moreActions: \r\n
    \r\n \r\n
    \r\n
    {workSpaceClick(items, 0)}}\r\n style={{ marginTop: \"-5%\", marginLeft: \"5%\" }} >\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    {editClick(items)}} style={globalAdminResult ? {marginLeft: \"10%\", cursor: \"pointer\"} : roleIdentifier === 1 ? {marginLeft: \"10%\", cursor: \"pointer\"} : {marginLeft: \"10%\", opacity: \"0.5\", cursor: \"not-allowed\", pointerEvents: \"none\"}} >\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {handleDelete(e)}} />\r\n
    \r\n
    \r\n \r\n
    {handleSetting(items)}} classname=\"delete-icon-PID\" style={globalAdminResult ? { marginLeft: \"10%\", cursor: \"pointer\" } : { marginLeft: \"10%\", cursor: \"not-allowed\", opacity: \"0.5\",pointerEvents: \"none\" }}>\r\n \r\n
    \r\n
    \r\n
    \r\n }\r\n row.push(row2);\r\n })\r\n }\r\n }\r\n UserStore.setPIDwsData(row)\r\n setrows(row);\r\n reportData.push(row);\r\n const countOfData = Number(skip) + Number(top);\r\n const slicedData = row.slice(skip, countOfData);\r\n setrows(slicedData);\r\n })\r\n }\r\n catch (error) {\r\n if (error.response) {\r\n } else if (error.request) {\r\n \r\n } else {\r\n \r\n }\r\n } \r\n }\r\n \r\n useEffect( () => { \r\n let useremail = localStorage.getItem('userEmail');\r\n let perwsdPageData = localStorage.getItem(\"perwsdPageData\");\r\n // console.log(localStorage.getItem(perwsdPageData));\r\n localStorage.clear();\r\n localStorage.setItem('userEmail', useremail);\r\n localStorage.setItem(\"perwsdPageData\",perwsdPageData);\r\n localStorage.setItem(\"perPageData\",\"10\");\r\n UserStore.SetPerPageData(\"10\");\r\n UserStore.setUserforWorkspacePID([]);\r\n UserStore.setStampFilterRetain(false);\r\n UserStore.isreadOnlyPID(false);\r\n checkGlobalAdmin();\r\n UserStore.PIDToDate = \"\";\r\n UserStore.afterSearch = \"\";\r\n UserStore.selectedRowID=[];\r\n }, []);\r\n\r\n useEffect(() => {\r\n const countOfData = Number(skip) + Number(top);\r\n const slicedData = storeData.slice(skip, countOfData);\r\n setrows(slicedData);\r\n },[skip, currentPage, pageChange])\r\n\r\n // if (!firstLoad) {\r\n // setCurrentPage(1);\r\n // setSkip((1 - 1) * top);\r\n // UserStore.setSkipwsdData((1 - 1) * top);\r\n // setfirstLoad(true);\r\n // }\r\n\r\n function workSpaceClick(items, tab) {\r\n UserStore.addRowdataPID(items); \r\n let findRole = 1;\r\n if(localStorage.getItem('userEmail') != \"\") {\r\n const findRoleValue = items.workSpaceUsers.find((x) => x.enterpriseId.toLowerCase() === localStorage.getItem('userEmail'));\r\n if(findRoleValue){\r\n findRole = !UserStore.PIDGlobalAdmin ? findRoleValue.roleId : 1\r\n }\r\n // findRole = !globalAdmin ? (items.workSpaceUsers.find((x) => x.enterpriseId.toLowerCase() === localStorage.getItem('userEmail')).roleId) : 1;\r\n }\r\n if (findRole === 3) {\r\n UserStore.isreadOnlyPID(true);\r\n localStorage.setItem('isreadOnlyPID', true);\r\n } else {\r\n UserStore.isreadOnlyPID(false);\r\n localStorage.setItem('isreadOnlyPID', false);\r\n }\r\n UserStore.setPIDWorkspaceId(items.projectWorkSpaceId);\r\n UserStore.getprocessGridPID(tab);\r\n localStorage.setItem('getprocessGridPID', tab);\r\n UserStore.getworkspaceNamePID(items.projectName);\r\n UserStore.emptySuccededFilesPID();\r\n history.push(`/WorkspacePID/Upload`);\r\n setWorkspace(items);\r\n localStorage.setItem(\"startdate\", items.startDate);\r\n }\r\n\r\n function setWorkspace(items) {\r\n localStorage.setItem('WorkspaceIdPID', items.projectWorkSpaceId);\r\n localStorage.setItem('workspaceNamePID', items.projectName);\r\n }\r\n\r\n const customPagination = (e, dat) => {\r\n setCurrentPage(1);\r\n setSkip((1 - 1) * top);\r\n UserStore.setSkipwsdData((1 - 1) * top);\r\n topValueUpdate(e.target.selectedOptions[0].value);\r\n\r\n if (e.target.selectedOptions[0].value === \"30\") {\r\n const slicedData2 = dat.slice(skip, 3 * 10);\r\n setrows(slicedData2);\r\n } else if (e.target.selectedOptions[0].value === \"50\") {\r\n const slicedData3 = dat.slice(skip, 5 * 10);\r\n setrows(slicedData3);\r\n } else if (e.target.selectedOptions[0].value === \"100\") {\r\n const slicedData4 = dat.slice(skip, 10 * 10);\r\n setrows(slicedData4);\r\n } else {\r\n const slicedData1 = dat.slice(skip, 1 * 10);\r\n setrows(slicedData1);\r\n }\r\n UserStore.setPerwsdPageData(e.target.selectedOptions[0].value);\r\n localStorage.setItem(\"perwsdPageData\",e.target.selectedOptions[0].value)\r\n };\r\n\r\n function editClick(items) {\r\n UserStore.addRowdataPID(items); \r\n setWorkspace(items);\r\n UserStore.setPIDWorkspaceId(items.projectWorkSpaceId);\r\n UserStore.getworkspaceNamePID(items.projectName);\r\n history.push(`/WorkspacePID/EditWorkspace`);\r\n localStorage.setItem('EditWSDataPID', JSON.stringify(items));\r\n }\r\n\r\n // function handleOnSelect (row, isSelect) {\r\n // if(isSelect) {\r\n // const selectedRow = rows.filter((r) => r.projectWorkSpaceId === row.projectWorkSpaceId);\r\n // reportData.push(selectedRow);\r\n // }\r\n // }\r\n\r\n function handleOnSelect(row, isSelect) {\r\n if (isSelect) {\r\n const selectedRow = rows.filter(\r\n (r) => r.projectWorkSpaceId === row.projectWorkSpaceId\r\n );\r\n reportData.push(row);\r\n //reportData = selectedRow;\r\n //rows = selectRow\r\n //setrows(selectedRow);\r\n }\r\n else{\r\n \r\n let newRows = reportData.filter(\r\n (r) => row.projectWorkSpaceId !== r.projectWorkSpaceId \r\n );\r\n reportData = newRows;\r\n }\r\n }\r\n\r\n const handleOnSelectAll = (isSelect, rows) => {\r\n const ids = rows.map(r => r.id);\r\n if (isSelect) { \r\n reportData = rows;\r\n } else {\r\n reportData = [];\r\n }\r\n }\r\n \r\n function navigateToCreateNewWorkspace() {\r\n history.push('/WorkspacePID/CreateNewWorkspace');\r\n }\r\n\r\n function handleDelete(e) {\r\n setdeleteworkspaceid(e.target.id);\r\n setdelete(true);\r\n };\r\n\r\n const handleSetting = (items) => {\r\n UserStore.getworkspaceNamePID(items.projectName);\r\n UserStore.setPIDWorkspaceId(items.projectWorkSpaceId);\r\n UserStore.setProprsal(items.projectNumber) \r\n history.push(`/WorkspacePID/EditConfiguration`);\r\n };\r\n\r\n function handleCloseDialog() {\r\n setdelete(false);\r\n };\r\n\r\n function handleClose() {\r\n setSetShow(false);\r\n setshowUsers(false);\r\n };\r\n\r\n function handleShow() {\r\n setSetShow(true)\r\n };\r\n\r\n function handlerole(role) {\r\n switch (role) {\r\n case 1:\r\n return \"Admin\";\r\n case 2:\r\n return \"Read / Write\";\r\n case 3:\r\n return \"Read Only\";\r\n }\r\n };\r\n\r\n function showUsername(e) {\r\n let id = e.target.id; \r\n setfiltereduserData(UserStore.PIDworkspaceData\r\n .filter((item) => item.projectWorkSpaceId == id)\r\n .map(({ workSpaceUsers }) => ({ workSpaceUsers })));\r\n setshowUsers(true);\r\n };\r\n\r\n function handlePurge(e) {\r\n let id = deleteworkspaceid;\r\n const updatedRows = rows.filter((row) => row.projectWorkSpaceId != id);\r\n \r\n const data = {\r\n \"projectWorkSpaceId\": id\r\n }\r\n\r\n axios.post(API_Endpoint + `/DeletePidWorkSpace`, data);\r\n setrows(updatedRows);\r\n setdelete(false);\r\n };\r\n\r\n const selectRow = {\r\n mode: 'checkbox',\r\n onSelect: handleOnSelect,\r\n onSelectAll: handleOnSelectAll,\r\n onSelect: handleOnSelect\r\n };\r\n\r\n//Used to update the page number after changing the pagination\r\n const updatePagination = (newPageNumber) => {\r\n if (newPageNumber > 1) setPageChange(true);\r\n setSkip((newPageNumber - 1) * top);\r\n UserStore.setSkipwsdData((newPageNumber - 1) * top);\r\n setCurrentPage(newPageNumber);\r\n };\r\n \r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    {`PROJECT WORKSPACE (${UserStore.PIDworkspaceData.length})`}
    \r\n
    \r\n {UserStore.PIDGlobalAdmin &&
    \r\n \r\n Create New Workspace\r\n
    }\r\n
    \r\n
    \r\n
    \r\n \r\n {(props) => (\r\n
    \r\n {/*
    \r\n */}\r\n \r\n \r\n Export Report\r\n \r\n \r\n {/* \r\n \r\n Export Report \r\n \r\n */}\r\n {/*
    */}\r\n \r\n
    \r\n )}\r\n \r\n
    \r\n
    \r\n customPagination(e,storeData)}\r\n defaultValue = {toJS(UserStore.perwsdPageData)}\r\n defaultChecked = {toJS(UserStore.perwsdPageData)}\r\n >\r\n \r\n 10\r\n \r\n\r\n \r\n 30\r\n \r\n\r\n \r\n 50\r\n \r\n\r\n \r\n 100\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Please select atleast one row to Export report.\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n {showUsers && }\r\n
    \r\n \r\n
    \r\n )\r\n}","import React from \"react\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\n\r\nconst ModalValidation = ({\r\n handleCloseEmptyUser,\r\n message,\r\n userEmpty,\r\n emptyUser,\r\n duplicateData,\r\n workSpacePopupError,\r\n clientPopupError,\r\n}) => {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n {message}\r\n {duplicateData ? (\r\n

    Project workspace name already exists.

    \r\n ) : (\r\n \"\"\r\n )}\r\n {workSpacePopupError || clientPopupError ? (\r\n

    select at least one user to create new Project Workspace

    \r\n ) : (\r\n \"\"\r\n )}\r\n {emptyUser && !(workSpacePopupError || clientPopupError) ? (\r\n

    \r\n Please select at least one user to create new Project Workspace{\" \"}\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n {/* */}\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ModalValidation;\r\n","import React, { Component } from \"react\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport Suggestions from \"../../CreateWorkspace/ProjectDetails/Suggestions\";\r\nimport { TextField, MuiThemeProvider, Button } from '@material-ui/core';\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\n\r\nexport default function AddUser(props) {\r\n let suggestionDiv;\r\n if (props.showSuggestions) {\r\n suggestionDiv = (\r\n props.suggestionClickHandler(s)}>\r\n );\r\n } else {\r\n suggestionDiv =
    ;\r\n }\r\n function handlerole(role) {\r\n switch (role) {\r\n case 1:\r\n return \"Admin\";\r\n case 2:\r\n return \"Read / Write\";\r\n case 3:\r\n return \"Read Only\";\r\n default: \r\n return role;\r\n }\r\n };\r\n\r\nreturn(\r\n \r\n \r\n User Details\r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n {\r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.useradd.map((items) => (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n \r\n {}}\r\n onClick={() => {\r\n if (props.suggestions.length > 0)\r\n props.setshowSuggestions(true);\r\n }}\r\n error={props.tooltipError}\r\n helperText={props.tootlTipErrorMessage}\r\n style={{ marginTop: \"5%\" }}\r\n />\r\n \r\n {suggestionDiv}\r\n
    \r\n
    \r\n
    \r\n \r\n {props.roles.map((option) => (\r\n \r\n {option.roleName}\r\n \r\n ))}\r\n \r\n \r\n

    \r\n \r\n \r\n \r\n

    \r\n
    {items.enterpriseId}{handlerole(items.roleId)}\r\n \r\n {\r\n props.handleDelete(e, items);\r\n }}\r\n src=\"/images/icon_delete.svg\"\r\n style={{ height: \"1.3vw\" }}\r\n />\r\n \r\n
    \r\n }\r\n
    \r\n \r\n \r\n Ok \r\n \r\n \r\n
    \r\n)}","import React, { Component } from \"react\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport Cancel from \"@material-ui/icons/Cancel\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CircleChecked from \"@material-ui/icons/CheckCircleRounded\";\r\n\r\nexport default function AddUser(props) {\r\n return (\r\n \r\n \r\n \r\n
    \r\n Do you want to delete the user?\r\n
    \r\n
    \r\n \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n props.handlePurge(e, props.deleteUsers)}\r\n style={{\r\n padding: \"0\",\r\n background: \"#0C629B\",\r\n color: \"white\",\r\n position: \"absolute\",\r\n right: \"2%\",\r\n }}\r\n >\r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n
    \r\n )\r\n}","import React, { useState, useEffect, useReducer } from \"react\";\r\nimport { Router, useHistory, withRouter } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport { TextField, MuiThemeProvider, Button } from \"@material-ui/core\";\r\nimport AppHeader from \"../../AppHeader/AppHeader\";\r\nimport AppFooter from \"../../AppFooter/AppFooter\";\r\nimport BreadCrumbs from \"../../Upload/BreadCrumbs/BreadCrumbs\";\r\nimport UserStore from \"../../UserStore\";\r\nimport ModalValidation from \"../createNewWorkspace/ModalValidation\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport AddUser from \"../AddUser/AddUser\";\r\nimport DeleteUser from \"../AddUser/DeleteUser\";\r\nimport \"./CreateNewWorkspace.scss\";\r\nimport { toJS, observer } from \"mobx\";\r\nimport { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nimport Moment from \"moment\";\r\n\r\nexport default function CreateNewWorkspace() {\r\n const API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n const history = useHistory();\r\n var wrapperRef = React.createRef();\r\n var addUserRef = React.createRef();\r\n let graphDataforUsers;\r\n\r\n const [formData, setFormData] = useState({\r\n projectNumber: \"\",\r\n projectName: \"\",\r\n clientName: \"\",\r\n location: \"\",\r\n plantDescription: \"\",\r\n mainOffice: \"\",\r\n satelliteOffice: \"\",\r\n fromDate: \"\",\r\n toDate: \"\",\r\n workSpaceUsers: [],\r\n copyConfigFromWorkSpaceId: 0,\r\n });\r\n const [user, setUser] = useState([]);\r\n const [show, setShow] = useState(false);\r\n const [list, setList] = useState([]);\r\n const [useradd, setuseradd] = useState([]);\r\n const [userEmpty, setUserEmpty] = useState(false);\r\n const [duplicateData, setDuplicateData] = useState(false);\r\n const [emptyUser, setEmptyUser] = useState(false);\r\n const [message, setMessage] = useState(\"\");\r\n const [dropdownvalue, setdropdownvalue] = useState(\"\");\r\n //const [proposalnumber, setproposalnumber] = useState(0);\r\n const [proposalnumber, setproposalnumber] = useState([]);\r\n // const [proposalnumber, setproposalnumber] = useState([\r\n // {\r\n // projectWorkSpaceId: 123,\r\n // proposalNumber: 34\r\n // },\r\n // { projectWorkSpaceId: 753, proposalNumber: 38},\r\n // { projectWorkSpaceId: 274, proposalNumber: 35 }\r\n // ]);\r\n const [rolearray, setroleArray] = useState([]);\r\n const [personName, setPersonName] = React.useState([]);\r\n const [errorProjectNumber, setErrorProjectNumber] = useState(false);\r\n const [errorProjectName, setErrorProjectName] = useState(false);\r\n const [errorClientName, setErrorClientName] = useState(false);\r\n const [errorLocation, setErrorLocation] = useState(false);\r\n const [errorDescription, setErrorDescription] = useState(false);\r\n const [errorMainOffice, setErrorMainOffice] = useState(false);\r\n const [errorSatelliteOffcie, setErrorSatelliteOffice] = useState(false);\r\n const [errorFromDate, setErrorFromDate] = useState(false);\r\n const [errorToDate, setErrorToDate] = useState(false);\r\n const [errorUsers, setErrorUsers] = useState(false);\r\n const [errorMsgProjectNumber, setErrorMsgProjectNumber] = useState(\"\");\r\n const [errorMsgProjectName, setErrorMsgProjectName] = useState(\"\");\r\n const [errorMsgClientName, setErrorMsgClientName] = useState(\"\");\r\n const [errorMsgLocation, setErrorMsgLocation] = useState(\"\");\r\n const [errorMsgDescription, setErrorMsgDescription] = useState(\"\");\r\n const [errorMsgMainOffice, setErrorMsgMainOffice] = useState(\"\");\r\n const [errorMsgSatelliteOffcie, setErrorMsgSatelliteOffice] = useState(\"\");\r\n const [errorMsgFromDate, setErrorMsgFromDate] = useState(\"\");\r\n const [errorMsgToDate, setErrorMsgToDate] = useState(\"\");\r\n const [errorMsgUsers, setErrorMsgUsers] = useState(\"\");\r\n const [loading, setLoading] = useState(true);\r\n const [deleteUsers, setdeleteUsers] = useState(\"\");\r\n const [Delete, setdelete] = useState(false);\r\n const [tooltipError, settooltipError] = useState(false);\r\n const [tootlTipErrorMessage, settootlTipErrorMessage] = useState(\"\");\r\n const [role, setrole] = useState(1);\r\n const [Proposalno, setproposal] = useState(1);\r\n const [suggestions, setsuggestions] = useState([]);\r\n const [q, setq] = useState(\"\");\r\n const [modifysuggestion, setmodifysuggestion] = useState([]);\r\n const [showSuggestions, setshowSuggestions] = useState(false);\r\n const [roles, setroles] = useState([]);\r\n\r\n useEffect(() => {\r\n fetchUserTypes();\r\n document.addEventListener(\"mousedown\", suggestionOutClickHandler);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", suggestionOutClickHandler);\r\n };\r\n }, []);\r\n\r\n async function fetchUserTypes() {\r\n const addedUser = toJS(UserStore.addUserforWorkspacePID).length\r\n ? toJS(UserStore.addUserforWorkspacePID)\r\n : localStorage.getItem(\"setUserforWorkspacePID\")\r\n ? JSON.parse(localStorage.getItem(\"setUserforWorkspacePID\"))\r\n : [];\r\n setuseradd(addedUser);\r\n const dropDownValues = await axios\r\n .get(`${API_Endpoint}/GetApplicationRoles`)\r\n .then((res) => {\r\n if (res.status === 200) {\r\n setroles(res.data);\r\n } else if (\r\n res.status === 400 ||\r\n res.status === 401 ||\r\n res.status === 404 ||\r\n res.status === 408\r\n ) {\r\n toast.error(\"service error\", {\r\n // Set to 5sec\r\n position: toast.POSITION.TOP_LEFT,\r\n autoClose: 5000,\r\n });\r\n }\r\n });\r\n\r\n const dropDownValuesproposal = await axios\r\n .get(`${API_Endpoint}/GetPidProposalNumbers`)\r\n .then((res) => {\r\n //proposalnumber.push({projectWorkSpaceId:23,proposalNumber:78})\r\n\r\n if (res.status === 200) {\r\n proposalnumber.push(res.data.result);\r\n //proposalnumber.push({\"result\":[{projectWorkSpaceId:23,proposalNumber:78}]})\r\n\r\n setproposalnumber(res.data.result);\r\n setLoading(false);\r\n } else if (\r\n res.status === 400 ||\r\n res.status === 401 ||\r\n res.status === 404 ||\r\n res.status === 408\r\n ) {\r\n toast.error(\"service error\", {\r\n // Set to 5sec\r\n position: toast.POSITION.TOP_LEFT,\r\n autoClose: 5000,\r\n });\r\n }\r\n });\r\n }\r\n\r\n function handleRoleChange(e) {\r\n if (e.target.value === \"Admin\") {\r\n setdropdownvalue(e.target.value);\r\n setrole(1);\r\n } else if (e.target.value === \"Read / Write\") {\r\n setdropdownvalue(e.target.value);\r\n setrole(2);\r\n } else if (e.target.value === \"Read Only\") {\r\n setdropdownvalue(e.target.value);\r\n setrole(3);\r\n }\r\n rolearray.push(e.target.value);\r\n }\r\n\r\n const handleCloseEmptyUser = () => {\r\n setUserEmpty(false);\r\n setDuplicateData(false);\r\n setEmptyUser(false);\r\n };\r\n\r\n const handleChange = (e) => {\r\n const { name, value } = e.target;\r\n setFormData((prevState) => {\r\n return {\r\n ...prevState,\r\n [name]: value,\r\n };\r\n });\r\n };\r\n\r\n function handleCloseDialog() {\r\n setdelete(false);\r\n }\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault();\r\n const fields = Object.entries(formData);\r\n const FieldsName = [\r\n \"Project Number\",\r\n \"Project Name\",\r\n \"Client Name\",\r\n \"Location\",\r\n \"Plant Description\",\r\n \"Main Office\",\r\n \"Satellite Office\",\r\n \"From Date\",\r\n \"To Date\",\r\n \"Work Space Users\",\r\n ];\r\n let fieldsArray = fields.map((keys, index) => {\r\n if (keys[1] === \"\" || !keys[1].length) {\r\n return FieldsName[index];\r\n }\r\n });\r\n const fieldsCase = fieldsArray.filter((item) => item);\r\n if (useradd.length === 0 && fieldsCase.length !== 0) {\r\n setUserEmpty(true);\r\n setMessage(\r\n `Please fill the details in the ${fieldsCase.join(\", \")} field(s)`\r\n );\r\n } else if (useradd.length === 0 && fieldsCase.length === 0) {\r\n setUserEmpty(true);\r\n\r\n setMessage(\"Please select atleast one user to proceed\");\r\n } else if (fieldsCase.length !== 0 && useradd.length !== 0) {\r\n setUserEmpty(true);\r\n\r\n setMessage(\r\n `Please fill the details in the ${fieldsCase.join(\", \")} field(s)`\r\n );\r\n } else if (formData.copyConfigFromWorkSpaceId === 0) {\r\n setUserEmpty(true);\r\n\r\n setMessage(`Please select Copy Configuration From`);\r\n } else if (new Date(fromDate) > new Date(toDate)) {\r\n setUserEmpty(true);\r\n\r\n setMessage(\"From Date cannot be beyond To Date\");\r\n } else if (fieldsCase.length === 0 && useradd.length !== 0) {\r\n await axios.post(API_Endpoint + \"/CreatePidWorkSpace\", formData);\r\n history.goBack();\r\n }\r\n };\r\n\r\n const {\r\n projectNumber,\r\n projectName,\r\n clientName,\r\n location,\r\n plantDescription,\r\n mainOffice,\r\n satelliteOffice,\r\n fromDate,\r\n toDate,\r\n copyConfigFromWorkSpaceId,\r\n } = formData;\r\n\r\n function addUser() {\r\n settooltipError(false);\r\n settootlTipErrorMessage(\"\");\r\n const searchTerm = document\r\n .getElementById(\"search-box1\")\r\n .value.toLowerCase();\r\n if (\r\n suggestions.length == 1 &&\r\n suggestions.some((e) => e.mail === searchTerm)\r\n ) {\r\n document.getElementById(\"search-box1\").focus();\r\n personName[0] = searchTerm;\r\n }\r\n if (personName.length === 0) {\r\n settooltipError(true);\r\n settootlTipErrorMessage(\"Kindly add a valid email address\");\r\n } else {\r\n const personNameList = personName;\r\n for (var i = 0; i < personNameList.length; i++) {\r\n const userdata = {\r\n enterpriseId: personNameList[i],\r\n roleId: role,\r\n };\r\n useradd.push(userdata);\r\n let userArray = useradd;\r\n for (var i in userArray) {\r\n if (userArray[i].roleId === \"Admin\") {\r\n userArray[i].roleId = 1;\r\n } else if (userArray[i].roleId === \"Read / Write\") {\r\n userArray[i].roleId = 2;\r\n } else if (userArray[i].roleId === \"Read Only\") {\r\n userArray[i].roleId = 3;\r\n }\r\n }\r\n setFormData({ ...formData, workSpaceUsers: userArray });\r\n // setrole(dropdownvalue);\r\n setPersonName([]);\r\n setsuggestions([]);\r\n }\r\n\r\n function getUnique(arr, index) {\r\n const unique = arr\r\n .map((e) => e[index])\r\n .map((e, i, final) => final.indexOf(e) === i && i)\r\n .filter((e) => arr[e])\r\n .map((e) => arr[e]);\r\n return unique;\r\n }\r\n useradd.reverse();\r\n setuseradd(getUnique(useradd, \"enterpriseId\"));\r\n UserStore.setUserforWorkspacePID(useradd);\r\n localStorage.setItem(\"setUserforWorkspacePID\", JSON.stringify(useradd));\r\n document.getElementById(\"search-box1\").value = \"\";\r\n setShow(true);\r\n setq(\"\");\r\n }\r\n }\r\n\r\n async function suggestionsCall(q) {\r\n const res = await axios.get(\r\n `${process.env.REACT_APP_API_GETUSERLIST}/GetUsersList?username=${q}`\r\n );\r\n setsuggestions(res.data);\r\n setmodifysuggestion(res.data);\r\n filterSearchText(res.data, q);\r\n }\r\n\r\n function onSearchHandler() {\r\n setshowSuggestions(false);\r\n }\r\n\r\n const handleDropdownChange = (e) => {\r\n setFormData({ ...formData, copyConfigFromWorkSpaceId: e.target.value });\r\n };\r\n\r\n function onChangeHandler1(e) {\r\n let searchTerm = \"\";\r\n searchTerm = e.target.value.toLowerCase();\r\n setq(searchTerm);\r\n setPersonName([]);\r\n if (searchTerm.length === 3) {\r\n suggestionsCall(searchTerm);\r\n setshowSuggestions(true);\r\n }\r\n if (searchTerm.length < 3) {\r\n setsuggestions([]);\r\n setshowSuggestions(false);\r\n }\r\n if (searchTerm.length > 3) {\r\n filterSearchText(suggestions, searchTerm);\r\n }\r\n }\r\n\r\n function pasteFunction(e) {\r\n let searchTerm = \"\";\r\n searchTerm = e.clipboardData.getData(\"text\").toLowerCase();\r\n setq(searchTerm);\r\n setPersonName([]);\r\n let substring = searchTerm.substring(0, 3);\r\n suggestionsCall(searchTerm);\r\n setshowSuggestions(true);\r\n }\r\n\r\n function filterSearchText(suggestionData, q) {\r\n let searchTerm = \"\";\r\n searchTerm = q.toLowerCase();\r\n const updatedRowsforsearch = suggestionData.filter(\r\n (row) =>\r\n row.mail.toLowerCase().includes(searchTerm) ||\r\n row.displayName.toLowerCase().includes(searchTerm)\r\n );\r\n setsuggestions(updatedRowsforsearch);\r\n setshowSuggestions(true);\r\n for (var i = 0; i < useradd.length; i++) {\r\n if (useradd[i].enterpriseId.toLowerCase() === searchTerm) {\r\n settooltipError(true);\r\n settootlTipErrorMessage(\"Override the user role\");\r\n }\r\n }\r\n const updatedRows = suggestionData.filter(\r\n (row) =>\r\n row.mail.toLowerCase().includes(searchTerm) ||\r\n row.displayName.toLowerCase().includes(searchTerm)\r\n );\r\n setsuggestions(updatedRows);\r\n if (updatedRows.length == 1 && searchTerm.includes(\"@petrofac.com\")) {\r\n if (Object.values(updatedRows[0]).includes(searchTerm)) {\r\n document.getElementById(\"search-box1\").focus();\r\n personName[0] = searchTerm;\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n function onEnterButton(event) {\r\n if (event.keyCode === 13) {\r\n onSearchHandler();\r\n }\r\n }\r\n\r\n function handleClose() {\r\n setShow(false);\r\n }\r\n\r\n function suggestionClickHandler(s) {\r\n document.getElementById(\"search-box1\").value = s;\r\n for (var i = 0; i < useradd.length; i++) {\r\n if (useradd[i].enterpriseId === s) {\r\n settooltipError(true);\r\n settootlTipErrorMessage(\"Override the user role\");\r\n }\r\n }\r\n personName[0] = s;\r\n setshowSuggestions(false);\r\n }\r\n\r\n function suggestionOutClickHandler(event) {\r\n if (wrapperRef.current) {\r\n if (!wrapperRef.current.contains(event.target)) {\r\n setshowSuggestions(false);\r\n }\r\n }\r\n }\r\n\r\n function handleDelete(e, user) {\r\n setdelete(true);\r\n setdeleteUsers(user);\r\n }\r\n\r\n function handlePurge(e, user) {\r\n const updatedRows = useradd.filter(\r\n (row) =>\r\n row.enterpriseId.toLowerCase() !== user.enterpriseId.toLowerCase()\r\n );\r\n setuseradd(updatedRows);\r\n setdelete(false);\r\n }\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n

    Create Project Workspace

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n

    \r\n
    \r\n
    \r\n {\r\n setShow(true);\r\n }}\r\n style={{ marginLeft: \"8.1%\" }}\r\n >\r\n Add User *\r\n \r\n
    \r\n\r\n \r\n \r\n Copy Configuration From *\r\n \r\n \r\n {proposalnumber.length > 0 &&\r\n proposalnumber.map((option) => (\r\n \r\n {option.proposalNumber} {option.projectName}\r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n Save\r\n \r\n history.goBack(-1)}\r\n style= {{\r\n font: \"normal normal 1vw Helvetica\",\r\n background: \"#ffffff\",\r\n border: \"1px solid #0c629b\",\r\n borderRadius: \"4px\",\r\n color: \"#0c629b\",\r\n width: \"8vw\",\r\n height: \"4.8vh\",\r\n textTransform:\"none\",\r\n }}\r\n >\r\n Cancel\r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n//}\r\n","import React, { useState, useEffect, useReducer } from \"react\";\r\nimport { Router, useHistory, withRouter } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport { TextField, MuiThemeProvider, Button } from \"@material-ui/core\";\r\nimport AppHeader from \"../../AppHeader/AppHeader\";\r\nimport AppFooter from \"../../AppFooter/AppFooter\";\r\nimport BreadCrumbs from \"../../Upload/BreadCrumbs/BreadCrumbs\";\r\nimport AddUser from \"../AddUser/AddUser\";\r\nimport DeleteUser from \"../AddUser/DeleteUser\";\r\nimport ModalValidation from \"../createNewWorkspace/ModalValidation\";\r\nimport UserStore from \"../../UserStore\";\r\nimport { toJS, observer } from \"mobx\";\r\nimport Moment from \"moment\";\r\nimport \"./EditWorkspace.scss\";\r\nimport { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\n\r\ntoast.configure();\r\n\r\nexport default function EditWorkSpace() {\r\n const API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n var result;\r\n var wrapperRef = React.createRef();\r\n var addUserRef = React.createRef();\r\n\r\n const editWorkSpaceDataPID = toJS(UserStore.editRowPID).length\r\n ? toJS(UserStore.editRowPID)[0]\r\n : localStorage.getItem(\"EditWSDataPID\")\r\n ? JSON.parse(localStorage.getItem(\"EditWSDataPID\"))\r\n : [];\r\n if (\r\n !toJS(UserStore.editRowPID).length &&\r\n (localStorage.getItem(\"EditWSDataPID\") !==null || localStorage.getItem(\"EditWSDataPID\") !== undefined || localStorage.getItem(\"EditWSDataPID\").length !== 0)\r\n ) {\r\n UserStore.addRowdataPID(JSON.parse(localStorage.getItem(\"EditWSDataPID\")));\r\n }\r\n\r\n const [editRow, setEditrow] = useState(toJS(UserStore.editRowPID)[0]);\r\n const [editRowNew, setEditRowNew] = useState({\r\n projectNumber: \"\",\r\n projectName: \"\",\r\n clientName: \"\",\r\n location: \"\",\r\n plantDescription: \"\",\r\n mainOffice: \"\",\r\n satelliteOffice: \"\",\r\n startDate: \"\",\r\n finishDate: \"\",\r\n workSpaceUsers: [],\r\n });\r\n const history = useHistory();\r\n const [rolearray, setroleArray] = useState([]);\r\n const [personName, setPersonName] = useState([]);\r\n const [userEmpty, setUserEmpty] = useState(false);\r\n const [message, setMessage] = useState(\"\");\r\n const [show, setShow] = useState(false);\r\n const [validate, setValidate] = useState(false);\r\n const [dropdownvalue, setdropdownvalue] = useState(\"\");\r\n const [useradd, setuseradd] = useState([]);\r\n const [errorProjectNumber, setErrorProjectNumber] = useState(false);\r\n const [errorProjectName, setErrorProjectName] = useState(false);\r\n const [errorClientName, setErrorClientName] = useState(false);\r\n const [errorLocation, setErrorLocation] = useState(false);\r\n const [errorDescription, setErrorDescription] = useState(false);\r\n const [errorMainOffice, setErrorMainOffice] = useState(false);\r\n const [errorSatelliteOffcie, setErrorSatelliteOffice] = useState(false);\r\n const [errorFromDate, setErrorFromDate] = useState(false);\r\n const [errorToDate, setErrorToDate] = useState(false);\r\n const [errorUsers, setErrorUsers] = useState(false);\r\n const [errorMsgProjectNumber, setErrorMsgProjectNumber] = useState(\"\");\r\n const [errorMsgProjectName, setErrorMsgProjectName] = useState(\"\");\r\n const [errorMsgClientName, setErrorMsgClientName] = useState(\"\");\r\n const [errorMsgLocation, setErrorMsgLocation] = useState(\"\");\r\n const [errorMsgDescription, setErrorMsgDescription] = useState(\"\");\r\n const [errorMsgMainOffice, setErrorMsgMainOffice] = useState(\"\");\r\n const [errorMsgSatelliteOffcie, setErrorMsgSatelliteOffice] = useState(\"\");\r\n const [errorMsgFromDate, setErrorMsgFromDate] = useState(\"\");\r\n const [errorMsgToDate, setErrorMsgToDate] = useState(\"\");\r\n const [errorMsgUsers, setErrorMsgUsers] = useState(\"\");\r\n const [showSuggestions, setshowSuggestions] = useState(false);\r\n const [q, setq] = useState(\"\");\r\n const [Delete, setdelete] = useState(false);\r\n const [deleteUsers, setdeleteUsers] = useState(\"\");\r\n const [tooltipError, settooltipError] = useState(false);\r\n const [tootlTipErrorMessage, settootlTipErrorMessage] = useState(\"\");\r\n const [suggestions, setsuggestions] = useState([]);\r\n const [modifysuggestion, setmodifysuggestion] = useState([]);\r\n const [roles, setroles] = useState([]);\r\n const [role, setrole] = useState(\"Admin\");\r\n const [list, setlist] = useState([]);\r\n const [open, setOpen] = useState(false);\r\n\r\n useEffect(() => {\r\n fetchUserTypes();\r\n setEditrow(toJS(UserStore.editRowPID)[0]);\r\n document.addEventListener(\"mousedown\", suggestionOutClickHandler);\r\n UserStore.setEditworkspacePID(true);\r\n localStorage.setItem(\"EditworkspacePID\", true);\r\n let rolesedit = [];\r\n rolesedit = toJS(editRow.workSpaceUsers);\r\n for (var i = 0; i < rolesedit.length; i++) {\r\n if (rolesedit[i].roleId === 1) {\r\n rolesedit[i].roleId = \"Admin\";\r\n } else if (rolesedit[i].roleId === 2) {\r\n rolesedit[i].roleId = \"Read / Write\";\r\n } else {\r\n rolesedit[i].roleId = \"Read Only\";\r\n }\r\n }\r\n setuseradd(rolesedit);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", suggestionOutClickHandler);\r\n };\r\n }, []);\r\n\r\n async function fetchUserTypes() {\r\n const responsecheck = await axios.get(API_Endpoint + `/GetPidWorkSpaces`);\r\n const wID = editRow.workSpaceId;\r\n result = responsecheck.data.filter(function (v, i) {\r\n return v.workSpaceId !== wID;\r\n });\r\n\r\n const dropDownValues = await axios\r\n .get(`${API_Endpoint}/GetApplicationRoles`)\r\n .then((res) => {\r\n if (res.status === 200) {\r\n // roles = res.data;\r\n setroles(res.data);\r\n } else if (\r\n res.status === 400 ||\r\n res.status === 401 ||\r\n res.status === 404 ||\r\n res.status === 408\r\n ) {\r\n toast.error(\"service error\", {\r\n position: toast.POSITION.TOP_LEFT,\r\n autoClose: 5000,\r\n });\r\n }\r\n });\r\n }\r\n\r\n function handleusers(e) {\r\n setlist(list.push(e.target.value));\r\n }\r\n\r\n function createUseroptions(e) {\r\n return roles.map((option) => (\r\n \r\n ));\r\n }\r\n\r\n const handleCloseEmptyUser = () => {\r\n setUserEmpty(false);\r\n };\r\n\r\n const handleSubmit = async (event) => {\r\n event.preventDefault();\r\n\r\n let userArray = useradd;\r\n for (var i in userArray) {\r\n if (userArray[i].roleId == \"Admin\") {\r\n userArray[i].roleId = 1;\r\n } else if (userArray[i].roleId == \"Read / Write\") {\r\n userArray[i].roleId = 2;\r\n } else if (userArray[i].roleId == \"Read Only\") {\r\n userArray[i].roleId = 3;\r\n }\r\n }\r\n \r\n const data = {\r\n projectNumber: editRowNew.projectNumber\r\n ? editRowNew.projectNumber\r\n : editRow.projectNumber,\r\n projectName: editRowNew.projectName\r\n ? editRowNew.projectName\r\n : editRow.projectName,\r\n clientName: editRowNew.clientName\r\n ? editRowNew.clientName\r\n : editRow.clientName,\r\n location: editRowNew.location ? editRowNew.location : editRow.location,\r\n plantDescription: editRowNew.plantDescription\r\n ? editRowNew.plantDescription\r\n : editRow.plantDescription,\r\n mainOffice: editRowNew.mainOffice\r\n ? editRowNew.mainOffice\r\n : editRow.mainOffice,\r\n satelliteOffice: editRowNew.satelliteOffice\r\n ? editRowNew.satelliteOffice\r\n : editRow.satelliteOffice,\r\n startDate: editRowNew.startDate\r\n ? editRowNew.startDate\r\n : editRow.startDate,\r\n finishDate: editRowNew.finishDate\r\n ? editRowNew.finishDate\r\n : editRow.finishDate,\r\n projectWorkSpaceId: editRowNew.projectWorkSpaceId\r\n ? editRowNew.projectWorkSpaceId\r\n : editRow.projectWorkSpaceId,\r\n workSpaceUsers: userArray,\r\n };\r\n const FieldsName = ['Project Number', 'Project Name', 'Client Name', 'Location', 'Plant Description', 'Main Office', 'Satellite Office', 'From Date', 'To Date', 'Work Space Users']; \r\n let keyCount = 0;\r\n const arrayOfKey = []; \r\n for (var i in data) { \r\n if(data[i] === ''){\r\n arrayOfKey.push(FieldsName[keyCount]);\r\n }\r\n keyCount++; \r\n }\r\n var date1 = new Date(data.startDate);\r\n var date2 = new Date(data.finishDate);\r\n\r\n if(arrayOfKey.length > 0 ){\r\n setUserEmpty(true);\r\n setMessage(`Please fill the details in the ${arrayOfKey.join(\", \")} field(s)`);\r\n }\r\n else if(data.startDate === 'Invalid date' || data.startDate === ''){\r\n setUserEmpty(true);\r\n setMessage(\"Please select From Date\");\r\n }\r\n else if(data.finishDate === 'Invalid date' || data.finishDate === ''){\r\n setUserEmpty(true);\r\n setMessage(\"Please select To Date\");\r\n }\r\n else if(date1 > date2) {\r\n setUserEmpty(true);\r\n setMessage(\"From Date cannot be beyond To Date\");\r\n }\r\n else if (useradd.length !== 0) {\r\n await axios.post(API_Endpoint + \"/EditPidWorkSpace\", data);\r\n history.goBack();\r\n } \r\n };\r\n\r\n function handleRoleChange(e) {\r\n if (e.target.value === \"Admin\") {\r\n setdropdownvalue(e.target.value);\r\n setrole(\"Admin\");\r\n } else if (e.target.value === \"Read / Write\") {\r\n setdropdownvalue(e.target.value);\r\n setrole(\"Read / Write\");\r\n } else if (e.target.value === \"Read Only\") {\r\n setdropdownvalue(e.target.value);\r\n setrole(\"Read Only\");\r\n }\r\n rolearray.push(e.target.value);\r\n }\r\n\r\n function handleClose() {\r\n setOpen(false);\r\n }\r\n\r\n function addUser() {\r\n settooltipError(false);\r\n settootlTipErrorMessage(\"\");\r\n if (personName.length === 0) {\r\n settooltipError(true);\r\n settootlTipErrorMessage(\"Kindly add a valid email address\");\r\n } else {\r\n for (var i = 0; i < personName.length; i++) {\r\n const userdata = {\r\n enterpriseId: personName[i],\r\n roleId: role,\r\n };\r\n useradd.push(userdata);\r\n UserStore.editRowPID[0].workSpaceUsers.push(userdata);\r\n setPersonName([]);\r\n setsuggestions([]);\r\n }\r\n function getUnique(arr, index) {\r\n const unique = arr\r\n .map((e) => e[index])\r\n .map((e, i, final) => final.indexOf(e) === i && i)\r\n .filter((e) => arr[e])\r\n .map((e) => arr[e]);\r\n return unique;\r\n }\r\n useradd.reverse();\r\n setuseradd(getUnique(useradd, \"enterpriseId\"));\r\n document.getElementById(\"search-box1\").value = \"\";\r\n setShow(true);\r\n setq(\"\");\r\n }\r\n }\r\n\r\n async function suggestionsCall(q) {\r\n const res = await axios.get(\r\n `${process.env.REACT_APP_API_GETUSERLIST}/GetUsersList?username=${q}`\r\n );\r\n setsuggestions(res.data);\r\n setmodifysuggestion(res.data);\r\n filterSearchText(res.data, q);\r\n }\r\n\r\n function onSearchHandler() {\r\n setshowSuggestions(false);\r\n }\r\n\r\n function onChangeHandler1(e) {\r\n let searchTerm = \"\";\r\n searchTerm = e.target.value.toLowerCase();\r\n setq(searchTerm);\r\n if (searchTerm.length === 3) {\r\n suggestionsCall(searchTerm);\r\n setshowSuggestions(true);\r\n }\r\n if (searchTerm.length < 3) {\r\n setsuggestions([]);\r\n setshowSuggestions(false);\r\n }\r\n if (searchTerm.length > 3) {\r\n filterSearchText(suggestions, searchTerm);\r\n }\r\n }\r\n\r\n function handlePurge(e, user) {\r\n const updatedRows = useradd.filter(\r\n (row) => row.enterpriseId !== user.enterpriseId\r\n );\r\n setuseradd(updatedRows);\r\n setdelete(false);\r\n }\r\n\r\n function handleCloseDialog() {\r\n setdelete(false);\r\n }\r\n\r\n function handleDelete(e, user) {\r\n setdelete(true);\r\n setdeleteUsers(user);\r\n }\r\n\r\n const handleChange = (e) => {\r\n const { name, value } = e.target;\r\n if(name === 'startDate' || name === 'finishDate') {\r\n setEditrow((prevState) => {\r\n return {\r\n ...prevState,\r\n [name]: Moment(value).format(\"MM/DD/YYYY\"),\r\n };\r\n });\r\n } else {\r\n setEditrow((prevState) => {\r\n return {\r\n ...prevState,\r\n [name]: value,\r\n };\r\n });\r\n }\r\n };\r\n\r\n function pasteFunction(e) {\r\n let searchTerm = \"\";\r\n searchTerm = e.clipboardData.getData(\"text\").toLowerCase();\r\n setq(searchTerm);\r\n setPersonName([]);\r\n let substring = searchTerm.substring(0, 3);\r\n suggestionsCall(searchTerm);\r\n setshowSuggestions(true);\r\n // filterSearchText();\r\n }\r\n\r\n\r\n function filterSearchText(suggestionData, q) {\r\n let searchTerm = \"\";\r\n searchTerm = q.toLowerCase();\r\n for (var i = 0; i < useradd.length; i++) {\r\n if (useradd[i].enterpriseId === searchTerm) {\r\n settooltipError(true);\r\n settootlTipErrorMessage(\"Override the user role\");\r\n }\r\n }\r\n const updatedRows = suggestionData.filter(\r\n (row) =>\r\n row.mail.toLowerCase().includes(searchTerm) ||\r\n row.displayName.toLowerCase().includes(searchTerm)\r\n );\r\n \r\n\r\n setsuggestions(updatedRows);\r\n if (updatedRows.length == 1 && searchTerm.includes(\"@petrofac.com\")) {\r\n if (Object.values(updatedRows[0]).includes(searchTerm)) {\r\n document.getElementById(\"search-box1\").focus();\r\n personName[0] = searchTerm;\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n function onEnterButton(event) {\r\n if (event.keyCode === 13) {\r\n onSearchHandler();\r\n }\r\n }\r\n\r\n function handleClose() {\r\n setShow(false);\r\n }\r\n\r\n function suggestionClickHandler(s) {\r\n document.getElementById(\"search-box1\").value = s;\r\n for (var i = 0; i < useradd.length; i++) {\r\n if (useradd[i].enterpriseId === s) {\r\n settooltipError(true);\r\n settootlTipErrorMessage(\"Override the user role\");\r\n }\r\n }\r\n personName[0] = s;\r\n setshowSuggestions(false);\r\n }\r\n\r\n function suggestionOutClickHandler(event) {\r\n if (wrapperRef.current) {\r\n if (!wrapperRef.current.contains(event.target)) {\r\n setshowSuggestions(false);\r\n }\r\n }\r\n }\r\n\r\n function handlePurge(e, user) {\r\n const updatedRows = useradd.filter(\r\n (row) => row.enterpriseId !== user.enterpriseId\r\n );\r\n setuseradd(updatedRows);\r\n setdelete(false);\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n

    Edit Project Workspace

    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    setShow(true)}>\r\n Edit User *\r\n
    \r\n
    \r\n \r\n history.goBack(-1)}\r\n style = {{\r\n font: \"normal normal 1vw Helvetica\",\r\n background: \"#ffffff\",\r\n border: \"1px solid #0c629b\",\r\n borderRadius: \"4px\",\r\n color: \"#0c629b\",\r\n width: \"8vw\",\r\n height: \"4.8vh\",\r\n textTransform:\"none\",\r\n // marginRight: \"2vw\",\r\n }}\r\n >\r\n Cancel\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport LinearProgress from \"@material-ui/core/LinearProgress\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport UserStore from \"../../UserStore\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { toJS } from \"mobx\";\r\n\r\nconst ProgressBar = () => {\r\n let files = [];\r\n let files1 = [];\r\n let files2 = []; \r\n let selectedfiles = toJS(UserStore.selectedfilesforupload);\r\n let rejectedfiles = toJS(UserStore.rejectedfilesforupload); \r\n const [progress, setProgress] = React.useState(0);\r\n const [buffer, setBuffer] = React.useState(10);\r\n\r\n UserStore.setCount(1);\r\n const percent = UserStore.percentage;\r\n files = UserStore.fileSucceded.map((number) => (\r\n
    \r\n \r\n {number}\r\n \r\n
    \r\n
    File Uploaded Successfully
    \r\n \r\n ));\r\n\r\n files1 = selectedfiles.map((number) => (\r\n \r\n \r\n {number}\r\n \r\n \r\n \r\n ));\r\n\r\n if(rejectedfiles.length > 0){ \r\n files2 = UserStore.rejectedfilesforupload.map((number) => (\r\n \r\n
    \r\n \r\n {number}\r\n \r\n
    \r\n
    File Upload Failed
    \r\n \r\n ));\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n {files}\r\n {files1}\r\n {files2}\r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default observer(ProgressBar);\r\n","import React, { Component } from \"react\";\r\nimport \"./DragDrop.scss\";\r\nimport ProgressBar from \"./ProgressBar\";\r\nimport UserStore from \"../../UserStore\";\r\nimport { toJS } from \"mobx\";\r\nexport default class DragAndDrop extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n state = {\r\n drag: false,\r\n renderView: 0,\r\n filelist: [],\r\n show: false,\r\n };\r\n\r\n handleClick = () => {\r\n this.setState({ renderView: 10 });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ show: false });\r\n };\r\n\r\n dropRef = React.createRef();\r\n handleDrag = (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n };\r\n\r\n handleDragIn = (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.dragCounter++;\r\n if (e.dataTransfer.items && e.dataTransfer.items.length > 0) {\r\n this.setState({ drag: true });\r\n }\r\n };\r\n\r\n handleDragOut = (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.dragCounter--;\r\n if (this.dragCounter === 0) {\r\n this.setState({ drag: false });\r\n }\r\n };\r\n\r\n handlePIDbrowseFile = (e) => {\r\n this.props.handleDropPID(e.target.files);\r\n };\r\n\r\n handleDrop = (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.setState({ drag: false });\r\n this.props.handleDropPID(e.dataTransfer.files);\r\n };\r\n\r\n componentDidMount() {\r\n let div = this.dropRef.current;\r\n div.addEventListener(\"dragenter\", this.handleDragIn);\r\n div.addEventListener(\"dragleave\", this.handleDragOut);\r\n div.addEventListener(\"dragover\", this.handleDrag);\r\n div.addEventListener(\"drop\", this.handleDrop);\r\n }\r\n\r\n componentWillUnmount() {\r\n let div = this.dropRef.current;\r\n div.removeEventListener(\"dragenter\", this.handleDragIn);\r\n div.removeEventListener(\"dragleave\", this.handleDragOut);\r\n div.removeEventListener(\"dragover\", this.handleDrag);\r\n div.removeEventListener(\"drop\", this.handleDrop);\r\n }\r\n\r\n render() {\r\n \r\n const { handleDropPID, files, succeded, tempFiles, handleCheckboxCheck } =\r\n this.props;\r\n let valueofdropfiles = toJS(UserStore.droppedPIDFiles);\r\n let completeFiles = toJS(UserStore.fileSucceded);\r\n let progressFile = toJS(UserStore.selectedfilesforupload);\r\n const displayHide =\r\n valueofdropfiles.length === 0 && completeFiles.length === 0 && progressFile.length === 0\r\n ? true\r\n : false;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Please upload pdf & zip files\r\n \r\n \r\n Drag and drop files here
    or{\" \"}\r\n
    \r\n \r\n {displayHide ? (\r\n Choose Files\r\n ) : (\r\n Browse\r\n )}\r\n \r\n this.fileInput = ref}\r\n onChange={this.handlePIDbrowseFile}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n {files.map((file, index) => (\r\n
    \r\n \r\n {file}\r\n \r\n
    \r\n ))}\r\n \r\n
    \r\n \r\n \r\n );\r\n }\r\n\r\n \r\n}\r\n","import React, { Component } from \"react\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport Radio from \"@material-ui/core/Radio\";\r\nimport RadioGroup from \"@material-ui/core/RadioGroup\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { TextField, Button } from \"@material-ui/core\";\r\nimport axios from \"axios\";\r\nimport DragAndDrop from \"../DragDrop/DragDrop\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Cancel from \"@material-ui/icons/Cancel\";\r\nimport CircleChecked from \"@material-ui/icons/CheckCircleRounded\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport createBrowserHistory from \"history/createBrowserHistory\";\r\nimport UserStore from \"../../UserStore\";\r\nimport { toJS } from \"mobx\";\r\nimport \"./FileList.scss\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport AccessTimeIcon from \"@material-ui/icons/AccessTime\";\r\n\r\nconst { BlockBlobClient } = require(\"@azure/storage-blob\");\r\nconst API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\nconst history = createBrowserHistory();\r\nexport default class FileList extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n files: [],\r\n file: [],\r\n submitted: false,\r\n obj: {},\r\n Check: false,\r\n isSelectAll: false,\r\n uploadPercentage: 0,\r\n selectedFiles: [],\r\n droppedFiles: [],\r\n uploadedFile: [],\r\n taggedFiles: [],\r\n batchProcess: false,\r\n fileFailed: [],\r\n countmsg: \"\",\r\n checkFiles: [],\r\n apifileName: [],\r\n taggeddropdown: [],\r\n uploadblob: false,\r\n show: false,\r\n selectedDate: new Date(\"2021-06-18T21:11:54\"),\r\n showSetTimings: false,\r\n tempFiles: [],\r\n tFiles: [],\r\n tagValue: \"\",\r\n count: 0,\r\n showfiletypedailog: false,\r\n openDatePicker: false,\r\n batchTime: \"\",\r\n };\r\n this.openModal = this.openModal.bind(this);\r\n }\r\n\r\n handlePIDDrop = async (files) => {\r\n let fileList = this.state.files;\r\n for (var i = 0; i < files.length; i++) {\r\n if (files[i].name && (files[i].name.slice(-4).toLowerCase() === \".pdf\" || files[i].name.slice(-4).toLowerCase() === \".zip\") ) {\r\n \r\n fileList.push(files[i].name);\r\n this.state.droppedFiles.push(files[i]);\r\n \r\n } else {\r\n this.setState({\r\n showfiletypedailog: true,\r\n showmessage: \"Please upload only pdf or Zip file\",\r\n });\r\n }\r\n }\r\n UserStore.dropPIDfiles(this.state.droppedFiles);\r\n this.setState({\r\n files: fileList,\r\n submitted: true,\r\n });\r\n };\r\n\r\n handleCheckboxCheck = (e) => {\r\n var ele = document.getElementsByClassName(\"file-checkbox\");\r\n\r\n if (e.target.checked === true) {\r\n const fname = e.target.name;\r\n this.state.selectedFiles.push(fname);\r\n } else {\r\n const index = this.state.selectedFiles.indexOf(e.target.name);\r\n this.state.selectedFiles.splice(index, 1);\r\n \r\n }\r\n if(this.state.selectedFiles.length > 1)\r\n {\r\n this.setState({\r\n countmsg:\"Files selected\"\r\n })\r\n }\r\n else if(this.state.selectedFiles.length === 1)\r\n {\r\n this.setState({\r\n countmsg:\"File selected\"\r\n })\r\n }else {\r\n this.setState({\r\n countmsg:\"\"\r\n })\r\n }\r\n\r\n if(ele.length > this.state.selectedFiles.length) {\r\n this.setState({ isSelectAll: false });\r\n }\r\n\r\n if(ele.length === this.state.selectedFiles.length) {\r\n this.setState({ isSelectAll: true });\r\n }\r\n };\r\n\r\n selects() {\r\n var ele = document.getElementsByClassName(\"file-checkbox\");\r\n var allFiles = [];\r\n this.setState({ isSelectAll: !this.state.isSelectAll });\r\n\r\n if (!this.state.isSelectAll) {\r\n for (var i = 0; i < ele.length; i++) {\r\n if (ele[i].type === \"checkbox\") ele[i].checked = true;\r\n allFiles.push(ele[i].name);\r\n }\r\n }\r\n\r\n if (this.state.isSelectAll) {\r\n for (var i = 0; i < ele.length; i++) {\r\n if (ele[i].type === \"checkbox\") ele[i].checked = false;\r\n }\r\n }\r\n let msg = \"\";\r\n if(allFiles.length === 1)\r\n {\r\n msg = \"File selected\";\r\n }\r\n else{\r\n msg = \"Files selected\";\r\n }\r\n this.setState({ \r\n selectedFiles: allFiles,\r\n countmsg: msg,\r\n });\r\n }\r\n\r\n removeSelectAll = () => {\r\n this.setState({ \r\n isSelectAll: false,\r\n });\r\n };\r\n\r\n handleDelete = () => {\r\n if (this.state.selectedFiles.length === 0) {\r\n this.setState({\r\n fileSelectionError: true,\r\n fileSelectionErrorMsg: \"Please select at least one file to delete\",\r\n });\r\n } else {\r\n this.setState({ deletePopup: true });\r\n }\r\n };\r\n\r\n openModal = () => {\r\n if (this.state.selectedFiles.length === 0) {\r\n this.setState({\r\n fileSelectionError: true,\r\n fileSelectionErrorMsg: \"Please select at least one file to upload\",\r\n });\r\n } \r\n else {\r\n this.setState({ show: true, showSetTimings: false });\r\n }\r\n };\r\n\r\n deletePID() {\r\n const updatedFiles = [...this.state.files];\r\n const filesToDelete = [];\r\n\r\n var ele = document.getElementsByClassName(\"file-checkbox\");\r\n for (var i = 0; i < ele.length; i++) {\r\n if (ele[i].type === \"checkbox\" && ele[i].checked === true) {\r\n filesToDelete.push(ele[i].name);\r\n }\r\n }\r\n\r\n filesToDelete.map((file) => {\r\n const index = updatedFiles.indexOf(file);\r\n updatedFiles.splice(index, 1);\r\n });\r\n\r\n this.setState({ files: updatedFiles });\r\n this.setState({ selectedFiles: [] });\r\n\r\n for (var i = 0; i < ele.length; i++) {\r\n if (ele[i].type === \"checkbox\") ele[i].checked = false;\r\n }\r\n this.setState({ deletePopup: false });\r\n UserStore.dropPIDfiles(updatedFiles);\r\n this.removeSelectAll();\r\n }\r\n\r\n handleDropdownChange = (e) => {\r\n this.state.tagValue = e.target.value;\r\n var ele = document.getElementsByClassName(\"file-checkbox\");\r\n\r\n for (var i = 0; i < ele.length; i++) {\r\n if (ele[i].type === \"checkbox\" && ele[i].checked === true) {\r\n let val = this.state.tagValue;\r\n var obj = { filename: ele[i].name, tag: val };\r\n this.state.taggedFiles.push(obj);\r\n this.state.tFiles.push(ele[i].name);\r\n this.setState({ tempFiles: this.state.tFiles });\r\n }\r\n }\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({\r\n show: false,\r\n showfiletypedailog: false,\r\n selectedTime: \"\",\r\n batchProcess: false,\r\n batchTime: \"\",\r\n });\r\n };\r\n\r\n handleFileSelection = () => {\r\n this.setState({ fileSelectionError: false, fileSelectionErrorMsg: \"\" });\r\n };\r\n \r\n handleUploadSubmit = () => {\r\n this.handleChange();\r\n this.setState({ show: false });\r\n this.removeSelectAll();\r\n };\r\n\r\n handleDateChange = (date) => {\r\n this.setState({ selectedDate: date });\r\n };\r\n\r\n showTimings = (e) => {\r\n if (e.target.value === \"batchProcess\") {\r\n this.setState({ showSetTimings: true, batchProcess: true });\r\n } else {\r\n this.setState({\r\n showSetTimings: false,\r\n batchProcess: false,\r\n batchTime: \"\",\r\n selectedTime: \"\",\r\n });\r\n }\r\n };\r\n\r\n handleDeleteClose = () => {\r\n this.setState({ deletePopup: false });\r\n };\r\n\r\n handleChange = async (event) => {\r\n let data = {};\r\n if (this.state.batchProcess) {\r\n let scheduleTime = {\r\n batchScheduledDateTime: this.state.batchTime,\r\n };\r\n await axios\r\n .post(API_Endpoint + `/CreatePidBatch`, scheduleTime)\r\n .then((res) => {\r\n if (res.status === 200) {\r\n data = {\r\n // ...data,\r\n batchId: res.data.batchId,\r\n isBatchFileProcessing: true,\r\n };\r\n }\r\n });\r\n this.setState({\r\n selectedTime: \"\",\r\n batchTime: \"\",\r\n batchProcess: false,\r\n });\r\n }else {\r\n data = {\r\n isBatchFileProcessing: false,\r\n };\r\n }\r\n UserStore.selectedfiles(this.state.selectedFiles);\r\n var ele = document.getElementsByClassName(\"file-checkbox\");\r\n const updatedDropFile = toJS(UserStore.droppedPIDFiles);\r\n const updatedSelectedList = this.state.selectedFiles;\r\n const count = UserStore.countforProgress;\r\n this.setState({\r\n countSeletedItem: this.state.selectedFiles.length,\r\n });\r\n UserStore.setCount(count + 1);\r\n const progessFile = toJS(UserStore.selectedfilesforupload);\r\n const allFile = [...progessFile, ...this.state.selectedFiles];\r\n UserStore.selectedFilesforupload(allFile);\r\n\r\n for (let t in this.state.selectedFiles) {\r\n var index = this.state.files.indexOf(this.state.selectedFiles[t]);\r\n if (index > -1) {\r\n this.state.files.splice(index, 1);\r\n }\r\n }\r\n\r\n for (let i in this.state.selectedFiles) {\r\n var idx = this.state.droppedFiles.findIndex(\r\n (p) => p.name == this.state.selectedFiles[i]\r\n );\r\n this.state.droppedFiles.splice(idx, 1);\r\n }\r\n\r\n this.setState({\r\n files: this.state.files,\r\n droppedFiles: this.state.droppedFiles,\r\n selectedFiles: [],\r\n });\r\n\r\n for (var i = 0; i < ele.length; i++) {\r\n if (ele[i].type === \"checkbox\") ele[i].checked = false;\r\n }\r\n\r\n for (let x = 0; x < updatedDropFile.length; x++) {\r\n let fileCount = 0;\r\n for (let z = 0; z < updatedSelectedList.length; z++) {\r\n if (updatedDropFile[x].name === updatedSelectedList[z]) {\r\n fileCount = fileCount + 1;\r\n updatedSelectedList[z] = \"\";\r\n\r\n const filename = updatedDropFile[x].name;\r\n const workspaceid = UserStore.PIDworkspaceID;\r\n \r\n data = {\r\n ...data,\r\n ProjectWorkSpaceId: workspaceid,\r\n fileName: filename,\r\n fileTags: '',\r\n };\r\n const file = updatedDropFile[x];\r\n\r\n const options = {\r\n onUploadProgress: (ProgressEvent) => {\r\n const { loaded, total } = ProgressEvent;\r\n let percent = Math.floor((loaded * 100) / total);\r\n UserStore.getPercentage(percent);\r\n if (percent < 100) {\r\n this.setState({\r\n uploadPercentage: percent,\r\n });\r\n } else if (percent === 100) {\r\n this.state.uploadedFile.push(filename);\r\n }\r\n },\r\n };\r\n\r\n if (fileCount == 1) {\r\n await axios\r\n .post(API_Endpoint + `/GetPidUploadPath`, data, options)\r\n\r\n .then((res) => {\r\n const filename = res.data.fileName;\r\n let uri = res.data.sasUri;\r\n if (res.status === 200) {\r\n this.setState({\r\n uploadblob: true,\r\n fileSucceded: [file.name],\r\n });\r\n const resid = this.handleblobLoad(uri, file, filename);\r\n } else {\r\n UserStore.getPercentage(0);\r\n this.setState({\r\n fileFailed: [file.name],\r\n });\r\n this.handleFailed(uri, res.data.message, filename);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n UserStore.dropfiles(this.state.droppedFiles);\r\n };\r\n\r\n handleblobLoad = async (uri, file, filename) => {\r\n try{\r\n const blobServiceClient1 = new BlockBlobClient(uri);\r\n const uploadBlobResponse = await blobServiceClient1.uploadData(file);\r\n if(!uploadBlobResponse.requestId)\r\n {\r\n let res = await axios.post(API_Endpoint + `/PidFileUploadComplete`, {\r\n \"fileUploadCompletedList\":[\r\n {\r\n \"fileName\": filename,\r\n \"fileUploadedSuccessfully\": false,\r\n \"status\": \"File upload failed\"\r\n }\r\n ]\r\n }); \r\n \r\n let files = toJS(UserStore.selectedfilesforupload);\r\n let splittedfilenames = filename.split(\"_\")[0];\r\n let filenameresults = filename.split(`${splittedfilenames}_`)[1];\r\n UserStore.selectedFilesforupload(\r\n files.filter((item) => item !== filenameresults)\r\n );\r\n \r\n \r\n } \r\n else\r\n {\r\n let res = await axios.post(API_Endpoint + `/PidFileUploadComplete`, {\r\n \"fileUploadCompletedList\":[\r\n {\r\n \"fileName\": filename,\r\n \"fileUploadedSuccessfully\": true,\r\n \"status\": \"File upload successful\"\r\n }\r\n ] \r\n });\r\n let filesnew = toJS(UserStore.selectedfilesforupload);\r\n let splittedfilenamesnew = filename.split(\"_\")[0];\r\n let filenameresultsnew = filename.split(`${splittedfilenamesnew}_`)[1];\r\n UserStore.selectedFilesforupload(\r\n filesnew.filter((item) => item !== filenameresultsnew)\r\n );\r\n } \r\n \r\n\r\n }\r\n catch (error) {\r\n let files = toJS(UserStore.selectedfilesforupload);\r\n let splittedfilename = filename.split(\"_\")[0];\r\n let filenameresult = filename.split(`${splittedfilename}_`)[1];\r\n \r\n UserStore.selectedFilesforupload(\r\n files.filter((item) => item !== filenameresult)\r\n );\r\n let errstr = error.message.split(\".\\n\")[0];\r\n // console.log(error, errstr);\r\n\r\n this.logMyErrors(errstr, filename); \r\n throw new Error('Error Uploading the selfie to blob'); \r\n \r\n \r\n} \r\n\r\nUserStore.getprocessGrid(1);\r\n localStorage.setItem(\"getprocessGrid\", 1);\r\n const data = this.state.apifileName;\r\n this.state.apifileName.push(filename);\r\n this.state.count = this.state.count + 1;\r\n UserStore.addFiles(file.name);\r\n if (this.state.count === this.state.countSeletedItem) { \r\n // history.push(\"WorkspacePID/Upload\");\r\n this.setState({\r\n count: 0,\r\n batchProcess: false,\r\n });\r\n } \r\n };\r\n\r\n logMyErrors = async(error,filename)=>\r\n {\r\n\r\n let splittedfilename = filename.split(\"_\")[0];\r\n let filenameresult = filename.split(`${splittedfilename}_`)[1];\r\n \r\n let delfiles = [...UserStore.rejectedfilesforupload,filenameresult];\r\n\r\n UserStore.rejectedFilesforupload(delfiles);\r\n \r\n let res = await axios.post(API_Endpoint + `/PidFileUploadComplete`, {\r\n \"fileUploadCompletedList\":[\r\n {\r\n \"fileName\": filename,\r\n \"fileUploadedSuccessfully\": false,\r\n \"status\": \"File upload Failure\"\r\n }\r\n ]});\r\n \r\n }\r\n\r\n handleFailed = async (uri, data, filename) => {\r\n let files = toJS(UserStore.selectedfilesforupload);\r\n let splittedfilename1 = filename.split(\"_\")[0];\r\n let filenameresult1 = filename.split(`${splittedfilename1}_`)[1];\r\n \r\n UserStore.selectedFilesforupload(\r\n files.filter((item) => item !== filenameresult1)\r\n );\r\n let delfiles = [...UserStore.rejectedfilesforupload,filename];\r\n UserStore.rejectedFilesforupload(delfiles);\r\n }\r\n\r\n handleTimeDateChange = (e) => {\r\n this.setState({ openDatePicker: false });\r\n let dateTime = e + \"\";\r\n let time = dateTime.split(\" \");\r\n time = time[4] + \"\";\r\n let hh = time.split(\":\");\r\n let aa = \"\";\r\n\r\n if (time === \"12:00:00\" || time === \"12:30:00\") {\r\n hh[0] = \"12\";\r\n aa = \"PM\";\r\n } else if (time === \"00:00:00\" || time === \"00:30:00\") {\r\n hh[0] = \"12\";\r\n aa = \"AM\";\r\n } else if (parseInt(hh[0]) > 12) {\r\n hh[0] = parseInt(hh[0]) - 12;\r\n aa = \"PM\";\r\n }\r\n else {\r\n hh[0] = parseInt(hh[0]);\r\n aa = \"AM\";\r\n }\r\n dateTime = hh[0] + \":\" + hh[1] + \" \" + aa;\r\n\r\n this.setState({ selectedTime: dateTime });\r\n let standardTime = new Date(e);\r\n let batchtime = standardTime.toISOString().slice(0, 19);\r\n this.setState({ batchTime: batchtime });\r\n };\r\n\r\n filterPassedTime = (time) => {\r\n const currentDate = new Date();\r\n const selectedDate = new Date(time);\r\n\r\n return currentDate.getTime() < selectedDate.getTime();\r\n };\r\n\r\n changeStatus = () => {\r\n this.setState({ openDatePicker: false });\r\n };\r\n\r\n openTimePicker = () => {\r\n this.setState({ openDatePicker: true });\r\n };\r\n\r\n render() {\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n \r\n Select All\r\n \r\n
    \r\n
    \r\n {this.state.selectedFiles.length > 0 && (\r\n 0\r\n ? {\r\n font: \"normal normal normal 1vw Helvetica\",\r\n }\r\n : {\r\n font: \"normal normal normal 1vw Helvetica\",\r\n marginLeft: \"3vw\",\r\n }\r\n }\r\n >\r\n {this.state.selectedFiles.length} {this.state.countmsg}\r\n \r\n )}\r\n 0\r\n ? {\r\n width: \"8.4vw\",\r\n height: \"2.29vw\",\r\n fontSize: \"0.9vw\",\r\n background: \"#0c629b\",\r\n color: \"#ffffff\",\r\n textTransform: \"none\",\r\n borderRadius: \"0.3vw\",\r\n border: \"0\",\r\n marginLeft: \"1vw\",\r\n }\r\n : {\r\n width: \"8.4vw\",\r\n height: \"2.29vw\",\r\n fontSize: \"0.9vw\",\r\n background: \"#0c629b\",\r\n color: \"#ffffff\",\r\n textTransform: \"none\",\r\n borderRadius: \"0.3vw\",\r\n border: \"0\",\r\n }\r\n }\r\n >\r\n \r\n \r\n Upload\r\n \r\n \r\n \r\n \r\n \r\n Delete\r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n
    Are you sure to delete?
    \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n {this.state.fileSelectionErrorMsg}\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n label=\"Upload files for processing now\"\r\n />\r\n }\r\n label=\"Upload files for batch processing\"\r\n />\r\n {this.state.showSetTimings ? (\r\n \r\n
    \r\n \r\n at {this.state.selectedTime === \"\" ? \"____\" : this.state.selectedTime} \r\n \r\n
    \r\n }\r\n />\r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport UserStore from '../../UserStore';\r\nimport { observer } from \"mobx-react-lite\";\r\nimport './Progress.scss';\r\n\r\nvar files = [];\r\n\r\nfunction Progress() {\r\n \r\n // const count = UserStore.countforProgressPID;\r\n UserStore.setCountPID(1);\r\n const percent = UserStore.percentagePID;\r\n\r\n files = UserStore.fileSuccededPID.map((number) => \r\n

    {number}{percent}% completed

    \r\n );\r\n \r\n return (\r\n
    \r\n
    \r\n \r\n Log Files\r\n
    \r\n \r\n \r\n \r\n

    \r\n
    \r\n \r\n {files} \r\n \r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default observer(Progress);","import React from \"react\";\r\nimport moment from \"moment\";\r\nclass ProcessGridPopup extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n rows: [],\r\n };\r\n }\r\n componentDidMount() {\r\n const myrows = this.props.batchData;\r\n let rowget = [];\r\n if (myrows) {\r\n myrows.map((items, index) => {\r\n const row2 = {\r\n id: items.batchId,\r\n batchScheduleDateTime: items.batchScheduleDateTime,\r\n batchCreationDateTime: items.batchCreationDateTime,\r\n batchProcessingDateTime: items.batchProcessingDateTime,\r\n batchCreatedBy: items.batchCreatedBy,\r\n filesProcessedSuccessfully: items.filesProcessedSuccessfully,\r\n filesProcessedFailure: items.filesProcessedFailure,\r\n fileWaitingForProcessing: items.fileWaitingForProcessing,\r\n totalFilesUploaded: items.totalFilesUploaded,\r\n totalIsometricUploaded: items.totalIsometricUploaded,\r\n isometricProcessedSuccessfully: items.isometricProcessedSuccessfully,\r\n isometricProcessedFailure: items.isometricProcessedFailure,\r\n isometricWaitingForProcessing: items.isometricWaitingForProcessing,\r\n };\r\n rowget.push(row2);\r\n });\r\n }\r\n this.setState({ rows: rowget });\r\n }\r\n render() {\r\n return (\r\n
    \r\n \r\n \r\n \r\n Batch Schedule DateTime\r\n Batch Created By\r\n Batch Processing DateTime\r\n Total Files Uploaded\r\n Files Processed Successfully\r\n File Waiting For Processing\r\n Files Processed Failure\r\n Total Isometric Uploaded\r\n Isometric Processed Successfully\r\n Isometric Waiting For Processing\r\n Isometric Processed Failure\r\n \r\n \r\n \r\n {this.state.rows.map((items) => (\r\n \r\n \r\n {items.batchScheduleDateTime != \"\"\r\n ? moment\r\n .utc(\r\n items.batchScheduleDateTime,\r\n \"DD/MM/YYYY hh:mm:ss a\"\r\n )\r\n .local()\r\n .format(\"DD/MM/YYYY hh:mm:ss a\")\r\n : \"\"}\r\n \r\n {items.batchCreatedBy}\r\n \r\n {items.batchProcessingDateTime != \"\"\r\n ? moment\r\n .utc(\r\n items.batchProcessingDateTime,\r\n \"DD/MM/YYYY hh:mm:ss a\"\r\n )\r\n .local()\r\n .format(\"DD/MM/YYYY hh:mm:ss a\")\r\n : \"\"}\r\n \r\n {items.totalFilesUploaded}\r\n {items.filesProcessedSuccessfully}\r\n {items.fileWaitingForProcessing}\r\n {items.filesProcessedFailure}\r\n {items.totalIsometricUploaded}\r\n {items.isometricProcessedSuccessfully}\r\n {items.isometricWaitingForProcessing}\r\n {items.isometricProcessedFailure}\r\n \r\n ))}\r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ProcessGridPopup;\r\n","export function GetInitJSON(data) {\r\n return { type: \"GET_JSON_DATA\", data };\r\n}\r\n\r\nexport function FilterLineGroup(symbolData,symbolsData={}) {\r\n const data = [symbolData,symbolsData]\r\n return { type: \"FILTER_LINE_GROUP\", data };\r\n}\r\n\r\nexport function AddNewAsset(data) {\r\n return { type: \"ADD_NEW_ASSET\", data };\r\n}\r\n\r\nexport function EditAsset(newValue, oldValue) {\r\n let data = [oldValue, newValue];\r\n return { type: \"EDIT_ASSET\", data };\r\n}\r\n\r\nexport function EditAssetLineGroup(oldValue,row) {\r\n let data = [oldValue,row];\r\n return{ type: \"EDIT_LINE_GROUP\",data}\r\n}\r\n\r\nexport function newLineGroup(data) {\r\n return { type: \"NEW_LINE_GROUP\", data };\r\n}\r\n\r\nexport function newLineNumber(data) {\r\n return { type: \"NEW_LINE_NUMBER\", data };\r\n}\r\n\r\nexport function Transform(data) {\r\n return { type: \"TRANSFORM\", data };\r\n}\r\n\r\nexport function editDataWindow1(data) {\r\n return{type:\"EDIT_DATA\",data};\r\n}\r\n\r\nexport function editSymbolData(data) {\r\n return{type:\"EDIT_DATA\",data};\r\n}\r\n\r\nexport function editLineData(data) {\r\n return{type:\"EDIT_LINE_DATA\",data};\r\n}\r\n\r\nexport function deleteSymbol(data) {\r\n return{type:\"DELETE_SYMBOL\",data};\r\n}\r\n\r\nexport function deleteLine(data) {\r\n return{type:\"DELETE_LINE\",data};\r\n}\r\n\r\nexport function selectAsset(data) {\r\n return{type:\"SELECT_ASSET\",data};\r\n}\r\n\r\nexport function symbolsDetails(data) {\r\n return{type:\"SYMBOLS_DETAILS\",data};\r\n}\r\n\r\nexport function symbolsRanking(data) {\r\n return{type:\"SYMBOLS_RANKING\",data};\r\n}","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport \"react-table-filter/lib/styles.css\";\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Cancel from \"@material-ui/icons/Cancel\";\r\nimport CircleChecked from \"@material-ui/icons/CheckCircleRounded\";\r\nimport { toJS } from \"mobx\";\r\nimport TableFilter from \"react-table-filter\";\r\nimport { toast } from \"react-toastify\";\r\nimport UserStore from \"../../../UserStore\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport Pager from \"./PagerPID/PagerPID\";\r\nimport {} from \"./processGrid.scss\";\r\nimport {} from \"./lib/styles.css\";\r\nimport TextFieldMui from \"@material-ui/core/TextField\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport axios from \"axios\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { selectAsset } from \"../../../redux/actions/documentActions\";\r\n\r\nconst styles = () => ({\r\n label: {\r\n \"&$erroredLabel\": {\r\n color: \"black\",\r\n },\r\n },\r\n erroredLabel: {},\r\n});\r\n\r\nconst TextField = withStyles(styles)(function TextField({ classes, ...props }) {\r\n return (\r\n \r\n );\r\n});\r\n\r\nconst ProcessGridTable = ({\r\n editConfigData,\r\n onRowSelected,\r\n searchrows,\r\n dropdownChange,\r\n fromeditconfig,\r\n onEditBlur,\r\n}) => {\r\n const tableRef = useRef();\r\n const location = useLocation();\r\n let [processData, setProcessData] = useState(editConfigData);\r\n const [processDataforConfig, setProcessDataforConfig] =\r\n useState(editConfigData);\r\n const [tabledata, setTabledata] = useState(editConfigData);\r\n let [isSelectAll, setIsSelectAll] = useState(false);\r\n const [fromeditconfigflag, setfromeditconfig] = useState(fromeditconfig);\r\n const [selectedRows, setSelectedRows] = useState([]);\r\n useEffect(() => {\r\n UserStore.SetPerPageData(localStorage.getItem(\"perPageData\"));\r\n },[])\r\n const [currentPage, setCurrentPage] = useState(\r\n Number(toJS(UserStore.skipData)) / Number(toJS(UserStore.perPageData)) + 1\r\n );\r\n useEffect(() => {\r\n if(localStorage.getItem(\"filterChange\") === \"change\") {\r\n setCurrentPage(1);\r\n setSkip((1 - 1) * top);\r\n UserStore.setSkipData((1 - 1) * top);\r\n }\r\n },[UserStore.filesFilterPID])\r\n let [excelreportrow, setexcelreportrow] = useState([]);\r\n let [configIdforedelete, setconfigIdforedelete] = useState(0);\r\n let [filterConfig, setFilterConfig] = useState({});\r\n let [rowneeded, setrowneeded] = useState(0);\r\n const [firstLoad, setfirstLoad] = useState(false);\r\n const [pageChange, setPageChange] = useState(false);\r\n const [deleteconfig, setDeleteconfig] = useState(false);\r\n const [editconfig, seteditconfig] = useState([]);\r\n const [editconfigdata, seteditconfigdata] = useState([]);\r\n const [show, setShow] = useState(false);\r\n const [modalId, setmodalId] = useState(false);\r\n const dataLength = editConfigData.length;\r\n\r\n const [skip, setSkip] = useState(\r\n new URLSearchParams(location.search).get(\"skip\") ?? toJS(UserStore.skipData)\r\n );\r\n const [top, topValueUpdate] = useState(\r\n new URLSearchParams(location.search).get(\"top\") ??\r\n toJS(UserStore.perPageData)\r\n );\r\n const selectedItem = {\r\n id : undefined\r\n }\r\n const dispatch = useDispatch();\r\n dispatch(selectAsset(selectedItem))\r\n let resultsPerPage = top;\r\n let storeData = toJS(UserStore.processData);\r\n const API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n\r\n const filterFn = () => {\r\n const countOfData = Number(skip) + Number(top);\r\n const slicedData = storeData.slice(skip, countOfData);\r\n\r\n setProcessData(slicedData);\r\n if (searchrows && !firstLoad) {\r\n setDataPerPage(searchrows);\r\n setfirstLoad(true);\r\n }\r\n\r\n if (pageChange) {\r\n const items = document.getElementsByClassName(\"file-checkbox\");\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i].type == \"checkbox\" && items[i].checked === true)\r\n items[i].checked = false;\r\n }\r\n setSelectedRows([]);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setTabledata(editConfigData);\r\n setProcessDataforConfig(editConfigData);\r\n const skipValue =\r\n searchrows \r\n // ||\r\n // dropdownChange === \"Processing Failed\" ||\r\n // dropdownChange === \"Processed\"\r\n ? 0\r\n : skip;\r\n const countOfData = Number(skipValue) + Number(top);\r\n const slicedData = storeData.slice(skipValue, countOfData);\r\n setProcessData(slicedData);\r\n if (\r\n dropdownChange === \"Processing Failed\" ||\r\n dropdownChange === \"Processed\"\r\n ) {\r\n UserStore.selectedRowID = [];\r\n }\r\n if (pageChange) {\r\n const items = document.getElementsByClassName(\"file-checkbox\");\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i].type == \"checkbox\" && items[i].checked === true)\r\n items[i].checked = false;\r\n }\r\n\r\n setSelectedRows([]);\r\n }\r\n }, [skip, currentPage, filterConfig, pageChange, searchrows, dropdownChange]);\r\n\r\n if (searchrows && !firstLoad) {\r\n setCurrentPage(1);\r\n setSkip((1 - 1) * top);\r\n UserStore.setSkipData((1 - 1) * top);\r\n setfirstLoad(true);\r\n excelreportrow = [];\r\n excelreportrow.push(storeData);\r\n UserStore.addReportdata(storeData);\r\n UserStore.selectedRowID = [];\r\n }\r\n\r\n//Used to arrange the data based on filter functionality\r\n const filterUpdated = (newData, filterConfiguration) => {\r\n setCurrentPage(1);\r\n setSkip((1 - 1) * top);\r\n UserStore.setSkipData((1 - 1) * top);\r\n setFilterConfig(filterConfiguration);\r\n UserStore.setPIDFilterRetain(true);\r\n setDataPerPage(newData);\r\n UserStore.setPIDFilterProcessConfiguration(filterConfiguration);\r\n UserStore.setProcessData(newData);\r\n storeData = toJS(UserStore.processData);\r\n UserStore.setPIDFilterData(newData);\r\n filterFn();\r\n UserStore.selectedRowID = [];\r\n };\r\n\r\n const handleCloseDialog = () => {\r\n setDeleteconfig(false);\r\n };\r\n\r\n const handleClose = () => {\r\n seteditconfigdata(toJS(UserStore.editConfigData));\r\n setShow(false);\r\n };\r\n\r\n//Used to slice the data per page based on dropdown adjustment\r\n const setDataPerPage = () => {\r\n const countOfData = Number(skip) + Number(top);\r\n const slicedData = storeData.slice(skip, countOfData);\r\n setProcessData(slicedData);\r\n UserStore.setreportStamp(true);\r\n localStorage.setItem(\"setreportStamp\", true);\r\n };\r\n\r\n//Used to update the page number after changing the pagination\r\n const updatePagination = (newPageNumber) => {\r\n if (newPageNumber > 1) setPageChange(true);\r\n setSkip((newPageNumber - 1) * top);\r\n UserStore.setSkipData((newPageNumber - 1) * top);\r\n setCurrentPage(newPageNumber);\r\n };\r\n\r\n//Used to save the modified configuration values\r\n const handleEditSave = async () => {\r\n const workspaceId1 = UserStore.PIDworkspaceID;\r\n UserStore.setEditConfigData(editconfigdata);\r\n let data = {\r\n projectWorkSpaceId: workspaceId1,\r\n configId: editconfigdata[rowneeded].configId,\r\n key1: editconfigdata[rowneeded].key1,\r\n key2: editconfigdata[rowneeded].key2,\r\n value: editconfigdata[rowneeded].value,\r\n remarks: editconfigdata[rowneeded].remarks,\r\n };\r\n const res = await axios.post(API_Endpoint + `/EditPidConfiguration`, data);\r\n setShow(false);\r\n };\r\n\r\n//Used to change the configuration values\r\n const handleChange1 = (event) => {\r\n let id = event.target.id;\r\n const initArray = editConfigData;\r\n rowneeded = initArray.findIndex((obj) => obj.configId == id);\r\n if (event.target.name === \"key1\") {\r\n initArray[rowneeded].key1 = event.target.value;\r\n } else if (event.target.name === \"key2\") {\r\n initArray[rowneeded].key2 = event.target.value;\r\n } else if (event.target.name === \"value\") {\r\n initArray[rowneeded].value = event.target.value;\r\n } else if (event.target.name === \"remarks\") {\r\n initArray[rowneeded].remarks = event.target.value;\r\n }\r\n seteditconfig([initArray[rowneeded]]);\r\n setrowneeded(rowneeded);\r\n seteditconfigdata(initArray);\r\n };\r\n\r\n//Used to save the deleted configuration id in a state value\r\n const handledelete = (e) => {\r\n setDeleteconfig(true);\r\n setconfigIdforedelete(e.target.id);\r\n };\r\n\r\n//Used to save the edited data in a state value\r\n const handleEdit = (e) => {\r\n let id = e.target.id;\r\n\r\n setmodalId(id);\r\n const data1 = toJS(UserStore.editConfigData)\r\n .filter((item) => item.configId == id)\r\n .map(({ configId, key1, key2, value, remarks }) => ({\r\n configId,\r\n key1,\r\n key2,\r\n value,\r\n remarks,\r\n }));\r\n\r\n seteditconfig(data1);\r\n setShow(true);\r\n };\r\n\r\n//Used to delete the configuration values after confirmation\r\n const handlePurge = (e) => {\r\n const rowneeded = processData.filter(\r\n (row) => row.configId != configIdforedelete\r\n );\r\n\r\n const data = {\r\n configId: configIdforedelete,\r\n };\r\n setProcessData(rowneeded);\r\n\r\n const postDataToDelete = axios\r\n .post(API_Endpoint + `/DeletePidConfiguration`, data)\r\n .then((res) => {\r\n if (res.status === 200) {\r\n onRowSelected();\r\n }\r\n });\r\n setDeleteconfig(false);\r\n };\r\n\r\n//Used to display specific rows per page based on dropdown value change\r\n const customPagination = (e, dat) => {\r\n setCurrentPage(1);\r\n setSkip((1 - 1) * top);\r\n UserStore.setSkipData((1 - 1) * top);\r\n topValueUpdate(e.target.selectedOptions[0].value);\r\n\r\n if (e.target.selectedOptions[0].value === \"30\") {\r\n const slicedData2 = dat.slice(skip, 3 * 10);\r\n\r\n setProcessData(slicedData2);\r\n } else if (e.target.selectedOptions[0].value === \"50\") {\r\n const slicedData3 = dat.slice(skip, 5 * 10);\r\n\r\n setProcessData(slicedData3);\r\n } else if (e.target.selectedOptions[0].value === \"100\") {\r\n const slicedData4 = dat.slice(skip, 10 * 10);\r\n\r\n setProcessData(slicedData4);\r\n } else {\r\n const slicedData1 = dat.slice(skip, 1 * 10);\r\n setProcessData(slicedData1);\r\n }\r\n UserStore.SetPerPageData(e.target.selectedOptions[0].value);\r\n localStorage.setItem(\"perPageData\",e.target.selectedOptions[0].value)\r\n };\r\n\r\n//Used to select/deselect each checkbox\r\n const handleCheckbox = (e, item) => {\r\n if (e.target.checked === true) {\r\n let updatedRows = [];\r\n updatedRows.push(item);\r\n onRowSelected(item);\r\n\r\n UserStore.setSelectedRowID(item);\r\n excelreportrow.push(item);\r\n UserStore.addReportdata(excelreportrow);\r\n\r\n setSelectedRows(toJS(UserStore.selectedRowID));\r\n if (toJS(UserStore.selectedRowID).length === dataLength)\r\n setIsSelectAll(true);\r\n } else {\r\n let newRows = UserStore.reportData.filter(\r\n (sr) => sr.sheetId !== item.sheetId\r\n );\r\n const deselectedItem = toJS(UserStore.selectedRowID).filter(\r\n (s) => s.sheetId !== item.sheetId\r\n );\r\n\r\n onRowSelected(deselectedItem);\r\n\r\n deselectedItem.length > 0 && setIsSelectAll(false);\r\n storeData.length === 1 && setIsSelectAll(false);\r\n toJS(UserStore.PIDSearchData).length !== 0 && setIsSelectAll(false);\r\n\r\n if (newRows.length === 0) {\r\n UserStore.reportData = editConfigData;\r\n } else {\r\n UserStore.addReportdata(newRows);\r\n }\r\n setSelectedRows(newRows);\r\n excelreportrow = [];\r\n setexcelreportrow(newRows);\r\n UserStore.selectedRowID = [];\r\n UserStore.selectedRowID = newRows;\r\n }\r\n };\r\n\r\n//Used to select/unselect all the checkboxes\r\n const selects = () => {\r\n let ele = document.getElementsByClassName(\"file-checkbox\");\r\n let allRows = [];\r\n const sel = !isSelectAll;\r\n setIsSelectAll(sel);\r\n if (sel) {\r\n for (let i = 0; i < ele.length; i++) {\r\n if (ele[i].type === \"checkbox\") ele[i].checked = true;\r\n allRows.push(ele[i].name);\r\n }\r\n setSelectedRows(editConfigData);\r\n onRowSelected(editConfigData,\"all\");\r\n UserStore.addReportdata(editConfigData);\r\n if (!toJS(UserStore.processData.length)) {\r\n UserStore.selectedRowID = editConfigData;\r\n } else {\r\n UserStore.selectedRowID = UserStore.processData;\r\n }\r\n } else {\r\n for (let i = 0; i < ele.length; i++) {\r\n if (ele[i].type === \"checkbox\") ele[i].checked = false;\r\n setSelectedRows([]);\r\n onRowSelected([],\"all\");\r\n }\r\n\r\n UserStore.selectedRowID = [];\r\n excelreportrow = [];\r\n setexcelreportrow([]);\r\n UserStore.addReportdata(editConfigData);\r\n }\r\n };\r\n\r\n//Used to supersede the duplicate rows\r\n const supersededCheck = async (e) => {\r\n const value = e.target.value;\r\n if (value === \"Yes\") {\r\n const res = await axios.post(API_Endpoint + `/PidMarkSheetSuperceded`, {\r\n sheetId: e.target.id,\r\n });\r\n res.status === 200 &&\r\n toast.success(\"Superseded successfully\", { autoClose: 3000 });\r\n }\r\n };\r\n\r\n const elementsHtml = processData.map((item, index) => {\r\n const selectedRowID = toJS(UserStore.selectedRowID);\r\n const arr = selectedRowID.some((e) => e.sheetId === item.sheetId);\r\n return (\r\n \r\n \r\n handleCheckbox(e, item)}\r\n type=\"checkbox\"\r\n />\r\n \r\n {item.serialNumber}\r\n {item.fileName}\r\n \r\n {item.pidNumber !== \"Not Detected\" ? (\r\n item.pidNumber\r\n ) : item.isProcessed === \"No\" && item.processedPercentage == \"0%\" ? (\r\n onEditBlur(e, item)}\r\n style={{ color: \"red\" }}\r\n >\r\n Not Detected\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n {item.pidRevisionNumber !== \"Not Detected\" ? (\r\n item.pidRevisionNumber\r\n ) : item.isProcessed === \"No\" && item.processedPercentage == \"0%\" ? (\r\n onEditBlur(e, item)}\r\n style={{ color: \"red\" }}\r\n >\r\n Not Detected\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n {item.sheetNumber}\r\n \r\n {item.pidDescription !== \"Not Detected\" ? (\r\n item.pidDescription\r\n ) : item.isProcessed === \"No\" && item.processedPercentage == \"0%\" ? (\r\n onEditBlur(e, item)}\r\n style={{ color: \"red\" }}\r\n >\r\n Not Detected\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n {item.fileUploadDttm}\r\n {item.fileUploadedBy}\r\n \r\n {item.isProcessed === \"Yes\" ? (\r\n

    \r\n Yes{\" \"}\r\n

    \r\n ) : (\r\n

    \r\n No{\" \"}\r\n

    \r\n )}{\" \"}\r\n \r\n {item.processedPercentage}\r\n \r\n {item.isApproved === \"Yes\" ? (\r\n

    \r\n Yes{\" \"}\r\n

    \r\n ) : (\r\n

    \r\n No{\" \"}\r\n

    \r\n )}{\" \"}\r\n \r\n {item.approvedDttm}\r\n {item.totalLineCount}\r\n {item.totalValveCount}\r\n \r\n {item.isDuplicateFile === \"Yes\" ? (\r\n

    \r\n Yes{\" \"}\r\n

    \r\n ) : (\r\n

    \r\n No{\" \"}\r\n

    \r\n )}{\" \"}\r\n \r\n \r\n {item.isDuplicateFile === \"Yes\" ? (\r\n
    \r\n \r\n \r\n Yes{\" \"}\r\n \r\n \r\n \r\n No\r\n \r\n
    \r\n ) : (\r\n
    \r\n \r\n \r\n Yes\r\n \r\n \r\n \r\n No\r\n \r\n
    \r\n )}\r\n \r\n {item.rejectionRemark}\r\n \r\n );\r\n });\r\n const elementsHtmlforEditConfig = toJS(UserStore.editConfigData).map(\r\n (item, index) => {\r\n const selectedRowID = toJS(UserStore.selectedRowID);\r\n\r\n const arr = selectedRowID.some((e) => e.sheetId === item.sheetId);\r\n return (\r\n \r\n {item.configId}\r\n {item.key1}\r\n {item.key2}\r\n {item.value}\r\n {item.remarks}\r\n \r\n {\r\n \r\n \r\n handleEdit(e)}\r\n style={{ paddingRight: \"1vw\", cursor: \"pointer\" }}\r\n >\r\n \r\n \r\n \r\n \r\n handledelete(e)}\r\n >\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n );\r\n }\r\n );\r\n\r\n if (fromeditconfigflag === \"No\") {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n Sr No.\r\n \r\n \r\n \r\n
    File Name
    \r\n \r\n \r\n
    PID No.
    \r\n \r\n \r\n
    PID Rev. No.
    \r\n \r\n \r\n
    Sheet No.
    \r\n \r\n \r\n
    PID Description
    \r\n \r\n \r\n
    Upload Date {\"&\"} Time Stamp
    \r\n \r\n \r\n
    Upload User Name
    \r\n \r\n \r\n
    Processed
    \r\n \r\n \r\n
    Processed %
    \r\n \r\n \r\n
    Approved
    \r\n \r\n \r\n
    Approved Date {\"&\"} Time
    \r\n \r\n \r\n
    Total Line Count
    \r\n \r\n \r\n
    Total Valve Count
    \r\n \r\n \r\n
    Duplicate File
    \r\n \r\n \r\n
    Superseded
    \r\n \r\n \r\n
    Rejection Remark
    \r\n \r\n \r\n
    \r\n {elementsHtml}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n

    \r\n Total : {storeData.length}\r\n

    \r\n  \r\n

    \r\n {toJS(UserStore.selectedRowID.length)} Row(s) Selected\r\n

    \r\n
    \r\n
    \r\n \r\n customPagination(e, editConfigData)}\r\n defaultValue = {toJS(UserStore.perPageData)}\r\n defaultChecked = {toJS(UserStore.perPageData)}\r\n >\r\n \r\n 10\r\n \r\n\r\n \r\n 30\r\n \r\n\r\n \r\n 50\r\n \r\n\r\n \r\n 100\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n } else {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n Config Id\r\n
    \r\n \r\n \r\n
    \r\n Key 1\r\n
    \r\n \r\n \r\n
    \r\n Key 2\r\n
    \r\n \r\n \r\n
    \r\n Value\r\n
    \r\n \r\n \r\n
    \r\n Remarks\r\n
    \r\n \r\n \r\n \r\n \r\n
    {elementsHtmlforEditConfig}\r\n
    \r\n {show && (\r\n \r\n \r\n \r\n Edit Configuration\r\n \r\n \r\n \r\n \r\n\r\n handleChange1(e)}\r\n fullWidth\r\n value={editconfig[0].key1}\r\n style={{ fontSize: \"1.04vw\", width: \"95%\" }}\r\n />\r\n handleChange1(e)}\r\n fullWidth\r\n value={editconfig[0].key2}\r\n style={{ fontSize: \"1.04vw\", width: \"95%\" }}\r\n />\r\n handleChange1(e)}\r\n fullWidth\r\n value={editconfig[0].value}\r\n style={{ fontSize: \"1.04vw\", width: \"95%\" }}\r\n />\r\n handleChange1(e)}\r\n fullWidth\r\n value={editconfig[0].remarks}\r\n style={{ fontSize: \"1.04vw\", width: \"95%\" }}\r\n />\r\n \r\n \r\n handleEditSave(e)}\r\n color=\"primary\"\r\n id={modalId}\r\n >\r\n Save\r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n
    Are you sure to delete?
    \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n handlePurge(e)}\r\n style={{\r\n padding: \"0\",\r\n background: \"#0C629B\",\r\n color: \"white\",\r\n position: \"absolute\",\r\n right: \"2%\",\r\n }}\r\n >\r\n {\" \"}\r\n {\" \"}\r\n \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n};\r\nexport default ProcessGridTable;\r\n","import * as React from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport {\r\n columnReorderDragColSelector,\r\n GridOverlay,\r\n GridToolbarContainer,\r\n GridToolbarExport,\r\n} from \"@material-ui/data-grid\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport ToolkitProvider, { CSVExport } from \"react-bootstrap-table2-toolkit\";\r\nimport { ExportToExcel } from \"./ExportToExcel\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport \"./Process.scss\";\r\nimport axios from \"axios\";\r\nimport \"antd/dist/antd.css\";\r\nimport ExportExcel from \"../../ExportExcel\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport UserStore from \"../../UserStore\";\r\nimport Moment from \"moment\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport BatchTable from \"../../Upload/BatchTable\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nimport LoadingOverlay from \"react-loading-overlay\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport \"react-day-picker/lib/style.css\";\r\nimport \"moment/locale/en-gb\";\r\nimport Cancel from \"@material-ui/icons/Cancel\";\r\nimport { toJS } from \"mobx\";\r\nimport { DatePicker } from \"antd\";\r\nimport CircleChecked from \"@material-ui/icons/CheckCircleRounded\";\r\nimport Assessment from \"@material-ui/icons/Assessment\";\r\nimport ProcessGridPopup from \"./ProcessGrid/ProcessGridPopup\";\r\nimport ProcessGridTable from \"./ProcessGrid/ProcessGridTable\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport { isArray } from \"@microsoft/applicationinsights-core-js\";\r\nimport {\r\n selectAsset,\r\n} from \"../../redux/actions/documentActions\";\r\nimport { useDispatch } from \"react-redux\";\r\nvar rowget = [];\r\n\r\nconst dateFormat = \"DD/MMM/YYYY\";\r\nvar startdate = \"\";\r\nvar enddate = \"\";\r\nvar enddate1 = \"\";\r\nlet searchrows = false;\r\nconst fileName = \"MTO\";\r\n\r\nconst API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n\r\nvar today = new Date();\r\n\r\nclass Process extends React.Component {\r\n constructor(props) {\r\n const editWorkSpaceData1 = toJS(UserStore.editRowPID)[0];\r\n if (!editWorkSpaceData1) {\r\n startdate = localStorage.getItem(\"startdateforProcess\");\r\n enddate = localStorage.getItem(\"enddate\");\r\n } else {\r\n const createdOn1 = editWorkSpaceData1.startDate.toString();\r\n var stdate = Moment(createdOn1, \"DD/MM/YYYY\");\r\n stdate = Moment(stdate).format(\"DD/MMM/YYYY\");\r\n startdate = stdate;\r\n enddate1 = Moment(\r\n today.getFullYear() +\r\n \"-\" +\r\n (today.getMonth() + 1) +\r\n \"-\" +\r\n today.getDate()\r\n ).format(\"DD/MMM/YYYY\");\r\n enddate = enddate1.toString();\r\n Moment(enddate).format(\"YYYY-MM-DD\");\r\n }\r\n\r\n super(props);\r\n this.state = {\r\n initvalue: \"All\",\r\n // UserStore.filesFilterPID,\r\n deleteshow: false,\r\n dateValidation: false,\r\n dateValidationValue: \"\",\r\n pdfUri: \"\",\r\n selectedrowforDeletion: [],\r\n noOfRowSelected: 0,\r\n rows1: [], \r\n showFilter: false,\r\n loading: true,\r\n batchData: [],\r\n columns: [\r\n { accessor: \"serialNumber\", Header: \"Sr No.\" },\r\n {\r\n accessor: \"fileName\",\r\n Header: \"File Name\",\r\n },\r\n { accessor: \"pidNumber\", Header: \"PID No.\" },\r\n {\r\n accessor: \"pidRevisionNumber\",\r\n Header: \"PID Rev No.\",\r\n },\r\n { accessor: \"sheetNumber\", Header: \"Sheet No.\" },\r\n {\r\n accessor: \"pidDescription\",\r\n Header: \"PID Description\",\r\n },\r\n {\r\n accessor: \"fileUploadDttm\",\r\n Header: \"Upload Date & Time Stamp\",\r\n },\r\n {\r\n accessor: \"fileUploadedBy\",\r\n Header: \"Upload User Name\",\r\n },\r\n {\r\n accessor: \"isProcessed\",\r\n Header: \"Processed\",\r\n },\r\n {\r\n accessor: \"processedPercentage\",\r\n Header: \"Processed Percentage\",\r\n },\r\n { accessor: \"isApproved\", Header: \"Approved\" },\r\n {\r\n accessor: \"approvedDttm\",\r\n Header: \"Approved Date & Time Stamp\",\r\n },\r\n {\r\n accessor: \"totalLineCount\",\r\n Header: \"Total Line Count\",\r\n },\r\n {\r\n accessor: \"totalValveCount\",\r\n Header: \"Total Valve Count\",\r\n },\r\n {\r\n accessor: \"isDuplicateFile\",\r\n Header: \"Duplicate File\",\r\n },\r\n {\r\n accessor: \"isSuperseded\",\r\n Header: \"Superseded\",\r\n },\r\n ],\r\n deletedRows: [],\r\n selectedRows: [],\r\n CountAll: 0,\r\n CountProcessfailed: 0,\r\n searchvalue: \"Search by document name\",\r\n id: \"\",\r\n show: false,\r\n initarr: [],\r\n fillarr: [],\r\n startDate: \"\",\r\n endDate: localStorage.getItem(\"enddate\") ? localStorage.getItem(\"enddate\") : Moment(new Date()).format('MM/DD/YYYY'),\r\n showuser: true,\r\n showDownload: false,\r\n previewValue: false,\r\n showBatchStatusDialog: false,\r\n wsId: UserStore.PIDworkspaceID,\r\n showBatchStatus: false,\r\n disablePreview: true,\r\n disableExportPID: true,\r\n disableExportMTO: true,\r\n responseIsometrics: {},\r\n fileprocessedStatus: true,\r\n exportPIDValue: false,\r\n exportMTOValue: false,\r\n PIDShow: false,\r\n MTOShow: false,\r\n superseded: \"\",\r\n accepteddocpid: false,\r\n assetsData: [],\r\n dropChange: false,\r\n dropArr: [],\r\n saveHeaders: [],\r\n editSheetID: 0,\r\n selected: [],\r\n };\r\n localStorage.removeItem(\"setreportStamp\");\r\n UserStore.setreportStamp(false);\r\n UserStore.setAccuracyPID([]);\r\n // handleFilterChange(UserStore.filesFilterPID);\r\n }\r\n\r\n\r\n //Used to close the batch status popup\r\n handleCloseBatchStatus = () => {\r\n this.setState({ showBatchStatusDialog: false });\r\n };\r\n\r\n //Used to display the batch status popup\r\n showBatchStatus = async () => {\r\n const res = axios\r\n .get(API_Endpoint + `/GetPidBatchStatus?workSpaceId=${this.state.wsId}`)\r\n .then((res) => {\r\n if (res.data.length !== 0) {\r\n this.setState({ showBatchStatusDialog: true, batchData: res.data });\r\n } else {\r\n this.setState({ showBatchStatus: true });\r\n }\r\n });\r\n };\r\n\r\n //Used to close the popup if no batches are created\r\n handleCloseBatch = () => {\r\n this.setState({ showBatchStatus: false });\r\n };\r\n\r\n //Used to start the processing of a file\r\n handleRun = () => {\r\n if (toJS(UserStore.selectedRowID).length) {\r\n const selectedIdList = toJS(UserStore.selectedRowID).map((item) => {\r\n return item.sheetId;\r\n });\r\n axios.post(API_Endpoint + `/RunProcessPid`, { sheetIds: selectedIdList });\r\n // refreshProcessedStatus();\r\n this.setState({\r\n runShow: true,\r\n runValue: true,\r\n });\r\n } else {\r\n this.setState({\r\n runShow: true,\r\n runValue: false,\r\n });\r\n }\r\n };\r\n\r\n //Used to download the PID images in ZIP format\r\n handleExportPID = () => {\r\n const selectedIdList = toJS(UserStore.selectedRowID).map((item) => {\r\n return item.sheetId;\r\n });\r\n\r\n if (selectedIdList.length >= 1) {\r\n fetch(API_Endpoint + `/DownloadProcessedPidsZip`, {\r\n method: \"post\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${UserStore.accesstoken}`,\r\n },\r\n body: JSON.stringify({ sheetIds: selectedIdList }),\r\n }).then((response) => {\r\n response.blob().then((blob) => {\r\n let url = window.URL.createObjectURL(blob);\r\n let a = document.createElement(\"a\");\r\n a.href = url;\r\n a.download = `PID_${UserStore.PIDworkspaceID}`;\r\n a.click();\r\n });\r\n });\r\n this.setState({\r\n PIDShow: false,\r\n exportPIDValue: false,\r\n });\r\n } else {\r\n this.setState({\r\n PIDShow: true,\r\n exportPIDValue: true,\r\n });\r\n }\r\n };\r\n\r\n //Used to change the Upload Date\r\n handleUploadDateChange = (day) => {\r\n let date1 = Moment(day).format(\"DD-MMM-YYYY\");\r\n localStorage.setItem(\"startdateforProcess\", date1);\r\n let date = Moment(day).format(\"YYYY-MM-DD\");\r\n this.state.startDate = date;\r\n this.handleDatechange();\r\n if (\r\n Moment(this.state.startDate).format(\"YYYY/MM/DD\") >\r\n Moment(this.state.endDate).format(\"YYYY/MM/DD\")\r\n ) {\r\n this.setState({\r\n dateValidation: true,\r\n dateValidationValue: \"Upload Date cannot be beyond To Date\",\r\n });\r\n }\r\n };\r\n\r\n //Used to change the To Date\r\n handleToDateChange = (day) => {\r\n let date1 = Moment(day).format(\"DD-MMM-YYYY\");\r\n localStorage.setItem(\"enddateforProcess\", date1);\r\n localStorage.setItem(\"enddate\", date1);\r\n \r\n let date = Moment(day).format(\"YYYY-MM-DD\");\r\n UserStore.setPIDToDate(date);\r\n this.state.endDate = date;\r\n this.handleDatechange();\r\n if (\r\n Moment(this.state.endDate).format(\"YYYY/MM/DD\") <\r\n Moment(this.state.startDate).format(\"YYYY/MM/DD\")\r\n ) {\r\n this.setState({\r\n dateValidation: true,\r\n dateValidationValue: \"To Date cannot be earlier than Upload Date\",\r\n });\r\n }\r\n };\r\n\r\n //Used to close the validation popups\r\n handleClose = () => {\r\n this.setState({\r\n show: false,\r\n previewValue: false,\r\n runShow: false,\r\n PIDShow: false,\r\n });\r\n };\r\n\r\n //Used to close Delete validation message popup\r\n handledeleteClose = () => {\r\n this.setState({ deleteshow: false });\r\n };\r\n\r\n //Used to close Export PID validation message popup\r\n handleDownloadClose = () => {\r\n this.setState({ showDownload: false });\r\n };\r\n\r\n //Used to close the Date validation message popups\r\n handleDateClose = () => {\r\n this.setState({ dateValidation: false });\r\n };\r\n\r\n //Used to display the Preview validation message popup\r\n handleShow = () => {\r\n let selectedrowstodelete = [];\r\n selectedrowstodelete = toJS(UserStore.selectedRowID);\r\n this.state.selectedRows = selectedrowstodelete;\r\n if (\r\n this.state.selectedRows[0] === undefined ||\r\n this.state.selectedRows.length > 1\r\n ) {\r\n const messageToSet =\r\n selectedrowstodelete.length > 1\r\n ? \"Please select only one file to preview.\"\r\n : \"Please select a file to preview.\";\r\n this.setState({\r\n show: true,\r\n previewValue: true,\r\n errorMEssage: messageToSet,\r\n });\r\n }\r\n if (this.state.selectedRows.length === 1) {\r\n this.navigateToPreview();\r\n }\r\n };\r\n\r\n lineNumber(params) {\r\n return (\r\n \r\n
    {params.row.lineNumber}
    \r\n
    \r\n );\r\n }\r\n\r\n //Used to display data for the first time after hitting the api\r\n async componentDidMount() {\r\n localStorage.setItem(\"startdateforProcess\", this.state.startDate);\r\n localStorage.setItem(\"enddateforProcess\", this.state.endDate);\r\n const user = \"Admin\";\r\n if (user === \"read\") {\r\n this.setState({\r\n showuser: false,\r\n });\r\n }\r\n localStorage.removeItem(\"itemChange\");\r\n\r\n const workspaceId = UserStore.PIDworkspaceID;\r\n const editWorkSpaceData = toJS(UserStore.editRowPID);\r\n\r\n if (editWorkSpaceData.length) {\r\n const convertEndate = Moment(\r\n today.getFullYear() +\r\n \"-\" +\r\n (today.getMonth() + 1) +\r\n \"-\" +\r\n today.getDate()\r\n ).format(\"MM/DD/YYYY\");\r\n const stringEndDate = convertEndate.toString();\r\n localStorage.setItem(\"startdate\", editWorkSpaceData[0].startDate);\r\n localStorage.setItem(\"enddate\", Moment(stringEndDate).format(\"DD/MMM/YYYY\"));\r\n startdate = editWorkSpaceData[0].startDate;\r\n enddate = Moment(stringEndDate).format(\"DD/MM/YYYY\");\r\n\r\n this.setState({\r\n startDate: editWorkSpaceData[0].startDate,\r\n endDate: Moment(stringEndDate).format(\"DD/MMM/YYYY\"),\r\n });\r\n } else {\r\n startdate = localStorage.getItem(\"startdate\");\r\n // enddate= Moment(localStorage.getItem(\"enddate\")).format(\"MM/DD/YYYY\")\r\n enddate = this.state.endDate\r\n let date = Moment(startdate).format(\"YYYY-MM-DD\");\r\n let date2 = Moment(enddate).format(\"YYYY-MM-DD\");\r\n var stdate = date;\r\n var etdate = date2;\r\n this.setState({\r\n startDate: stdate,\r\n endDate: etdate,\r\n });\r\n }\r\n let res = await axios.get(\r\n API_Endpoint +\r\n `/GetProcessedPids?projectWorkSpaceId=${workspaceId}&fromDate=${startdate}&toDate=${this.state.endDate}`\r\n );\r\n\r\n var myrows;\r\n if (UserStore.PIDFilterRetain === false) {\r\n this.setState({ responseIsometrics: res.data });\r\n this.setState({ loading: false });\r\n myrows = this.state.responseIsometrics;\r\n } else {\r\n this.setState({ responseIsometrics: res.data });\r\n this.setState({ loading: false });\r\n myrows = this.state.responseIsometrics;\r\n let mynewrows = [];\r\n mynewrows = toJS(UserStore.processData);\r\n // mynewrows = res.data.filter(\r\n // (sr) => sr.splitedFileId === mynewrows[0].splitedFileId\r\n // );\r\n mynewrows = res.data.filter((o1) =>\r\n mynewrows.some((o2) => o1.sheetId === o2.sheetId)\r\n );\r\n myrows = mynewrows;\r\n\r\n this.setState({ loading: false });\r\n this.setState({ responseIsometrics: myrows });\r\n }\r\n\r\n rowget = [];\r\n if (myrows.length) {\r\n myrows.map((items, index) => {\r\n const row2 = this.dataRows(items);\r\n\r\n // const flagPreview = UserStore.filtered\r\n // const latFilterData = toJS(UserStore.PIDProcessFilterData)\r\n\r\n // if(flagPreview){\r\n // this.state.rows1.push(latFilterData);\r\n // }\r\n this.state.rows1.push(row2);\r\n rowget.push(row2);\r\n });\r\n UserStore.setProcessData(rowget);\r\n }\r\n\r\n this.setState({\r\n initarr: rowget,\r\n fillarr: this.state.rows1,\r\n });\r\n }\r\n\r\n //Used to refresh the table data\r\n async refreshProcessedStatus() {\r\n let res;\r\n //var stdate = Moment(startdate).format(\"YYYY-MM-DD\");\r\n var stdate = Moment(this.state.startDate).format(\"YYYY-MM-DD\");\r\n var etdate = Moment(this.state.endDate).format(\"YYYY-MM-DD\");\r\n const workspaceId = UserStore.PIDworkspaceID;\r\n this.setState({ rows1: [], loading: true });\r\n UserStore.setPIDFilterRetain(false);\r\n UserStore.selectedRowID = [];\r\n UserStore.reportData = [];\r\n res = await axios.get(\r\n API_Endpoint +\r\n `/GetProcessedPids?projectWorkSpaceId=${workspaceId}&fromDate=${stdate}&toDate=${etdate}`\r\n );\r\n\r\n this.setState({ responseIsometrics: res.data });\r\n\r\n if (res.status === 400) {\r\n toast.error(\"Request error:\" + res.data.map((row) => row.error), {\r\n // Set to 5sec\r\n position: toast.POSITION.TOP_LEFT,\r\n autoClose: 5000,\r\n });\r\n this.setState({ loading: false });\r\n } else {\r\n this.setState({\r\n loading: false,\r\n });\r\n const myrows = this.state.responseIsometrics;\r\n rowget = [];\r\n if (myrows.length) {\r\n myrows.map((items, index) => {\r\n const row2 = this.dataRows(items);\r\n this.state.rows1.push(row2);\r\n rowget.push(row2);\r\n });\r\n }\r\n\r\n this.setState({\r\n initarr: rowget,\r\n fillarr: this.state.rows1,\r\n deletedRows: [],\r\n selectedRows: [],\r\n disableExportMTO: true,\r\n disableExportPID: true,\r\n initvalue: \"All\",\r\n });\r\n\r\n UserStore.setreportStamp(false);\r\n localStorage.setItem(\"setreportStamp\", false);\r\n }\r\n }\r\n\r\n CustomNoRowsOverlay() {\r\n return (\r\n \r\n
    No Rows
    \r\n
    \r\n );\r\n }\r\n\r\n //Used to display the data depending on the selection in File Status Ta`b\r\n handleDropdownChange = (e) => {\r\n const fillarr = [...this.state.rows1];\r\n this.state.initvalue = e.target.value;\r\n UserStore.setFilesFilterPID(e.target.value);\r\n UserStore.setSkipData(0);\r\n localStorage.setItem(\"filterChange\",\"change\");\r\n if (e.target.value === \"All\") {\r\n this.setState({ dropChange: true });\r\n this.setState({\r\n rows1: this.state.fillarr,\r\n dropArr: this.state.fillarr,\r\n });\r\n UserStore.setProcessData(this.state.fillarr);\r\n } else if (e.target.value === \"Processed\") {\r\n this.setState({ dropChange: true });\r\n const rowsneeded = this.state.fillarr.filter((row) => {\r\n return row.isProcessed === \"Yes\";\r\n });\r\n this.setState({\r\n rows1: rowsneeded,\r\n dropArr: rowsneeded,\r\n });\r\n UserStore.setProcessData(rowsneeded);\r\n } else if (e.target.value === \"Processing Failed\") {\r\n this.setState({ dropChange: true });\r\n const rowsneeded = this.state.fillarr.filter((row) => {\r\n return row.isProcessed === \"No\";\r\n });\r\n this.setState({\r\n rows1: rowsneeded,\r\n dropArr: rowsneeded,\r\n });\r\n UserStore.setProcessData(rowsneeded);\r\n }\r\n };\r\n\r\n //Used to specify the initial data\r\n dataRows = (items) => {\r\n const row = {\r\n sheetId: items.sheetId != null ? items.sheetId : \"\",\r\n serialNumber: items.serialNumber,\r\n fileName: items.fileName != null ? items.fileName : \"\",\r\n pidNumber:\r\n items.pidNumber != null\r\n ? items.pidNumber\r\n : items.isProcessed === false && items.processedPercentage == 0\r\n ? \"Not Detected\"\r\n : \"\",\r\n pidRevisionNumber:\r\n items.pidRevisionNumber != null\r\n ? items.pidRevisionNumber\r\n : items.isProcessed === false && items.processedPercentage == 0\r\n ? \"Not Detected\"\r\n : \"\",\r\n sheetNumber: items.sheetNumber != null ? items.sheetNumber : \"\",\r\n pidDescription:\r\n items.pidDescription != null\r\n ? items.pidDescription\r\n : items.isProcessed === false && items.processedPercentage == 0\r\n ? \"Not Detected\"\r\n : \"\",\r\n fileUploadDttm:\r\n items.fileUploadDttm != \"\"\r\n ? Moment.utc(items.fileUploadDttm, \"DD/MM/YYYY hh:mm:ss a\")\r\n .local()\r\n .format(\"DD/MM/YYYY hh:mm:ss a\")\r\n : \"\",\r\n fileUploadedBy: items.fileUploadedBy != null ? items.fileUploadedBy : \"\",\r\n isProcessed:\r\n items.isProcessed != null ? (items.isProcessed ? \"Yes\" : \"No\") : \"\",\r\n processedPercentage:\r\n items.processedPercentage != null\r\n ? items.processedPercentage + \"%\"\r\n : \"\",\r\n isApproved:\r\n items.isApproved != null ? (items.isApproved ? \"Yes\" : \"No\") : \"\",\r\n approvedDttm:\r\n items.approvedDttm != \"\"\r\n ? Moment.utc(items.approvedDttm, \"DD/MM/YYYY hh:mm:ss a\")\r\n .local()\r\n .format(\"DD/MM/YYYY hh:mm:ss a\")\r\n : \"\",\r\n totalLineCount: items.totalLineCount != null ? items.totalLineCount : \"\",\r\n totalValveCount:\r\n items.totalValveCount != null ? items.totalValveCount : \"\",\r\n isDuplicateFile:\r\n items.isDuplicateFile != null\r\n ? items.isDuplicateFile\r\n ? \"Yes\"\r\n : \"No\"\r\n : \"\",\r\n isSuperseded:\r\n items.isSuperseded != null ? (items.isSuperseded ? \"Yes\" : \"No\") : \"\",\r\n rejectionRemark:\r\n items.rejectionRemark !== null ? items.rejectionRemark : \"\",\r\n };\r\n return row;\r\n };\r\n\r\n //Used to get the data with modified date values\r\n handleDatechange = async () => {\r\n this.setState({\r\n fillarr: [...this.state.rows1],\r\n });\r\n if (\r\n this.state.startDate === \"Invalid date\" ||\r\n this.state.endDate === \"Invalid date\"\r\n ) {\r\n this.setState({\r\n dateValidation: true,\r\n dateValidationValue: \"Upload Date or To Date cannot be empty\",\r\n });\r\n } else {\r\n var fromDate = this.state.startDate;\r\n fromDate = Moment(fromDate).format(\"YYYY-MM-DD\");\r\n\r\n var toDate = this.state.endDate;\r\n toDate = Moment(toDate).format(\"YYYY-MM-DD\");\r\n this.setState({\r\n endDate: toDate,\r\n });\r\n\r\n rowget = [];\r\n const workspaceIdfordropdown = UserStore.PIDworkspaceID;\r\n this.setState({ loading: true });\r\n let res;\r\n res = await axios.get(\r\n API_Endpoint +\r\n `/GetProcessedPids?projectWorkSpaceId=${workspaceIdfordropdown}&fromDate=${fromDate}&toDate=${toDate}`\r\n );\r\n\r\n if (res.status === 200) {\r\n this.setState({\r\n rows1: [],\r\n loading: false,\r\n });\r\n }\r\n\r\n if (res.data.length != 0) {\r\n const myrows = res.data;\r\n rowget = [];\r\n myrows.map((items, index) => {\r\n const row2 = this.dataRows(items);\r\n rowget.push(row2);\r\n });\r\n\r\n this.setState({\r\n rows1: rowget,\r\n fillarr: rowget,\r\n });\r\n } else {\r\n const feed = [];\r\n this.setState({\r\n rows1: feed,\r\n fillarr: rowget,\r\n });\r\n }\r\n }\r\n };\r\n\r\n //Used to handle the change in text in search box\r\n OnChangeHandler = () => {\r\n const searchTerm1 = document.getElementById(\"searchbox\").value;\r\n \r\n if (this.state.dropArr.length > 0 && searchTerm1 === \"\") {\r\n this.setState({\r\n rows1: this.state.dropArr,\r\n });\r\n } else if (\r\n toJS(UserStore.PIDFilterData).length !== 0 &&\r\n searchTerm1 === \"\"\r\n ) {\r\n this.state.rows1 = this.state.initarr;\r\n this.doSomethingWith();\r\n } else if (searchTerm1 === \"\") {\r\n this.state.rows1 = this.state.initarr;\r\n this.doSomethingWith();\r\n this.refreshProcessedStatus();\r\n }\r\n if(UserStore.afterSearch && searchTerm1 != toJS(UserStore.afterSearch)){\r\n UserStore.setAfterSearch(searchTerm1);\r\n this.setState({rows1: this.state.initarr})\r\n }\r\n };\r\n\r\n //Able to use Enter keyword for searching purpose\r\n keyDownSearch = (e) => {\r\n if (e.charCode === 13 || e.keyCode === 13) {\r\n this.doSomethingWith();\r\n }\r\n };\r\n\r\n handleCallback = (childData) => {\r\n this.setState({ selectedRows: childData });\r\n };\r\n\r\n //Used to display searched values after clicking on Enter button\r\n doSomethingWith = () => {\r\n let searchTerm = document.getElementById(\"searchbox\").value;\r\n UserStore.setAfterSearch(searchTerm);\r\n if (this.state.dropChange === true) {\r\n let searchData1 = [];\r\n const dataFromDropdown =\r\n this.state.dropArr.length > 0 ? this.state.dropArr : this.state.initarr;\r\n if (\r\n searchTerm === \"Search by document name\" ||\r\n searchTerm === \"\" ||\r\n searchTerm.length === 0\r\n ) {\r\n searchData1 = dataFromDropdown;\r\n searchrows = false;\r\n this.setState({\r\n rows1: searchData1,\r\n });\r\n UserStore.setProcessData(searchData1);\r\n } else {\r\n searchrows = true;\r\n searchData1 = dataFromDropdown.filter((row) => {\r\n return row.fileName.toLowerCase().includes(searchTerm.toLowerCase());\r\n });\r\n this.setState({\r\n rows1: searchData1,\r\n });\r\n UserStore.setPIDSearchData(searchData1);\r\n UserStore.setProcessData(searchData1);\r\n }\r\n setTimeout(() => {\r\n searchrows = false;\r\n }, 1000);\r\n }\r\n\r\n let searchData = [];\r\n const dataFromFiltering =\r\n toJS(UserStore.PIDFilterData).length > 0\r\n ? toJS(UserStore.PIDFilterData)\r\n : this.state.initarr;\r\n if (\r\n searchTerm === \"Search by document name\" ||\r\n searchTerm === \"\" ||\r\n searchTerm.length === 0\r\n ) {\r\n searchData = dataFromFiltering;\r\n searchrows = false;\r\n this.setState({\r\n rows1: searchData,\r\n });\r\n UserStore.setProcessData(searchData);\r\n } else {\r\n searchrows = true;\r\n searchData = dataFromFiltering.filter((row) => {\r\n return row.fileName.toLowerCase().includes(searchTerm.toLowerCase());\r\n });\r\n this.setState({\r\n rows1: searchData,\r\n });\r\n UserStore.setPIDSearchData(searchData);\r\n UserStore.setProcessData(searchData);\r\n }\r\n setTimeout(() => {\r\n searchrows = false;\r\n }, 1000);\r\n };\r\n\r\n //Used to Enable or Disable the functionalities depending on processing\r\n handleRowSelection = async (item,selection=\"\") => {\r\n if(item.length === 0) {\r\n this.setState({ disablePreview: true });\r\n this.setState({ disableExportPID: true });\r\n this.setState({ disableExportMTO: true });\r\n this.setState({selected: [...item]})\r\n return;\r\n }\r\n else if(isArray(item) && selection !== \"all\") {\r\n this.setState({selected: [...item]})\r\n }\r\n else if(!isArray(item)) {\r\n this.state.selected.push(item);\r\n }\r\n let deselectedItem = [];\r\n if (isArray(item) ) {\r\n deselectedItem = item;\r\n }\r\n\r\n UserStore.setreportStamp(true);\r\n let rows = [];\r\n if(this.state.selected.length > 1) {\r\n rows = this.state.selected;\r\n }\r\n if(deselectedItem.length > 0) {\r\n rows = deselectedItem;\r\n }\r\n \r\n // else if()\r\n if(rows.length > 0) {\r\n this.setState({ disablePreview: true });\r\n this.setState({ disableExportPID: true });\r\n this.setState({ disableExportMTO: true });\r\n for(let index in rows) {\r\n if (rows[index].isProcessed === \"No\") {\r\n this.setState({ disablePreview: false });\r\n this.setState({ disableExportPID: false });\r\n this.setState({ disableExportMTO: false });\r\n return;\r\n } \r\n }\r\n \r\n }\r\n else {\r\n if (item) {\r\n if (item.isProcessed === \"No\") {\r\n this.setState({ disablePreview: false });\r\n this.setState({ disableExportPID: false });\r\n this.setState({ disableExportMTO: false });\r\n } else {\r\n this.setState({ disablePreview: true });\r\n this.setState({ disableExportPID: true });\r\n this.setState({ disableExportMTO: true });\r\n UserStore.setreportStamp(true);\r\n localStorage.setItem(\"setreportStamp\", true);\r\n }\r\n }\r\n }\r\n\r\n if (\r\n deselectedItem &&\r\n deselectedItem.length >= 1 &&\r\n deselectedItem[0].isProcessed === \"No\"\r\n ) {\r\n this.setState({ disablePreview: false });\r\n this.setState({ disableExportPID: false });\r\n this.setState({ disableExportMTO: false });\r\n }\r\n };\r\n\r\n \r\n\r\n //Used to display the Delete confirmation popup after clicking on Delete button\r\n handleDeleteFiles = () => {\r\n this.state.selectedRows = toJS(UserStore.selectedRowID);\r\n if (this.state.selectedRows.length === 0) {\r\n this.setState({\r\n deleteshow: true,\r\n });\r\n } else {\r\n this.setState({ deletePopup: true });\r\n }\r\n };\r\n\r\n //Used to close the Delete confirmation popup\r\n handleDeleteFilesClose = () => {\r\n this.setState({ deletePopup: false });\r\n };\r\n\r\n //Used to delete the selected rows\r\n handlePurge = async () => {\r\n this.setState({ deletePopup: false });\r\n this.state.selectedRows = toJS(UserStore.selectedRowID);\r\n let rowId = this.state.selectedRows.map((i) => i.sheetId);\r\n if (rowId.length >= 1) {\r\n var res = await axios.post(\r\n API_Endpoint + `//DeleteProcessedPID`,\r\n JSON.stringify({ sheetIds: rowId })\r\n );\r\n UserStore.selectedRowID = [];\r\n if (res.status === 200) {\r\n this.refreshProcessedStatus();\r\n }\r\n } else {\r\n this.setState({\r\n deleteshow: true,\r\n });\r\n }\r\n };\r\n\r\n handleBlurEdit = (e, items) => {\r\n const editClass = e.target.className;\r\n const header = e.target.id.split(\"_\")[1];\r\n const editableEle = document.getElementsByClassName(editClass);\r\n let editObj = { sheetId: parseInt(header) };\r\n let editValue;\r\n let editableID;\r\n for (let i = 0; i < editableEle.length; i++) {\r\n editValue = editableEle[i].innerHTML;\r\n editableID = editableEle[i].id.split(\"_\")[0];\r\n editObj = {\r\n ...editObj,\r\n [editableID]: editValue === \"Not Detected\" ? null : editValue,\r\n };\r\n }\r\n if (!editObj.hasOwnProperty(\"pidNumber\")) {\r\n editObj = { ...editObj, [\"pidNumber\"]: items.pidNumber };\r\n } else if (!editObj.hasOwnProperty(\"pidRevisionNumber\")) {\r\n editObj = { ...editObj, [\"pidRevisionNumber\"]: items.pidRevisionNumber };\r\n } else if (!editObj.hasOwnProperty(\"pidDescription\")) {\r\n editObj = { ...editObj, [\"pidDescription\"]: items.pidDescription };\r\n }\r\n this.handleEditedValue(editObj, header);\r\n };\r\n\r\n handleEditedValue = (editObj, id) => {\r\n if (!this.state.saveHeaders.length) {\r\n this.state.saveHeaders.push(editObj);\r\n } else {\r\n const found = this.state.saveHeaders.filter((el) => el.sheetId == id);\r\n if (found.length < 1) {\r\n this.state.saveHeaders.push(editObj);\r\n } else {\r\n const slicedEditData = this.state.saveHeaders.filter(\r\n (x) => x.sheetId != id\r\n );\r\n slicedEditData.push(editObj);\r\n this.state.saveHeaders = slicedEditData;\r\n }\r\n }\r\n };\r\n\r\n handleSave = async () => {\r\n if (this.state.saveHeaders.length === 0) {\r\n this.setState({\r\n show: true,\r\n errorMEssage:\r\n \"Please edit atleast one field to perform the Save Operation\",\r\n });\r\n }\r\n let res;\r\n if (this.state.saveHeaders.length > 0) {\r\n res = await axios.post(API_Endpoint + `//UpdatePidHeader`, {\r\n pidHeaders: this.state.saveHeaders,\r\n });\r\n if (res.status === 200) {\r\n toast.success(\"Saved Successfully\");\r\n }\r\n }\r\n };\r\n\r\n //Used to move to the preview page after user clicks Preview button\r\n navigateToPreview = () => {\r\n UserStore.setPIDToDate(this.state.endDate);\r\n UserStore.setSheetId(this.state.selectedRows[0].sheetId);\r\n localStorage.setItem(\"pidnumber\", this.state.selectedRows[0].pidNumber);\r\n localStorage.setItem(\"sheetId\", this.state.selectedRows[0].sheetId);\r\n localStorage.setItem(\"prevRoute\", \"process\");\r\n localStorage.setItem(\"height\", \"\");\r\n localStorage.setItem(\"width\", \"\");\r\n localStorage.setItem(\"imageData\", \"\");\r\n // const selectedItem = {\r\n // id : undefined\r\n // }\r\n // const dispatch = useDispatch();\r\n // dispatch(selectAsset(selectedItem))\r\n if (this.state.selectedRows[0].isProcessed === \"Yes\") {\r\n localStorage.setItem(\"processedpid\", true);\r\n } else {\r\n localStorage.setItem(\"processedpid\", false);\r\n }\r\n if (this.state.selectedRows[0].isApproved === \"Yes\") {\r\n UserStore.isaccepteddocpid(true);\r\n localStorage.setItem(\"accepteddocpid\", true);\r\n } else {\r\n UserStore.isaccepteddocpid(false);\r\n localStorage.setItem(\"accepteddocpid\", false);\r\n }\r\n this.props.history.push(\r\n `/WorkspacePID/Upload/${this.state.selectedRows[0].fileName}`\r\n );\r\n };\r\n\r\n render() {\r\n if (UserStore.PIDToDate) {\r\n this.state.endDate = Moment(UserStore.PIDToDate).format(\"DD/MMM/YYYY\");\r\n }\r\n \r\n const readonly = localStorage.getItem(\"isreadOnlyPID\")\r\n ? JSON.parse(localStorage.getItem(\"isreadOnlyPID\"))\r\n : UserStore.readOnlyPID;\r\n\r\n const returnData =\r\n UserStore.PIDFilterRetain === true\r\n ? toJS(UserStore.processData)\r\n : this.state.rows1;\r\n if (\r\n localStorage.getItem(\"getprocessGridPID\") &&\r\n document.getElementsByClassName(\"breadcrumbBR\")[0]\r\n ) {\r\n if (localStorage.getItem(\"getprocessGridPID\") == 0) {\r\n document.getElementsByClassName(\"breadcrumbBR\")[0].innerHTML =\r\n \"Upload Files\";\r\n } else if (localStorage.getItem(\"getprocessGridPID\") == 1) {\r\n document.getElementsByClassName(\"breadcrumbBR\")[0].innerHTML =\r\n \"Process Files\";\r\n } else if (localStorage.getItem(\"getprocessGridPID\") == 2) {\r\n document.getElementsByClassName(\"breadcrumbBR\")[0].innerHTML =\r\n \"File Logs\";\r\n }\r\n }\r\n\r\n UserStore.setProcessData(returnData);\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n Upload Date:\r\n {this.state.startDate ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n To:\r\n {this.state.endDate ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n File Status:\r\n \r\n \r\n \r\n \r\n \r\n All({this.state.fillarr.length})\r\n \r\n \r\n Processed(\r\n {\r\n this.state.fillarr.filter(\r\n (item) => item.isProcessed === \"Yes\"\r\n ).length\r\n }\r\n )  \r\n \r\n \r\n Processing Failed(\r\n {\r\n this.state.fillarr.filter(\r\n (item) => item.isProcessed === \"No\"\r\n ).length\r\n }\r\n )  \r\n \r\n \r\n \r\n
    \r\n
    \r\n {toJS(UserStore.selectedRowID).length === 1 ? (\r\n \r\n \r\n \r\n Preview\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n Preview\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n Delete\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Run\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Batch Status\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Export Report\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Export PID\r\n \r\n \r\n\r\n \r\n \r\n \r\n Save\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Refresh Grid\r\n \r\n \r\n
    \r\n \r\n \r\n Batch Status\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n {this.state.previewValue\r\n ? this.state.errorMEssage\r\n : \"Please select only one file to preview.\"}\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {this.state.errorMEssage}\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {this.state.runValue\r\n ? \"File processing has started.\"\r\n : \"Please select atleast one file to start processing\"}\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {this.state.exportPIDValue &&\r\n \"Please select atleast one processed row to export the PID\"}\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
    Are you sure to delete?
    \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n this.handlePurge(e)}\r\n style={{\r\n padding: \"0\",\r\n background: \"#0C629B\",\r\n color: \"white\",\r\n position: \"absolute\",\r\n right: \"2%\",\r\n }}\r\n >\r\n {\" \"}\r\n {\" \"}\r\n \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n No batches are created for this workspace.\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Please select atleast one file to delete.\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Please select atleast one file to download PID\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {\" \"}\r\n {this.state.dateValidationValue}\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n\r\n
    \r\n {this.state.rows1.length > 0 && (\r\n \r\n {\" \"}\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Process);\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport FileList from '../FileList/FileList';\r\nimport Progress from '../Progress/Progress';\r\nimport Process from '../Process/Process';\r\nimport AppFooter from '../../AppFooter/AppFooter';\r\nimport UserStore from '../../UserStore';\r\nimport './Upload.scss';\r\nimport FileLog from '../../Upload/StampGrid/FileLog';\r\n\r\nfunction TabPanel(props) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nTabPanel.propTypes = {\r\n children: PropTypes.node,\r\n index: PropTypes.any.isRequired,\r\n value: PropTypes.any.isRequired,\r\n};\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n flexGrow: 0,\r\n backgroundColor: theme.palette.background.paper,\r\n },\r\n}));\r\n\r\nexport default function StampUpload() {\r\n\r\n const readonly = localStorage.getItem(\"isreadOnlyPID\") ? JSON.parse(localStorage.getItem(\"isreadOnlyPID\")): UserStore.readOnlyPID;\r\n const processgridvalue = localStorage.getItem(\"getprocessGridPID\") ? Number(localStorage.getItem(\"getprocessGridPID\")): UserStore.showprocessgridPID;\r\n const [value, setValue] = useState(processgridvalue);\r\n UserStore.selectedRowID = [];\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue); \r\n UserStore.getprocessGridPID(newValue);\r\n localStorage.setItem('getprocessGridPID', newValue);\r\n };\r\n\r\n if(localStorage.getItem(\"getprocessGridPID\") && document.getElementsByClassName('breadcrumbBR')[0]) {\r\n if(localStorage.getItem(\"getprocessGridPID\") == 0){\r\n document.getElementsByClassName('breadcrumbBR')[0].innerHTML = \"Upload Files\";\r\n }else if(localStorage.getItem(\"getprocessGridPID\") == 1){\r\n document.getElementsByClassName('breadcrumbBR')[0].innerHTML = \"Process Files\";\r\n }else if(localStorage.getItem(\"getprocessGridPID\") == 2){\r\n document.getElementsByClassName('breadcrumbBR')[0].innerHTML = \"File Logs\";\r\n }\r\n }\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Note: Please click on Process tab to view the files after the documents are uploaded
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import React, { Component } from 'react';\r\nimport BreadCrumbs from '../../Upload/BreadCrumbs/BreadCrumbs';\r\nimport AppHeader from '../../AppHeader/AppHeader';\r\nimport Upload from '../Upload/Upload';\r\n\r\nexport default function UploadFiles() {\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n}","import React, { useState,useRef,useEffect } from 'react';\r\nimport TableFilter from \"react-table-filter\";\r\nimport {\r\n EditAsset,\r\n EditAssetLineGroup,\r\n} from \"../../redux/actions/documentActions\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport \"react-table-filter/lib/styles.css\";\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport {} from \"./lib/styles.css\";\r\nimport \"./FilterMTO.scss\";\r\nexport default function FilterRenderer(props) {\r\n const rows = props.rowsData;\r\n const changeDataFormat = (mtoResult) => {\r\n let k = [];\r\n if(mtoResult !== undefined) {\r\n mtoResult.map((data) => {\r\n let mtoData = {\r\n LineNumber: data.LineNumber === \"UNKNOWN\" ? \"Not Detected\" :data.LineNumber ,\r\n Seq: data.Seq.length === 0 || data.Seq === \"NaN\" ? \"Not Detected\" : data.Seq,\r\n pid: data.pid.length === 0 ? \"Not Detected\" : data.pid,\r\n Spec: data.Spec.length === 0 ? \"Not Detected\" : data.Spec,\r\n shortCode: data.shortCode.length === 0 ? \"Not Detected\" : data.shortCode,\r\n isJacketed: data.isJacketed.length === 0 ? \"Not Detected\" : data.isJacketed,\r\n hdr:\r\n data.hdr === null ||\r\n data.hdr === undefined ||\r\n data.hdr === \"\"\r\n ? \"Not Detected\"\r\n : \r\n data.hdr.split(/[\" ']+/)[0],\r\n size1:\r\n data.size1 === null || data.size1 === undefined || data.size1 === \"\"\r\n ? \"Not Detected\"\r\n : \r\n (data.size1),\r\n size2:\r\n (data.shortCode === \"T\" || data.shortCode === \"RX\") && (data.size2 === null || data.size2 === undefined || data.size2 === \"\")\r\n ? \"Not Detected\"\r\n : (data.size2 === null || data.size2 === undefined || data.size2 === \"\") ? \"\" : (data.size2) ,\r\n quantity: data.quantity,\r\n insulationType: data.insulationType.length === 0 ? \"Not Detected\" : data.insulationType,\r\n ugag: data.ugag.length === 0 ? \"Not Detected\" : data.ugag,\r\n fluid: data.fluid.length === 0 ? \"Not Detected\" : data.fluid,\r\n assetCompType:\r\n data.assetCompType === null ||\r\n data.assetCompType === undefined ||\r\n data.assetCompType === \"\"\r\n ? \"Not Detected\"\r\n : data.assetCompType.toUpperCase(),\r\n seat: data.seat.length === 0 ? \"Not Detected\" : data.seat,\r\n valveBody: data.valveBody.length === 0 ? \"Not Detected\" : data.valveBody,\r\n extendedBonet: data.extendedBonet.length === 0 ? \"Not Detected\" : data.extendedBonet,\r\n limitSwich: data.limitSwich.length === 0 ? \"Not Detected\" : data.limitSwich,\r\n hold: data.hold.length === 0 ? \"Not Detected\" : data.hold,\r\n supply: data.supply,\r\n fromLine: data.fromLine.length === 0 ? \"Not Detected\" : data.fromLine,\r\n toLine: data.toLine.length === 0 ? \"Not Detected\" : data.toLine,\r\n itemOrder: data.itemOrder,\r\n remarks: (data.shortCode === \"I\" || data.shortCode === \"SC\" || data.shortCode === \"SI\" || data.assetCompType === \"Control Valve\") && data.remarks.length === 0 ? \"Not Detected\" : data.remarks,\r\n rating: data.rating.length === 0 ? \"Not Detected\" : data.rating,\r\n };\r\n k.push(mtoData);\r\n });\r\n }\r\n return k;\r\n };\r\n const [newRows,setNewRows] = useState(changeDataFormat(rows));\r\n useEffect(() => {\r\n if(rows !== undefined) {\r\n let mtoResult = changeDataFormat(rows);\r\n setNewRows(mtoResult);\r\n }\r\n },[rows])\r\n const dispatch = useDispatch();\r\n const selectedAsset = useSelector(\r\n (state) => state.documentData.selectedAsset\r\n );\r\n let tableRef = useRef();\r\n const handleMouseLeave =(e,oldValue,index) => {\r\n const header = e.target.id.split(\"_\")[0];\r\n const value = e.target.innerHTML;\r\n var newValue = JSON.parse(JSON.stringify(oldValue));\r\n newValue[header] = value;\r\n if(header === \"LineNumber\") {\r\n dispatch(EditAssetLineGroup(oldValue.LineNumber, newValue));\r\n }\r\n else {\r\n dispatch(EditAsset(newValue,oldValue));\r\n }\r\n if(value !== oldValue[header])\r\n document.getElementById(e.target.id).style.backgroundColor = \"yellow\";\r\n }\r\n\r\n const filterUpdated = (newData, filterConfiguration) => {\r\n setNewRows(newData);\r\n }\r\n\r\n const filterReset = () => {\r\n tableRef.reset(rows, true);\r\n setNewRows(rows)\r\n }\r\n\r\n return (\r\n
    \r\n\r\n
    \r\n \r\n Clear Filter\r\n
    \r\n\r\n \r\n \r\n tableRef = node}\r\n >\r\n \r\n \r\n
    LINE NUMBER
    \r\n \r\n \r\n
    SEQ
    \r\n \r\n \r\n
    PID
    \r\n \r\n \r\n
    SPEC
    \r\n \r\n \r\n
    SHORT CODE
    \r\n \r\n \r\n
    IS JACKETED LINE
    \r\n \r\n \r\n
    HDR
    \r\n \r\n \r\n
    SIZE - 1
    \r\n \r\n \r\n
    SIZE - 2
    \r\n \r\n \r\n
    QTY
    \r\n \r\n \r\n
    INSUL TYPE
    \r\n \r\n \r\n
    AG/UG
    \r\n \r\n \r\n
    FLUID
    \r\n \r\n \r\n
    PIPINGCOMPTYPE
    \r\n \r\n \r\n
    SEAT
    \r\n \r\n \r\n
    VALVE BODY
    \r\n \r\n \r\n
    EXTENDED BONNET
    \r\n \r\n \r\n
    LIMIT SWITCH
    \r\n \r\n \r\n
    HOLD
    \r\n \r\n \r\n
    SUPPLY
    \r\n \r\n \r\n
    FROM
    \r\n \r\n \r\n
    TO
    \r\n \r\n \r\n
    ITEM ORDER
    \r\n \r\n \r\n
    REMARKS
    \r\n \r\n \r\n
    RATING
    \r\n \r\n \r\n
    \r\n {\r\n newRows.map((item,index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n
    handleMouseLeave(e,item)}>{item.LineNumber === \"UNKNOWN\" ? \"Not Detected\" : item.LineNumber} handleMouseLeave(e,item)}>{item.Seq === \"NaN\" || item.Seq.length === 0 ? \"Not Detected\" : item.Seq} handleMouseLeave(e,item)}>{item.pid.length === 0 ? \"Not Detected\" : item.pid} handleMouseLeave(e,item)}>{item.Spec.length === 0 ? \"Not Detected\" : item.Spec} handleMouseLeave(e,item)}>{item.shortCode.length === 0 ? \"Not Detected\" : item.shortCode} handleMouseLeave(e,item)}>{item.isJacketed.length === 0 ? \"Not Detected\" : item.isJacketed} handleMouseLeave(e,item)}>{item.hdr === \"NaN\"|| item.hdr.length === 0 ? \"Not Detected\" : item.hdr} handleMouseLeave(e,item)}>{item.size1 === \"NaN\" || item.size1.length === 0 ? \"Not Detected\" : item.size1} handleMouseLeave(e,item)}>{item.size2 === \"NaN\" ? \"Not Detected\" : (item.shortCode === \"T\" || item.shortCode === \"RX\") && item.size2.length === 0 ? \"Not Detected\" : item.size2 } handleMouseLeave(e,item)}>{item.quantity} handleMouseLeave(e,item)}>{item.insulationType.length === 0 ? \"Not Detected\" : item.insulationType} handleMouseLeave(e,item)}>{item.ugag.length === 0 ? \"Not Detected\" : item.ugag} handleMouseLeave(e,item)}>{item.fluid.length === 0 ? \"Not Detected\" : item.fluid} handleMouseLeave(e,item)}>{item.assetCompType.length === 0 ? \"Not Detected\" : item.assetCompType} handleMouseLeave(e,item)}>{item.seat.length === 0 ? \"Not Detected\" : item.seat} handleMouseLeave(e,item)}>{item.valveBody.length === 0 ? \"Not Detected\" : item.valveBody} handleMouseLeave(e,item)}>{item.limitSwich.length === 0 ? \"Not Detected\" : item.limitSwich} handleMouseLeave(e,item)}>{item.extendedBonet.length === 0 ? \"Not Detected\" : item.extendedBonet} handleMouseLeave(e,item)}>{item.hold.length === 0 ? \"Not Detected\" : item.hold} handleMouseLeave(e,item)}>{item.supply} handleMouseLeave(e,item)}>{item.fromLine.length === 0 ? \"Not Detected\" : item.fromLine} handleMouseLeave(e,item)}>{item.toLine.length === 0 ? \"Not Detected\" : item.toLine} handleMouseLeave(e,item)}>{item.itemOrder} handleMouseLeave(e,item)}>{(item.shortCode === \"I\" || item.shortCode === \"SC\" || item.shortCode === \"SI\" || item.assetCompType === \"Control Valve\") && item.remarks.length === 0 ? \"Not Detected\" : item.remarks} handleMouseLeave(e,item)}>{item.rating === \"NaN\" || item.rating.length === 0 ? \"Not Detected\" : item.rating}
    \r\n
    \r\n );\r\n}","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport AppHeader from \"../../AppHeader/AppHeader\";\r\nimport AppFooter from \"../../AppFooter/AppFooter\";\r\nimport BreadCrumbs from \"../../Upload/BreadCrumbs/BreadCrumbs\";\r\nimport { useReactToPrint } from \"react-to-print\";\r\nimport ReactToPrint from \"react-to-print\";\r\nimport \"./OverallMTO.scss\";\r\nimport * as FileSaver from \"file-saver\";\r\nimport * as XLSX from \"xlsx\";\r\nimport FilterMTO from \"./FilterMTO\";\r\nimport UserStore from \"../../UserStore\";\r\nexport default function OverallMTO() {\r\n const history = useHistory();\r\n const componentRef = useRef();\r\n const jsonData = JSON.parse(localStorage.getItem(\"MTOData\"));\r\n let rows = [];\r\n const [newRows, setNewRows] = useState([]);\r\n const [filterRows, setFilterRows] = useState([]);\r\n const [assetsData, setAssetsData] = useState(Object.entries(jsonData));\r\n\r\n let extra = 0;\r\n \r\n const fileName = \"MTO\";\r\n useEffect(() => {\r\n const length = assetsData.length;\r\n let key = 1;\r\n rows = [];\r\n if (rows.length === 0) {\r\n let assetData = [];\r\n extra = extra + 1;\r\n for (let index = 0; index < length; index++) {\r\n assetData = assetsData[index][1];\r\n let assetss = assetData.symbols;\r\n if (assetData.hasOwnProperty(\"Symbols\")) {\r\n let symbols = Object.entries(assetData.Symbols);\r\n for (let newIndex = 0; newIndex < symbols.length; newIndex++) {\r\n let data = {\r\n Key: key,\r\n LineNumber: assetData.specification,\r\n assetId: symbols[newIndex][0],\r\n id: symbols[newIndex][1].SymbolId,\r\n shortCode:\r\n symbols[newIndex][1].ShortCode === null ||\r\n symbols[newIndex][1].ShortCode === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].ShortCode,\r\n assetCompType:\r\n symbols[newIndex][1].assetComponentType === null ||\r\n symbols[newIndex][1].assetComponentType === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].assetComponentType.toUpperCase(),\r\n Seq:\r\n symbols[newIndex][1].SequenceNumber === null ||\r\n symbols[newIndex][1].SequenceNumber === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].SequenceNumber,\r\n Spec:\r\n symbols[newIndex][1].Spec === null ||\r\n symbols[newIndex][1].Spec === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].Spec,\r\n isJacketed:\r\n symbols[newIndex][1].IsJacketedLine !== true ? \"N\" : \"Y\",\r\n hdr:\r\n symbols[newIndex][1].HdrSize === null ||\r\n symbols[newIndex][1].HdrSize === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].HdrSize.split(/[\" ']+/)[0],\r\n size1:\r\n symbols[newIndex][1].Size1 === null ||\r\n symbols[newIndex][1].Size1 === \"\" ||\r\n symbols[newIndex][1].Size1 === undefined\r\n ? \"\"\r\n : (symbols[newIndex][1].Size1),\r\n size2:\r\n symbols[newIndex][1].Size2 === null ||\r\n symbols[newIndex][1].Size2 === \"\" ||\r\n symbols[newIndex][1].Size2 === undefined\r\n ? \"\"\r\n : (symbols[newIndex][1].Size2),\r\n quantity:\r\n symbols[newIndex][1].Quantity === null ||\r\n symbols[newIndex][1].Quantity === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].Quantity,\r\n insulationType:\r\n symbols[newIndex][1].InsulationType === null ||\r\n symbols[newIndex][1].InsulationType === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].InsulationType,\r\n ugag:\r\n symbols[newIndex][1].AgUg === null ||\r\n symbols[newIndex][1].AgUg === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].AgUg,\r\n fluid:\r\n symbols[newIndex][1].Fluid === null ||\r\n symbols[newIndex][1].Fluid === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].Fluid,\r\n seat:\r\n symbols[newIndex][1].Seat === null ||\r\n symbols[newIndex][1].Seat === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].Seat,\r\n valveBody:\r\n symbols[newIndex][1].ValveBody === null ||\r\n symbols[newIndex][1].ValveBody === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].ValveBody,\r\n extendedBonet:\r\n symbols[newIndex][1].ExtendedBonet === null ||\r\n symbols[newIndex][1].ExtendedBonet === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].ExtendedBonet,\r\n limitSwich:\r\n symbols[newIndex][1].LimitSwich === null ||\r\n symbols[newIndex][1].LimitSwich === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].LimitSwich,\r\n hold:\r\n symbols[newIndex][1].Hold === null ||\r\n symbols[newIndex][1].Hold === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].Hold === true\r\n ? \"Y\"\r\n : \"N\",\r\n fromLine:\r\n symbols[newIndex][1].FromLine === null ||\r\n symbols[newIndex][1].FromLine === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].FromLine,\r\n toLine:\r\n symbols[newIndex][1].ToLine === null ||\r\n symbols[newIndex][1].ToLine === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].ToLine,\r\n remarks:\r\n symbols[newIndex][1].Remarks === null ||\r\n symbols[newIndex][1].Remarks === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].Remarks,\r\n itemOrder:\r\n symbols[newIndex][1].ItemOrder === null ||\r\n symbols[newIndex][1].ItemOrder === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].ItemOrder,\r\n rating:\r\n symbols[newIndex][1].Rating === null ||\r\n symbols[newIndex][1].Rating === undefined\r\n ? \"\"\r\n : symbols[newIndex][1].Rating,\r\n pid: localStorage.getItem(\"pidnumber\"),\r\n supply: \"\",\r\n SymbolRank: symbols[newIndex][1].SymbolRank !== undefined ? symbols[newIndex][1].SymbolRank : 0,\r\n // CorrectedRow: symbols[newIndex][1].CorrectedRow,\r\n };\r\n if(data.SymbolRank === 0 ) {\r\n rows.push(data);\r\n }\r\n key++;\r\n }\r\n }\r\n }\r\n setNewRows(rows);\r\n setFilterRows(rows);\r\n }\r\n }, [assetsData]);\r\n const fileType =\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\r\nconst fileExtension = \".xlsx\";\r\n\r\n\r\n const handlePrint = useReactToPrint({\r\n content: () => componentRef.current,\r\n copyStyles: false,\r\n });\r\n\r\n\r\n \r\n\r\n const changeDataFormat = (mtoResult) => {\r\n let k = [];\r\n mtoResult.map((data) => {\r\n let mtoData = {\r\n \"LINE NUMBER\": data.LineNumber === \"UNKNOWN\" ? \"Not Detected\" :data.LineNumber ,\r\n SEQ: data.Seq.length === 0 || data.Seq === \"NaN\" ? \"Not Detected\" : data.Seq,\r\n PID: data.pid.length === 0 ? \"Not Detected\" : data.pid,\r\n SPEC: data.Spec.length === 0 ? \"Not Detected\" : data.Spec,\r\n \"SHORT CODE\": data.shortCode.length === 0 ? \"Not Detected\" : data.shortCode,\r\n \"IS JACKETED LINE\": data.isJacketed.length === 0 ? \"Not Detected\" : data.isJacketed,\r\n \"HDR SIZE\":\r\n data.hdr === null ||\r\n data.hdr === undefined ||\r\n data.hdr === \"\"\r\n ? \"Not Detected\"\r\n : \r\n data.hdr.split(/[\" ']+/)[0],\r\n \"SIZE-1\":\r\n data.size1 === null || data.size1 === undefined || data.size1 === \"\"\r\n ? \"Not Detected\"\r\n : \r\n (data.size1),\r\n \"SIZE-2\":\r\n (data.shortCode === \"T\" || data.shortCode === \"RX\") && (data.size2 === null || data.size2 === undefined || data.size2 === \"\")\r\n ? \"Not Detected\"\r\n : (data.size2 === null || data.size2 === undefined || data.size2 === \"\") ? \"\" : (data.size2) ,\r\n QTY: data.quantity,\r\n \"INSUL TYPE\": data.insulationType.length === 0 ? \"Not Detected\" : data.insulationType,\r\n \"AG/UG\": data.ugag.length === 0 ? \"Not Detected\" : data.ugag,\r\n FLUID: data.fluid.length === 0 ? \"Not Detected\" : data.fluid,\r\n PIPINGCOMPTYPE:\r\n data.assetCompType === null ||\r\n data.assetCompType === undefined ||\r\n data.assetCompType === \"\"\r\n ? \"Not Detected\"\r\n : data.assetCompType.toUpperCase(),\r\n SEAT: data.seat.length === 0 ? \"Not Detected\" : data.seat,\r\n VALVEBODY: data.valveBody.length === 0 ? \"Not Detected\" : data.valveBody,\r\n \"EXTENDED BONNET\": data.extendedBonet.length === 0 ? \"Not Detected\" : data.extendedBonet,\r\n \"LIMIT SWITCH\": data.limitSwich.length === 0 ? \"Not Detected\" : data.limitSwich,\r\n HOLD: data.hold.length === 0 ? \"Not Detected\" : data.hold,\r\n SUPPLY: data.supply,\r\n FROM: data.fromLine.length === 0 ? \"Not Detected\" : data.fromLine,\r\n TO: data.toLine.length === 0 ? \"Not Detected\" : data.toLine,\r\n \"ITEM ORDER\": data.itemOrder,\r\n REMARKS: (data.shortCode === \"I\" || data.shortCode === \"SC\" || data.shortCode === \"SI\" || data.assetCompType === \"Control Valve\") && data.remarks.length === 0 ? \"Not Detected\" : data.remarks,\r\n RATING: data.rating.length === 0 ? \"Not Detected\" : data.rating,\r\n };\r\n k.push(mtoData);\r\n });\r\n return k;\r\n };\r\n\r\n const exportToCSV = async (fileName) => {\r\n const mtoResult = changeDataFormat(newRows);\r\n const ws = XLSX.utils.json_to_sheet(mtoResult);\r\n const wb = { Sheets: { data: ws }, SheetNames: [\"data\"] };\r\n const excelBuffer = XLSX.write(wb, { bookType: \"xlsx\", type: \"array\" });\r\n const data = new Blob([excelBuffer], { type: fileType });\r\n FileSaver.saveAs(data, fileName + fileExtension);\r\n };\r\n\r\n const navigateBack = () => {\r\n localStorage.setItem(\"prevRoute\", \"overallMTO\");\r\n // UserStore.setAccuracyPID([\"low\"])\r\n history.goBack();\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Back\r\n
    \r\n
    \r\n \r\n exportToCSV(fileName)}>Download MTO Report\r\n
    \r\n (\r\n
    \r\n \r\n Print PID MTO\r\n
    \r\n )}\r\n content={() => componentRef.current}\r\n />\r\n
    \r\n \r\n
    \r\n \r\n \r\n {newRows.length > 0 ?\r\n \r\n : '' }\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","let deletedData = [];\r\n\r\n/*Function for filtering linenumbers */\r\nexport function filterData(data ,jsonData, assetType) {\r\n let lineGroup = \"\";\r\n lineGroup = jsonData.filter((row) => row[1].specification === data);\r\n return lineGroup[0];\r\n}\r\n\r\nexport function getLineGroup(jsonData) {\r\n let lineGroup = [];\r\n jsonData.filter((row) => lineGroup.push(row[1].specification));\r\n return lineGroup;\r\n}\r\n\r\nexport function getShortCode(jsonData) {\r\n let shortCode = [];\r\n jsonData.filter((row) => Object.entries(row[1].Symbols).filter((data) => shortCode.push(data[1].ShortCode)));\r\n /* for removing duplicates */\r\n shortCode = [...new Set(shortCode)]; \r\n return shortCode;\r\n}\r\n\r\n/* Function for saving details of newly added asset */\r\nexport function addNewAsset(assetDetails, assetData) {\r\n let newAssetId = \"\";\r\n let newAsset = {};\r\n if (assetData.assetType === \"symbols\") {\r\n const symbols = Object.entries(assetDetails[1].Symbols);\r\n if (symbols.length !== 0) {\r\n let symbolsArray = [];\r\n for(let index in symbols) {\r\n symbolsArray.push(parseInt(symbols[index][0].split(\"_\")[1]));\r\n }\r\n symbolsArray = symbolsArray.sort(function(key1, key2) {\r\n return key1 - key2;\r\n });\r\n const id = symbolsArray[symbolsArray.length - 1];\r\n newAssetId = \"SYM_\" + (id + 1);\r\n } else {\r\n newAssetId = \"SYM_0\";\r\n }\r\n const properties = {\r\n ShortCode: assetData.ShortCode,\r\n assetComponentType: assetData.assetComponentType,\r\n Coords: assetData.Coords,\r\n SymbolId: assetData.SymbolId,\r\n Size1: assetData.Size1,\r\n Size2: assetData.Size2,\r\n IsJacketedLine : assetData.IsJacketedLine,\r\n InsulationType: assetData.InsulationType,\r\n AgUg : assetData.AgUg,\r\n Seat : assetData.Seat,\r\n ValveBody : assetData.ValveBody,\r\n ExtendedBonet : assetData.ExtendedBonet,\r\n LimitSwich:assetData.LimitSwich,\r\n Hold :assetData.Hold,\r\n Quantity: assetData.Quantity,\r\n SequenceNumber: assetData.SequenceNumber,\r\n Spec: assetData.Spec,\r\n HdrSize: assetData.HdrSize,\r\n ToLine: assetData.ToLine,\r\n FromLine:assetData.FromLine,\r\n Remarks:assetData.Remarks,\r\n ItemOrder:assetData.ItemOrder,\r\n Fluid: assetData.Fluid,\r\n Rating: assetData.Rating,\r\n ConfidenceScore: assetData.ConfidenceScore,\r\n SymbolRank: assetData.SymbolRank,\r\n };\r\n newAsset = [newAssetId, properties];\r\n } else {\r\n const lines = Object.entries(assetDetails[1].Lines);\r\n if (lines.length !== 0) {\r\n const id = lines[lines.length - 1][0].split(\"_\");\r\n newAssetId = \"LS_\" + (parseInt(id[1]) + 1);\r\n } else {\r\n newAssetId = \"LS_0\";\r\n }\r\n const properties = {\r\n Coords: assetData.Coords,\r\n orientation: assetData.orientation,\r\n LineSegmentId: assetData.LineSegmentId,\r\n };\r\n newAsset = [newAssetId, properties];\r\n }\r\n return newAsset;\r\n}\r\n/* Function for updating details of asset */\r\nexport function updateJsonData(data, jsonData, assetType, lineGroup) {\r\n // let newValue = data[1];\r\n if (assetType === \"symbols\") {\r\n jsonData[lineGroup][\"Symbols\"][data[0]] = data[1];\r\n } else {\r\n jsonData[lineGroup][\"Lines\"][data[0]] = data[1];\r\n }\r\n return jsonData;\r\n}\r\n/* Function for saving details of edited asset */\r\nexport function editJsonData(oldValue, newValue, jsonData, lineGroup) {\r\n const assetType = oldValue.assetId.split(\"_\");\r\n if (assetType[0] === \"SYM\") {\r\n const properties = {\r\n assetComponentType: newValue.assetCompType,\r\n ShortCode: newValue.shortCode,\r\n Coords: jsonData[lineGroup][\"Symbols\"][oldValue.assetId].Coords,\r\n SymbolId: newValue.id,\r\n SequenceNumber: newValue.Seq,\r\n Spec: newValue.Spec,\r\n IsJacketedLine: newValue.isJacketed,\r\n HdrSize: newValue.hdr,\r\n Size1: newValue.size1,\r\n Size2: newValue.size2,\r\n // Quantity: newValue.quantity,\r\n InsulationType: newValue.insulationType,\r\n AgUg: newValue.ugag,\r\n Fluid: newValue.fluid,\r\n Seat: newValue.seat,\r\n ValveBody: newValue.valveBody,\r\n ExtendedBonet: newValue.extendedBonet,\r\n LimitSwich: newValue.limitSwich,\r\n Hold: newValue.hold,\r\n Quantity: newValue.Quantity === undefined ? newValue.quantity : newValue.Quantity,\r\n Rating: newValue.Rating === undefined ? newValue.rating : newValue.Rating,\r\n SymbolRank: newValue.SymbolRank,\r\n ConfidenceScore: newValue.ConfidenceScore,\r\n FromLine: newValue.fromLine,\r\n ToLine: newValue.toLine,\r\n CorrectedRow: newValue.CorrectedRow,\r\n ItemOrder: null,\r\n Remarks: newValue.remarks,\r\n };\r\n jsonData[lineGroup][\"Symbols\"][oldValue.assetId] = properties;\r\n } else {\r\n const properties = {\r\n Coords: jsonData[lineGroup][\"Lines\"][oldValue.assetId].Coords,\r\n orientation: jsonData[lineGroup][\"Lines\"][oldValue.assetId].orientation,\r\n LineSegmentId: newValue.LineSegmentId,\r\n };\r\n jsonData[lineGroup][\"Lines\"][oldValue.assetId] = properties;\r\n }\r\n return jsonData;\r\n}\r\n\r\n/* Function for adding new line group */\r\nexport function addNewLineGroup(data, jsonData) {\r\n let convertedJson = Object.entries(jsonData);\r\n const id = convertedJson[convertedJson.length - 1][0].split(\"_\");\r\n const newId = \"LG_\" + (parseInt(id[1]) + 1);\r\n if (data.assetType === \"symbols\") {\r\n const shapeProperties = {\r\n ShortCode: data.ShortCode,\r\n assetComponentType: data.assetComponentType,\r\n Coords: data.Coords,\r\n SymbolId: data.SymbolId,\r\n Size1: data.Size1,\r\n Size2: data.Size2,\r\n IsJacketedLine : data.isJacketedLine,\r\n // ShortCode : data.ShortCode,\r\n InsulationType: data.InsulationType,\r\n AgUg : data.AgUg,\r\n Seat : data.Seat,\r\n ValveBody : data.ValveBody,\r\n ExtendedBonet : data.ExtendedBonet,\r\n LimitSwich:data.LimitSwich,\r\n Hold :data.Hold,\r\n Quantity: data.Quantity,\r\n SequenceNumber: data.SequenceNumber,\r\n Spec: data.Spec,\r\n HdrSize: data.HdrSize,\r\n ToLine: data.ToLine,\r\n FromLine:data.FromLine,\r\n Remarks:data.Remarks,\r\n ItemOrder:data.ItemOrder,\r\n Fluid: data.Fluid,\r\n Rating: data.Rating === undefined ? data.rating : data.Rating,\r\n SymbolRank: data.SymbolRank,\r\n ConfidenceScore: data.ConfidenceScore,\r\n };\r\n const symbolData = {\r\n SYM_0: shapeProperties,\r\n };\r\n const properties = {\r\n specification: data.specification,\r\n Symbols: symbolData,\r\n Lines:{},\r\n };\r\n jsonData[newId] = properties;\r\n } else {\r\n const shapeProperties = {\r\n Coords: data.Coords,\r\n orientation: data.orientation,\r\n LineSegmentId: data.LineSegmentId,\r\n };\r\n const symbolData = {\r\n LS_0: shapeProperties,\r\n };\r\n const properties = {\r\n specification: data.specification,\r\n Lines: symbolData,\r\n Symbols:{}\r\n };\r\n jsonData[newId] = properties;\r\n }\r\n return jsonData;\r\n}\r\n\r\nexport function transform(data, jsonData, lineGroup) {\r\n jsonData[lineGroup][data.assetType][data.id].Coords = data.Coords;\r\n jsonData[lineGroup][data.assetType][data.id].orientation = data.orientation;\r\n return jsonData;\r\n}\r\n\r\n/* check if this is used or not if not remove this function******************** */\r\nexport function editAssetWindow1(\r\n oldValue,\r\n newValue,\r\n jsonData,\r\n lineGroup1,\r\n lineGroup2\r\n) {\r\n \r\n const lines = Object.entries(jsonData[lineGroup2][oldValue.assetType]);\r\n let newAssetId = \"\";\r\n if (lines.length !== 0) {\r\n const id = lines[lines.length - 1][0].split(\"_\");\r\n newAssetId = \"LS_\" + (parseInt(id[1]) + 1);\r\n } else {\r\n newAssetId = \"LS_0\";\r\n }\r\n const properties = {\r\n coords: newValue.coords,\r\n orientation: newValue.orientation,\r\n };\r\n \r\n}\r\n/* Function for editing the properties of symbol through window1*/\r\nexport function editDataWindow1(data,jsonData,lineGroup) {\r\n if(data.lineNumber !== data.oldLineNumber) {\r\n const oldLineGroup = filterData(\r\n data.oldLineNumber,\r\n Object.entries(jsonData)\r\n );\r\n delete data[\"oldLineNumber\"];\r\n const assets = filterData(data.lineNumber,Object.entries(jsonData));\r\n const modifiedData = addNewAsset(assets,data);\r\n const updatedJson = updateJsonData(\r\n modifiedData,\r\n jsonData,\r\n \"symbols\",\r\n assets[0]\r\n );\r\n delete updatedJson[oldLineGroup[0]][\"Symbols\"][data.id];\r\n return updatedJson;\r\n }\r\n else {\r\n const properties = {\r\n assetComponentType: data.assetComponentType,\r\n ShortCode: data.ShortCode,\r\n Coords: data.Coords,\r\n SymbolId: data.SymbolId,\r\n SequenceNumber: data.SequenceNumber,\r\n Spec: data.Spec,\r\n IsJacketedLine: data.IsJacketedLine,\r\n HdrSize: data.HdrSize,\r\n Size1: data.Size1,\r\n Size2: data.Size2,\r\n InsulationType: data.InsulationType,\r\n AgUg: data.AgUg,\r\n Fluid: data.Fluid,\r\n Seat: data.Seat,\r\n ValveBody: data.ValveBody,\r\n ExtendedBonet: data.ExtendedBonet,\r\n LimitSwich: data.LimitSwich,\r\n Hold: data.Hold,\r\n Quantity: data.Quantity === undefined ? data.Quantity : data.Quantity,\r\n Rating: data.Rating === undefined ? data.rating : data.Rating,\r\n SymbolRank: data.SymbolRank,\r\n ConfidenceScore: data.ConfidenceScore,\r\n FromLine: data.FromLine,\r\n ToLine: data.ToLine,\r\n CorrectedRow: data.CorrectedRow,\r\n ItemOrder: data.ItemOrder,\r\n Remarks: data.Remarks,\r\n };\r\n jsonData[lineGroup][\"Symbols\"][data.id] = properties;\r\n return jsonData;\r\n }\r\n \r\n \r\n}\r\n\r\n/* Function for editing the properties of line through window1*/\r\nexport function editLineDataWindow1(data,jsonData,lineGroup,oldLineGroup) {\r\n const assets = filterData(data.lineNumber,Object.entries(jsonData));\r\n const modifiedData = addNewAsset(assets,data);\r\n const updatedJson = updateJsonData(\r\n modifiedData,\r\n jsonData,\r\n \"lines\",\r\n assets[0]\r\n );\r\n /* to remove key value pair from json */\r\n delete updatedJson[oldLineGroup][\"Lines\"][data.id];\r\n return [modifiedData,updatedJson];\r\n}\r\n/* Function for deleting a symbol */\r\nexport function deleteSymbolData(data,jsonData,lineGroup) {\r\n delete jsonData[lineGroup][\"Symbols\"][data.assetId];\r\n return jsonData;\r\n}\r\n/* Function for deleting a line */\r\nexport function deleteLineData(data,jsonData,lineGroup) {\r\n delete jsonData[lineGroup][\"Lines\"][data.assetId];\r\n return jsonData;\r\n}\r\n\r\n/* Function for getting the linegroup details based on symbol ranking */\r\n\r\nexport function symbolsRanking(properties,symbolsData) {\r\n let shortCodeResult = [];\r\n deletedData = [];\r\n if(symbolsData !== undefined)\r\n shortCodeResult = symbolsData.filter((row) => row.shortCode === properties.shortCode);\r\n let rankingData = [];\r\n if(shortCodeResult.length > 0) {\r\n rankingData = shortCodeResult.filter((row) => row.SymbolRank > 0 && row.SymbolRank !== \"NaN\");\r\n }\r\n let coordinateData = [];\r\n if(rankingData.length > 0) {\r\n coordinateData = rankingData.filter((row) => row.coords.XMin === properties.Coords.XMin && row.coords.YMin === properties.Coords.YMin && row.coords.XMax === properties.Coords.XMax && row.coords.YMax === properties.Coords.YMax);\r\n }\r\n let sortedData = [];\r\n if(coordinateData.length > 0) {\r\n for(let data in coordinateData) {\r\n sortedData.push({lineNumber: coordinateData[data].LineNumber,SymbolRank: coordinateData[data].SymbolRank});\r\n deletedData.push({LineNumber: coordinateData[data].LineNumber,SymbolRank: coordinateData[data].SymbolRank,assetId: coordinateData[data].assetId,SymbolId: coordinateData[data].id,properties: coordinateData[data]})\r\n }\r\n }\r\n let sorted = [];\r\n if(sortedData.length > 0) {\r\n sorted = sortedData.sort((a,b) => (a.SymbolRank > b.SymbolRank) ? 1 : ((b.SymbolRank > a.SymbolRank) ? -1 : 0))\r\n }\r\n let sortedLineGroups = [];\r\n if(sorted.length > 0) {\r\n for(let data in sorted) {\r\n sortedLineGroups.push(sorted[data].lineNumber);\r\n }\r\n }\r\n\r\n return sortedLineGroups;\r\n}\r\n\r\nexport function deleteData() {\r\n return deletedData;\r\n}","import React, { useState } from 'react';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport {TextField } from \"@material-ui/core\";\r\nimport { Button } from '@material-ui/core';\r\nimport './AddLine.scss';\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n editLineData,\r\n deleteLine\r\n } from \"../../../redux/actions/documentActions\";\r\n\r\nexport default function AddLine(props) {\r\n const [ addnew, setAddnew ] = useState(false);\r\n const lineGroups = useSelector(state => state.documentData.lineGroupSpec);\r\n const dispatch = useDispatch();\r\n const edit = props.assetProperties.edit;\r\n const assetProps = props.assetProperties;\r\n const handleAdd = (e) => {\r\n props.onHide();\r\n setAddnew(false)\r\n }\r\n const handleEdit = (e) => {\r\n const allProperties = {\r\n oldSpecification: assetProps.lineNumber,\r\n lineNumber: document.getElementById(\"add-new\").value !== \"\" ? document.getElementById(\"add-new\").value : document.getElementById(\"line-number\").value,\r\n id: assetProps.other.id,\r\n assetType: \"lines\",\r\n Coords: assetProps.coords,\r\n // orientation: assetProps.orientation,\r\n LineSegmentId: assetProps.LineSegmentId,\r\n orientation: 0,\r\n specification: document.getElementById(\"add-new\").value !== \"\" ? document.getElementById(\"add-new\").value : document.getElementById(\"line-number\").value,\r\n }\r\n setAddnew(false);\r\n dispatch(editLineData(allProperties));\r\n props.onHide();\r\n }\r\n\r\n const handleClose = () => {\r\n setAddnew(false);\r\n props.onClose();\r\n }\r\n\r\n \r\n const handleDelete = () => {\r\n if(edit == true) {\r\n assetProps.LineNumber = assetProps.lineNumber;\r\n assetProps.assetId = assetProps.id;\r\n props.onClose();\r\n dispatch(deleteLine(assetProps));\r\n setAddnew(false);\r\n props.delete();\r\n }\r\n else {\r\n setAddnew(false);\r\n props.onClose();\r\n }\r\n \r\n }\r\n\r\n const handleLineChange = () => {\r\n const lineno = document.getElementById(\"line-number\").value;\r\n props.onSelectChange(lineno);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n setAddnew(!addnew)}>+Add New\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport {TextField } from \"@material-ui/core\";\r\nimport { Button } from '@material-ui/core';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport './AddSymbol.scss';\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n editSymbolData,\r\n deleteSymbol,\r\n FilterLineGroup,\r\n } from \"../../../redux/actions/documentActions\";\r\nimport {\r\n deleteData,\r\n filterData,\r\n} from \"../../../redux/CanvasActions\";\r\nimport UserStore from '../../../UserStore';\r\nimport axios from 'axios';\r\nimport { toast } from \"react-toastify\";\r\nexport default function AddSymbol(props) {\r\n const [ addnew, setAddnew ] = useState(false);\r\n const [ addnewCode, setAddnewCode ] = useState(false);\r\n const [ addFromline, setaddFromline ] = useState(false);\r\n const [ addToline, setaddToline ] = useState(false);\r\n const [ isJacketedLine, setisJacketedLine ] = useState(false);\r\n const [ isagug, setisagug ] = useState(true);\r\n const [ isholdLine, setisholdLine ] = useState(true);\r\n const shortCodeList = useSelector((state) => state.documentData.shortCodeList);\r\n const lineList = useSelector((state) => state.documentData.documentList);\r\n let properties = props.assetProperties;\r\n let size1 = properties.Size1 === null || properties.Size1 === \"\" ? \"\" : (properties.Size1);\r\n const size2 = properties.Size2 === null || properties.Size2 === \"\" ? \"\" : (properties.Size2);\r\n const [lineNumber, setLineNumber] = useState(\"\");\r\n const edit = props.assetProperties.edit;\r\n const dispatch = useDispatch();\r\n let lineGroups = props.lineGroups;\r\n let maxRank = props.maxRank;\r\n let lineGroupData = useSelector(state => state.documentData.lineGroupSpec);\r\n \r\n const JacketedLine = (e) => {\r\n if (e.target.value === 'yes') {\r\n setisJacketedLine(true);\r\n } else {\r\n setisJacketedLine(false);\r\n }\r\n }\r\n\r\n const AGUG = (e) => {\r\n if (e.target.value === 'yes') {\r\n setisagug(true);\r\n } else {\r\n setisagug(false);\r\n }\r\n }\r\n\r\n const holdLine = (e) => {\r\n if (e.target.value === 'yes') {\r\n setisholdLine(true);\r\n } else {\r\n setisholdLine(false);\r\n }\r\n }\r\n let symbolDetail = {\r\n Spec: \"\",\r\n size1: \"\",\r\n Seq: \"\",\r\n hdr: \"\",\r\n insulationType: \"\",\r\n fluid: \"\",\r\n }\r\n if(props.show === true) {\r\n if(edit === undefined) {\r\n const jsonData = (props.mtoData);\r\n const symbolData = Object.entries(jsonData[0][1].Symbols);\r\n if(symbolData.length > 0) {\r\n const details = symbolData[symbolData.length - 1][1];\r\n symbolDetail = {\r\n Spec: details.Spec,\r\n size1: details.Size1,\r\n Seq: details.SequenceNumber,\r\n hdr: details.HdrSize.split('\"')[0],\r\n insulationType: details.InsulationType,\r\n fluid: details.Fluid,\r\n }\r\n }\r\n else {\r\n symbolDetail = {\r\n Spec: \"\",\r\n size1: \"\",\r\n Seq: \"\",\r\n hdr: \"\",\r\n insulationType: \"\",\r\n fluid: \"\",\r\n }\r\n }\r\n }\r\n \r\n }\r\n \r\n\r\n /* Function for adding new symbol */\r\n const handleAdd = (e) => {\r\n let otherProperties = {\r\n SequenceNumber: parseInt(document.getElementById(\"seq\").value),\r\n Spec: document.getElementById(\"spec\").value,\r\n IsJacketedLine:isJacketedLine,\r\n Size1: document.getElementById(\"size1\").value,\r\n Size2: document.getElementById(\"size2\").value,\r\n ShortCode: document.getElementById(\"add-short-code\").value === \"\" ? document.getElementById(\"short-code\").value : document.getElementById(\"add-short-code\").value,\r\n Quantity: 1,\r\n InsulationType:document.getElementById(\"insulation-type\").value,\r\n AgUg:isagug === true ? \"AG\" : \"UG\",\r\n Seat: document.getElementById(\"seat\").value,\r\n ValveBody: document.getElementById(\"valve\").value,\r\n ExtendedBonet:document.getElementById(\"bonnet\").value,\r\n LimitSwich:document.getElementById(\"switch\").value,\r\n Hold: isholdLine,\r\n HdrSize: document.getElementById(\"hdr\").value,\r\n assetComponentType: document.getElementById(\"assetCompType\").value,\r\n ToLine: document.getElementById(\"to\").value,\r\n FromLine: document.getElementById(\"from\").value,\r\n Remarks: document.getElementById(\"remarks\").value,\r\n ItemOrder: document.getElementById(\"item\").value,\r\n Fluid: document.getElementById(\"fluid\").value,\r\n SymbolRank: 0,\r\n Rating : \"\",\r\n };\r\n const lineNo = document.getElementById(\"add-new\").value !== \"\" ? document.getElementById(\"add-new\").value : document.getElementById(\"line-number\").value;\r\n const lg = filterData(\r\n lineNo,\r\n Object.entries(lineList)\r\n );\r\n const data = lineList[lg[0]][\"Symbols\"];\r\n const jsonData = Object.entries(data)\r\n // console.log(jsonData[0][1].Rating);\r\n otherProperties.Rating = jsonData[0] !== undefined ? jsonData[0][1].Rating : \"\";\r\n props.properties(otherProperties);\r\n setAddnew(false);\r\n setAddnewCode(false);\r\n props.onHide();\r\n setAddnew(false);\r\n }\r\n\r\n \r\n\r\n /* Function for editing the existing symbol */\r\n\r\n const handleEdit = (e) => {\r\n // console.log(properties);\r\n // const lineNo = document.getElementById(\"add-new\").value !== \"\" ? document.getElementById(\"add-new\").value : document.getElementById(\"line-number\").value;\r\n const allProperties = {\r\n IsJacketedLine:isJacketedLine,\r\n Size1: document.getElementById(\"size1\").value === \"Not Detected\" ? properties.Size1: document.getElementById(\"size1\").value,\r\n Size2: document.getElementById(\"size2\").value === \"Not Detected\" || document.getElementById(\"size2\").value.length === 0 ? null: document.getElementById(\"size2\").value,\r\n ShortCode: document.getElementById(\"add-short-code\").value === \"\" ? document.getElementById(\"short-code\").value : document.getElementById(\"add-short-code\").value,\r\n InsulationType: document.getElementById(\"insulation-type\").value === \"Not Detected\" ? properties.InsulationType : document.getElementById(\"insulation-type\").value,\r\n AgUg:isagug === true ? \"AG\" : \"UG\",\r\n Seat: document.getElementById(\"seat\").value === \"Not Detected\" ? properties.Seat : document.getElementById(\"seat\").value,\r\n ValveBody: document.getElementById(\"valve\").value === \"Not Detected\" ? properties.ValveBody : document.getElementById(\"valve\").value,\r\n ExtendedBonet:document.getElementById(\"bonnet\").value === \"Not Detected\" ? properties.ExtendedBonet : document.getElementById(\"bonnet\").value,\r\n LimitSwich: document.getElementById(\"switch\").value === \"Not Detected\" ? properties.LimitSwich : document.getElementById(\"switch\").value,\r\n Hold: isholdLine,\r\n lineNumber: document.getElementById(\"add-new\").value !== \"\" ? document.getElementById(\"add-new\").value : document.getElementById(\"line-number\").value,\r\n specification: document.getElementById(\"add-new\").value !== \"\" ? document.getElementById(\"add-new\").value : document.getElementById(\"line-number\").value,\r\n SymbolId: properties.assetID,\r\n Coords: properties.Coords,\r\n id: properties.id,\r\n assetID: properties.assetID,\r\n Fluid: document.getElementById(\"fluid\").value === \"Not Detected\" ? properties.Fluid : document.getElementById(\"fluid\").value,\r\n HdrSize: document.getElementById(\"hdr\").value === \"Not Detected\" ? properties.HdrSize : document.getElementById(\"hdr\").value,\r\n Quantity: properties.Quantity,\r\n assetComponentType: document.getElementById(\"assetCompType\").value === \"Not Detected\" ? properties.assetComponentType : document.getElementById(\"assetCompType\").value,\r\n SequenceNumber: document.getElementById(\"seq\").value === \"Not Detected\" ? properties.SequenceNumber :parseInt(document.getElementById(\"seq\").value),\r\n Spec: document.getElementById(\"spec\").value === \"Not Detected\" ? properties.Spec : document.getElementById(\"spec\").value,\r\n oldLineNumber: properties.lineNumber,\r\n assetType: \"symbols\",\r\n ToLine: document.getElementById(\"to\").value === \"Not Detected\" ? properties.ToLine : document.getElementById(\"to\").value,\r\n FromLine: document.getElementById(\"from\").value === \"Not Detected\" ? properties.FromLine : document.getElementById(\"from\").value,\r\n Remarks: document.getElementById(\"remarks\").value === \"Not Detected\" ? properties.Remarks : document.getElementById(\"remarks\").value,\r\n ItemOrder: document.getElementById(\"item\").value,\r\n Rating: properties.Rating,\r\n SymbolRank: properties.SymbolRank,\r\n ConfidenceScore: properties.ConfidenceScore,\r\n CorrectedRow: properties.CorrectedRow,\r\n }\r\n if(allProperties.oldLineNumber != allProperties.lineNumber) {\r\n allProperties.ConfidenceScore = 100;\r\n }\r\n setAddnew(false);\r\n const tobeDeleted = deleteData();\r\n if(tobeDeleted.length > 0) {\r\n for(let index in tobeDeleted) {\r\n dispatch(deleteSymbol(tobeDeleted[index]));\r\n if(tobeDeleted[index].LineNumber === allProperties.specification) {\r\n allProperties.SymbolId = tobeDeleted[index].SymbolId;\r\n allProperties.SymbolRank = 0;\r\n allProperties.assetID = tobeDeleted[index].properties.id;\r\n }\r\n }\r\n }\r\n allProperties.SymbolRank = 0;\r\n dispatch(editSymbolData(allProperties));\r\n dispatch(FilterLineGroup(allProperties));\r\n setAddnew(false);\r\n setAddnewCode(false);\r\n props.onHide();\r\n }\r\n\r\n const handleClose = () => {\r\n setAddnew(false);\r\n setAddnewCode(false);\r\n props.onClose();\r\n }\r\n\r\n\r\n const handleDelete = () => {\r\n if(edit === true) {\r\n properties.LineNumber = properties.lineNumber;\r\n properties.assetId = properties.id;\r\n \r\n dispatch(deleteSymbol(properties));\r\n props.delete();\r\n setAddnew(false);\r\n setAddnewCode(false);\r\n dispatch(FilterLineGroup(properties));\r\n props.onClose();\r\n \r\n }\r\n else {\r\n setAddnew(false);\r\n setAddnewCode(false);\r\n props.onClose();\r\n }\r\n \r\n \r\n }\r\n\r\n const handleLineChange = () => {\r\n const lineno = document.getElementById(\"line-number\").value;\r\n let variable = false;\r\n if(lineGroups.length > 0) {\r\n const tobeDeleted = deleteData();\r\n for(let index in tobeDeleted) {\r\n if(tobeDeleted[index].LineNumber === lineno) {\r\n // properties = tobeDeleted[index].properties;\r\n variable = true;\r\n document.getElementById(\"size1\").value = tobeDeleted[index].properties.size1;\r\n document.getElementById(\"size2\").value = tobeDeleted[index].properties.size2;\r\n document.getElementById(\"spec\").value = tobeDeleted[index].properties.Spec;\r\n document.getElementById(\"seq\").value = tobeDeleted[index].properties.Seq;\r\n document.getElementById(\"hdr\").value = tobeDeleted[index].properties.hdr;\r\n document.getElementById(\"assetCompType\").value = tobeDeleted[index].properties.assetCompType;\r\n document.getElementById(\"insulation-type\").value = tobeDeleted[index].properties.insulationType;\r\n document.getElementById(\"fluid\").value = tobeDeleted[index].properties.fluid;\r\n document.getElementById(\"seat\").value = tobeDeleted[index].properties.seat;\r\n document.getElementById(\"valve\").value = tobeDeleted[index].properties.valveBody;\r\n document.getElementById(\"bonnet\").value = tobeDeleted[index].properties.extendedBonet;\r\n document.getElementById(\"switch\").value = tobeDeleted[index].properties.limitSwich;\r\n document.getElementById(\"from\").value = tobeDeleted[index].properties.fromLine;\r\n document.getElementById(\"to\").value = tobeDeleted[index].properties.toLine;\r\n document.getElementById(\"item\").value = tobeDeleted[index].properties.itemOrder;\r\n document.getElementById(\"remarks\").value = tobeDeleted[index].properties.remarks;\r\n document.getElementById(\"IsJacketedLine\").value = tobeDeleted[index].properties.isJacketed === \"N\" ? \"no\" : \"yes\";\r\n document.getElementById(\"agug\").value = tobeDeleted[index].properties.ugag === \"UG\" ? \"no\" : \"yes\";\r\n document.getElementById(\"holdline\").value = tobeDeleted[index].properties.hold === \"N\" ? \"no\" : \"yes\";\r\n if(tobeDeleted[index].properties.isJacketed === \"N\") {\r\n setisJacketedLine(false);\r\n }\r\n else {\r\n setisJacketedLine(true);\r\n }\r\n if(tobeDeleted[index].properties.ugag === \"UG\") {\r\n setisagug(false);\r\n }\r\n else {\r\n setisagug(true);\r\n }\r\n if(tobeDeleted[index].properties.hold === \"N\") {\r\n setisholdLine(false);\r\n }\r\n else {\r\n setisholdLine(true);\r\n }\r\n \r\n }\r\n\r\n \r\n }\r\n \r\n }\r\n if(variable === false) {\r\n let updatedValues = {};\r\n const jsonData = (props.mtoData);\r\n const lineGroup = jsonData.filter((row) => row[1].specification === lineno);\r\n const symbolData = Object.entries(lineGroup[0][1].Symbols);\r\n const lineData = Object.entries(lineGroup[0][1].Lines);\r\n const lineId = lineData[0][1].LineSegmentId\r\n if(symbolData.length > 0) {\r\n const details = symbolData[symbolData.length - 1][1];\r\n updatedValues = {\r\n Spec: details.Spec,\r\n size1: details.Size1,\r\n Seq: details.SequenceNumber,\r\n hdr: details.HdrSize.split('\"')[0],\r\n insulationType: details.InsulationType,\r\n fluid: details.Fluid,\r\n }\r\n }\r\n else if(lineId === \"A0\") {\r\n const size = lineno.split('\"')[0];\r\n updatedValues = {\r\n Spec: \"\",\r\n size1: size,\r\n Seq: \"\",\r\n hdr: size,\r\n insulationType: \"\",\r\n fluid: \"\",\r\n }\r\n }\r\n else {\r\n updatedValues = {\r\n Spec: \"\",\r\n size1: \"\",\r\n Seq: \"\",\r\n hdr: \"\",\r\n insulationType: \"\",\r\n fluid: \"\",\r\n }\r\n }\r\n document.getElementById(\"spec\").value = updatedValues.Spec;\r\n document.getElementById(\"size1\").value = updatedValues.size1;\r\n document.getElementById(\"seq\").value = updatedValues.Seq;\r\n document.getElementById(\"hdr\").value = updatedValues.hdr;\r\n document.getElementById(\"insulation-type\").value = updatedValues.insulationType;\r\n document.getElementById(\"fluid\").value = updatedValues.fluid;\r\n }\r\n props.onSelectChange(lineno);\r\n }\r\n const [isValve,setIsValve] = useState(false);\r\n const valveList = [\"VG\",\"VGW\",\"VGPS\",\"VO\",\"VC\",\"VP\",\"VBF\",\"VDA\",\"VDG\",\"VDG\",\"VDA\",\"PRV\",\"VF\",\"VN\",\"VD\",\"Z3V\",\"ZAV\"];\r\n \r\n const handleShortCode = (e) => {\r\n const API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n const result = axios.get(API_Endpoint + `/GetPidAssetComponentType?projectWorkSpaceId=${UserStore.PIDworkspaceID}&shortCode=${e.target.value}`).then((result) => {\r\n document.getElementById(\"assetCompType\").value = result.data.toUpperCase();\r\n });\r\n const shortCode = e.target.value;\r\n const isAValve = valveList.filter(row => row === shortCode);\r\n if(isAValve.length > 0) {\r\n setIsValve(true);\r\n document.getElementById(\"seat\").value = \"\";\r\n document.getElementById(\"valve\").value = \"\";\r\n document.getElementById(\"bonnet\").value = \"\";\r\n document.getElementById(\"switch\").value = \"\";\r\n }\r\n else {\r\n document.getElementById(\"seat\").value = \"N\";\r\n document.getElementById(\"valve\").value = \"N\";\r\n document.getElementById(\"bonnet\").value = \"N\";\r\n document.getElementById(\"switch\").value = \"N\";\r\n }\r\n }\r\n\r\n const validateShortCode = (e) => {\r\n const API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n // console.log(e.target.value);\r\n if(e.target.value != \"\" && e.target.value != null && e.target.value != undefined ) {\r\n axios.get(API_Endpoint + `/GetPidAssetComponentType?projectWorkSpaceId=${UserStore.PIDworkspaceID}&shortCode=${e.target.value}`).then((result) => {\r\n document.getElementById(\"assetCompType\").value = result.data.toUpperCase();\r\n });\r\n const shortCode = e.target.value;\r\n const isAValve = valveList.filter(row => row === shortCode);\r\n if(isAValve.length > 0) {\r\n setIsValve(true);\r\n document.getElementById(\"seat\").value = \"\";\r\n document.getElementById(\"valve\").value = \"\";\r\n document.getElementById(\"bonnet\").value = \"\";\r\n document.getElementById(\"switch\").value = \"\";\r\n }\r\n else {\r\n document.getElementById(\"seat\").value = \"N\";\r\n document.getElementById(\"valve\").value = \"N\";\r\n document.getElementById(\"bonnet\").value = \"N\";\r\n document.getElementById(\"switch\").value = \"N\";\r\n }\r\n }\r\n }\r\n const [copy,setCopy] = useState(\"\");\r\n const copyLineNumber = () => {\r\n const lineNo = document.getElementById(\"add-new\").value !== \"\" ? document.getElementById(\"add-new\").value : document.getElementById(\"line-number\").value;\r\n setCopy(lineNo);\r\n navigator.clipboard.writeText(lineNo);\r\n // alert(\"copied to clipboard\");\r\n toast.success(\"copied to clipboard\", { autoClose: 3000 });\r\n }\r\n\r\n const changeFromLine = () => {\r\n const lineNo = document.getElementById(\"add-new\").value !== \"\" ? document.getElementById(\"add-new\").value : document.getElementById(\"line-number\").value;\r\n document.getElementById(\"from\").value = lineNo;\r\n // setFromLine(lineNo);\r\n }\r\n // const [fromLine,setFromLine] = useState(edit === true ? properties.FromLine : lineNumber);\r\n\r\n // console.log(fromLine);\r\n const handleAddNew = () => {\r\n setAddnew(!addnew);\r\n }\r\n \r\n const setAssetComp = () => {\r\n const API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n const result = axios.get(API_Endpoint + `/GetPidAssetComponentType?projectWorkSpaceId=${UserStore.PIDworkspaceID}&shortCode=${shortCodeList[0]}`).then((result) => {\r\n document.getElementById(\"assetCompType\").value = result.data.toUpperCase();\r\n });\r\n }\r\n return(\r\n \r\n \r\n \r\n \r\n
    \r\n +Add New\r\n Copy Line Number\r\n Keep as From Line\r\n
    \r\n \r\n \r\n \r\n setAddnewCode(!addnewCode)}>+Add New\r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n setaddFromline(!addFromline)}>+Add New\r\n setaddToline(!addToline)}>+Add New\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n Is Jacketed Line\r\n \r\n \r\n } label=\"Yes\" />\r\n } label=\"No\" />\r\n \r\n \r\n
    \r\n
    \r\n AG/UG\r\n \r\n \r\n } label=\"AG\" />\r\n } label=\"UG\" />\r\n \r\n \r\n
    \r\n
    \r\n Hold Line\r\n \r\n \r\n } label=\"Yes\" />\r\n } label=\"No\" />\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n}","export default function AssetProperties(assets, resWidth, resHeight , selectedLineNumber = undefined) {\r\n let assetData = null;\r\n let asset = [];\r\n const colorCodes = require('./colorCodes.json');\r\n var result = [];\r\n\r\nfor(var i in colorCodes)\r\n result.push([i, colorCodes[i]]);\r\n\r\n function createAsset(symbols, type, color, lineno) {\r\n let width = 0;\r\n let height = 0;\r\n assetData = symbols.map((symbols, index) => {\r\n width = Math.abs(symbols[1].Coords.XMax - symbols[1].Coords.XMin) / resWidth;\r\n const old_width = width;\r\n if(symbols[1].ShortCode === \"VBF\") {\r\n width = width + 1;\r\n }\r\n height = (symbols[1].Coords.YMax - symbols[1].Coords.YMin) / resHeight;\r\n const old_height = height;\r\n if(symbols[1].ShortCode === \"SB\") {\r\n height = height + 1;\r\n }\r\n let symbolId =\r\n type === \"lines\" ? symbols[1].LineSegmentId : symbols[1].SymbolId; \r\n let otherProperties = {};\r\n if (type === \"symbols\") {\r\n otherProperties = {\r\n SequenceNumber: symbols[1].SequenceNumber,\r\n Spec: symbols[1].Spec,\r\n IsJacketedLine: symbols[1].IsJacketedLine === null ? \"\" : symbols[1].IsJacketedLine,\r\n HdrSize: symbols[1].HdrSize,\r\n Size1: symbols[1].Size1 === null ? \"\" : symbols[1].Size1,\r\n Size2: symbols[1].Size2 === null ? \"\" : symbols[1].Size2,\r\n Quantity: symbols[1].Quantity,\r\n InsulationType: symbols[1].InsulationType,\r\n AgUg: symbols[1].AgUg,\r\n Fluid: symbols[1].Fluid,\r\n Seat: symbols[1].Seat,\r\n ValveBody: symbols[1].ValveBody,\r\n ExtendedBonet: symbols[1].ExtendedBonet,\r\n LimitSwich: symbols[1].LimitSwich,\r\n Hold: symbols[1].Hold,\r\n CorrectedRow: symbols[1].CorrectedRow,\r\n ToLine: symbols[1].ToLine,\r\n FromLine: symbols[1].FromLine,\r\n Remarks: symbols[1].Remarks,\r\n ItemOrder: symbols[1].ItemOrder === null || symbols[1].ItemOrder === undefined ? \"\" : symbols[1].ItemOrder,\r\n ConfidenceScore: symbols[1].ConfidenceScore,\r\n Rating: symbols[1].Rating,\r\n SymbolRank: symbols[1].SymbolRank,\r\n\r\n };\r\n }\r\n return {\r\n x: symbols[1].Coords.XMin / resWidth,\r\n y: symbols[1].Coords.YMin / resHeight,\r\n width: width,\r\n height: height < 0 ? 0 - height : height,\r\n points: type === \"lines\" ? [0, 0 ,width, height] : \"\",\r\n oldPoints: type === \"lines\" ? [0, 0 ,old_width, old_height] : \"\",\r\n stroke: symbols[1].SymbolRank !== 0 && symbols[1].SymbolRank !== \"NaN\" && symbols[1].SymbolRank !== undefined && symbols[1].SymbolRank !== null ? \"yellow\" :color,\r\n strokeWidth: 1.8,\r\n assetID: symbolId, \r\n assetType: type,\r\n lineNumber: lineno,\r\n shortCode: symbols[1].ShortCode ? symbols[1].ShortCode : \"\",\r\n assetComponentType: symbols[1].assetComponentType\r\n ? symbols[1].assetComponentType\r\n : \"\",\r\n symbolName: symbols[1].symbolName ? symbols[1].symbolName : \"\",\r\n strokeScaleEnabled: false,\r\n id: symbols[0],\r\n coords: symbols[1].Coords,\r\n oldWidth: old_width,\r\n oldHeight: old_height,\r\n ...otherProperties,\r\n };\r\n });\r\n if (assetData.length > 0) {\r\n asset = [...asset, ...assetData];\r\n }\r\n }\r\n if (assets.length > 0) {\r\n for (var index = 0; index < assets.length; index++) {\r\n let color = \"\";\r\n color = result[index][0];\r\n if(assets[index][1].specification === \"UNKNOWN\") {\r\n color = \"rgb(128,0,0)\";\r\n }\r\n if(selectedLineNumber === assets[index][1].specification) {\r\n color = \"#FF5349\";\r\n }\r\n \r\n if (assets[index][1].hasOwnProperty(\"Symbols\")) {\r\n let symbols = Object.entries(assets[index][1].Symbols);\r\n let lineno = assets[index][1].specification;\r\n \r\n if (symbols) {\r\n createAsset(symbols, \"symbols\", color, lineno);\r\n }\r\n }\r\n\r\n if (assets[index][1].hasOwnProperty(\"Lines\")) {\r\n let symbols = Object.entries(assets[index][1].Lines);\r\n let lineno = assets[index][1].specification;\r\n if (symbols) {\r\n createAsset(symbols, \"lines\", color, lineno);\r\n }\r\n }\r\n }\r\n }\r\n return asset;\r\n}\r\n","import React, { useEffect, useRef } from \"react\";\r\nimport { Rect, Transformer } from \"react-konva\";\r\nimport {Transform} from \"../../../redux/actions/documentActions\";\r\nexport default function BoundingBox(props) {\r\n const isSelected = props.isSelected;\r\n const shapeRef = useRef();\r\n const transformerRef = useRef();\r\n const dispatch = props.dispatcher;\r\n useEffect(() => {\r\n if (isSelected) {\r\n transformerRef.current.nodes([shapeRef.current]);\r\n transformerRef.current.getLayer().batchDraw();\r\n }\r\n }, [isSelected]);\r\n\r\n const mouseoverCursor = (e) => {\r\n const container = e.target.getStage().container();\r\n container.style.cursor = \"pointer\";\r\n };\r\n\r\n const onMouseOutCursor = (e) => {\r\n const container = e.target.getStage().container();\r\n container.style.cursor = \"default\";\r\n };\r\n\r\n function handleChange(event) {\r\n const properties = event.target.attrs;\r\n const scaleX = shapeRef.current.scaleX();\r\n const scaleY = shapeRef.current.scaleY();\r\n let prevWidth = shapeRef.current.width();\r\n let prevHeight = shapeRef.current.height();\r\n if(properties.shortCode === \"VBF\") {\r\n prevWidth = properties.oldWidth;\r\n }\r\n if(properties.shortCode === \"SB\") {\r\n prevHeight = properties.oldHeight;\r\n }\r\n const width = prevWidth * scaleX;\r\n const height = prevHeight * scaleY;\r\n\r\n const coords = {\r\n XMin: Math.floor(shapeRef.current.x() * props.width),\r\n YMin: Math.floor(shapeRef.current.y() * props.height),\r\n XMax: Math.floor((shapeRef.current.x() + width) * props.width),\r\n YMax: Math.floor((shapeRef.current.y() + height) * props.height),\r\n };\r\n \r\n const transformRectData = {\r\n Coords: coords,\r\n lineNumber: properties.lineNumber,\r\n assetType: \"Symbols\",\r\n id: properties.id,\r\n ShortCode: properties.shortCode,\r\n assetComponentType: properties.assetComponentType,\r\n IsJacketedLine:properties.IsJacketedLine,\r\n Size1: properties.Size1,\r\n Size2: properties.Size2,\r\n InsulationType:properties.InsulationType,\r\n AgUg:properties.AgUg,\r\n Seat: properties.Seat,\r\n ValveBody: properties.ValveBody ,\r\n ExtendedBonet:properties.ExtendedBonet,\r\n LimitSwich:properties.LimitSwich,\r\n Hold: properties.Hold,\r\n Spec: properties.Spec,\r\n SymbolId: properties.assetID,\r\n Fluid: properties.Fluid,\r\n HdrSize: properties.HdrSize,\r\n Quantity: properties.Quantity,\r\n SequenceNumber: properties.SequenceNumber,\r\n };\r\n dispatch(Transform(transformRectData));\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {isSelected && (\r\n \r\n )}\r\n \r\n );\r\n}\r\n","import React, { useEffect, useRef } from \"react\";\r\nimport { Line as KonvaLine, Transformer } from \"react-konva\";\r\nimport {Transform} from \"../../../redux/actions/documentActions\";\r\nexport default function Line(props) {\r\n const isSelected = props.isSelected;\r\n const shapeRef = useRef();\r\n const transformerRef = useRef();\r\n const dispatch = props.dispatcher;\r\n useEffect(() => {\r\n if (isSelected) {\r\n transformerRef.current.nodes([shapeRef.current]);\r\n transformerRef.current.getLayer().batchDraw();\r\n }\r\n }, [isSelected]);\r\n\r\n const mouseoverCursor = (e) => {\r\n const container = e.target.getStage().container();\r\n container.style.cursor = \"pointer\";\r\n };\r\n\r\n const onMouseOutCursor = (e) => {\r\n const container = e.target.getStage().container();\r\n container.style.cursor = \"default\";\r\n };\r\n function handleChange(event) {\r\n const scaleX = shapeRef.current.scaleX();\r\n const scaleY = shapeRef.current.scaleY();\r\n const width = shapeRef.current.width() * scaleX;\r\n const height = shapeRef.current.height() * scaleY;\r\n const coords = {\r\n XMin: Math.floor(shapeRef.current.x() * props.width),\r\n YMin: Math.floor(shapeRef.current.y() * props.height),\r\n XMax: Math.floor((shapeRef.current.x() + width) * props.width),\r\n YMax: Math.floor((shapeRef.current.y() + height) * props.height),\r\n };\r\n const properties = event.target.attrs;\r\n const transformLineData = {\r\n Coords: coords,\r\n orientation: shapeRef.current.rotation(),\r\n lineNumber: properties.lineNumber,\r\n assetType: \"Lines\",\r\n id: properties.id,\r\n LineSegmentId: properties.assetID,\r\n };\r\n dispatch(Transform(transformLineData));\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {isSelected && (\r\n \r\n )}\r\n \r\n );\r\n}","import React from \"react\";\r\nimport BoundingBox from \"./BoundingBox/BoundingBox\";\r\nimport Line from \"./Line/Line\";\r\n\r\nexport default function AssetsShape(props) {\r\n const isSelectedId = props.shape.assetID === props.selectedId ? true : false;\r\n switch (props.shape.assetType) {\r\n case \"symbols\":\r\n return (\r\n // props.shape.SymbolRank === 0 || props.shape.SymbolRank === 1 || props.shape.SymbolRank === undefined || props.shape.SymbolRank === null ? \r\n \r\n // : <>\r\n );\r\n case \"lines\":\r\n return (\r\n \r\n );\r\n default:\r\n return null;\r\n }\r\n\r\n}\r\n","import React, { useRef, useState, useEffect } from \"react\";\r\nimport { Stage, Layer, Image } from \"react-konva\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n FilterLineGroup,\r\n AddNewAsset,\r\n newLineGroup,\r\n // editDataWindow1,\r\n} from \"../../redux/actions/documentActions\";\r\nimport AddLine from \"../PIDCanvas/AddLine/AddLine\";\r\nimport AddSymbol from \"../PIDCanvas/AddSymbol/AddSymbol\";\r\n// import EditSymbol from \"../PIDCanvas/AddSymbol/EditSymbol\";\r\nimport useImage from \"use-image\";\r\nimport AssetProperties from \"../AssetShapes/AssetProperties\";\r\nimport AssetsShape from \"../AssetShapes/AssetsShape\";\r\nimport { useReactToPrint } from \"react-to-print\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport \"./ExpandWindow.scss\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport axios from 'axios';\r\nimport {symbolsRanking} from \"../../redux/CanvasActions\";\r\nimport UserStore from \"../../UserStore\";\r\nlet index = 0;\r\nexport default function PIDCanvas(props) {\r\n const componentRef = useRef();\r\n const API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n const stageRef = useRef();\r\n const draw = useRef(false);\r\n const edit = useRef(false);\r\n const [width, setWidth] = React.useState(((window.innerWidth) * 0.8));\r\n const [height, setHeight] = React.useState(((window.innerHeight) * 0.8));\r\n const [resWidth,setResWidth] = useState();\r\n const [resHeight,setResHeight] = useState();\r\n const [inputData,setInputData] = useState({});\r\n const [imageData,setImageData] = useState(\"\");\r\n const url = window.location.href;\r\n const splitUrl = url.split(\"Upload/\");\r\n \r\n const sheetId = JSON.parse(localStorage.getItem(\"sheetId\"));\r\n async function getAPICall() {\r\n const result = await axios.get(API_Endpoint + `/PreviewProcessedPid?sheetId=${sheetId}`);\r\n setResWidth(result.data.extractedJson.Size.width/width);\r\n setResHeight(result.data.extractedJson.Size.height/height);\r\n setImageData(result.data.pidUri);\r\n if(localStorage.getItem(\"prevRoute\") === \"process\")\r\n localStorage.setItem(\"MTOData\",JSON.stringify(result.data.extractedJson.linegroup));\r\n // setShapes(AssetProperties(Object.entries(JSON.parse(localStorage.getItem(\"MTOData\"))),result.data.extractedJson.Size.width/width,result.data.extractedJson.Size.height/height));\r\n accurateSymbols(JSON.parse(localStorage.getItem(\"MTOData\")),result.data.extractedJson.Size.width/width,result.data.extractedJson.Size.height/height);\r\n return result;\r\n }\r\n useEffect(() => {\r\n getAPICall();\r\n // setShapes(AssetProperties(Object.entries(props.data),result.data.extractedJson.Size.width/width,result.data.extractedJson.Size.height/height));\r\n },[])\r\n\r\n const storeData = useSelector((state) => state.documentData.documentList);\r\n const lineGroups = useSelector((state) => state.documentData.lineGroupSpec);\r\n const shortCodeList = useSelector((state) => state.documentData.shortCodeList);\r\n const dispatch = useDispatch();\r\n const [shapes, setShapes] = useState([]);\r\n useEffect(() => {\r\n accurateSymbols(storeData,resWidth,resHeight);\r\n \r\n // setShapes(AssetProperties(Object.entries(storeData),resWidth,resHeight));\r\n },[storeData])\r\n\r\n useEffect(() => {\r\n accurateSymbols(storeData,resWidth,resHeight);\r\n },[UserStore.accuracyPID])\r\n const shapesData = shapes;\r\n \r\n const [show1, setShow1] = useState(false);\r\n const [show2, setShow2] = useState(false);\r\n const [show3, setShow3] = useState(true);\r\n const [drag, setDrag] = useState(true);\r\n const [shape, setShape] = useState();\r\n const [stageScale, setStageScale] = useState(1);\r\n const [stageX, setStageX] = useState(0);\r\n const [stageY, setStageY] = useState(0);\r\n const [editData, setEdit] = useState(false);\r\n const [selectedLine, setSelectedLine] = useState(\"\");\r\n const [selectedAssetId, setSelectedAssetId] = useState(\"123\");\r\n let selectedId = \"\";\r\n const [drawnShape, setDrawnShape] = React.useState();\r\n const dummyShape = {\r\n coords: null,\r\n assetType: null,\r\n orientation: null,\r\n stroke: null,\r\n strokeWidth: null,\r\n assetId: null,\r\n x: null,\r\n y: null,\r\n width: null,\r\n height: null,\r\n points: null,\r\n };\r\n const [editAssetData, setEditAssetData] = useState([]);\r\n const [editLineData, setEditLineData] = useState([]);\r\n const [editedData, setEditedData] = useState([]);\r\n \r\n \r\n const [image] = useImage(imageData);\r\n useEffect(() => {\r\n window.addEventListener(\"resize\", updateWidthAndHeight);\r\n return () => window.removeEventListener(\"resize\", updateWidthAndHeight);\r\n });\r\n\r\n const updateWidthAndHeight = () => {\r\n setWidth(window.innerWidth);\r\n setHeight(window.innerHeight);\r\n };\r\n\r\n const handleClose1 = () => {\r\n edit.current = false;\r\n if (editLineData.edit === true) {\r\n editLineData.edit = false;\r\n } else {\r\n drawnShape.Coords.XMin = Math.floor(drawnShape.Coords.XMin * resWidth);\r\n drawnShape.Coords.XMax = Math.floor(drawnShape.Coords.XMax * resWidth);\r\n drawnShape.Coords.YMin = Math.floor(drawnShape.Coords.YMin * resHeight);\r\n drawnShape.Coords.YMax = Math.floor(drawnShape.Coords.YMax * resHeight);\r\n if (newLineNumber) {\r\n drawnShape.specification = newLineNumber;\r\n dispatch(newLineGroup(drawnShape));\r\n setNewLineNumber(\"\");\r\n } else {\r\n dispatch(AddNewAsset(drawnShape));\r\n }\r\n }\r\n setShow1(false);\r\n let newShape = AssetProperties(Object.entries(storeData),resWidth,resHeight);\r\n setShapes(newShape);\r\n };\r\n\r\n \r\n \r\n const handleCloseEditLine = () => {\r\n edit.current = false;\r\n setShow1(false);\r\n }\r\n const handleClose2 = () => {\r\n edit.current = false;\r\n if(editAssetData.edit === true) {\r\n editAssetData.edit = false;\r\n }\r\n else {\r\n drawnShape.Coords.XMin = Math.floor(drawnShape.Coords.XMin * resWidth);\r\n drawnShape.Coords.XMax = Math.floor(drawnShape.Coords.XMax * resWidth);\r\n drawnShape.Coords.YMin = Math.floor(drawnShape.Coords.YMin * resHeight);\r\n drawnShape.Coords.YMax = Math.floor(drawnShape.Coords.YMax * resHeight);\r\n if (newLineNumber) {\r\n drawnShape.specification = newLineNumber;\r\n dispatch(newLineGroup(drawnShape));\r\n setNewLineNumber(\"\");\r\n } else {\r\n dispatch(AddNewAsset(drawnShape));\r\n }\r\n }\r\n setShow2(false);\r\n let newShape = AssetProperties(Object.entries(storeData),resWidth,resHeight);\r\n setShapes(newShape);\r\n };\r\n\r\n const handleCloseAddSymbol = () => {\r\n edit.current = false;\r\n if(editAssetData.edit === true) {\r\n editAssetData.edit = false;\r\n }\r\n else {\r\n // shapesData.pop();\r\n // shapesData.pop();\r\n // shapesData.pop();\r\n shapesData.push(dummyShape);\r\n // accurateSymbols(storeData,resWidth,resHeight);\r\n setShapes(shapesData);\r\n }\r\n accurateSymbols(storeData,resWidth,resHeight);\r\n setShow2(false);\r\n };\r\n\r\n const handleCloseAddLine = () => {\r\n edit.current = false;\r\n if(editLineData.edit === true) {\r\n editLineData.edit = false;\r\n }\r\n else {\r\n // shapesData.pop();\r\n // shapesData.pop();\r\n // shapesData.pop();\r\n // accurateSymbols(storeData,resWidth,resHeight);\r\n shapesData.push(dummyShape);\r\n setShapes(shapesData);\r\n }\r\n accurateSymbols(storeData,resWidth,resHeight);\r\n setShow1(false);\r\n };\r\n\r\n const handleClose3 = () => {\r\n setShow3(false);\r\n };\r\n\r\n const handleCloseEdit = () => {\r\n setEdit(false);\r\n }\r\n\r\n const handleShow1 = () => {\r\n setShape({ assetType: \"lines\" });\r\n draw.current = true;\r\n edit.current = false;\r\n };\r\n\r\n const handleShow2 = () => {\r\n setShape({ assetType: \"symbols\" });\r\n draw.current = true;\r\n \r\n };\r\n\r\n const handleShow3 = () => {\r\n setShow3(true);\r\n };\r\n\r\n const zoomIn = () => {\r\n let scaleBy = 1.3;\r\n var oldScale = stageScale;\r\n var center = {\r\n x: width / 2,\r\n y: height / 2,\r\n };\r\n \r\n var relatedTo = {\r\n x: (center.x - stageX) / oldScale,\r\n y: (center.y - stageY) / oldScale,\r\n };\r\n \r\n var newScale = oldScale * scaleBy ;\r\n setStageScale(newScale);\r\n var newPos = {\r\n x: center.x - relatedTo.x * newScale,\r\n y: center.y - relatedTo.y * newScale,\r\n };\r\n setStageX(newPos.x)\r\n setStageY(newPos.y);\r\n };\r\n\r\n const zoomOut = (e) => {\r\n let scaleBy = 1.3;\r\n if(stageScale > 1.01) {\r\n var oldScale = stageScale;\r\n var center = {\r\n x: width / 2,\r\n y: height / 2,\r\n };\r\n \r\n var relatedTo = {\r\n x: (center.x - stageX) / oldScale,\r\n y: (center.y - stageY) / oldScale,\r\n };\r\n \r\n var newScale = oldScale / scaleBy ;\r\n setStageScale(newScale);\r\n var newPos = {\r\n x: center.x - relatedTo.x * newScale,\r\n y: center.y - relatedTo.y * newScale,\r\n };\r\n setStageX(newPos.x)\r\n setStageY(newPos.y);\r\n }\r\n };\r\n const [newLineNumber, setNewLineNumber] = useState(\"\");\r\n const getNewLineNumber = (e) => {\r\n setNewLineNumber(e.target.value);\r\n drawnShape.lineNumber = newLineNumber;\r\n };\r\n\r\n const [additionalProperties,setProperties] = useState();\r\n const setAdditionalProperties = (data) => {\r\n\r\n drawnShape.Size1 = data.Size1;\r\n drawnShape.Size2 = data.Size2;\r\n drawnShape.IsJacketedLine = data.IsJacketedLine;\r\n drawnShape.ShortCode = data.ShortCode;\r\n drawnShape.InsulationType= data.InsulationType;\r\n drawnShape.AgUg = data.AgUg;\r\n drawnShape.Seat = data.Seat;\r\n drawnShape.ValveBody = data.ValveBody;\r\n drawnShape.ExtendedBonet = data.ExtendedBonet;\r\n drawnShape.LimitSwich=data.LimitSwich;\r\n drawnShape.Hold=data.Hold;\r\n drawnShape.Quantity = data.Quantity;\r\n drawnShape.HdrSize = data.HdrSize;\r\n drawnShape.assetComponentType = data.assetComponentType;\r\n drawnShape.Spec = data.Spec;\r\n drawnShape.SequenceNumber = data.SequenceNumber;\r\n drawnShape.FromLine = data.FromLine;\r\n drawnShape.ToLine = data.ToLine;\r\n drawnShape.Remarks = data.Remarks;\r\n drawnShape.ItemOrder = data.ItemOrder;\r\n drawnShape.Fluid = data.Fluid;\r\n drawnShape.Rating = data.Rating;\r\n drawnShape.SymbolRank = data.SymbolRank;\r\n }\r\n\r\n const handleMouseDown = (e) => {\r\n if (!draw.current) {\r\n return;\r\n }\r\n setDrag(false);\r\n const scale = e.target.getStage().scaleX();\r\n const x = Math.abs(e.target.getStage().x());\r\n const y = Math.abs(e.target.getStage().y());\r\n const position = e.target.getStage().getPointerPosition();\r\n setShape({\r\n ...shape,\r\n x: Math.round((x + position.x) / scale),\r\n y: Math.round((y + position.y) / scale),\r\n });\r\n };\r\n\r\n const handleMouseMove = (e) => {\r\n if (!draw.current) {\r\n return;\r\n }\r\n const scale = e.target.getStage().scaleX();\r\n const x = Math.abs(e.target.getStage().x());\r\n const y = Math.abs(e.target.getStage().y());\r\n const point = e.target.getStage().getPointerPosition();\r\n // add point\r\n setShape({\r\n ...shape,\r\n height: Math.round((y + point.y) / scale),\r\n width: Math.round((x + point.x) / scale),\r\n });\r\n const assetType = shape.assetType;\r\n\r\n let coords = {\r\n xmin: Math.min(shape.x, shape.width),\r\n ymin: Math.min(shape.y, shape.height),\r\n xmax: Math.max(shape.x, shape.width),\r\n ymax: Math.max(shape.y, shape.height),\r\n };\r\n\r\n let orientation = 90;\r\n let new_width = coords.xmax - coords.xmin;\r\n let new_height = coords.ymax - coords.ymin;\r\n let assetId = (assetType === \"lines\") ? {\"LineSegmentId\":\"A\"+index}: {\"SymbolId\":\"A\"+index}\r\n let _drawn_shape_ = {\r\n coords: coords,\r\n assetType: assetType,\r\n orientation: orientation,\r\n stroke: assetType === \"lines\" ? \"maroon\" : \"blue\",\r\n strokeWidth: 0.5,\r\n ...assetId,\r\n x: coords.xmin,\r\n y: coords.ymin,\r\n width: new_width,\r\n height: new_height,\r\n points: assetType === \"lines\" ? [0, 0, new_width, new_height] : [],\r\n };\r\n if(shapesData[shapesData.length - 1].id == undefined)\r\n shapesData.pop();\r\n shapesData.push(_drawn_shape_);\r\n };\r\n\r\n const handleMouseUp = (e) => {\r\n if (draw.current === true) {\r\n draw.current = false;\r\n const assetType = shape.assetType;\r\n let coords = {\r\n XMin: Math.floor(Math.min(shape.x, shape.width)),\r\n YMin: Math.floor(Math.min(shape.y, shape.height)),\r\n XMax: Math.floor(Math.max(shape.x, shape.width)),\r\n YMax: Math.floor(Math.max(shape.y, shape.height)),\r\n };\r\n\r\n let orientation = 0;\r\n\r\n let new_width = coords.xmax - coords.xmin;\r\n let new_height = coords.ymax - coords.ymin;\r\n let assetId = (assetType === \"lines\") ? {LineSegmentId:\"A\"+index}: {SymbolId:\"A\"+index}\r\n let _drawn_shape_ = {\r\n ...assetId,\r\n Coords: coords,\r\n assetType: assetType,\r\n orientation: orientation,\r\n stroke: assetType === \"lines\" ? \"maroon\" : \"blue\",\r\n strokeWidth: 3,\r\n x: coords.xmin,\r\n y: coords.ymin,\r\n width: new_width,\r\n height: new_height,\r\n points: assetType === \"lines\" ? [0, 0, new_width, new_height] : [],\r\n rotation: orientation,\r\n strokeScaleEnabled: false,\r\n lineNumber: lineGroups[0],\r\n ConfidenceScore: 100,\r\n };\r\n index = index + 1;\r\n shapesData.push(_drawn_shape_);\r\n\r\n shapesData.push(dummyShape);\r\n setShapes(shapesData);\r\n if (assetType === \"lines\") {\r\n\r\n setShow1(true);\r\n } else if (assetType === \"symbols\") {\r\n setShow2(true);\r\n }\r\n setDrawnShape(_drawn_shape_);\r\n setDrag(true);\r\n }\r\n };\r\n \r\n\r\n\r\n const boundFunc = (pos, scale) => {\r\n\r\n const x = Math.min(0, Math.max(pos.x, width * (1 - scale)));\r\n const y = Math.min(0, Math.max(pos.y, height * (0.5 - scale)));\r\n\r\n return {\r\n x,\r\n y\r\n };\r\n }\r\n\r\n const dragBoundFunc = pos => {\r\n return boundFunc(pos, stageScale);\r\n };\r\n\r\n\r\n\r\n const handleDelete = () => {\r\n accurateSymbols(storeData,resWidth,resHeight);\r\n // setShapes(AssetProperties(Object.entries(storeData),resWidth,resHeight))\r\n }\r\n\r\n const symbolsData = useSelector(state => state.documentData.symbolsDetails);\r\n let lineGroupData = useSelector(state => state.documentData.lineGroupSpec);\r\n const [lgLength,setLgLength] = useState(0);\r\n const [sortedLineGroupsData,setLineGroup] = useState([]);\r\n const handleSelect = (e) => {\r\n accurateSymbols(storeData,resWidth,resHeight);\r\n // setShapes(AssetProperties(Object.entries(storeData),resWidth,resHeight))\r\n if (e.target.attrs.assetType === \"lines\") {\r\n edit.current = true;\r\n const editedData = {\r\n lineNumber: e.target.attrs.lineNumber,\r\n other: e.target.attrs,\r\n id: e.target.attrs.id,\r\n coords: e.target.attrs.coords,\r\n assetType:\"lines\",\r\n edit: edit.current,\r\n LineSegmentId: e.target.attrs.assetID,\r\n };\r\n accurateSymbols(storeData,resWidth,resHeight,editedData.lineNumber);\r\n setEditLineData(editedData);\r\n setShow1(true);\r\n }\r\n \r\n if (e.target.attrs.assetType === \"symbols\") {\r\n edit.current = true;\r\n const properties = {\r\n AgUg: e.target.attrs.AgUg,\r\n ExtendedBonet: e.target.attrs.ExtendedBonet,\r\n Fluid: e.target.attrs.Fluid,\r\n HdrSize: e.target.attrs.HdrSize,\r\n Hold: e.target.attrs.Hold === \"Y\" || e.target.attrs.Hold === true ? true : false,\r\n InsulationType: e.target.attrs.InsulationType,\r\n IsJacketedLine: e.target.attrs.IsJacketedLine === \"Y\" || e.target.attrs.IsJacketedLine === true ? true : false,\r\n LimitSwich: e.target.attrs.LimitSwich,\r\n Quantity: e.target.attrs.Quantity,\r\n Seat: e.target.attrs.Seat === null || e.target.attrs.Seat === undefined? \"\" : e.target.attrs.Seat,\r\n SequenceNumber: e.target.attrs.SequenceNumber === null || e.target.attrs.SequenceNumber === undefined ? \"\" : e.target.attrs.SequenceNumber,\r\n Size1: e.target.attrs.Size1,\r\n Size2: e.target.attrs.Size2,\r\n Spec: e.target.attrs.Spec,\r\n ValveBody: e.target.attrs.ValveBody,\r\n assetComponentType: e.target.attrs.assetComponentType,\r\n assetID: e.target.attrs.assetID,\r\n assetType: e.target.attrs.assetType,\r\n lineNumber: e.target.attrs.lineNumber,\r\n shortCode: e.target.attrs.shortCode,\r\n assetID: e.target.attrs.assetID,\r\n id: e.target.attrs.id,\r\n Coords: e.target.attrs.coords,\r\n edit: edit.current,\r\n ToLine: e.target.attrs.ToLine,\r\n FromLine: e.target.attrs.FromLine,\r\n Remarks: e.target.attrs.Remarks,\r\n ItemOrder: e.target.attrs.ItemOrder,\r\n Rating: e.target.attrs.Rating,\r\n SymbolRank: e.target.attrs.SymbolRank,\r\n ConfidenceScore: e.target.attrs.ConfidenceScore,\r\n CorrectedRow: e.target.attrs.CorrectedRow,\r\n select: \"\",\r\n }\r\n accurateSymbols(storeData,resWidth,resHeight,properties.lineNumber);\r\n // setShapes(AssetProperties(Object.entries(storeData),resWidth,resHeight,properties.lineNumber))\r\n const rankingData = {\r\n properties: properties,\r\n symbolsData: symbolsData,\r\n }\r\n let data = (symbolsRanking(rankingData.properties,rankingData.symbolsData));\r\n setLgLength(data.length);\r\n for(let lg in lineGroupData) {\r\n if(!data.includes(lineGroupData[lg])) {\r\n data.push(lineGroupData[lg])\r\n }\r\n }\r\n setLineGroup(data);\r\n setEditAssetData(properties);\r\n setShow2(true);\r\n }\r\n if (e.target.attrs.image) {\r\n setSelectedAssetId(\"undefined\");\r\n setSelectedLine(\"undefined\");\r\n } else {\r\n setSelectedAssetId(e.target.attrs.assetID);\r\n setSelectedLine(e.target.attrs.lineNumber);\r\n }\r\n selectedId = selectedAssetId;\r\n dispatch(FilterLineGroup(e.target.attrs));\r\n };\r\n\r\n const setSpec = (linenumber) => {\r\n if (edit.current === false) {\r\n \r\n drawnShape.lineNumber = linenumber;\r\n }\r\n };\r\n\r\n const handleWheel = (e) => {\r\n e.evt.preventDefault();\r\n\r\n const scaleBy = 1.5;\r\n const stage = e.target.getStage();\r\n const oldScale = stage.scaleX();\r\n const mousePointTo = {\r\n x: stage.getPointerPosition().x / oldScale - stage.x() / oldScale,\r\n y: stage.getPointerPosition().y / oldScale - stage.y() / oldScale\r\n };\r\n\r\n const newScale = e.evt.deltaY > 0 ? oldScale * scaleBy : oldScale / scaleBy;\r\n\r\n stage.scale({ x: newScale, y: newScale });\r\n setStageX(-(mousePointTo.x - stage.getPointerPosition().x / newScale) * newScale);\r\n setStageY(-(mousePointTo.y - stage.getPointerPosition().y / newScale) * newScale);\r\n setStageScale(newScale);\r\n };\r\n let mtoAccurateData = JSON.parse(JSON.stringify(storeData));\r\n /* Filter Symbols depending on the confidence score of each symbol */\r\n const accurateSymbols = (storeData,resultWidth,resultHeight,lineNumberValidate = undefined) => {\r\n const mtoDats =JSON.parse(JSON.stringify(storeData)) ;\r\n const mtoDat = Object.entries(mtoDats);\r\n let accuracyData = [];\r\n let symbolsDat = {};\r\n let km = {};\r\n if(mtoDat.length > 0) {\r\n const cScoreArray = UserStore.accuracyPID;\r\n let cScoreValid = \"\";\r\n let val1 = 100;\r\n let val2 = 0;\r\n if(cScoreArray.length === 1) {\r\n cScoreValid = cScoreArray[0];\r\n if(cScoreValid === \"low\") {\r\n val1 = 60;\r\n val2 = 0;\r\n }\r\n else if(cScoreValid === \"mid\") {\r\n val1 = 80;\r\n val2 = 61;\r\n }\r\n else if(cScoreValid === \"high\") {\r\n val1 = 100;\r\n val2 = 81;\r\n }\r\n else {\r\n val1 = 100;\r\n val2 = 0;\r\n }\r\n }\r\n else if(cScoreArray.length === 2) {\r\n if(cScoreArray.includes(\"low\") && cScoreArray.includes(\"mid\")) {\r\n val1 = 80;\r\n val2 = 0;\r\n }\r\n else if(cScoreArray.includes(\"high\") && cScoreArray.includes(\"mid\")) {\r\n val1 = 100;\r\n val2 = 61;\r\n }\r\n }\r\n else if(cScoreArray.length === 3) {\r\n val1 = 100;\r\n val2 = 0;\r\n }\r\n for(let index in mtoDat) {\r\n const lgNumber = mtoDat[index][0];\r\n accuracyData = [];\r\n symbolsDat = Object.entries(mtoDat[index][1].Symbols).map((row) => ( { [row[0]]: row[1] } ));\r\n km = {};\r\n for(let k in symbolsDat) {\r\n const rowValue = Object.entries(symbolsDat[k]);\r\n let cScore = rowValue[0][1].ConfidenceScore;\r\n if(cScore === \"NaN\") {\r\n cScore = 100;\r\n }\r\n if(cScoreArray.includes(\"high\") && cScoreArray.includes(\"low\") && cScoreArray.length === 2) {\r\n if(!(cScore <= 80 && cScore >= 61)) {\r\n accuracyData.push(symbolsDat[k])\r\n Object.assign(km,symbolsDat[k]);\r\n }\r\n }\r\n else {\r\n if(cScore <= val1 && cScore >= val2) {\r\n accuracyData.push(symbolsDat[k])\r\n Object.assign(km,symbolsDat[k]);\r\n }\r\n }\r\n \r\n \r\n }\r\n mtoDats[lgNumber].Symbols = km;\r\n }\r\n // }\r\n }\r\n let newShape = AssetProperties(Object.entries(mtoDats),resultWidth,resultHeight,lineNumberValidate);\r\n setShapes(newShape);\r\n mtoAccurateData = mtoDats;\r\n}\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n {shapes.map((shape, key) => (\r\n \r\n ))}\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n
    \r\n
    \r\n \r\n\r\n \r\n );\r\n}\r\n","import React, { useRef, useState, useEffect } from \"react\";\r\nimport { Stage, Layer, Image } from \"react-konva\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n FilterLineGroup,\r\n AddNewAsset,\r\n newLineGroup,\r\n selectAsset,\r\n} from \"../../redux/actions/documentActions\";\r\nimport {symbolsRanking} from \"../../redux/CanvasActions\"\r\nimport AddLine from \"../PIDCanvas/AddLine/AddLine\";\r\nimport AddSymbol from \"../PIDCanvas/AddSymbol/AddSymbol\";\r\nimport LoadingOverlay from \"react-loading-overlay\";\r\nimport AssetProperties from \"../AssetShapes/AssetProperties\";\r\nimport AssetsShape from \"../AssetShapes/AssetsShape\";\r\nimport { useReactToPrint } from \"react-to-print\";\r\nimport \"./PIDCanvas.scss\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport axios from 'axios';\r\nimport ExpandWindow from \"../ExpandWindow/ExpandWindow\";\r\nimport UserStore from \"../../UserStore\";\r\nlet index = 0;\r\nexport let imageLoading = true;\r\nexport default function PIDCanvas(props) {\r\n\r\n const comp = useRef();\r\n const API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n let stageRef = useRef();\r\n // const url = window.location.href;\r\n const sheetId = JSON.parse(localStorage.getItem(\"sheetId\"));\r\n const draw = useRef(false);\r\n const edit = useRef(false);\r\n const [width, setWidth] = React.useState(props.expand === undefined ? ((window.innerWidth) * 0.45) : ((window.innerWidth) * 0.8));\r\n const [height, setHeight] = React.useState(props.expand === undefined ? ((window.innerHeight) * 0.7) : ((window.innerHeight) * 0.8));\r\n const [resWidth,setResWidth] = useState(props.width / width);\r\n const [resHeight,setResHeight] = useState(props.height / height);\r\n const [inputData,setInputData] = useState({});\r\n const [imageData,setImageData] = useState(props.imageSrc);\r\n const [loading,setLoading] = useState(true);\r\n const symbolDat = useSelector(state => state.documentData.symbolsDetails);\r\n const [accuracy,setAccuracy] = useState(\"all\");\r\n \r\n/* Function to call PreviewProcessedPid API */\r\n async function getAPICall() {\r\n const result = await axios.get(API_Endpoint + `/PreviewProcessedPid?sheetId=${sheetId}`);\r\n setResWidth(result.data.extractedJson.Size.width/width);\r\n setResHeight(result.data.extractedJson.Size.height/height);\r\n setImageData(result.data.pidUri);\r\n setInputData(result.data.extractedJson.linegroup);\r\n if(localStorage.getItem(\"prevRoute\") === \"overallMTO\") {\r\n localStorage.setItem(\"MTOData\",JSON.stringify(result.data.extractedJson.linegroup));\r\n accurateSymbols1(JSON.parse(localStorage.getItem(\"MTOData\")),result.data.extractedJson.Size.width/width,result.data.extractedJson.Size.height/height);\r\n }\r\n if(localStorage.getItem(\"prevRoute\") === \"process\") {\r\n localStorage.setItem(\"MTOData\",JSON.stringify(result.data.extractedJson.linegroup));\r\n setShapes(AssetProperties(Object.entries(JSON.parse(localStorage.getItem(\"MTOData\"))),result.data.extractedJson.Size.width/width,result.data.extractedJson.Size.height/height));\r\n }\r\n if(result.status === 200) {\r\n setLoading(false);\r\n }\r\n }\r\n\r\n\r\n const accurateSymbols1 = (data,width,height,lineNumberValidate=undefined) => {\r\n const mtoDats =JSON.parse(JSON.stringify(data)) ;\r\n const mtoDat = Object.entries(mtoDats);\r\n let accuracyData = [];\r\n let symbolsDat = {};\r\n let km = {};\r\n if(mtoDat.length > 0) {\r\n const cScoreArray = UserStore.accuracyPID;\r\n let cScoreValid = \"\";\r\n let val1 = 100;\r\n let val2 = 0;\r\n if(cScoreArray.length === 1) {\r\n cScoreValid = cScoreArray[0];\r\n if(cScoreValid === \"low\") {\r\n val1 = 60;\r\n val2 = 0;\r\n }\r\n else if(cScoreValid === \"mid\") {\r\n val1 = 80;\r\n val2 = 61;\r\n }\r\n else if(cScoreValid === \"high\") {\r\n val1 = 100;\r\n val2 = 81;\r\n }\r\n else {\r\n val1 = 100;\r\n val2 = 0;\r\n }\r\n }\r\n else if(cScoreArray.length === 2) {\r\n if(cScoreArray.includes(\"low\") && cScoreArray.includes(\"mid\")) {\r\n val1 = 80;\r\n val2 = 0;\r\n }\r\n else if(cScoreArray.includes(\"high\") && cScoreArray.includes(\"mid\")) {\r\n val1 = 100;\r\n val2 = 61;\r\n }\r\n }\r\n else if(cScoreArray.length === 3) {\r\n val1 = 100;\r\n val2 = 0;\r\n }\r\n for(let index in mtoDat) {\r\n const lgNumber = mtoDat[index][0];\r\n accuracyData = [];\r\n symbolsDat = Object.entries(mtoDat[index][1].Symbols).map((row) => ( { [row[0]]: row[1] } ));\r\n km = {};\r\n for(let k in symbolsDat) {\r\n const rowValue = Object.entries(symbolsDat[k]);\r\n let cScore = rowValue[0][1].ConfidenceScore;\r\n if(cScore === \"NaN\") {\r\n cScore = 100;\r\n }\r\n if(cScoreArray.includes(\"high\") && cScoreArray.includes(\"low\") && cScoreArray.length === 2) {\r\n if(!(cScore <= 80 && cScore >= 61)) {\r\n accuracyData.push(symbolsDat[k])\r\n Object.assign(km,symbolsDat[k]);\r\n }\r\n }\r\n else {\r\n if(cScore <= val1 && cScore >= val2) {\r\n accuracyData.push(symbolsDat[k])\r\n Object.assign(km,symbolsDat[k]);\r\n }\r\n }\r\n \r\n \r\n }\r\n mtoDats[lgNumber].Symbols = km;\r\n }\r\n // }\r\n }\r\n let newShape = AssetProperties(Object.entries(mtoDats),width,height,lineNumberValidate);\r\n setShapes(newShape);\r\n mtoAccurateData = mtoDats;\r\n return newShape;\r\n}\r\n\r\n const storeData = useSelector((state) => state.documentData.documentList);\r\n const docList = useSelector((state) => state.documentData.documentList);\r\n const lineGroups = useSelector((state) => state.documentData.lineGroupSpec);\r\n const shortCodeList = useSelector((state) => state.documentData.shortCodeList);\r\n const [assetComponent,setAssetComponent] = useState(\"\");\r\n useEffect(() => {\r\n let assetComp = \"\";\r\n if(shortCodeList !== undefined) {\r\n axios.get(API_Endpoint + `/GetPidAssetComponentType?projectWorkSpaceId=${UserStore.PIDworkspaceID}&shortCode=${shortCodeList[0]}`).then((result) => {\r\n assetComp = result.data.toUpperCase();\r\n setAssetComponent(assetComp);\r\n });\r\n }\r\n },[shortCodeList])\r\n const [sortedLineGroupsData,setLineGroup] = useState([]);\r\n const dispatch = useDispatch();\r\n const [shapes, setShapes] = useState([]);\r\n\r\n /* change the state of the shapes if there is a change in AssetsJson */\r\n useEffect(() => {\r\n // if(storeData !== undefined)\r\n accurateSymbols();\r\n // setShapes(AssetProperties(Object.entries(storeData),resWidth,resHeight));\r\n },[storeData])\r\n\r\n let mtoAccurateData = JSON.parse(JSON.stringify(docList));\r\n /* Filter Symbols depending on the confidence score of each symbol */\r\n const accurateSymbols = (lineNumberValidate = undefined) => {\r\n const mtoDats =JSON.parse(JSON.stringify(storeData)) ;\r\n const mtoDat = Object.entries(mtoDats);\r\n let accuracyData = [];\r\n let symbolsDat = {};\r\n let km = {};\r\n if(mtoDat.length > 0) {\r\n const cScoreArray = UserStore.accuracyPID;\r\n let cScoreValid = \"\";\r\n let val1 = 100;\r\n let val2 = 0;\r\n if(cScoreArray.length === 1) {\r\n cScoreValid = cScoreArray[0];\r\n if(cScoreValid === \"low\") {\r\n val1 = 60;\r\n val2 = 0;\r\n }\r\n else if(cScoreValid === \"mid\") {\r\n val1 = 80;\r\n val2 = 61;\r\n }\r\n else if(cScoreValid === \"high\") {\r\n val1 = 100;\r\n val2 = 81;\r\n }\r\n else {\r\n val1 = 100;\r\n val2 = 0;\r\n }\r\n }\r\n else if(cScoreArray.length === 2) {\r\n if(cScoreArray.includes(\"low\") && cScoreArray.includes(\"mid\")) {\r\n val1 = 80;\r\n val2 = 0;\r\n }\r\n else if(cScoreArray.includes(\"high\") && cScoreArray.includes(\"mid\")) {\r\n val1 = 100;\r\n val2 = 61;\r\n }\r\n }\r\n else if(cScoreArray.length === 3) {\r\n val1 = 100;\r\n val2 = 0;\r\n }\r\n for(let index in mtoDat) {\r\n const lgNumber = mtoDat[index][0];\r\n accuracyData = [];\r\n symbolsDat = Object.entries(mtoDat[index][1].Symbols).map((row) => ( { [row[0]]: row[1] } ));\r\n km = {};\r\n for(let k in symbolsDat) {\r\n const rowValue = Object.entries(symbolsDat[k]);\r\n let cScore = rowValue[0][1].ConfidenceScore;\r\n if(cScore === \"NaN\") {\r\n cScore = 100;\r\n }\r\n if(cScoreArray.includes(\"high\") && cScoreArray.includes(\"low\") && cScoreArray.length === 2) {\r\n if(!(cScore <= 80 && cScore >= 61)) {\r\n accuracyData.push(symbolsDat[k])\r\n Object.assign(km,symbolsDat[k]);\r\n }\r\n }\r\n else {\r\n if(cScore <= val1 && cScore >= val2) {\r\n accuracyData.push(symbolsDat[k])\r\n Object.assign(km,symbolsDat[k]);\r\n }\r\n }\r\n \r\n \r\n }\r\n mtoDats[lgNumber].Symbols = km;\r\n }\r\n // }\r\n }\r\n let newShape = AssetProperties(Object.entries(mtoDats),resWidth,resHeight,lineNumberValidate);\r\n setShapes(newShape);\r\n mtoAccurateData = mtoDats;\r\n }\r\n\r\n useEffect(() => {\r\n accurateSymbols();\r\n },[UserStore.accuracyPID])\r\n\r\n useEffect(() => {\r\n getAPICall();\r\n },[]);\r\n\r\n let shapesData = shapes;\r\n const [show1, setShow1] = useState(false);\r\n const [show2, setShow2] = useState(false);\r\n const [show3, setShow3] = useState(false);\r\n const [drag, setDrag] = useState(true);\r\n const [shape, setShape] = useState();\r\n const [stageScale, setStageScale] = useState(1);\r\n const [stageX, setStageX] = useState(0);\r\n const [stageY, setStageY] = useState(0);\r\n const [editData, setEdit] = useState(false);\r\n const [selectedAssetId, setSelectedAssetId] = useState(\"123\");\r\n const [selectedLine, setSelectedLine] = useState(\"\");\r\n let selectedId = \"\";\r\n const [drawnShape, setDrawnShape] = React.useState();\r\n\r\n/* selected asset state change*/\r\n const selectedAssetData = useSelector((state) => state.documentData.selectedAssetData);\r\n const selectedAsset = useSelector((state) => state.documentData.selectedItem);\r\n useEffect(() => {\r\n setSelectedAssetId(selectedAssetData);\r\n selectedId = selectedAssetId;\r\n if(selectAsset !== undefined)\r\n handleMultiWaySelect()\r\n },[selectedAssetData,selectedAsset]);\r\n\r\n const dummyShape = {\r\n coords: null,\r\n assetType: null,\r\n orientation: null,\r\n stroke: null,\r\n strokeWidth: null,\r\n assetId: null,\r\n x: null,\r\n y: null,\r\n width: null,\r\n height: null,\r\n points: null,\r\n };\r\n const [editAssetData, setEditAssetData] = useState([]);\r\n const [editLineData, setEditLineData] = useState([]);\r\n const [editedData, setEditedData] = useState([]);\r\n const [load,setLoad] = useState(true);\r\n \r\n const image = new window.Image();\r\n image.setAttribute('crossOrigin', 'anonymous');\r\n image.src = imageData;\r\n image.onload = () => {\r\n setLoad(false);\r\n imageLoading = false;\r\n }\r\n const updateWidthAndHeight = () => {\r\n setWidth(window.innerWidth);\r\n setHeight(window.innerHeight);\r\n setLoading(false);\r\n };\r\n\r\n /* Function for storing the newly added line details*/\r\n const handleClose1 = () => {\r\n edit.current = false;\r\n if (editLineData.edit === true) {\r\n editLineData.edit = false;\r\n } else {\r\n drawnShape.Coords.XMin = Math.floor(drawnShape.Coords.XMin * resWidth);\r\n drawnShape.Coords.XMax = Math.floor(drawnShape.Coords.XMax * resWidth);\r\n drawnShape.Coords.YMin = Math.floor(drawnShape.Coords.YMin * resHeight);\r\n drawnShape.Coords.YMax = Math.floor(drawnShape.Coords.YMax * resHeight);\r\n if (newLineNumber) {\r\n drawnShape.specification = newLineNumber;\r\n dispatch(newLineGroup(drawnShape));\r\n setNewLineNumber(\"\");\r\n } else {\r\n dispatch(AddNewAsset(drawnShape));\r\n }\r\n }\r\n setShow1(false);\r\n \r\n let newShape = AssetProperties(Object.entries(storeData),resWidth,resHeight); /******checkkkkk thisssssss */\r\n setShapes(newShape);\r\n };\r\n\r\n \r\n const handleCloseEditLine = () => {\r\n edit.current = false;\r\n setShow1(false);\r\n }\r\n\r\n /* Function for storing the newly added symbol details*/\r\n const handleClose2 = () => {\r\n edit.current = false;\r\n if(editAssetData.edit === true) {\r\n editAssetData.edit = false;\r\n }\r\n else {\r\n drawnShape.Coords.XMin = Math.floor(drawnShape.Coords.XMin * resWidth);\r\n drawnShape.Coords.XMax = Math.floor(drawnShape.Coords.XMax * resWidth);\r\n drawnShape.Coords.YMin = Math.floor(drawnShape.Coords.YMin * resHeight);\r\n drawnShape.Coords.YMax = Math.floor(drawnShape.Coords.YMax * resHeight);\r\n if (newLineNumber) {\r\n drawnShape.specification = newLineNumber;\r\n dispatch(newLineGroup(drawnShape));\r\n setNewLineNumber(\"\");\r\n } else {\r\n dispatch(AddNewAsset(drawnShape));\r\n }\r\n }\r\n setShow2(false);\r\n let newShape = AssetProperties(Object.entries(storeData),resWidth,resHeight);\r\n setShapes(newShape);\r\n };\r\n\r\n const handleCloseAddSymbol = () => {\r\n edit.current = false;\r\n const selectedItem = {\r\n id : undefined\r\n }\r\n dispatch(selectAsset(selectedItem));\r\n if(editAssetData.edit === true) {\r\n editAssetData.edit = false;\r\n }\r\n else {\r\n // shapesData.pop();\r\n // shapesData.pop();\r\n // shapesData.pop();\r\n \r\n shapesData.push(dummyShape);\r\n // accurateSymbols();\r\n setShapes(shapesData);\r\n // drawnShape.lineNumber = undefined;\r\n }\r\n accurateSymbols();\r\n setShow2(false);\r\n };\r\n\r\n const handleCloseAddLine = () => {\r\n edit.current = false;\r\n if(editLineData.edit === true) {\r\n editLineData.edit = false;\r\n }\r\n else {\r\n // shapesData.pop();\r\n // shapesData.pop();\r\n // shapesData.pop();\r\n // accurateSymbols();\r\n shapesData.push(dummyShape);\r\n setShapes(shapesData);\r\n }\r\n accurateSymbols();\r\n setShow1(false);\r\n };\r\n\r\n const handleClose3 = () => {\r\n setShow3(false);\r\n accurateSymbols();\r\n // setShapes(AssetProperties(Object.entries(storeData),resWidth,resHeight)); /***** change this */\r\n };\r\n\r\n const handleCloseEdit = () => {\r\n setEdit(false);\r\n }\r\n\r\n \r\n const handleShow1 = () => {\r\n setShape({ assetType: \"lines\" });\r\n draw.current = true;\r\n edit.current = false;\r\n };\r\n\r\n const handleShow2 = () => {\r\n setShape({ assetType: \"symbols\" });\r\n draw.current = true;\r\n \r\n };\r\n\r\n const handleShow3 = () => {\r\n setShow3(true);\r\n };\r\n \r\n /* Function to handle zoomIn */\r\n const zoomIn = () => {\r\n let scaleBy = 1.3;\r\n var oldScale = stageScale;\r\n var center = {\r\n x: width / 2,\r\n y: height / 2,\r\n };\r\n \r\n var relatedTo = {\r\n x: (center.x - stageX) / oldScale,\r\n y: (center.y - stageY) / oldScale,\r\n };\r\n \r\n var newScale = oldScale * scaleBy ;\r\n setStageScale(newScale);\r\n var newPos = {\r\n x: center.x - relatedTo.x * newScale,\r\n y: center.y - relatedTo.y * newScale,\r\n };\r\n setStageX(newPos.x)\r\n setStageY(newPos.y);\r\n };\r\n\r\n \r\n /* Function to handle zoomOut */\r\n const zoomOut = (e) => {\r\n let scaleBy = 1.3;\r\n if(stageScale > 1.01) {\r\n var oldScale = stageScale;\r\n var center = {\r\n x: width / 2,\r\n y: height / 2,\r\n };\r\n \r\n var relatedTo = {\r\n x: (center.x - stageX) / oldScale,\r\n y: (center.y - stageY) / oldScale,\r\n };\r\n \r\n var newScale = oldScale / scaleBy ;\r\n setStageScale(newScale);\r\n var newPos = {\r\n x: center.x - relatedTo.x * newScale,\r\n y: center.y - relatedTo.y * newScale,\r\n };\r\n setStageX(newPos.x)\r\n setStageY(newPos.y);\r\n }\r\n };\r\n const [newLineNumber, setNewLineNumber] = useState(\"\");\r\n const getNewLineNumber = (e) => {\r\n setNewLineNumber(e.target.value);\r\n drawnShape.lineNumber = newLineNumber;\r\n };\r\n\r\n \r\n const setAdditionalProperties = (data) => {\r\n drawnShape.Size1 = data.Size1;\r\n drawnShape.Size2 = data.Size2;\r\n drawnShape.IsJacketedLine = data.IsJacketedLine;\r\n drawnShape.ShortCode = data.ShortCode;\r\n drawnShape.InsulationType= data.InsulationType;\r\n drawnShape.AgUg = data.AgUg;\r\n drawnShape.Seat = data.Seat;\r\n drawnShape.ValveBody = data.ValveBody;\r\n drawnShape.ExtendedBonet = data.ExtendedBonet;\r\n drawnShape.LimitSwich=data.LimitSwich;\r\n drawnShape.Hold=data.Hold;\r\n drawnShape.Quantity = data.Quantity;\r\n drawnShape.HdrSize = data.HdrSize;\r\n drawnShape.assetComponentType = data.assetComponentType;\r\n drawnShape.Spec = data.Spec;\r\n drawnShape.SequenceNumber = data.SequenceNumber;\r\n drawnShape.FromLine = data.FromLine;\r\n drawnShape.ToLine = data.ToLine;\r\n drawnShape.Remarks = data.Remarks;\r\n drawnShape.ItemOrder = data.ItemOrder;\r\n drawnShape.Fluid = data.Fluid;\r\n drawnShape.Rating = data.Rating;\r\n drawnShape.SymbolRank = data.SymbolRank;\r\n }\r\n\r\n /* Function to capture the newly drawn line or symbol initial coordinates */\r\n const handleMouseDown = (e) => {\r\n setSelectedAssetId(undefined)\r\n if (!draw.current) {\r\n return;\r\n }\r\n // orientation = 0;\r\n setDrag(false);\r\n const scale = e.target.getStage().scaleX();\r\n const x = Math.abs(e.target.getStage().x());\r\n const y = Math.abs(e.target.getStage().y());\r\n const position = e.target.getStage().getPointerPosition();\r\n setShape({\r\n ...shape,\r\n x: Math.round((x + position.x) / scale),\r\n y: Math.round((y + position.y) / scale),\r\n position: position.y,\r\n });\r\n };\r\n\r\n /* Function to capture the newly drawn line or symbol width and height */\r\n const handleMouseMove = (e) => {\r\n let orientation = 0;\r\n if (!draw.current) {\r\n return;\r\n }\r\n const point = e.target.getStage().getPointerPosition();\r\n if(shape.position > point.y) {\r\n orientation = -90;\r\n }\r\n const scale = e.target.getStage().scaleX();\r\n const x = Math.abs(e.target.getStage().x());\r\n const y = Math.abs(e.target.getStage().y());\r\n\r\n /*add point*/\r\n \r\n setShape({\r\n ...shape,\r\n height: Math.round((y + point.y) / scale),\r\n width: Math.round((x + point.x) / scale),\r\n orientation: orientation,\r\n });\r\n const assetType = shape.assetType;\r\n\r\n let coords = {\r\n xmin: Math.min(shape.x, shape.width),\r\n ymin: Math.min(shape.y, shape.height),\r\n xmax: Math.max(shape.x, shape.width),\r\n ymax: Math.max(shape.y, shape.height),\r\n };\r\n\r\n // let orientation = 90;\r\n let new_width = coords.xmax - coords.xmin;\r\n let new_height = coords.ymax - coords.ymin;\r\n let assetId = (assetType === \"lines\") ? {\"LineSegmentId\":\"A\"+index}: {\"SymbolId\":\"A\"+index}\r\n let _drawn_shape_ = {\r\n coords: coords,\r\n assetType: assetType,\r\n orientation: orientation,\r\n stroke: assetType === \"lines\" ? \"maroon\" : \"blue\",\r\n strokeWidth: 0.5,\r\n ...assetId,\r\n x: coords.xmin,\r\n y: coords.ymin,\r\n width: new_width,\r\n height: new_height,\r\n points: assetType === \"lines\" ? [0, 0, new_width, new_height] : [],\r\n rotation : orientation,\r\n };\r\n \r\n if(shapesData[shapesData.length - 1].id == undefined)\r\n shapesData.pop();\r\n shapesData.push(_drawn_shape_);\r\n };\r\n\r\n /* Function to capture the newly drawn line or symbol final coordinates */\r\n const handleMouseUp = (e) => {\r\n if (draw.current === true) {\r\n draw.current = false;\r\n const assetType = shape.assetType;\r\n let coords = {\r\n XMin: Math.floor(Math.min(shape.x, shape.width)),\r\n YMin: Math.floor(Math.min(shape.y, shape.height)),\r\n XMax: Math.floor(Math.max(shape.x, shape.width)),\r\n YMax: Math.floor(Math.max(shape.y, shape.height)),\r\n };\r\n let new_width = coords.XMax - coords.XMin;\r\n let new_height = coords.YMax - coords.YMin;\r\n let assetId = (assetType === \"lines\") ? {LineSegmentId:\"A\"+index}: {SymbolId:\"A\"+index}\r\n let _drawn_shape_ = {\r\n ...assetId,\r\n Coords: coords,\r\n assetType: assetType,\r\n rotation: shape.orientation,\r\n orientation: shape.orientation,\r\n stroke: assetType === \"lines\" ? \"maroon\" : \"blue\",\r\n strokeWidth: 3,\r\n x: coords.XMin,\r\n y: coords.YMin,\r\n width: new_width,\r\n height: new_height,\r\n points: assetType === \"lines\" ? [0, 0, new_width, new_height] : [],\r\n strokeScaleEnabled: false,\r\n lineNumber: lineGroups[0],\r\n ConfidenceScore: 100,\r\n };\r\n index = index + 1;\r\n shapesData.push(_drawn_shape_);\r\n\r\n shapesData.push(dummyShape);\r\n setShapes(shapesData);\r\n if (assetType === \"lines\") {\r\n\r\n setShow1(true);\r\n } else if (assetType === \"symbols\") {\r\n setShow2(true);\r\n }\r\n setDrawnShape(_drawn_shape_);\r\n setDrag(true);\r\n }\r\n };\r\n\r\n /* Print the PID */\r\n const handlePrint = useReactToPrint({\r\n content: () => comp.current,\r\n \r\n copyStyles: false,\r\n pageStyle: \"@page {size: A3 landscape; object-fit: cover; } @media print { canvas { width: 100vw !important; height: 68vw !important;image-resolution: 300dpi;}}\",\r\n });\r\n\r\n \r\n /* ******** Export canvas data ***************\r\n const printPID = () => {\r\n // console.log(comp.toDataURL({ pixelRatio: 3 }))\r\n // console.log(comp.current.getStage());\r\n let dataURL = stageRef.current.getStage().toDataURL({ \r\n quality: 4,\r\n pixelRatio: 3});\r\n // console.log(dataURL);\r\n downloadURI(dataURL, 'stage.png');\r\n }\r\n\r\n let k = \"\";\r\n function downloadURI(uri, name) {\r\n let link = document.createElement('a');\r\n link.download = name;\r\n link.href = uri;\r\n link.id = \"printID\"\r\n // console.log(link.href)\r\n document.body.appendChild(link);\r\n console.log(document.body);\r\n // link.click();\r\n k = document.getElementById(\"printID\");\r\n console.log(k);\r\n handlePrint();\r\n // document.body.removeChild(link);\r\n // delete link;\r\n }\r\n */\r\n \r\n\r\n const handleDelete = () => {\r\n setShapes(AssetProperties(Object.entries(storeData),resWidth,resHeight))\r\n }\r\n\r\n const symbolsData = useSelector(state => state.documentData.symbolsDetails);\r\n let lineGroupData = useSelector(state => state.documentData.lineGroupSpec);\r\n const [lgLength,setLgLength] = useState(0);\r\n\r\n /* MultiWay Selection (from window 2 to window 1) */\r\n const handleMultiWaySelect = () => {\r\n if(selectedAsset !== undefined) {\r\n setShapes(AssetProperties(Object.entries(storeData),resWidth,resHeight))\r\n edit.current = true;\r\n const properties = {\r\n AgUg: selectedAsset.ugag,\r\n ExtendedBonet: selectedAsset.extendedBonet,\r\n Fluid: selectedAsset.fluid,\r\n HdrSize: selectedAsset.hdr,\r\n Hold: selectedAsset.hold === \"N\" ? false : true,\r\n InsulationType: selectedAsset.insulationType,\r\n IsJacketedLine: selectedAsset.isJacketed === \"N\" ? false : true,\r\n LimitSwich: selectedAsset.limitSwich,\r\n Quantity:selectedAsset.quantity,\r\n Seat: selectedAsset.seat,\r\n SequenceNumber: selectedAsset.Seq,\r\n Size1: selectedAsset.size1,\r\n Size2: selectedAsset.size2,\r\n Spec: selectedAsset.Spec,\r\n ValveBody:selectedAsset.valveBody,\r\n assetComponentType: selectedAsset.assetCompType,\r\n assetID: selectedAsset.id,\r\n assetId: selectedAsset.assetId,\r\n assetType: \"symbols\",\r\n lineNumber:selectedAsset.LineNumber,\r\n shortCode: selectedAsset.shortCode,\r\n id: selectedAsset.assetId,\r\n Coords: selectedAsset.coords,\r\n edit: true,\r\n ToLine: selectedAsset.toLine,\r\n FromLine: selectedAsset.fromLine,\r\n Remarks:selectedAsset.remarks,\r\n ItemOrder: selectedAsset.itemOrder,\r\n Rating: selectedAsset.rating,\r\n SymbolRank: selectedAsset.SymbolRank,\r\n ConfidenceScore: selectedAsset.ConfidenceScore,\r\n CorrectedRow: selectedAsset.CorrectedRow,\r\n select: \"multiWay\",\r\n }\r\n const rankingData = {\r\n properties: properties,\r\n symbolsData: symbolsData,\r\n }\r\n let data = (symbolsRanking(rankingData.properties,rankingData.symbolsData));\r\n for(let lg in lineGroupData) {\r\n if(!data.includes(lineGroupData[lg])) {\r\n data.push(lineGroupData[lg])\r\n }\r\n }\r\n setLineGroup(data);\r\n setEditAssetData(properties);\r\n setShow2(true);\r\n }\r\n}\r\n\r\n/* Function for getting the properties of a line or symbol on click(window1) */\r\n const handleSelect = (e) => {\r\n accurateSymbols();\r\n // setShapes(AssetProperties(Object.entries(storeData),resWidth,resHeight))\r\n if (e.target.attrs.assetType === \"lines\") {\r\n edit.current = true;\r\n const editedData = {\r\n lineNumber: e.target.attrs.lineNumber,\r\n other: e.target.attrs,\r\n id: e.target.attrs.id,\r\n coords: e.target.attrs.coords,\r\n assetType:\"lines\",\r\n edit: edit.current,\r\n LineSegmentId: e.target.attrs.assetID,\r\n };\r\n accurateSymbols(editedData.lineNumber);\r\n // setShapes(AssetProperties(Object.entries(storeData),resWidth,resHeight,editedData.lineNumber))\r\n setEditLineData(editedData);\r\n setShow1(true);\r\n }\r\n if (e.target.attrs.assetType === \"symbols\") {\r\n edit.current = true;\r\n const properties = {\r\n AgUg: e.target.attrs.AgUg,\r\n ExtendedBonet: e.target.attrs.ExtendedBonet,\r\n Fluid: e.target.attrs.Fluid,\r\n HdrSize: e.target.attrs.HdrSize,\r\n Hold: e.target.attrs.Hold === \"Y\" || e.target.attrs.Hold === true ? true : false,\r\n InsulationType: e.target.attrs.InsulationType,\r\n IsJacketedLine: e.target.attrs.IsJacketedLine === \"Y\" || e.target.attrs.IsJacketedLine === true ? true : false,\r\n LimitSwich: e.target.attrs.LimitSwich,\r\n Quantity: e.target.attrs.Quantity,\r\n Seat: e.target.attrs.Seat === null || e.target.attrs.Seat === undefined? \"\" : e.target.attrs.Seat,\r\n SequenceNumber: e.target.attrs.SequenceNumber === null || e.target.attrs.SequenceNumber === undefined ? \"\" : e.target.attrs.SequenceNumber,\r\n Size1: e.target.attrs.Size1,\r\n Size2: e.target.attrs.Size2,\r\n Spec: e.target.attrs.Spec,\r\n ValveBody: e.target.attrs.ValveBody,\r\n assetComponentType: e.target.attrs.assetComponentType,\r\n assetID: e.target.attrs.assetID,\r\n assetType: e.target.attrs.assetType,\r\n lineNumber: e.target.attrs.lineNumber,\r\n shortCode: e.target.attrs.shortCode,\r\n assetID: e.target.attrs.assetID,\r\n id: e.target.attrs.id,\r\n Coords: e.target.attrs.coords,\r\n edit: edit.current,\r\n ToLine: e.target.attrs.ToLine,\r\n FromLine: e.target.attrs.FromLine,\r\n Remarks: e.target.attrs.Remarks,\r\n ItemOrder: e.target.attrs.ItemOrder,\r\n Rating: e.target.attrs.Rating,\r\n SymbolRank: e.target.attrs.SymbolRank,\r\n ConfidenceScore: e.target.attrs.ConfidenceScore,\r\n CorrectedRow: e.target.attrs.CorrectedRow,\r\n select: \"\",\r\n }\r\n // setShapes(AssetProperties(Object.entries(storeData),resWidth,resHeight,properties.lineNumber))\r\n accurateSymbols(properties.lineNumber);\r\n const rankingData = {\r\n properties: properties,\r\n symbolsData: symbolsData,\r\n }\r\n let data = (symbolsRanking(rankingData.properties,rankingData.symbolsData));\r\n setLgLength(data.length);\r\n for(let lg in lineGroupData) {\r\n if(!data.includes(lineGroupData[lg])) {\r\n data.push(lineGroupData[lg])\r\n }\r\n }\r\n \r\n setLineGroup(data);\r\n setEditAssetData(properties);\r\n setShow2(true);\r\n }\r\n if (e.target.attrs.image) {\r\n setSelectedAssetId(\"undefined\");\r\n setSelectedLine(\"undefined\");\r\n } else {\r\n setSelectedAssetId(e.target.attrs.assetID);\r\n setSelectedLine(e.target.attrs.lineNumber);\r\n }\r\n selectedId = selectedAssetId;\r\n dispatch(FilterLineGroup(e.target.attrs,mtoAccurateData));\r\n };\r\n\r\n const setSpec = (linenumber) => {\r\n if (edit.current === false) {\r\n drawnShape.lineNumber = linenumber;\r\n }\r\n \r\n };\r\n\r\n /* ZoomIn and zoomOut using mouse scroll */\r\n const handleWheel = (e) => {\r\n e.evt.preventDefault();\r\n\r\n const scaleBy = 1.3;\r\n const stage = e.target.getStage();\r\n const oldScale = stage.scaleX();\r\n const mousePointTo = {\r\n x: stage.getPointerPosition().x / oldScale - stage.x() / oldScale,\r\n y: stage.getPointerPosition().y / oldScale - stage.y() / oldScale\r\n };\r\n\r\n const newScale = e.evt.deltaY > 0 ? oldScale * scaleBy : oldScale / scaleBy;\r\n\r\n stage.scale({ x: newScale, y: newScale });\r\n setStageX(-(mousePointTo.x - stage.getPointerPosition().x / newScale) * newScale);\r\n setStageY(-(mousePointTo.y - stage.getPointerPosition().y / newScale) * newScale);\r\n setStageScale(newScale);\r\n };\r\n\r\n\r\n /* Function to get the image position details when image is moved or dragged from it's initial position*/\r\n const boundFunc = (pos, scale) => {\r\n\r\n const x = Math.min(0, Math.max(pos.x, width * (1 - scale)));\r\n const y = Math.min(0, Math.max(pos.y, height * (0.5 - scale)));\r\n\r\n return {\r\n x,\r\n y\r\n };\r\n }\r\n\r\n\r\n const dragBoundFunc = pos => {\r\n return boundFunc(pos, stageScale);\r\n };\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n

    \r\n NOTE: Select Lines or Components from the diagram to view the line wise MTO report.\r\n

    \r\n
    \r\n \r\n Expand Window\r\n
    \r\n
    \r\n \r\n Print PID\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n { shapes.map((shape, key) => (\r\n \r\n )) }\r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n}\r\n","import React, { useState, useRef, useEffect } from \"react\";\r\nimport TableFilter from \"react-table-filter\";\r\nimport {\r\n EditAsset,\r\n EditAssetLineGroup,\r\n selectAsset,\r\n} from \"../../redux/actions/documentActions\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport \"react-table-filter/lib/styles.css\";\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport {} from \"./lib/styles.css\";\r\nimport \"./FilterRenderer.scss\";\r\nimport UserStore from \"../../UserStore\";\r\nexport default function FilterRenderer(props) {\r\n let rows = props.rowsData;\r\n let accurateData = [];\r\n const accurateSymbols1 = (data) => {\r\n // if(docList !== undefined)\r\n const mtoDats ={...data};\r\n const mtoDat = Object.entries(mtoDats);\r\n let km = {};\r\n if(mtoDat.length > 0) {\r\n const cScoreArray = UserStore.accuracyPID;\r\n let cScoreValid = \"\";\r\n let val1 = 100;\r\n let val2 = 0;\r\n if(cScoreArray.length === 1) {\r\n cScoreValid = cScoreArray[0];\r\n if(cScoreValid === \"low\") {\r\n val1 = 60;\r\n val2 = 0;\r\n }\r\n else if(cScoreValid === \"mid\") {\r\n val1 = 80;\r\n val2 = 61;\r\n }\r\n else if(cScoreValid === \"high\") {\r\n val1 = 100;\r\n val2 = 81;\r\n }\r\n else {\r\n val1 = 100;\r\n val2 = 0;\r\n }\r\n }\r\n else if(cScoreArray.length === 2) {\r\n if(cScoreArray.includes(\"low\") && cScoreArray.includes(\"mid\")) {\r\n val1 = 80;\r\n val2 = 0;\r\n }\r\n else if(cScoreArray.includes(\"high\") && cScoreArray.includes(\"mid\")) {\r\n val1 = 100;\r\n val2 = 61;\r\n }\r\n }\r\n else if(cScoreArray.length === 3) {\r\n val1 = 100;\r\n val2 = 0;\r\n }\r\n for(let index in mtoDat) {\r\n let cScore = mtoDat[index][1].ConfidenceScore;\r\n if(cScore === \"NaN\") {\r\n cScore = 100;\r\n }\r\n km = {};\r\n if(cScoreArray.includes(\"high\") && cScoreArray.includes(\"low\") && cScoreArray.length === 2) {\r\n if(!(cScore <= 80 && cScore >= 61)) {\r\n accurateData.push(mtoDat[index][1])\r\n }\r\n }\r\n else {\r\n if(cScore <= val1 && cScore >= val2) {\r\n accurateData.push(mtoDat[index][1])\r\n }\r\n }\r\n \r\n }\r\n }\r\n rows = accurateData;\r\n }\r\n useEffect(() => {\r\n accurateSymbols1(rows);\r\n },[])\r\n \r\n \r\n const changeDataFormat = (mtoResult) => {\r\n let k = [];\r\n if(mtoResult !== undefined) {\r\n mtoResult.map((data) => {\r\n let mtoData = {\r\n id: data.id,\r\n SymbolRank: data.SymbolRank,\r\n Key: data.Key,\r\n assetId: data.assetId,\r\n coords: data.coords,\r\n LineNumber: data.LineNumber === \"UNKNOWN\" ? \"Not Detected\" :data.LineNumber ,\r\n Seq: data.Seq.length === 0 || data.Seq === \"NaN\" ? \"Not Detected\" : data.Seq,\r\n pid: data.pid.length === 0 ? \"Not Detected\" : data.pid,\r\n Spec: data.Spec.length === 0 ? \"Not Detected\" : data.Spec,\r\n shortCode: data.shortCode.length === 0 ? \"Not Detected\" : data.shortCode,\r\n isJacketed: data.isJacketed.length === 0 ? \"Not Detected\" : data.isJacketed,\r\n hdr:\r\n data.hdr === null ||\r\n data.hdr === undefined ||\r\n data.hdr === \"\"\r\n ? \"Not Detected\"\r\n : \r\n data.hdr.split(/[\" ']+/)[0],\r\n size1:\r\n data.size1 === null || data.size1 === undefined || data.size1 === \"\"\r\n ? \"Not Detected\"\r\n : \r\n (data.size1),\r\n size2:\r\n (data.shortCode === \"T\" || data.shortCode === \"RX\") && (data.size2 === null || data.size2 === undefined || data.size2 === \"\")\r\n ? \"Not Detected\"\r\n : (data.size2 === null || data.size2 === undefined || data.size2 === \"\") ? \"\" : (data.size2) ,\r\n quantity: data.quantity,\r\n insulationType: data.insulationType.length === 0 ? \"Not Detected\" : data.insulationType,\r\n ugag: data.ugag.length === 0 ? \"Not Detected\" : data.ugag,\r\n fluid: data.fluid.length === 0 ? \"Not Detected\" : data.fluid,\r\n assetCompType:\r\n data.assetCompType === null ||\r\n data.assetCompType === undefined ||\r\n data.assetCompType === \"\"\r\n ? \"Not Detected\"\r\n : data.assetCompType.toUpperCase(),\r\n seat: data.seat.length === 0 ? \"Not Detected\" : data.seat,\r\n valveBody: data.valveBody.length === 0 ? \"Not Detected\" : data.valveBody,\r\n extendedBonet: data.extendedBonet.length === 0 ? \"Not Detected\" : data.extendedBonet,\r\n limitSwich: data.limitSwich.length === 0 ? \"Not Detected\" : data.limitSwich,\r\n hold: data.hold.length === 0 ? \"Not Detected\" : data.hold,\r\n supply: data.supply,\r\n fromLine: data.fromLine.length === 0 ? \"Not Detected\" : data.fromLine,\r\n toLine: data.toLine.length === 0 ? \"Not Detected\" : data.toLine,\r\n itemOrder: data.itemOrder,\r\n remarks: (data.shortCode === \"I\" || data.shortCode === \"SC\" || data.shortCode === \"SI\" || data.assetCompType === \"Control Valve\") && data.remarks.length === 0 ? \"Not Detected\" : data.remarks,\r\n rating: data.rating.length === 0 ? \"Not Detected\" : data.rating,\r\n ConfidenceScore: data.ConfidenceScore,\r\n };\r\n k.push(mtoData);\r\n });\r\n }\r\n return k;\r\n };\r\n const [newRows, setNewRows] = useState([...rows]);\r\n const [rowHeaders, setRowHeaders] = useState((changeDataFormat(rows)));\r\n \r\n \r\n useEffect(() => {\r\n let mtoResult = changeDataFormat(rows);\r\n setNewRows([...rows]);\r\n setRowHeaders([...mtoResult]);\r\n }, [rows]);\r\n const dispatch = useDispatch();\r\n \r\n \r\n const selectedAsset = useSelector(\r\n (state) => state.documentData.selectedAsset\r\n );\r\n let tableRef = useRef();\r\n const handleMouseLeave = (e, oldValue, index) => {\r\n const header = e.target.id.split(\"_\")[0];\r\n const value = e.target.innerHTML;\r\n var newValue = JSON.parse(JSON.stringify(oldValue));\r\n newValue[header] = value;\r\n\r\n if (header === \"LineNumber\") {\r\n dispatch(EditAssetLineGroup(oldValue.LineNumber, newValue));\r\n } else {\r\n dispatch(EditAsset(newValue, oldValue));\r\n }\r\n \r\n if (\r\n newValue[header] !== oldValue[header] + \"\" &&\r\n oldValue[header] !== null &&\r\n oldValue[header] !== undefined &&\r\n oldValue[header] !== \"UNKNOWN\" &&\r\n oldValue[header] !== \"NaN\" && newValue[header] !== \"Not Detected\"\r\n )\r\n document.getElementById(e.target.id).style.backgroundColor = \"yellow\";\r\n };\r\n\r\n const retainDataFormat = (mtoResult) => {\r\n let k = [];\r\n if(mtoResult !== undefined) {\r\n mtoResult.map((data) => {\r\n let mtoData = {\r\n id: data.id,\r\n SymbolRank: data.SymbolRank,\r\n Key: data.Key,\r\n assetId: data.assetId,\r\n coords: data.coords,\r\n LineNumber: data.LineNumber === \"Not Detected\" ? \"UNKNOWN\" :data.LineNumber ,\r\n Seq: data.Seq === \"Not Detected\" ? \"\" : data.Seq,\r\n pid: data.pid=== \"Not Detected\" ? \"\" : data.pid,\r\n Spec: data.Spec === \"Not Detected\" ? \"\" : data.Spec,\r\n shortCode: data.shortCode === \"Not Detected\" ? \"\" : data.shortCode,\r\n isJacketed: data.isJacketed,\r\n hdr:data.hdr=== \"Not Detected\" ? \"\" : data.hdr ,\r\n size1:data.size1 === \"Not Detected\" ? \"\" : data.size1,\r\n size2:data.size2=== \"Not Detected\" ? \"\" : data.size2,\r\n quantity: data.quantity,\r\n insulationType: data.insulationType=== \"Not Detected\" ? \"\" : data.insulationType,\r\n ugag: data.ugag,\r\n fluid: data.fluid=== \"Not Detected\" ? \"\" : data.fluid,\r\n assetCompType:data.assetCompType=== \"Not Detected\" ? \"\" : data.assetCompType ,\r\n seat: data.seat=== \"Not Detected\" ? \"\" : data.seat,\r\n valveBody: data.valveBody=== \"Not Detected\" ? \"\" : data.valveBody,\r\n extendedBonet: data.extendedBonet=== \"Not Detected\" ? \"\" : data.extendedBonet,\r\n limitSwich: data.limitSwich=== \"Not Detected\" ? \"\" : data.limitSwich,\r\n hold: data.hold,\r\n supply: data.supply,\r\n fromLine: data.fromLine.length === \"Not Detected\" ? \"UNKNOWN\" : data.fromLine,\r\n toLine: data.toLine.length === \"Not Detected\" ? \"UNKNOWN\": data.toLine,\r\n itemOrder: data.itemOrder,\r\n remarks: data.remarks=== \"Not Detected\" ? \"\" : data.remarks,\r\n rating: data.rating=== \"Not Detected\" ? \"\" : data.rating,\r\n ConfidenceScore: data.ConfidenceScore,\r\n };\r\n k.push(mtoData);\r\n });\r\n }\r\n return k;\r\n };\r\n\r\n const filterUpdated = (newData, filterConfiguration) => {\r\n let retainedData = retainDataFormat(newData);\r\n setNewRows([...retainedData]);\r\n let mtoResult = changeDataFormat(newData);\r\n setRowHeaders([...mtoResult]);\r\n };\r\n\r\n const handleClick = (e, item) => {\r\n dispatch(selectAsset(item));\r\n };\r\n\r\n \r\n \r\n const filterReset = () => {\r\n tableRef.reset(rows, true);\r\n let mtoResult = changeDataFormat(rows);\r\n setNewRows(rows);\r\n setRowHeaders([...mtoResult]);\r\n }\r\n \r\n useEffect(() => {\r\n filterReset();\r\n },[rows])\r\n return (\r\n
    \r\n \r\n \r\n tableRef = node}\r\n >\r\n \r\n
    LINE NUMBER
    \r\n \r\n \r\n
    SEQ
    \r\n \r\n \r\n
    PID
    \r\n \r\n \r\n
    SPEC
    \r\n \r\n \r\n
    SHORT CODE
    \r\n \r\n \r\n
    IS JACKETED LINE
    \r\n \r\n \r\n
    HDR
    \r\n \r\n \r\n
    SIZE - 1
    \r\n \r\n \r\n
    SIZE - 2
    \r\n \r\n \r\n
    QTY
    \r\n \r\n \r\n
    INSUL TYPE
    \r\n \r\n \r\n
    AG/UG
    \r\n \r\n \r\n
    FLUID
    \r\n \r\n \r\n
    PIPINGCOMPTYPE
    \r\n \r\n \r\n
    SEAT
    \r\n \r\n \r\n
    VALVE BODY
    \r\n \r\n \r\n
    EXTENDED BONNET
    \r\n \r\n \r\n
    LIMIT SWITCH
    \r\n \r\n \r\n
    HOLD
    \r\n \r\n \r\n
    SUPPLY
    \r\n \r\n \r\n
    FROM
    \r\n \r\n \r\n
    TO
    \r\n \r\n \r\n
    ITEM ORDER
    \r\n \r\n \r\n
    REMARKS
    \r\n \r\n \r\n
    RATING
    \r\n \r\n \r\n
    \r\n \r\n {\" \"}\r\n {newRows.map((item, index) => (\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n style={item.LineNumber === \"UNKNOWN\" ? {color : \"deeppink\",textAlign: \"center\"} : {textAlign: \"center\"}} \r\n >\r\n \r\n {item.LineNumber === \"UNKNOWN\"\r\n ? \"Not Detected\"\r\n : item.LineNumber}\r\n \r\n handleClick(e, item)}\r\n onBlur={(e) => handleMouseLeave(e, item)}\r\n >\r\n {item.Seq === \"NaN\" || item.Seq.length === 0\r\n ? \"Not Detected\"\r\n : item.Seq}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.pid.length === 0 ? \"Not Detected\" : item.pid}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.Spec.length === 0 ? \"Not Detected\" : item.Spec}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.shortCode.length === 0 ? \"Not Detected\" : item.shortCode}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.isJacketed.length === 0\r\n ? \"Not Detected\"\r\n : item.isJacketed}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.hdr === \"NaN\" || item.hdr.length === 0\r\n ? \"Not Detected\"\r\n : item.hdr}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.size1 === \"NaN\" || item.size1.length === 0\r\n ? \"Not Detected\"\r\n : item.size1}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.size2 === \"NaN\"\r\n ? \"Not Detected\"\r\n : (item.shortCode === \"T\" || item.shortCode === \"RX\") &&\r\n item.size2.length === 0\r\n ? \"Not Detected\"\r\n : item.size2}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.quantity}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.insulationType.length === 0\r\n ? \"Not Detected\"\r\n : item.insulationType}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.ugag.length === 0 ? \"Not Detected\" : item.ugag}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.fluid.length === 0 ? \"Not Detected\" : item.fluid}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.assetCompType.length === 0\r\n ? \"Not Detected\"\r\n : item.assetCompType}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.seat.length === 0 ? \"Not Detected\" : item.seat}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.valveBody.length === 0 ? \"Not Detected\" : item.valveBody}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.limitSwich.length === 0\r\n ? \"Not Detected\"\r\n : item.limitSwich}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.extendedBonet.length === 0\r\n ? \"Not Detected\"\r\n : item.extendedBonet}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.hold.length === 0 ? \"Not Detected\" : item.hold}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.supply}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.fromLine.length === 0 ? \"Not Detected\" : item.fromLine}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.toLine.length === 0 ? \"Not Detected\" : item.toLine}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.itemOrder}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {(item.shortCode === \"I\" ||\r\n item.shortCode === \"SC\" ||\r\n item.shortCode === \"SI\" ||\r\n item.assetCompType === \"Control Valve\") &&\r\n item.remarks.length === 0\r\n ? \"Not Detected\"\r\n : item.remarks}\r\n \r\n handleMouseLeave(e, item)}\r\n onClick={(e) => handleClick(e, item)}\r\n >\r\n {item.rating === \"NaN\" || item.rating.length === 0\r\n ? \"Not Detected\"\r\n : item.rating}\r\n \r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, {useState} from 'react';\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Cancel from \"@material-ui/icons/Cancel\";\r\nimport CircleChecked from \"@material-ui/icons/CheckCircleRounded\";\r\nexport default function SaveDetails(props) {\r\n return(\r\n \r\n \r\n \r\n
    Do you want to save the changes?
    \r\n
    \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React, { useState, useEffect, useRef } from \"react\";\r\nimport AppHeader from \"../../AppHeader/AppHeader\";\r\nimport AppFooter from \"../../AppFooter/AppFooter\";\r\nimport Breadcrumbs from \"../../Upload/BreadCrumbs/BreadCrumbs\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport PIDCanvas from \"../PIDCanvas/PIDCanvas\";\r\nimport \"./Preview.scss\";\r\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n GetInitJSON,\r\n deleteSymbol,\r\n selectAsset,\r\n symbolsDetails,\r\n FilterLineGroup\r\n} from \"../../redux/actions/documentActions\";\r\nimport { Button } from \"@material-ui/core\";\r\nimport UserStore from \"../../UserStore\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport axios from \"axios\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport FilterRenderer from \"./FilterRenderer\";\r\nimport { imageLoading } from \"../PIDCanvas/PIDCanvas\";\r\nimport { TextField } from '@material-ui/core';\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport _ from \"lodash\";\r\nimport SaveDetails from \"./SaveDetails\";\r\n\r\nexport default function Preview(props) {\r\n\r\n const API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n const [newRows, setNewRows] = useState([]);\r\n const [show, setShow] = useState(false);\r\n let rows = [];\r\n let rankRows = [];\r\n localStorage.setItem(\"imageLoad\",true);\r\n const [imagePath, setImagePath] = useState(\"\");\r\n const [imageData, setImageData] = useState({});\r\n const [newAssets, setAssets] = useState({});\r\n const [show1, setShow1] = useState(false);\r\n let ls = localStorage.getItem(\"imageLoad\");\r\n let [loading, setLoading] = useState(imageLoading);\r\n localStorage.setItem(\"filterChange\",\"nochange\")\r\n \r\n useEffect(() => {\r\n setLoading(imageLoading);\r\n },[imageLoading])\r\n const dispatch = useDispatch();\r\n const [filterRows, setFilterRows] = useState([]);\r\n const duplicate = JSON.parse(localStorage.getItem(\"isDuplicatedpid\"));\r\n const [duplicateMsg, setDuplicateMsg] = useState(\r\n duplicate === \"Yes\" ? true : false\r\n );\r\n const url = window.location.href;\r\n const splitUrl = url.split(\"Upload/\");\r\n const sheetName = splitUrl[1];\r\n const sheetId = JSON.parse(localStorage.getItem(\"sheetId\"));\r\n const [message, setMessage] = useState(\"\");\r\n const [showMessage, setShowMessage] = useState(false);\r\n const isAccepted = localStorage.getItem(\"accepteddocpid\")\r\n ? JSON.parse(localStorage.getItem(\"accepteddocpid\"))\r\n : UserStore.accepteddocpid;\r\n const readonly = localStorage.getItem(\"isreadOnlyPID\")\r\n ? JSON.parse(localStorage.getItem(\"isreadOnlyPID\"))\r\n : UserStore.readOnlyPID;\r\n const [assetsData, setAssetsData] = useState([]);\r\n const [save,setSave] = useState(false);\r\n const [apiData,setApiData] = useState([]);\r\n\r\n /* Function to call PreviewProcessedPid API */\r\n async function getAPICall() {\r\n const result = await axios.get(\r\n API_Endpoint +\r\n `/PreviewProcessedPid?sheetId=${JSON.parse(\r\n localStorage.getItem(\"sheetId\")\r\n )}`\r\n );\r\n setAssets(result.data.extractedJson.linegroup);\r\n setApiData(JSON.parse(JSON.stringify(result.data.extractedJson.linegroup)));\r\n localStorage.setItem(\"assets\",result.data.extractedJson.linegroup)\r\n setImageData(result.data.extractedJson.Size);\r\n localStorage.setItem(\"size\",result.data.extractedJson.Size)\r\n setImagePath(result.data.pidUri);\r\n localStorage.setItem(\"imagePath\",result.data.pidUri)\r\n }\r\n useEffect(() => {\r\n if(localStorage.getItem(\"prevRoute\") === \"process\") {\r\n getAPICall();\r\n }\r\n else {\r\n // if(localStorage.getItem(\"prevRoute\") === \"overallMTO\") {\r\n // handleChange();\r\n // // return;\r\n // }\r\n \r\n setAssets(JSON.parse(localStorage.getItem(\"MTOData\")));\r\n dispatch(GetInitJSON(newAssets));\r\n setAssetsData(Object.entries(docList));\r\n \r\n // accurateSymbols();\r\n }\r\n \r\n }, []);\r\n\r\n dispatch(GetInitJSON(newAssets));\r\n useEffect(() => {\r\n if(localStorage.getItem(\"prevRoute\") !== \"overallMTO\")\r\n dispatch(FilterLineGroup({}));\r\n },[])\r\n \r\n\r\n const assetsList = Object.entries(\r\n useSelector((state) => state.documentData.assetsList)\r\n );\r\n const jsonData = useSelector((state) => state.documentData.documentList);\r\n const initialData = useSelector((state) => state.documentData.initialData);\r\n const filteredList = useSelector((state) => state.documentData.filteredList);\r\n const [count,setCount] = useState(0);\r\n const selectedAsset = useSelector(\r\n (state) => state.documentData.selectedAsset\r\n );\r\n useEffect(() => {\r\n setAssetsData(Object.entries(jsonData));\r\n let jsondata = Object.entries(jsonData);\r\n let rows = [];\r\n let key = 1;\r\n rankRows = [...setRows(jsondata,rows,jsondata.length,key,1)];\r\n dispatch(symbolsDetails(rankRows));\r\n }, [jsonData]);\r\n useEffect(() => {\r\n if (filteredList !== undefined) {\r\n setAssetsData(Object.entries(filteredList));\r\n }\r\n else {\r\n setAssetsData(Object.entries(jsonData));\r\n }\r\n }, [filteredList]);\r\n let extra = 0;\r\n \r\n\r\n/*Function for storing all the properties of symbols */\r\n const setRows = (assetsData,rows,length,key,ranking) => {\r\n let assetData = [];\r\n extra = extra + 1;\r\n for (let index = 0; index < length; index++) {\r\n assetData = assetsData[index][1];\r\n if (assetData.hasOwnProperty(\"Symbols\")) {\r\n let symbols = Object.entries(assetData.Symbols);\r\n for (let newIndex = 0; newIndex < symbols.length; newIndex++) {\r\n let data = {\r\n id: symbols[newIndex][1].SymbolId,\r\n ConfidenceScore: symbols[newIndex][1].ConfidenceScore,\r\n CorrectedRow: symbols[newIndex][1].CorrectedRow,\r\n Key: key,\r\n LineNumber: assetData.specification ,\r\n assetId: symbols[newIndex][0],\r\n shortCode: symbols[newIndex][1].ShortCode === undefined || symbols[newIndex][1].ShortCode === null ? \"\" : symbols[newIndex][1].ShortCode,\r\n assetCompType:symbols[newIndex][1].assetComponentType === undefined || symbols[newIndex][1].assetComponentType === null ? \"\" :\r\n symbols[newIndex][1].assetComponentType.toUpperCase(),\r\n Seq: symbols[newIndex][1].SequenceNumber === undefined || symbols[newIndex][1].SequenceNumber === null ? \"\" : symbols[newIndex][1].SequenceNumber ,\r\n Spec: symbols[newIndex][1].Spec === undefined || symbols[newIndex][1].Spec === null ? \"\" : symbols[newIndex][1].Spec,\r\n isJacketed:\r\n symbols[newIndex][1].IsJacketedLine !== true ? \"N\" : \"Y\",\r\n hdr: symbols[newIndex][1].HdrSize === undefined || symbols[newIndex][1].HdrSize === null ? \"\": symbols[newIndex][1].HdrSize.split(/[\" ']+/)[0],\r\n size1:\r\n symbols[newIndex][1].Size1 === null ||\r\n symbols[newIndex][1].Size1 === \"\" || symbols[newIndex][1].Size1 === undefined\r\n ? \"\"\r\n : (symbols[newIndex][1].Size1),\r\n size2:\r\n symbols[newIndex][1].Size2 === null ||\r\n symbols[newIndex][1].Size2 === \"\" || symbols[newIndex][1].Size2 === undefined\r\n ? \"\"\r\n : (symbols[newIndex][1].Size2),\r\n quantity: symbols[newIndex][1].Quantity === undefined || symbols[newIndex][1].Quantity === null ? \"\" : symbols[newIndex][1].Quantity,\r\n insulationType: symbols[newIndex][1].InsulationType === undefined || symbols[newIndex][1].InsulationType === null ? \"\" : symbols[newIndex][1].InsulationType,\r\n ugag: symbols[newIndex][1].AgUg === undefined || symbols[newIndex][1].AgUg === null ? \"\" : symbols[newIndex][1].AgUg,\r\n fluid: symbols[newIndex][1].Fluid === undefined || symbols[newIndex][1].Fluid === null ? \"\" : symbols[newIndex][1].Fluid,\r\n seat: symbols[newIndex][1].Seat === undefined || symbols[newIndex][1].Seat === null ? \"\" : symbols[newIndex][1].Seat,\r\n valveBody: symbols[newIndex][1].ValveBody === undefined || symbols[newIndex][1].ValveBody === null? \"\" : symbols[newIndex][1].ValveBody,\r\n extendedBonet: symbols[newIndex][1].ExtendedBonet === undefined || symbols[newIndex][1].ExtendedBonet === null? \"\" : symbols[newIndex][1].ExtendedBonet,\r\n limitSwich: symbols[newIndex][1].LimitSwich === undefined|| symbols[newIndex][1].LimitSwich === null ? \"\" : symbols[newIndex][1].LimitSwich,\r\n hold: symbols[newIndex][1].Hold === true ? \"Y\" : \"N\",\r\n fromLine: symbols[newIndex][1].FromLine === undefined|| symbols[newIndex][1].FromLine === null ? \"\" : symbols[newIndex][1].FromLine,\r\n toLine: symbols[newIndex][1].ToLine === undefined || symbols[newIndex][1].ToLine === null? \"\" : symbols[newIndex][1].ToLine,\r\n remarks: symbols[newIndex][1].Remarks === undefined || symbols[newIndex][1].Remarks === null? \"\" : symbols[newIndex][1].Remarks,\r\n itemOrder: symbols[newIndex][1].ItemOrder === undefined || symbols[newIndex][1].ItemOrder === null? \"\" : symbols[newIndex][1].ItemOrder,\r\n rating: symbols[newIndex][1].Rating === undefined || symbols[newIndex][1].Rating === null? \"\" : symbols[newIndex][1].Rating,\r\n coords: symbols[newIndex][1].Coords,\r\n pid: localStorage.getItem(\"pidnumber\"),\r\n supply: \"\",\r\n SymbolRank: symbols[newIndex][1].SymbolRank !== undefined ? symbols[newIndex][1].SymbolRank : 0,\r\n };\r\n if(data.SymbolRank === 0 && ranking === 0) {\r\n rows.push(data);\r\n }\r\n if(ranking === 1) {\r\n rows.push(data);\r\n }\r\n \r\n key++;\r\n }\r\n }\r\n \r\n }\r\n setCount(count + 1);\r\n return rows;\r\n }\r\n \r\n useEffect(() => {\r\n const length = assetsData.length;\r\n let key = 1;\r\n rows = [];\r\n rankRows = [];\r\n if (rows.length === 0) {\r\n rows = [...setRows(assetsData,rows,length,key,0)];\r\n setNewRows([...rows]);\r\n setFilterRows([...rows]);\r\n }\r\n }, [assetsData]);\r\n\r\n \r\n \r\n const handleDelete = (row, data, index) => {\r\n dispatch(deleteSymbol(newRows[index]));\r\n };\r\n \r\n \r\n const handleClose = () => {\r\n setShow(false);\r\n };\r\n\r\n const handleShow = () => {\r\n setShow(true);\r\n };\r\n\r\n const [showElement,setShowElement] = useState(true)\r\n /*Function for calling save API */\r\n const saveBtn = () => {\r\n setShowElement(true)\r\n const extractedJson = {\r\n Size: imageData,\r\n linegroup: newAssets,\r\n };\r\n const body = {\r\n sheetId: sheetId,\r\n extractedJson: extractedJson,\r\n };\r\n axios.post(API_Endpoint + `/ModifyProcessedPid`, body);\r\n setMessage(\"Saved Successfully\");\r\n setShowMessage(true);\r\n const selectedItem = {\r\n id : undefined\r\n }\r\n dispatch(selectAsset(selectedItem))\r\n setTimeout(function() {\r\n setShowElement(false)\r\n }, 3000);\r\n };\r\n\r\n const handleReject = () => {\r\n setShowElement(true)\r\n const selectedItem = {\r\n id : undefined\r\n }\r\n dispatch(selectAsset(selectedItem))\r\n setShow1(true);\r\n };\r\n\r\n /*Function for Aproving the pid */\r\n const handleAccept = () => {\r\n setShowElement(true)\r\n const extractedJson = {\r\n Size: imageData,\r\n linegroup: newAssets,\r\n };\r\n const body = {\r\n sheetId: sheetId,\r\n extractedJson: extractedJson,\r\n };\r\n axios.post(API_Endpoint + `/AcceptProcessedPid`, body);\r\n setMessage(\"Document is Approved\");\r\n setShowMessage(true);\r\n const selectedItem = {\r\n id : undefined\r\n }\r\n dispatch(selectAsset(selectedItem))\r\n // setTimeout(function() {\r\n // setShowElement(false)\r\n // }, 3000);\r\n };\r\n\r\n /*Function for rejecting the pid */\r\n const handleCloseAPI = () => {\r\n const reject = {\r\n sheetId: sheetId,\r\n remark: document.getElementById(\"remarks-field\").value,\r\n };\r\n axios.post(API_Endpoint + `/RejectProcessedPid`, reject);\r\n setShow1(false);\r\n setMessage(\"Document is Rejected\");\r\n setShowMessage(true);\r\n };\r\n\r\n const handleCloseBtn = () => {\r\n setShow1(false);\r\n };\r\n const navigatetoProcessgrid = () => {\r\n if(!(_.isEqual(apiData,jsonData)))\r\n setSave(true);\r\n else \r\n exitPage();\r\n // const selectedItem = {\r\n // id : undefined\r\n // }\r\n // dispatch(selectAsset(selectedItem))\r\n // UserStore.getprocessGrid(1);\r\n // props.history.push(`/WorkspacePID/Upload`);\r\n };\r\n\r\n const handleDuplicate = () => {\r\n setDuplicateMsg(false);\r\n };\r\n\r\n /* Function for navigating to overallMTO screen*/\r\n const overallMTO = () => {\r\n const selectedItem = {\r\n id : undefined\r\n }\r\n dispatch(selectAsset(selectedItem))\r\n localStorage.setItem(\"MTOData\",JSON.stringify(jsonData));\r\n props.history.push(`/WorkspacePID/Upload/${sheetName}/OverallMTO`);\r\n };\r\n // localStorage.setItem(\"change\",true);\r\n const handleChange = (e) => {\r\n let value = \"\";\r\n // if(localStorage.getItem(\"prevRoute\") === \"overallMTO\") {\r\n // value = UserStore.accuracyPID;\r\n // }\r\n // else {\r\n value = e.target.value;\r\n // }\r\n \r\n if (value[value.length - 1] === \"all\") {\r\n setSelected(selected.length === options.length ? [] : options);\r\n UserStore.setAccuracyPID(selected.length === options.length ? [] : options);\r\n accurateSymbols();\r\n return;\r\n }\r\n setSelected(value);\r\n UserStore.setAccuracyPID(value);\r\n // localStorage.setItem(\"accuracy\",e.target.value);\r\n accurateSymbols();\r\n }\r\n const docList = useSelector((state) => state.documentData.documentList);\r\n // const classes = useStyles();\r\n const options = [\"high\",\"mid\",\"low\"]\r\n const [selected, setSelected] = useState(UserStore.accuracyPID);\r\n const isAllSelected =\r\n options.length > 0 && selected.length === options.length;\r\n\r\n \r\n const accurateSymbols = () => {\r\n // if(docList !== undefined)\r\n const mtoDats =JSON.parse(JSON.stringify(docList)) ;\r\n const mtoDat = Object.entries(mtoDats);\r\n let accuracyData = [];\r\n let symbolsDat = {};\r\n let km = {};\r\n if(mtoDat.length > 0) {\r\n const cScoreArray = UserStore.accuracyPID;\r\n let cScoreValid = \"\";\r\n let val1 = 100;\r\n let val2 = 0;\r\n if(cScoreArray.length === 1) {\r\n cScoreValid = cScoreArray[0];\r\n if(cScoreValid === \"low\") {\r\n val1 = 60;\r\n val2 = 0;\r\n }\r\n else if(cScoreValid === \"mid\") {\r\n val1 = 80;\r\n val2 = 61;\r\n }\r\n else if(cScoreValid === \"high\") {\r\n val1 = 100;\r\n val2 = 81;\r\n }\r\n else {\r\n val1 = 100;\r\n val2 = 0;\r\n }\r\n }\r\n else if(cScoreArray.length === 2) {\r\n if(cScoreArray.includes(\"low\") && cScoreArray.includes(\"mid\")) {\r\n val1 = 80;\r\n val2 = 0;\r\n }\r\n else if(cScoreArray.includes(\"high\") && cScoreArray.includes(\"mid\")) {\r\n val1 = 100;\r\n val2 = 61;\r\n }\r\n }\r\n else if(cScoreArray.length === 3) {\r\n val1 = 100;\r\n val2 = 0;\r\n }\r\n for(let index in mtoDat) {\r\n const lgNumber = mtoDat[index][0];\r\n accuracyData = [];\r\n symbolsDat = Object.entries(mtoDat[index][1].Symbols).map((row) => ( { [row[0]]: row[1] } ));\r\n km = {};\r\n for(let k in symbolsDat) {\r\n const rowValue = Object.entries(symbolsDat[k]);\r\n let cScore = rowValue[0][1].ConfidenceScore;\r\n if(cScore === \"NaN\") {\r\n cScore = 100;\r\n }\r\n if(cScoreArray.includes(\"high\") && cScoreArray.includes(\"low\") && cScoreArray.length === 2) {\r\n if(!(cScore <= 80 && cScore >= 61)) {\r\n accuracyData.push(symbolsDat[k])\r\n Object.assign(km,symbolsDat[k]);\r\n }\r\n }\r\n else {\r\n if(cScore <= val1 && cScore >= val2) {\r\n accuracyData.push(symbolsDat[k])\r\n Object.assign(km,symbolsDat[k]);\r\n }\r\n }\r\n \r\n }\r\n mtoDats[lgNumber].Symbols = km;\r\n }\r\n }\r\n const assetsDats = Object.entries(mtoDats);\r\n let rows = [];\r\n let key = 1;\r\n rows = [...setRows(assetsDats,rows,assetsDats.length,key,0)];\r\n setNewRows([...rows])\r\n setFilterRows([...rows]);\r\n }\r\n const saveDetails = () => {\r\n const extractedJson = {\r\n Size: imageData,\r\n linegroup: newAssets,\r\n };\r\n const body = {\r\n sheetId: sheetId,\r\n extractedJson: extractedJson,\r\n };\r\n axios.post(API_Endpoint + `/ModifyProcessedPid`, body);\r\n exitPage();\r\n }\r\n\r\n const exitPage = () => {\r\n const selectedItem = {\r\n id : undefined\r\n }\r\n dispatch(selectAsset(selectedItem))\r\n UserStore.getprocessGrid(1);\r\n props.history.push(`/WorkspacePID/Upload`);\r\n }\r\n return (\r\n
    \r\n \r\n \r\n\r\n
    \r\n \r\n Back\r\n
    \r\n\r\n {showElement ? \r\n {message}\r\n
    : <>}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n View Overall MTO\r\n \r\n
    \r\n
    \r\n {/* Select Range */}\r\n {/* \r\n All\r\n High Accuracy\r\n Mid Accuracy\r\n Low Accuracy\r\n */}\r\n \r\n Filter\r\n selected.join(\", \")}\r\n // MenuProps={MenuProps}\r\n >\r\n \r\n \r\n 0 && selected.length < options.length\r\n }\r\n />\r\n \r\n \r\n \r\n {options.map((option) => (\r\n \r\n \r\n -1} />\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n
    \r\n
    \r\n \r\n Expand Window\r\n
    \r\n
    \r\n
    \r\n {newRows.length > 0 ? : ''}\r\n
    \r\n
    \r\n \r\n Save\r\n \r\n \r\n Approve\r\n \r\n \r\n Reject\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Submit\r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {newRows.length > 0 ? : ''}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n Please delete duplicate file.\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n {\r\n save ? : \"\"\r\n }\r\n \r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Cancel from \"@material-ui/icons/Cancel\";\r\nimport CircleChecked from \"@material-ui/icons/CheckCircleRounded\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport ProcessGridTable from \"../../UploadPID/Process/ProcessGrid/ProcessGridTable\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport axios from \"axios\";\r\nimport AppHeader from \"../../AppHeader/AppHeader\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport AppFooter from \"../../AppFooter/AppFooter\";\r\nimport BreadCrumbs from \"../../Upload/BreadCrumbs/BreadCrumbs\";\r\nimport UserStore from \"../../UserStore\";\r\nimport { toJS, observer } from \"mobx\";\r\nimport Moment from \"moment\";\r\nimport TextFieldMui from \"@material-ui/core/TextField\";\r\nimport { withStyles, createStyles } from \"@material-ui/core/styles\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport \"./EditConfiguration.scss\"\r\n// Importing toastify module\r\nimport { toast } from \"react-toastify\";\r\n\r\n// Import toastify css file\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\n\r\n// toast-configuration method,\r\n// it is compulsory method.\r\ntoast.configure();\r\n\r\nconst { BlockBlobClient } = require(\"@azure/storage-blob\");\r\nconst API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n\r\n// which user has logged in to application\r\nconst styles = (muiTheme) => ({\r\n label: {\r\n \"&$erroredLabel\": {\r\n color: \"black\",\r\n },\r\n },\r\n erroredLabel: {},\r\n});\r\n\r\nconst TextField = withStyles(styles)(function TextField({ classes, ...props }) {\r\n return (\r\n \r\n );\r\n});\r\nexport class EditConfiguration extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n count: 0,\r\n result: {},\r\n configtype: [],\r\n myrow: [],\r\n myrowedit: [],\r\n delete: false,\r\n setShow: false,\r\n setShow1: false,\r\n deleteid: \"\",\r\n showForm: false,\r\n userFlag: true,\r\n editProducts: [],\r\n phraseMessage: \"\",\r\n phraseError: false,\r\n confidId:1,\r\n modalId: \"\",\r\n newrow: { \r\n key1: \"\",\r\n key2: \"\",\r\n value: \"\",\r\n remarks: \"\",\r\n \r\n },\r\n products: [],\r\n reportDataexcel: [],\r\n newWorkspaceId:\r\n UserStore.newWorkspaceId !== 0\r\n ? UserStore.newWorkspaceId\r\n : localStorage.getItem(\"newWorkspaceId\")\r\n ? JSON.parse(localStorage.getItem(\"newWorkspaceId\"))\r\n : 0,\r\n editworkspace: localStorage.getItem(\"Editworkspace\")\r\n ? JSON.parse(localStorage.getItem(\"Editworkspace\"))\r\n : UserStore.editworkspace,\r\n };\r\n UserStore.setConfigId(1);\r\n if (!toJS(UserStore.editRow).length && localStorage.getItem(\"EditWSData\")) {\r\n UserStore.addRowdata(JSON.parse(localStorage.getItem(\"EditWSData\")));\r\n }\r\n if (\r\n UserStore.NewworkspaceName === \"\" &&\r\n localStorage.getItem(\"SetNewworkspaceName\")\r\n ) {\r\n UserStore.SetNewworkspaceName(\r\n localStorage.getItem(\"SetNewworkspaceName\")\r\n );\r\n }\r\n if (\r\n UserStore.NewProjectName === \"\" &&\r\n localStorage.getItem(\"SetNewProjectName\")\r\n ) {\r\n UserStore.SetNewProjectName(localStorage.getItem(\"SetNewProjectName\"));\r\n }\r\n UserStore.setEditConfigData({});\r\n }\r\n\r\n async componentDidMount() {\r\n try {\r\n const workspaceId = UserStore.PIDworkspaceID;\r\n const dropDownValuesproposal = await axios\r\n .get(`${API_Endpoint}/GetPidConfigTypes`)\r\n .then((res) => {\r\n if (res.status === 200) {\r\n this.state.configtype.push(res.data.result);\r\n this.setState({\r\n configType: res.data.result,\r\n });\r\n } else if (\r\n res.status === 400 ||\r\n res.status === 401 ||\r\n res.status === 404 ||\r\n res.status === 408\r\n ) {\r\n toast.error(\"service error\", {\r\n // Set to 5sec\r\n position: toast.POSITION.TOP_LEFT,\r\n autoClose: 5000,\r\n });\r\n }\r\n });\r\n UserStore.inBusinessrule = true;\r\n axios\r\n .get(\r\n //(API_Endpoint + `/GetWorkSpaces`)\r\n API_Endpoint +\r\n `/GetPidConfiguration?projectWorkSpaceId=${workspaceId}&configTypeId=${toJS(UserStore.confidId)}`\r\n )\r\n .then((res) => {\r\n const rows1 = res.data;\r\n if (res.status === 200) {\r\n //toast.success(\"not successful\", { autoClose: 3000 });\r\n }\r\n\r\n if (rows1) {\r\n rows1.map((items, index) => {\r\n const row2 = {\r\n configId: items.configId,\r\n key1: items.key1,\r\n key2: items.key2,\r\n value: items.value,\r\n remarks: items.remarks,\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n delete: true,\r\n deleteid: items.businessRuleId,\r\n });\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n this.state.myrow.push(row2);\r\n });\r\n this.setState({\r\n count: 1,\r\n });\r\n }\r\n\r\n this.setState({\r\n products: this.state.myrow,\r\n });\r\n UserStore.setEditConfigData(this.state.myrow);\r\n });\r\n } catch (error) {\r\n // Error 😨\r\n if (error.response) {\r\n /*\r\n * The request was made and the server responded with a\r\n * status code that falls out of the range of 2xx\r\n */\r\n // console.log(error.response.data);\r\n // console.log(error.response.status);\r\n // console.log(error.response.headers);\r\n } else if (error.request) {\r\n /*\r\n * The request was made but no response was received, `error.request`\r\n * is an instance of XMLHttpRequest in the browser and an instance\r\n * of http.ClientRequest in Node.js\r\n */\r\n // console.log(error.request);\r\n } else {\r\n // Something happened in setting up the request and triggered an Error\r\n // console.log(\"Error\", error.message);\r\n }\r\n }\r\n }\r\n\r\n handleRowSelection = ()=>\r\n {\r\n this.refreshdata();\r\n }\r\n\r\n refreshdata = async() => {\r\n this.setState({\r\n products : [],\r\n myrow: []\r\n });\r\n UserStore.setEditConfigData({});\r\n const workspaceId2 = UserStore.PIDworkspaceID;\r\n axios\r\n .get(\r\n API_Endpoint +\r\n `/GetPidConfiguration?projectWorkSpaceId=${workspaceId2}&configTypeId=${toJS(UserStore.confidId)}`\r\n )\r\n .then((res) => {\r\n const rows1 = res.data;\r\n if (res.status === 200) {\r\n }\r\n\r\n if (rows1) {\r\n rows1.map((items, index) => {\r\n const row2 = {\r\n configId: items.configId,\r\n key1: items.key1,\r\n key2: items.key2,\r\n value: items.value,\r\n remarks: items.remarks,\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n delete: true,\r\n deleteid: items.confidId,\r\n });\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n this.state.myrow.push(row2);\r\n });\r\n this.setState({\r\n count: 1,\r\n });\r\n }\r\n\r\n this.setState({\r\n products: this.state.myrow,\r\n });\r\n UserStore.setEditConfigData(this.state.myrow);\r\n });\r\n }\r\n\r\n handleEdit = (e) => {\r\n let id = e.target.id;\r\n this.setState({\r\n setShow: true,\r\n modalId: id,\r\n });\r\n const data = this.state.products\r\n .filter((item) => item.businessRuleId == id)\r\n .map(\r\n ({\r\n id,\r\n businessRuleId,\r\n phrase1,\r\n phrase2,\r\n phrase3,\r\n phrase4,\r\n Change,\r\n }) => ({\r\n id,\r\n businessRuleId,\r\n phrase1,\r\n phrase2,\r\n phrase3,\r\n phrase4,\r\n Change,\r\n })\r\n );\r\n data[0][\"Change\"] = data[0].Change === \"Change\" ? true : false;\r\n this.setState({\r\n editProducts: data,\r\n });\r\n this.refreshdata();\r\n };\r\n\r\n addRow1 = (e) => {\r\n this.setState({\r\n newrow: {\r\n id: \"\",\r\n workSpaceName: \"\",\r\n projectName: \"\",\r\n phrase1: \"\",\r\n phrase2: \"\",\r\n phrase3: \"\",\r\n phrase4: \"\",\r\n ChangeOutcome: \"\",\r\n },\r\n });\r\n this.setState({\r\n setShow1: true,\r\n //modalId: id\r\n });\r\n };\r\n\r\n addRow = (event) => {\r\n if (event.target.name === \"key1\") {\r\n this.state.newrow.key1 = event.target.value;\r\n } else if (event.target.name == \"key2\") {\r\n this.state.newrow.key2 = event.target.value;\r\n } else if (event.target.name == \"value\") {\r\n this.state.newrow.value = event.target.value;\r\n } else if (event.target.name == \"remarks\"){\r\n this.state.newrow.remarks = event.target.value;\r\n }\r\n this.setState({ phraseError: false, phraseMessage: \"\" });\r\n \r\n };\r\n\r\n rowSave = async () => {\r\n const workspaceId1 = UserStore.PIDworkspaceID;\r\n \r\n var data = {\r\n projectWorkSpaceId:workspaceId1,\r\n configTypeId:toJS(UserStore.confidId),\r\n key1: this.state.newrow.key1,\r\n key2: this.state.newrow.key2,\r\n value: this.state.newrow.value,\r\n remarks: this.state.newrow.remarks, \r\n };\r\n \r\n const res = await axios.post(\r\n API_Endpoint + `/AddPidConfiguration`,\r\n data\r\n );\r\n this.setState({\r\n newrow: {},\r\n setShow1: false,\r\n });\r\n this.refreshdata();\r\n \r\n };\r\n handleClose = () => {\r\n this.setState({ setShow: false });\r\n };\r\n\r\n handleCloserow = () => {\r\n this.setState({\r\n setShow1: false,\r\n newrow: {\r\n id: \"\",\r\n workSpaceName: \"\",\r\n projectName: \"\",\r\n phrase1: \"\",\r\n phrase2: \"\",\r\n phrase3: \"\",\r\n phrase4: \"\",\r\n ChangeOutcome: \"\",\r\n },\r\n });\r\n };\r\n\r\n handleShow = () => {\r\n this.setState({ setShow: true });\r\n };\r\n\r\n handleEditSave = async () => {\r\n // send the output data to the service\r\n const productsList = this.state.products;\r\n \r\n if (this.state.editworkspace === false) {\r\n var data = {\r\n ProjectName: UserStore.NewProjectName,\r\n WorkSpaceName: UserStore.NewworkspaceName,\r\n WorkSpaceId: this.state.newWorkspaceId,\r\n BusinessRuleId: this.state.editProducts[0].businessRuleId,\r\n phrase1: this.state.editProducts[0].phrase1,\r\n phrase2: this.state.editProducts[0].phrase2,\r\n phrase3: this.state.editProducts[0].phrase3,\r\n phrase4: this.state.editProducts[0].phrase4,\r\n\r\n Change: this.state.editProducts[0].Change,\r\n };\r\n } else {\r\n var data = {\r\n WorkSpaceName: toJS(UserStore.editRow[0].workSpaceName),\r\n projectName: toJS(UserStore.editRow[0].projectName),\r\n WorkSpaceId: toJS(UserStore.editRow[0].workSpaceId),\r\n BusinessRuleId: this.state.editProducts[0].businessRuleId,\r\n phrase1: this.state.editProducts[0].phrase1,\r\n phrase2: this.state.editProducts[0].phrase2,\r\n phrase3: this.state.editProducts[0].phrase3,\r\n phrase4: this.state.editProducts[0].phrase4,\r\n Change: this.state.editProducts[0].Change,\r\n };\r\n }\r\n\r\n if (data.phrase1 === \"\") {\r\n if (data.phrase1 === \"\")\r\n this.setState({\r\n phraseError: true,\r\n phraseMessage: \"Phrase1 should not be Empty\",\r\n });\r\n } else {\r\n this.setState({\r\n products: [],\r\n phraseError: false,\r\n phraseMessage: \"\",\r\n });\r\n UserStore.setEditConfigData({});\r\n let res = await axios.post(\r\n API_Endpoint + `/UpdateBusinessRule`,\r\n data\r\n );\r\n res.data.businessRules.map((items, index) => {\r\n const row2 = {\r\n businessRuleId: items.businessRuleId,\r\n id: items.workSpaceId,\r\n workSpaceName: items.workSpaceName,\r\n projectName: items.projectName,\r\n phrase1: items.phrase1,\r\n phrase2: items.phrase2,\r\n phrase3: items.phrase3,\r\n phrase4: items.phrase4,\r\n Change: items.change ? \"Change\" : \"No Change\",\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n delete: true,\r\n deleteid: items.businessRuleId,\r\n });\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n this.state.products.push(row2);\r\n });\r\n\r\n this.setState({\r\n newrow: {},\r\n setShow: false,\r\n });\r\n }\r\n };\r\n\r\n // open the new Create Workspace page\r\n Openworkspace = () => {\r\n this.setState({ showForm: true });\r\n };\r\n\r\n handleChange1 = (event) => {\r\n let id = event.target.id;\r\n const initArray = this.state.products;\r\n const rowneeded = initArray.findIndex((obj) => obj.businessRuleId == id);\r\n if (event.target.name === \"Phrase1\") {\r\n initArray[rowneeded].phrase1 = event.target.value;\r\n } else if (event.target.name === \"Phrase2\") {\r\n initArray[rowneeded].phrase2 = event.target.value;\r\n } else if (event.target.name === \"Phrase3\") {\r\n initArray[rowneeded].phrase3 = event.target.value;\r\n } else if (event.target.name === \"Phrase4\") {\r\n initArray[rowneeded].phrase4 = event.target.value;\r\n } else {\r\n initArray[rowneeded].Change = event.target.value;\r\n }\r\n this.setState({\r\n editProducts: [initArray[rowneeded]],\r\n products: initArray,\r\n phraseError: false,\r\n phraseMessage: \"\",\r\n });\r\n };\r\n\r\n handleCloseDialog = () => {\r\n this.setState({ delete: false, deleteid: \"\" });\r\n };\r\n\r\n handlePurge = (e) => {\r\n //let id = e.target.id;\r\n let id = this.state.deleteid;\r\n\r\n const rowneeded = this.state.products.filter(\r\n (row) => row.businessRuleId != id\r\n );\r\n\r\n var feedWorkSpaceId = 0;\r\n if (this.state.editworkspace === false) {\r\n feedWorkSpaceId = this.state.newWorkspaceId;\r\n } else {\r\n feedWorkSpaceId = toJS(UserStore.editRow[0].workSpaceId);\r\n }\r\n const data = {\r\n BusinessRuleId: id,\r\n WorkSpaceId: feedWorkSpaceId,\r\n };\r\n axios.post(API_Endpoint + `/DeleteBusinessRule`, data);\r\n this.setState({ products: rowneeded, deleteid: \"\", delete: false });\r\n UserStore.setEditConfigData(rowneeded);\r\n };\r\n\r\n handleOnSelect = (row, isSelect) => {\r\n this.props.history.push(`${this.props.match.path}/Upload`);\r\n };\r\n\r\n handleDropdownChange = (e) => {\r\n\r\n\r\n this.setState({\r\n confidId: e.target.value\r\n })\r\n UserStore.setConfigId(e.target.value);\r\n this.refreshdata();\r\n };\r\n\r\n handleDropdownchangerowEdit = (event, id) => {\r\n let outcome = \"\";\r\n if (event.target.value === 10) {\r\n outcome = true;\r\n } else {\r\n outcome = false;\r\n }\r\n const initArray = this.state.products;\r\n const rowneeded = initArray.findIndex((obj) => obj.businessRuleId == id);\r\n initArray[rowneeded].Change = outcome;\r\n this.setState({\r\n editProducts: [initArray[rowneeded]], \r\n outcomeError: false,\r\n outcomeErrorMessage: \"\",\r\n });\r\n };\r\n\r\n handleDropdownchangerow = (event, id) => {\r\n let outcome = \"\";\r\n if (event.target.value === 10) {\r\n outcome = true;\r\n } else {\r\n outcome = false;\r\n }\r\n\r\n this.setState((prevState) => ({\r\n outcomeError: false,\r\n outcomeErrorMessage: \"\",\r\n newrow: {\r\n ...prevState.newrow,\r\n ChangeOutcome: outcome,\r\n },\r\n }));\r\n };\r\n\r\n render() {\r\n UserStore.setEditConfigData(this.state.products);\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {this.state.configtype.length > 0 ? (\r\n \r\n {this.state.configtype.length > 0 &&\r\n this.state.configtype[0].map((option) => (\r\n \r\n {option.configType}\r\n \r\n ))}\r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n \r\n \r\n Add row\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {\" \"}\r\n \r\n
    \r\n
    \r\n {\r\n this.props.history.push(`/WorkspacePID`);\r\n }}\r\n variant=\"contained\"\r\n class=\"save-btn\"\r\n style = {{\r\n margin: \"0 1.9vw 0 0\",\r\n width: \"8.4vw\",\r\n height: \"2.29vw\",\r\n fontSize: \"0.9vw\",\r\n background: \"#0c629b\",\r\n border: \"0.05vw solid #0c629b\",\r\n borderRadius: \"0.104vw\",\r\n color: \"#ffffff\",\r\n textTransform:\"none\",\r\n }}\r\n >\r\n Save\r\n \r\n {\r\n this.props.history.push(`/WorkspacePID`);\r\n }}\r\n style = {{\r\n background: \"#ffffff\",\r\n border: \"0.05vw solid #0c629b\",\r\n borderRadius: \"0.15vw\",\r\n width: \"8.4vw\",\r\n height: \"2.29vw\",\r\n fontSize: \"0.9vw\",\r\n color: \"#0c629b\",\r\n textTransform: \"none\",\r\n }}\r\n >\r\n Cancel\r\n \r\n
    \r\n\r\n \r\n \r\n \r\n
    Are you sure to delete?
    \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n this.handlePurge(e)}\r\n style={{\r\n padding: \"0\",\r\n background: \"#0C629B\",\r\n color: \"white\",\r\n position: \"absolute\",\r\n right: \"2%\",\r\n }}\r\n >\r\n {\" \"}\r\n {\" \"}\r\n \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n Add/Edit Configuration\r\n \r\n \r\n \r\n \r\n\r\n this.addRow(e)}\r\n fullWidth\r\n style={{ font: \"normal normal Helvetica 1.04vw\", width: \"95%\" }}\r\n />\r\n this.addRow(e)}\r\n fullWidth\r\n style={{ font: \"normal normal Helvetica 1.04vw\", width: \"95%\" }}\r\n />\r\n this.addRow(e)}\r\n fullWidth\r\n style={{ font: \"normal normal Helvetica 1.04vw\", width: \"95%\" }}\r\n />\r\n this.addRow(e)}\r\n fullWidth\r\n style={{ font: \"normal normal Helvetica 1.04vw\", width: \"95%\" }}\r\n />\r\n \r\n {this.state.outcomeErrorMessage}{\" \"}\r\n \r\n \r\n \r\n \r\n Add\r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n );\r\n }\r\n}\r\nexport default EditConfiguration;\r\n","import React, { Component } from 'react';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport cellEditFactory from 'react-bootstrap-table2-editor';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport axios from 'axios';\r\nimport AppHeader from '../AppHeader/AppHeader';\r\nimport AppFooter from '../AppFooter/AppFooter';\r\nimport BreadCrumbs from '../Upload/BreadCrumbs/BreadCrumbs';\r\nimport TextFieldMui from \"@material-ui/core/TextField\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\n\r\nconst API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n\r\nconst styles = muiTheme => ({\r\n label: {\r\n \"&$erroredLabel\": {\r\n color: \"black\"\r\n }\r\n },\r\n erroredLabel: {},\r\n});\r\nconst TextField = withStyles(styles)(function TextField({ classes, ...props }) {\r\n return (\r\n \r\n );\r\n});\r\nexport class Buisnessrule extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n modalId: \"\",\r\n myrow: [],\r\n deleteId: [],\r\n deletedRow: [],\r\n columns: [\r\n { dataField: 'id', text: 'ProjectId' },\r\n { dataField: 'Wname', text: 'ProjectName' },\r\n { dataField: 'Pname', text: 'Phrase1' },\r\n { dataField: 'Reports', text: 'Phrase2' },\r\n { dataField: 'users', text: 'Phrase3' },\r\n { dataField: 'upload', text: 'Phrase4' },\r\n { dataField: 'ChangeOutcome', text: 'ChangeOutcome' },\r\n ],\r\n products: [],\r\n reportDataexcel: [],\r\n newRow: {\r\n id: \"\",\r\n Wname: \"\",\r\n Pname: \"\",\r\n users: \"\",\r\n More:
    \r\n
    \r\n \r\n
    \r\n
    { if (window.confirm('Are you sure you wish to delete this item?')) this.handlePurge(e) }}>\r\n \r\n
    \r\n
    \r\n }\r\n }\r\n }\r\n\r\n async componentDidMount() {\r\n try {\r\n\r\n axios.get\r\n (API_Endpoint + `/GetWorkSpaces`)\r\n .then(res => {\r\n const rows1 = res.data;\r\n {\r\n rows1.map((items, index) => {\r\n const row2 = {\r\n id: items.workSpaceId,\r\n Wname: items.workSpaceName,\r\n Pname: items.projectName,\r\n users: items.members.join(\",\"),\r\n More:
    \r\n
    \r\n \r\n
    \r\n
    { if (window.confirm('Are you sure you wish to delete this item?')) this.handlePurge(e) } : \"\"}>\r\n \r\n
    \r\n
    \r\n }\r\n this.state.myrow.push(row2)\r\n }\r\n )\r\n this.setState({\r\n count: 1\r\n })\r\n }\r\n this.setState({\r\n products: this.state.myrow\r\n })\r\n })\r\n }\r\n catch (error) {\r\n if (error.response) {\r\n // console.log(error.response.data);\r\n // console.log(error.response.status);\r\n // console.log(error.response.headers);\r\n } else if (error.request) {\r\n // console.log(error.request);\r\n } else {\r\n // console.log('Error', error.message);\r\n }\r\n }\r\n }\r\n\r\n handleEdit = (e) => {\r\n let id = e.target.id;\r\n this.setState({\r\n setShow: true,\r\n modalId: id\r\n });\r\n const data = this.state.products.filter((item) => item.id === id).map(({ id, Wname, users, Pname }) => ({ id, Wname, users, Pname }));\r\n this.setState({\r\n editProducts: data\r\n })\r\n }\r\n\r\n handleDelete = (e) => {\r\n let id = e.target.id;\r\n }\r\n\r\n handleClose = () => {\r\n this.setState({ setShow: false });\r\n };\r\n\r\n handleShow = () => {\r\n this.setState({ setShow: true });\r\n }\r\n\r\n handleSave = () => {\r\n // send the output data to the service\r\n const result = this.state.products.filter((row) => row.id === this.state.modalId)\r\n const data = {\r\n \"workSpaceId\": result[0].id,\r\n \"workSpaceName\": result[0].Wname,\r\n \"projectName\": result[0].Pname,\r\n \"areaId\": 1\r\n }\r\n\r\n let value = 0;\r\n // input validations\t\r\n if (data.projectName === \"\") {\r\n value = value + 1;\r\n this.setState({ projectNameError: true, projectNameMessage: \"Project Name should not be empty\" });\r\n }\r\n if (data.workSpaceName === \"\") {\r\n value = value + 1;\r\n this.setState({ workSpaceError: true, workSpaceMessage: \"Work Space should not be empty\" });\r\n }\r\n if ((/[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]+/.test(data.workSpaceName))) {\r\n value = value + 1;\r\n this.setState({ workSpaceError: true, workSpaceMessage: \"work space name should not contain special characters\" });\r\n }\r\n if (/[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]+/.test(data.projectName)) {\r\n value = value + 1;\r\n this.setState({ projectNameError: true, projectNameMessage: \"project name should not contain special characters\" });\r\n }\r\n if (value === 0) {\r\n axios.post(API_Endpoint + `/EditWorkSpace`, data)\r\n .then(res => {\r\n if (res.statusText === 'OK') {\r\n this.FetchData();\r\n }\r\n })\r\n this.setState({\r\n products: [],\r\n setShow: false\r\n });\r\n\r\n }\r\n }\r\n\r\n // open the new Create Workspace page\r\n Openworkspace = () => {\r\n this.setState({ showForm: true });\r\n }\r\n\r\n handleChange1 = (event) => {\r\n if (event.target.name === \"Wname\") {\r\n this.state.newRow.Wname = event.target.value;\r\n } else if (event.target.name === \"users\") {\r\n this.state.newRow.users = event.target.value;\r\n } else {\r\n this.state.newRow.Pname = event.target.value;\r\n }\r\n };\r\n\r\n handleOnSelect = (row, isSelect) => {\r\n this.props.history.push(`${this.props.match.path}/Upload`)\r\n }\r\n\r\n handlePurge = () => {\r\n };\r\n\r\n render() {\r\n\r\n const selectRow = {\r\n mode: 'checkbox',\r\n bgColor: 'blue',\r\n onSelect: (row, isSelect, rowIndex, e) => {\r\n this.state.deletedRow = row;\r\n if(isSelect){\r\n this.state.deleteId.push(row.id)\r\n }\r\n else{\r\n const check = this.state.deleteId.filter((rows) => rows != row.id)\r\n this.state.deleteId = [];\r\n this.state.deleteId = [...check]\r\n var array = [...this.state.deleteId];\r\n var index = array.indexOf(row.id)\r\n if (index !== -1) {\r\n array.splice(index, 1);\r\n this.setState({deleteId: array});\r\n }\r\n }\r\n },\r\n\r\n onSelectAll: (isSelect, rows, e) => {\r\n this.setState({\r\n })\r\n }\r\n\r\n };\r\n\r\n const cellEdit = cellEditFactory({\r\n mode: 'click',\r\n blurToSave: true\r\n\r\n });\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    BuisnessRules
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n\r\n\r\n \r\n Edit Workspace\r\n \r\n this.handleChange1(e)} fullWidth helperText={this.state.workSpaceMessage} />\r\n this.handleChange1(e)} fullWidth helperText={this.state.projectNameMessage} />\r\n this.handleChange1(e)} fullWidth />\r\n this.handleChange1(e)} fullWidth />\r\n this.handleChange1(e)} fullWidth />\r\n this.handleChange1(e)} fullWidth />\r\n this.handleChange1(e)} fullWidth />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default Buisnessrule;\r\n","import React, { Component } from \"react\";\r\nimport { toJS } from \"mobx\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport UserStore from \"../../UserStore\";\r\nimport axios from \"axios\";\r\n\r\nconst API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n\r\nclass SelectEditChange extends Component {\r\n constructor(props) {\r\n super(props);\r\n \r\n this.state = {\r\n fields: [],\r\n };\r\n }\r\n\r\n fetchIsometricFields = async () => {\r\n await axios.get(API_Endpoint + `/GetIsometricFields`).then((res) => {\r\n if (res.status === 200) {\r\n this.setState({\r\n fields: res.data,\r\n });\r\n }\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n this.fetchIsometricFields();\r\n }\r\n\r\n render() {\r\n const isRegExp = toJS(UserStore.isRegExp);\r\n if (this.props.editProducts.Change === \"No Change\") {\r\n this.props.editProducts.Change = false;\r\n } else if (this.props.editProducts.Change === \"Change\") {\r\n this.props.editProducts.Change = true;\r\n }\r\n return (\r\n isRegExp ? (\r\n {\r\n this.props.handleDropdownchangerowEdit(e, this.props.idValue);\r\n }}\r\n >\r\n {this.state.fields.map((field) => {\r\n return (\r\n \r\n {field.fieldName}\r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n {\r\n this.props.handleDropdownchangerowEdit(e, this.props.idValue);\r\n }}\r\n >\r\n \r\n Change\r\n \r\n \r\n No Change\r\n \r\n \r\n )\r\n )\r\n }\r\n}\r\n\r\nexport default SelectEditChange;\r\n","import React, { Component } from \"react\";\r\nimport { toJS } from \"mobx\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport UserStore from \"../../UserStore\";\r\nimport axios from \"axios\";\r\n\r\nconst API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n\r\nclass SelectChange extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n fields: [],\r\n };\r\n }\r\n\r\n fetchIsometricFields = async () => {\r\n await axios.get(API_Endpoint + `/GetIsometricFields`).then((res) => {\r\n if (res.status === 200) {\r\n this.setState({\r\n fields: res.data,\r\n });\r\n }\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n this.fetchIsometricFields();\r\n }\r\n\r\n render() {\r\n const isRegExp = toJS(UserStore.isRegExp);\r\n return isRegExp ? (\r\n {\r\n this.props.handleDropdownchangerowEdit(e, this.props.idValue);\r\n }}\r\n >\r\n {this.state.fields.map((field) => {\r\n return (\r\n \r\n {field.fieldName}\r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n {\r\n this.props.handleDropdownchangerowEdit(e, this.props.idValue);\r\n }}\r\n >\r\n Change\r\n No Change\r\n \r\n );\r\n }\r\n}\r\nexport default SelectChange;\r\n","import React, { Component } from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport cellEditFactory from \"react-bootstrap-table2-editor\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Cancel from \"@material-ui/icons/Cancel\";\r\nimport CircleChecked from \"@material-ui/icons/CheckCircleRounded\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport axios from \"axios\";\r\nimport AppHeader from \"../../../components/AppHeader/AppHeader\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport AppFooter from \"../../../components/AppFooter/AppFooter\";\r\nimport BreadCrumbs from \"../../Upload/BreadCrumbs/BreadCrumbs\";\r\nimport UserForm from \"../CreatenewWorkspace/UserForm\";\r\nimport \"./DataGrid.scss\";\r\nimport UserStore from \"../../UserStore\";\r\nimport { toJS, observer } from \"mobx\";\r\nimport Moment from \"moment\";\r\nimport TextFieldMui from \"@material-ui/core/TextField\";\r\nimport { withStyles, createStyles } from \"@material-ui/core/styles\";\r\nimport FormHelperText from '@material-ui/core/FormHelperText';\r\nimport LoadingOverlay from \"react-loading-overlay\";\r\n// Importing toastify module\r\nimport { toast } from \"react-toastify\";\r\n\r\n// Import toastify css file\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nimport Buisnessrule from \"../Buisnessrule\";\r\nimport \"./Businessrulesetup.scss\";\r\nimport SelectEditChange from \"./SelectEditChange\";\r\nimport SelectChange from \"./SelectChange\";\r\n\r\n// toast-configuration method,\r\n// it is compulsory method.\r\ntoast.configure();\r\n\r\nconst { BlockBlobClient } = require(\"@azure/storage-blob\");\r\nvar today = new Date();\r\nvar startdate = Moment(\r\n today.getFullYear() +\r\n \"-\" +\r\n (today.getMonth() + 1) +\r\n \"-\" +\r\n (today.getDate() - 8)\r\n).format(\"YYYY-MM-DD\");\r\nvar enddate = Moment(\r\n today.getFullYear() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getDate()\r\n).format(\"YYYY-MM-DD\");\r\nconst API_Endpoint_Workspace = process.env.REACT_APP_API_ENDPOINT_WORKSPACE;\r\nconst API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n\r\nconst styles = (muiTheme) => ({\r\n label: {\r\n \"&$erroredLabel\": {\r\n color: \"black\",\r\n },\r\n },\r\n erroredLabel: {},\r\n});\r\n\r\nconst TextField = withStyles(styles)(function TextField({ classes, ...props }) {\r\n return (\r\n \r\n );\r\n});\r\nexport class Buisnessrulessetup extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n count: 0,\r\n clickCount: 0,\r\n result: {},\r\n loading:false,\r\n myrow: [],\r\n myrowedit: [],\r\n delete: false,\r\n setShow: false,\r\n setShow1: false,\r\n deleteid: \"\",\r\n showForm: false,\r\n userFlag: true,\r\n editProducts: [],\r\n phraseMessage: \"\",\r\n phraseError: false,\r\n modalId: \"\",\r\n columns: [\r\n { dataField: \"phrase1\", text: \"Phrase 1\" },\r\n { dataField: \"phrase2\", text: \"Phrase 2\" },\r\n { dataField: \"phrase3\", text: \"Phrase 3\" },\r\n { dataField: \"phrase4\", text: \"Phrase 4\" },\r\n { dataField: \"Change\", text: \"Change Outcome\" },\r\n { dataField: \"More\", text: \"More\" },\r\n ],\r\n newrow: {\r\n id: \"\",\r\n workSpaceName: \"\",\r\n projectName: \"\",\r\n phrase1: \"\",\r\n phrase2: \"\",\r\n phrase3: \"\",\r\n phrase4: \"\",\r\n ChangeOutcome: '',\r\n },\r\n products: [],\r\n reportDataexcel: [],\r\n newWorkspaceId: UserStore.newWorkspaceId !== 0 ? UserStore.newWorkspaceId : localStorage.getItem(\"newWorkspaceId\") ? JSON.parse(localStorage.getItem(\"newWorkspaceId\")) : 0,\r\n editworkspace: localStorage.getItem(\"Editworkspace\") ? JSON.parse(localStorage.getItem(\"Editworkspace\")): UserStore.editworkspace\r\n };\r\n if(!toJS(UserStore.editRow).length && localStorage.getItem(\"EditWSData\")){\r\n UserStore.addRowdata(JSON.parse(localStorage.getItem(\"EditWSData\")));\r\n }\r\n if(UserStore.NewworkspaceName === \"\" && localStorage.getItem(\"SetNewworkspaceName\")) {\r\n UserStore.SetNewworkspaceName(localStorage.getItem(\"SetNewworkspaceName\")); \r\n }\r\n if(UserStore.NewProjectName === \"\" && localStorage.getItem(\"SetNewProjectName\")) {\r\n UserStore.SetNewProjectName(localStorage.getItem(\"SetNewProjectName\")); \r\n }\r\n }\r\n\r\n async componentDidMount() { \r\n try {\r\n UserStore.inBusinessrule = true;\r\n if (this.state.newWorkspaceId !== 0 && this.state.editworkspace == false) {\r\n const data = {\r\n ProjectName: UserStore.NewProjectName,\r\n WorkSpaceName: UserStore.NewworkspaceName,\r\n WorkSpaceId: this.state.newWorkspaceId,\r\n };\r\n this.setState({loading: true});\r\n // ----------------API: Get business rules for workspace-------------\r\n axios\r\n .post(\r\n API_Endpoint + `/GetBusinessRules`,\r\n data\r\n )\r\n .then((res) => {\r\n const rows1 = res.data;\r\n if (res.status === 200) {\r\n this.setState({loading: false});\r\n }\r\n\r\n if (rows1) {\r\n rows1.businessRules.map((items, index) => {\r\n const row2 = {\r\n phrase1: items.phrase1,\r\n phrase2: items.phrase2,\r\n phrase3: items.phrase3,\r\n phrase4: items.phrase4,\r\n Change: items.change ? \"Change\" : \"No Change\",\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n delete:true,\r\n deleteid:items.businessRuleId,\r\n }) \r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n this.state.myrow.push(row2);\r\n });\r\n this.setState({\r\n count: 1,\r\n });\r\n }\r\n\r\n this.setState({\r\n products: this.state.myrow,\r\n });\r\n });\r\n } else {\r\n const data1 = {\r\n WorkSpaceName: toJS(UserStore.editRow[0].workSpaceName),\r\n projectName: toJS(UserStore.editRow[0].projectName),\r\n WorkSpaceId: toJS(UserStore.editRow[0].workSpaceId),\r\n };\r\n this.setState({loading: true});\r\n // -----------------API: Get business rules for workspace----------------\r\n axios\r\n .post(\r\n API_Endpoint + `/GetBusinessRules`,\r\n data1\r\n )\r\n .then((res) => {\r\n const rows1 = res.data;\r\n if (res.status === 200) {\r\n this.setState({loading: false});\r\n }\r\n\r\n if (rows1) {\r\n rows1.businessRules.map((items, index) => {\r\n const row2 = {\r\n businessRuleId: items.businessRuleId,\r\n phrase1: items.phrase1,\r\n phrase2: items.phrase2,\r\n phrase3: items.phrase3,\r\n phrase4: items.phrase4,\r\n Change: items.change ? \"Change\" : \"No Change\",\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n delete:true,\r\n deleteid:items.businessRuleId,\r\n })\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n this.state.myrow.push(row2);\r\n });\r\n this.setState({\r\n count: 1,\r\n });\r\n }\r\n\r\n this.setState({\r\n products: this.state.myrow,\r\n });\r\n });\r\n }\r\n } catch (error) {\r\n if (error.response) {\r\n // console.log(error.response.data);\r\n // console.log(error.response.status);\r\n // console.log(error.response.headers);\r\n } else if (error.request) {\r\n // console.log(error.request);\r\n } else {\r\n // console.log(\"Error\", error.message);\r\n }\r\n }\r\n }\r\n\r\n handleEdit = (e) => {\r\n let id = e.target.id;\r\n this.setState({\r\n setShow: true,\r\n modalId: id,\r\n });\r\n \r\n const data = this.state.products\r\n .filter((item) => item.businessRuleId == id)\r\n .map(\r\n ({\r\n id,\r\n businessRuleId,\r\n phrase1,\r\n phrase2,\r\n phrase3,\r\n phrase4,\r\n Change,\r\n }) => ({\r\n id,\r\n businessRuleId,\r\n phrase1,\r\n phrase2,\r\n phrase3,\r\n phrase4,\r\n Change,\r\n })\r\n );\r\n data[0]['Change'] = (data[0].Change === 'Change') ? true : false;\r\n this.setState({\r\n editProducts: data,\r\n });\r\n };\r\n\r\n addRow1 = (e) => {\r\n this.setState({\r\n newrow: {\r\n id: \"\",\r\n workSpaceName: \"\",\r\n projectName: \"\",\r\n phrase1: \"\",\r\n phrase2: \"\",\r\n phrase3: \"\",\r\n phrase4: \"\",\r\n ChangeOutcome: '',\r\n }\r\n });\r\n this.setState({\r\n setShow1: true,\r\n });\r\n };\r\n\r\n // ---------------Start:Function: Add new business rule-----------------------------\r\n addRow = (event) => {\r\n let name = event.target.name;\r\n\r\n if (event.target.name === \"Wname\") {\r\n this.state.newrow.workSpaceName = event.target.value;\r\n } else if (event.target.name == \"Phrase1\") {\r\n this.state.newrow.phrase1 = event.target.value;\r\n } else if (event.target.name == \"Phrase2\") {\r\n this.state.newrow.phrase2 = event.target.value;\r\n } else if (event.target.name == \"Phrase3\") {\r\n this.state.newrow.phrase3 = event.target.value;\r\n } else if (event.target.name == \"Phrase4\") {\r\n this.state.newrow.phrase4 = event.target.value;\r\n } else {\r\n this.state.newrow.Pname = event.target.value;\r\n }\r\n this.setState({phraseError: false,phraseMessage: \"\"});\r\n };\r\n // ---------------End:Function: Add new business rule-----------------------------\r\n\r\n // ----------------------Start:Function: Save newly added business rule---------------\r\n disableAddButton = (event) => { \r\n \r\n if(this.state.clickCount === 0) {\r\n this.setState({clickCount : this.state.clickCount + 1});\r\n this.rowSave();\r\n } \r\n }\r\n\r\n rowSave = async () => { \r\n \r\n if (this.state.editworkspace === false) {\r\n var data = {\r\n ProjectName: UserStore.NewProjectName,\r\n WorkSpaceName: UserStore.NewworkspaceName,\r\n WorkSpaceId: this.state.newWorkspaceId,\r\n phrase1: this.state.newrow.phrase1,\r\n phrase2: this.state.newrow.phrase2,\r\n phrase3: this.state.newrow.phrase3,\r\n phrase4: this.state.newrow.phrase4,\r\n\r\n Change: this.state.newrow.ChangeOutcome,\r\n };\r\n } else {\r\n var data = {\r\n WorkSpaceName: toJS(UserStore.editRow[0].workSpaceName),\r\n projectName: toJS(UserStore.editRow[0].projectName),\r\n WorkSpaceId: toJS(UserStore.editRow[0].workSpaceId),\r\n phrase1: this.state.newrow.phrase1,\r\n phrase2: this.state.newrow.phrase2,\r\n phrase3: this.state.newrow.phrase3,\r\n phrase4: this.state.newrow.phrase4,\r\n\r\n Change: this.state.newrow.ChangeOutcome,\r\n };\r\n }\r\n if(this.state.newrow.phrase1 === \"\" || this.state.newrow.ChangeOutcome === \"\") {\r\n if(this.state.newrow.phrase1 === \"\")\r\n this.setState({phraseError: true,phraseMessage: \"Phrase1 should not be Empty\"});\r\n if(this.state.newrow.ChangeOutcome === '') {\r\n this.setState({outcomeError: true,outcomeErrorMessage: \"Outcome should not be Empty\"});\r\n }\r\n this.setState({loading: false, clickCount: 0});\r\n }\r\n else {\r\n this.setState({setShow1: false, loading: true});\r\n // API: Get business rules for workspace\r\n const res = await axios.post(\r\n API_Endpoint + `/AddBusinessRule`,\r\n data\r\n );\r\n if(res.status === 200) {\r\n this.setState({loading: false, clickCount: 0});\r\n }\r\n if (res.data.businessRules.length != 0) {\r\n this.setState({\r\n products: []\r\n });\r\n res.data.businessRules.map((items, index) => {\r\n const row2 = {\r\n businessRuleId: items.businessRuleId,\r\n id: items.workSpaceId,\r\n workSpaceName: items.workSpaceName,\r\n projectName: items.projectName,\r\n phrase1: items.phrase1,\r\n phrase2: items.phrase2,\r\n phrase3: items.phrase3,\r\n phrase4: items.phrase4,\r\n Change: items.change ? \"Change\" : \"No Change\",\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n delete:true,\r\n deleteid:items.businessRuleId,\r\n }) \r\n\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n this.state.products.push(row2);\r\n });\r\n\r\n this.setState({\r\n newrow: {}\r\n });\r\n }\r\n this.setState({phraseError: false,phraseMessage: \"\"});\r\n }\r\n };\r\n // ----------------------End:Function: Save newly added business rule---------------\r\n\r\n handleDelete = (e) => {\r\n let id = e.target.id;\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ setShow: false });\r\n };\r\n \r\n\r\n handleCloserow = () => {\r\n this.setState({\r\n setShow1: false,\r\n newrow: {\r\n id: \"\",\r\n workSpaceName: \"\",\r\n projectName: \"\",\r\n phrase1: \"\",\r\n phrase2: \"\",\r\n phrase3: \"\",\r\n phrase4: \"\",\r\n ChangeOutcome: '',\r\n },\r\n });\r\n };\r\n\r\n handleShow = () => {\r\n this.setState({ setShow: true });\r\n };\r\n\r\n disableAddButtonEdit = (event) => { \r\n if(this.state.clickCount === 0) {\r\n this.setState({clickCount : this.state.clickCount + 1});\r\n this.handleEditSave();\r\n } \r\n }\r\n // -----------------------Start:Function: Save newly edited business rule------------------\r\n handleEditSave = async () => {\r\n // send the output data to the service\r\n const productsList = this.state.products;\r\n if (this.state.editworkspace === false) {\r\n var data = {\r\n ProjectName: UserStore.NewProjectName,\r\n WorkSpaceName: UserStore.NewworkspaceName,\r\n WorkSpaceId: this.state.newWorkspaceId,\r\n BusinessRuleId: this.state.editProducts[0].businessRuleId,\r\n phrase1: this.state.editProducts[0].phrase1,\r\n phrase2: this.state.editProducts[0].phrase2,\r\n phrase3: this.state.editProducts[0].phrase3,\r\n phrase4: this.state.editProducts[0].phrase4,\r\n\r\n Change: this.state.editProducts[0].Change,\r\n };\r\n }\r\n else{\r\n var data = {\r\n WorkSpaceName: toJS(UserStore.editRow[0].workSpaceName),\r\n projectName: toJS(UserStore.editRow[0].projectName),\r\n WorkSpaceId: toJS(UserStore.editRow[0].workSpaceId),\r\n BusinessRuleId: this.state.editProducts[0].businessRuleId,\r\n phrase1: this.state.editProducts[0].phrase1,\r\n phrase2: this.state.editProducts[0].phrase2,\r\n phrase3: this.state.editProducts[0].phrase3,\r\n phrase4: this.state.editProducts[0].phrase4,\r\n Change: this.state.editProducts[0].Change,\r\n };\r\n }\r\n \r\n if(data.phrase1 === \"\" || data.Change === \"\") {\r\n if(data.phrase1 === \"\")\r\n this.setState({phraseError: true,phraseMessage: \"Phrase1 should not be Empty\"});\r\n if(data.Change === '') {\r\n this.setState({outcomeError: true,outcomeErrorMessage: \"Outcome should not be Empty\"});\r\n }\r\n }\r\n else {\r\n this.setState({\r\n products: [],\r\n phraseError: false,\r\n setShow: false,\r\n phraseMessage: \"\",\r\n loading: true\r\n });\r\n \r\n // API: Update the existing business rule\r\n let res = await axios.post(\r\n API_Endpoint + `/UpdateBusinessRule`,\r\n data\r\n );\r\n if(res.status === 200){\r\n this.setState({loading: false, clickCount: 0});\r\n }\r\n res.data.businessRules.map((items, index) => {\r\n const row2 = {\r\n businessRuleId: items.businessRuleId,\r\n id: items.workSpaceId,\r\n workSpaceName: items.workSpaceName,\r\n projectName: items.projectName,\r\n phrase1: items.phrase1,\r\n phrase2: items.phrase2,\r\n phrase3: items.phrase3,\r\n phrase4: items.phrase4,\r\n Change: items.change ? \"Change\" : \"No Change\",\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n delete:true,\r\n deleteid:items.businessRuleId,\r\n }) \r\n\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n this.state.products.push(row2);\r\n });\r\n\r\n this.setState({\r\n newrow: {},\r\n setShow: false,\r\n });\r\n\r\n }\r\n };\r\n // -----------------------End:Function: Save newly edited business rule------------------\r\n\r\n // open the new Create Workspace page\r\n Openworkspace = () => {\r\n this.setState({ showForm: true });\r\n };\r\n\r\n handleChange1 = (event) => {\r\n let id = event.target.id;\r\n const initArray = this.state.products;\r\n const rowneeded = initArray.findIndex((obj) => obj.businessRuleId == id);\r\n if (event.target.name === \"Phrase1\") {\r\n initArray[rowneeded].phrase1 = event.target.value;\r\n } else if (event.target.name === \"Phrase2\") {\r\n initArray[rowneeded].phrase2 = event.target.value;\r\n } else if (event.target.name === \"Phrase3\") {\r\n initArray[rowneeded].phrase3 = event.target.value;\r\n } else if (event.target.name === \"Phrase4\") {\r\n initArray[rowneeded].phrase4 = event.target.value;\r\n } else {\r\n initArray[rowneeded].Change = event.target.value;\r\n }\r\n this.setState({\r\n editProducts: [initArray[rowneeded]],\r\n products: initArray,\r\n phraseError: false,\r\n phraseMessage: \"\"\r\n });\r\n };\r\n\r\n handleCloseDialog = () => {\r\n this.setState({ delete: false,\r\n deleteid:\"\"\r\n });\r\n };\r\n\r\n // ----------------Start: Function: Delete business rule------------------------\r\n handlePurge = (e) => {\r\n let id = this.state.deleteid;\r\n\r\n const rowneeded = this.state.products.filter(\r\n (row) => row.businessRuleId != id\r\n );\r\n\r\n var feedWorkSpaceId = 0;\r\n if(this.state.editworkspace === false) \r\n {\r\n feedWorkSpaceId = this.state.newWorkspaceId;\r\n }\r\n else{\r\n feedWorkSpaceId = toJS(UserStore.editRow[0].workSpaceId);\r\n }\r\n const data = {\r\n BusinessRuleId: id,\r\n WorkSpaceId: feedWorkSpaceId ,\r\n };\r\n //this.setState({ products: rowneeded });\r\n axios.post(API_Endpoint + `/DeleteBusinessRule`, data);\r\n this.setState({ products: rowneeded,\r\n deleteid:\"\",\r\n delete: false,\r\n \r\n });\r\n \r\n };\r\n // ----------------End: Function: Delete business rule------------------------\r\n\r\n handleOnSelect = (row, isSelect) => {\r\n this.props.history.push(`${this.props.match.path}/Upload`);\r\n };\r\n\r\n handleDropdownchangerowEdit = (event, id) => {\r\n let outcome = \"\";\r\n if (event.target.value === 10) {\r\n outcome = true;\r\n } else {\r\n outcome = false;\r\n }\r\n const initArray = this.state.products;\r\n const rowneeded = initArray.findIndex((obj) => obj.businessRuleId == id);\r\n initArray[rowneeded].Change = outcome;\r\n this.setState({\r\n editProducts: [initArray[rowneeded]], \r\n outcomeError: false,\r\n outcomeErrorMessage: \"\",\r\n });\r\n };\r\n\r\n handleDropdownchangerow = (event, id) => {\r\n let outcome = \"\";\r\n if (event.target.value === 10) {\r\n outcome = true;\r\n } else {\r\n outcome = false;\r\n }\r\n \r\n this.setState(prevState => ({\r\n outcomeError: false,\r\n outcomeErrorMessage: \"\",\r\n newrow: {\r\n ...prevState.newrow,\r\n ChangeOutcome: outcome\r\n }\r\n }));\r\n };\r\n\r\n render() {\r\n\r\n UserStore.setIsRegExp(false)\r\n const selectRow = {\r\n mode: \"radio\",\r\n clickToSelect: true,\r\n onSelect: this.handleOnSelect,\r\n };\r\n\r\n const cellEdit = cellEditFactory({\r\n mode: \"click\",\r\n blurToSave: true,\r\n });\r\n if (!this.state.showForm) {\r\n return (\r\n
    \r\n {this.showForm && }\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    Business Rule
    \r\n \r\n \r\n Add row\r\n \r\n
    \r\n
    \r\n {this.state.userFlag && (\r\n
    \r\n \r\n
    \r\n )}\r\n {!this.state.userFlag && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n {\r\n this.props.history.push(`/Workspace`);\r\n }}\r\n variant=\"contained\"\r\n class=\"save-btn\"\r\n >\r\n Save\r\n \r\n {\r\n this.props.history.push(`/Workspace`);\r\n }}\r\n >\r\n Cancel\r\n \r\n
    \r\n {this.state.setShow && this.state.editProducts && (\r\n \r\n \r\n Edit Business Rule\r\n \r\n \r\n \r\n\r\n \r\n this.handleChange1(e)}\r\n fullWidth\r\n value={this.state.editProducts[0].phrase1}\r\n style={{ fontSize: \"1.04vw\", width: \"95%\" }}\r\n error={this.state.phraseError}\r\n helperText={this.state.phraseMessage}\r\n />\r\n this.handleChange1(e)}\r\n fullWidth\r\n value={this.state.editProducts[0].phrase2}\r\n style={{ fontSize: \"1.04vw\", width: \"95%\" }}\r\n />\r\n this.handleChange1(e)}\r\n fullWidth\r\n value={this.state.editProducts[0].phrase3}\r\n style={{ fontSize: \"1.04vw\", width: \"95%\" }}\r\n />\r\n this.handleChange1(e)}\r\n fullWidth\r\n value={this.state.editProducts[0].phrase4}\r\n style={{ fontSize: \"1.04vw\", width: \"95%\" }}\r\n />\r\n\r\n \r\n Outcome\r\n \r\n \r\n \r\n \r\n \r\n Save\r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
    Are you sure to delete?
    \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n this.handlePurge(e)}\r\n style={{\r\n padding: \"0\",\r\n background: \"#0C629B\",\r\n color: \"white\",\r\n position: \"absolute\",\r\n right: \"2%\",\r\n }}\r\n >\r\n {\" \"}\r\n {\" \"}\r\n \r\n
    \r\n \r\n\r\n \r\n \r\n Add Business Rule\r\n \r\n \r\n \r\n \r\n this.addRow(e)}\r\n fullWidth\r\n style={{ font: \"normal normal Helvetica 1.04vw\", width: \"95%\" }}\r\n error={this.state.phraseError}\r\n helperText={this.state.phraseMessage}\r\n />\r\n this.addRow(e)}\r\n fullWidth\r\n style={{ font: \"normal normal Helvetica 1.04vw\", width: \"95%\" }}\r\n />\r\n this.addRow(e)}\r\n fullWidth\r\n style={{ font: \"normal normal Helvetica 1.04vw\", width: \"95%\" }}\r\n />\r\n this.addRow(e)}\r\n fullWidth\r\n style={{ font: \"normal normal Helvetica 1.04vw\", width: \"95%\" }}\r\n />\r\n \r\n Outcome\r\n \r\n \r\n \r\n {this.state.outcomeErrorMessage} \r\n \r\n \r\n \r\n Add\r\n \r\n \r\n Cancel\r\n \r\n \r\n {/* */}\r\n \r\n \r\n
    \r\n \r\n \r\n );\r\n } else {\r\n return ;\r\n }\r\n }\r\n}\r\nexport default Buisnessrulessetup;\r\n\r\n\r\n","import React, { Component } from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Cancel from \"@material-ui/icons/Cancel\";\r\nimport CircleChecked from \"@material-ui/icons/CheckCircleRounded\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport LoadingOverlay from \"react-loading-overlay\";\r\nimport axios from \"axios\";\r\nimport AppHeader from \"../../../components/AppHeader/AppHeader\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport AppFooter from \"../../../components/AppFooter/AppFooter\";\r\nimport BreadCrumbs from \"../../Upload/BreadCrumbs/BreadCrumbs\";\r\nimport UserForm from \"../CreatenewWorkspace/UserForm\";\r\nimport SelectEditChange from \"./SelectEditChange\";\r\nimport SelectChange from \"./SelectChange\";\r\nimport \"./DataGrid.scss\";\r\nimport UserStore from \"../../UserStore\";\r\nimport { toJS } from \"mobx\";\r\nimport TextFieldMui from \"@material-ui/core/TextField\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\n// Importing toastify module\r\nimport { toast } from \"react-toastify\";\r\n\r\n// Import toastify css file\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nimport \"./RegularExp.scss\";\r\nimport Item from \"antd/lib/list/Item\";\r\nimport { IdTokenEntity } from \"@azure/msal-common\";\r\nimport Papa from \"papaparse\";\r\nimport { TextareaAutosize } from \"@material-ui/core\";\r\n\r\n// Allowed extensions for input file\r\nconst allowedExtensions = [\"csv\"];\r\n// toast-configuration method,\r\n// it is compulsory method.\r\ntoast.configure();\r\nconst API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n\r\nconst styles = () => ({\r\n label: {\r\n \"&$erroredLabel\": {\r\n color: \"black\",\r\n },\r\n },\r\n erroredLabel: {},\r\n});\r\n\r\nconst TextField = withStyles(styles)(function TextField({ classes, ...props }) {\r\n return (\r\n \r\n );\r\n});\r\n\r\nconst isTickBased = toJS(UserStore.editRow).length\r\n ? toJS(UserStore.editRow)[0].isIsometricTickBased\r\n : toJS(UserStore.isTickBasedCreateWS);\r\n\r\nexport class RegularExp extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n count: 0,\r\n loading:false,\r\n result: {},\r\n myrow: [],\r\n listofcodes: [],\r\n myrowedit: [],\r\n delete: false,\r\n setShow: false,\r\n setShow1: false,\r\n uploadShow: false,\r\n uploadShow1: false,\r\n showmessage: \"\",\r\n deleteid: \"\",\r\n showForm: false,\r\n exclude: false,\r\n include: true,\r\n globalCode: false,\r\n projectCode: true,\r\n files: [],\r\n droppedFiles: [],\r\n globalData: [],\r\n showfiletypedailog: false,\r\n weightageMessage: false,\r\n editWeightageMessage: false,\r\n submitted: false,\r\n userFlag: true,\r\n editProducts: [],\r\n editLineGroups: [],\r\n phraseMessage: \"\",\r\n phraseError: false,\r\n modalId: \"\",\r\n columns: [\r\n { dataField: \"key\", text: \"Key\" },\r\n { dataField: \"expression\", text: \"Expression\" },\r\n { dataField: \"weightage\", text: \"Weightage\" },\r\n { dataField: \"type\", text: \"Type\" },\r\n { dataField: \"More\", text: \"More\" },\r\n ],\r\n columns1: [\r\n { dataField: \"listName\", text: \"List Name\" },\r\n { dataField: \"listScope\", text: \"Scope\" },\r\n { dataField: \"listValue\", text: \"Value\" },\r\n { dataField: \"More\", text: \"More\" },\r\n ],\r\n newrow: { key: \"\", expression: \"\", weightage: \"\", type: \"\" },\r\n fields: [],\r\n products: [],\r\n inclusionArray: [],\r\n exclusionArray: [],\r\n listOfCodesforAPI: [],\r\n lineGroups: [],\r\n listName: \"\",\r\n listValue: \"\",\r\n validFileType: false,\r\n Duplicatekey: false,\r\n saveRegexValidation: false,\r\n saveListValidation: false,\r\n uploadedCSVList: [],\r\n reportDataexcel: [],\r\n isEditWorkspaceFlag: localStorage.getItem(\"Editworkspace\")\r\n ? JSON.parse(localStorage.getItem(\"Editworkspace\"))\r\n : UserStore.editworkspace,\r\n newWorkspaceId:\r\n UserStore.newWorkspaceId !== 0\r\n ? UserStore.newWorkspaceId\r\n : localStorage.getItem(\"newWorkspaceId\")\r\n ? JSON.parse(localStorage.getItem(\"newWorkspaceId\"))\r\n : 0,\r\n editworkspace: localStorage.getItem(\"Editworkspace\")\r\n ? JSON.parse(localStorage.getItem(\"Editworkspace\"))\r\n : UserStore.editworkspace,\r\n globaldataCount: 0,\r\n };\r\n if (!toJS(UserStore.editRow).length && localStorage.getItem(\"EditWSData\")) {\r\n UserStore.addRowdata(JSON.parse(localStorage.getItem(\"EditWSData\")));\r\n }\r\n if (\r\n UserStore.NewworkspaceName === \"\" &&\r\n localStorage.getItem(\"SetNewworkspaceName\")\r\n ) {\r\n UserStore.SetNewworkspaceName(\r\n localStorage.getItem(\"SetNewworkspaceName\")\r\n );\r\n }\r\n if (\r\n UserStore.NewProjectName === \"\" &&\r\n localStorage.getItem(\"SetNewProjectName\")\r\n ) {\r\n UserStore.SetNewProjectName(localStorage.getItem(\"SetNewProjectName\"));\r\n }\r\n }\r\n\r\n async componentDidMount() {\r\n // this.fetchIsometricFields();\r\n if (this.state.newWorkspaceId == 0 && this.state.editworkspace == false) {\r\n axios.get(API_Endpoint + `/GetFieldRuleGlobalKeyValues`).then((res) => {\r\n if (res.data) {\r\n const GlobalData = res.data.map((items, index) => ({\r\n listName: `SRCODES_${items.key}`,\r\n listScope: \"Global\",\r\n listValue: items.value,\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n deleteLOC: true,\r\n deleteidLOC: index + 1,\r\n });\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n }));\r\n\r\n let globaleCodesforAPI = res.data.map((items, index) => ({\r\n key: items.key,\r\n value: items.value,\r\n isGlobal: true,\r\n }));\r\n\r\n this.setState({\r\n lineGroups: GlobalData,\r\n globaldataCount: GlobalData.length,\r\n globalData: res.data,\r\n listOfCodesforAPI: globaleCodesforAPI,\r\n });\r\n }\r\n });\r\n } else {\r\n let fieldRules = [];\r\n axios\r\n .get(\r\n API_Endpoint +\r\n `/GetIsometricFieldRules?workSpaceId=${\r\n UserStore.newWorkspaceId\r\n ? UserStore.newWorkspaceId\r\n : toJS(UserStore.editRow[0].workSpaceId)\r\n }`\r\n )\r\n .then((res) => {\r\n const rows1 = res.data;\r\n fieldRules = [\r\n ...rows1.isometricFieldInclusionRules,\r\n ...rows1.isometricFieldExclusionRules,\r\n ];\r\n if (fieldRules) {\r\n fieldRules.map((items, index) => {\r\n const row2 = {\r\n key: this.getValueByKey(items.fieldId),\r\n type:\r\n rows1.isometricFieldInclusionRules.length <= index\r\n ? \"Exclusion\"\r\n : \"Inclusion\",\r\n expression: items.regularExpression,\r\n weightage: items.weightage,\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n delete: true,\r\n deleteid: index + 1,\r\n });\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n if (row2.type === \"Exclusion\") {\r\n this.setState({ exclude: true });\r\n } else {\r\n this.setState({ exclude: false });\r\n }\r\n this.state.myrow.push(row2);\r\n });\r\n\r\n rows1.fileldKeyValues.map((items, index) => {\r\n const row4 = {\r\n listName: `SRCODES_${items.key}`,\r\n listScope: items.isGlobal == true ? \"Global\" : \"Project\",\r\n listValue: items.value,\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n deleteLOC: true,\r\n deleteidLOC: index + 1,\r\n });\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n this.state.listofcodes.push(row4);\r\n });\r\n this.setState({\r\n lineGroups: this.state.listofcodes,\r\n });\r\n }\r\n\r\n this.setState({\r\n products: this.state.myrow,\r\n });\r\n });\r\n }\r\n }\r\n\r\n handleEdit = (e) => {\r\n const id = parseInt(e.target.id) - 1;\r\n UserStore.setRegExpEditID(id);\r\n let data = this.state.products[id];\r\n let editData;\r\n if (data.type === \"Inclusion\") {\r\n editData = {\r\n expression: data.expression,\r\n key: data.key,\r\n type: data.type,\r\n weightage: data.weightage,\r\n };\r\n } else {\r\n editData = {\r\n expression: data.expression,\r\n key: data.key,\r\n type: data.type,\r\n };\r\n }\r\n\r\n this.state.editProducts = editData;\r\n this.setState({\r\n setShow: true,\r\n modalId: id,\r\n newrow: { key: data.key, expression: \"\", weightage: \"\", type: \"\" },\r\n });\r\n };\r\n\r\n handleListofCodesEdit = (e) => {\r\n let id = parseInt(e.target.id) - 1;\r\n UserStore.setListOfCodesEditID(id);\r\n let data = this.state.lineGroups[id];\r\n let editData;\r\n editData = {\r\n listName: data.listName.split(\"SRCODES_\")[1],\r\n listValue: data.listValue,\r\n listScope: data.listScope,\r\n };\r\n this.state.editLineGroups = editData;\r\n\r\n this.setState({\r\n uploadShow1: true,\r\n validFileType: false,\r\n Duplicatekey: false,\r\n modalId: id,\r\n });\r\n };\r\n\r\n handleDropdownchangerowEdit = (e) => {\r\n this.setState({\r\n newrow: {\r\n key: e.target.value,\r\n },\r\n outcomeError: false,\r\n outcomeErrorMessage: \"\",\r\n });\r\n };\r\n\r\n handleDropdownchangerow = (e) => {\r\n this.setState(() => ({\r\n outcomeError: false,\r\n outcomeErrorMessage: \"\",\r\n newrow: {\r\n key: e.target.value,\r\n },\r\n }));\r\n };\r\n\r\n addRow1 = (e) => {\r\n this.setState({\r\n setShow1: true,\r\n exclude: false,\r\n newrow: \"\",\r\n saveRegexValidation: false,\r\n });\r\n UserStore.setIsExclusionRule(false);\r\n };\r\n\r\n addRow2 = () => {\r\n this.setState({\r\n uploadShow: true,\r\n saveListValidation: false,\r\n listName: \"\",\r\n listValue: \"\",\r\n validFileType: false,\r\n Duplicatekey: false,\r\n });\r\n UserStore.setIsGlobalListofCodes(true);\r\n if (this.state.uploadedCSVList.length != 0) {\r\n this.state.uploadedCSVList = [];\r\n }\r\n };\r\n\r\n getKeyByValue = (field) => {\r\n for (var k in toJS(UserStore.regExpFields)) {\r\n if (toJS(UserStore.regExpFields)[k].fieldName === field) {\r\n return toJS(UserStore.regExpFields)[k].fieldId;\r\n }\r\n }\r\n };\r\n\r\n getValueByKey = (field) => {\r\n for (var k in toJS(UserStore.regExpFields)) {\r\n if (toJS(UserStore.regExpFields)[k].fieldId === field) {\r\n return toJS(UserStore.regExpFields)[k].fieldName;\r\n }\r\n }\r\n };\r\n\r\n dataforAPI = (getData) => {\r\n this.state.inclusionArray = [];\r\n this.state.exclusionArray = [];\r\n getData.map((item) => {\r\n if (item.type == \"Inclusion\") {\r\n this.state.inclusionArray.push({\r\n fieldId: this.getKeyByValue(item.key),\r\n regularExpression: item.expression,\r\n weightage: Number(item.weightage).toFixed(1),\r\n });\r\n } else {\r\n this.state.exclusionArray.push({\r\n fieldId: this.getKeyByValue(item.key),\r\n regularExpression: item.expression,\r\n });\r\n }\r\n });\r\n };\r\n\r\n rowSave = () => {\r\n let savedData = {\r\n type: \"\",\r\n key: \"\",\r\n regId: \"\",\r\n expression: \"\",\r\n weightage: \"\",\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n delete: true,\r\n deleteid: e.target.id,\r\n });\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n\r\n if (toJS(UserStore.isExclusionRule) == true) {\r\n savedData.type = \"Exclusion\";\r\n } else {\r\n savedData.type = \"Inclusion\";\r\n }\r\n\r\n savedData.regId = this.state.products.length + 1;\r\n savedData.key = this.state.newrow.key;\r\n const exp = document.getElementById(\"Expression\").value;\r\n savedData.expression = exp;\r\n\r\n let weigh;\r\n\r\n if (toJS(UserStore.isExclusionRule) == false) {\r\n weigh = document.getElementById(\"Weightage\").value;\r\n savedData.weightage = weigh;\r\n }\r\n\r\n if (\r\n (!toJS(UserStore.isExclusionRule) &&\r\n document.getElementById(\"Expression\").value === \"\") ||\r\n this.state.newrow.key == undefined ||\r\n weigh === \"\"\r\n ) {\r\n this.handleSaveRegexValidation();\r\n } else if (\r\n (toJS(UserStore.isExclusionRule) &&\r\n document.getElementById(\"Expression\").value === \"\") ||\r\n this.state.newrow.key == undefined\r\n ) {\r\n this.handleSaveRegexValidation();\r\n } else {\r\n if (this.state.editworkspace === false) {\r\n this.state.products.push(savedData);\r\n this.setState({\r\n setShow1: false,\r\n });\r\n\r\n this.dataforAPI(this.state.products);\r\n } else {\r\n if (toJS(UserStore.isExclusionRule) == true) {\r\n savedData.type = \"Exclusion\";\r\n } else {\r\n savedData.type = \"Inclusion\";\r\n }\r\n\r\n savedData.regId = this.state.products.length + 1;\r\n savedData.key = this.state.newrow.key;\r\n const exp = document.getElementById(\"Expression\").value;\r\n savedData.expression = exp;\r\n\r\n if (toJS(UserStore.isExclusionRule) == false) {\r\n const weigh = document.getElementById(\"Weightage\").value;\r\n savedData.weightage = weigh;\r\n }\r\n\r\n this.setState({ products: [...this.state.products, savedData] });\r\n\r\n this.setState({\r\n setShow1: false,\r\n });\r\n }\r\n }\r\n };\r\n\r\n handleSaveRegexValidation = () => {\r\n this.setState({ saveRegexValidation: true });\r\n };\r\n\r\n handleSaveListValidation = () => {\r\n this.setState({ saveListValidation: true });\r\n };\r\n\r\n saveListofCodes = () => {\r\n if (this.state.uploadedCSVList.length != 0) {\r\n const uploadeValue = this.state.uploadedCSVList;\r\n const mynewrows = this.state.listOfCodesforAPI.filter(function (o1) {\r\n return uploadeValue.some(function (o2) {\r\n return o1.key.toLowerCase() == o2.Key.toLowerCase(); // id is unnique both array object\r\n });\r\n });\r\n\r\n if (!mynewrows.length) {\r\n this.setState({\r\n Duplicatekey: false,\r\n });\r\n this.state.uploadedCSVList.map((u, index) => {\r\n let uploadListOfCodesData = {\r\n listScope: \"\",\r\n listName: `SRCODES_${u.Key}`,\r\n listId: \"\",\r\n listValue: u.Value,\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n deleteLOC: true,\r\n deleteidLOC: e.target.id,\r\n });\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n\r\n if (toJS(UserStore.isGlobalListofCodes) == true) {\r\n uploadListOfCodesData.listScope = \"Global\";\r\n } else {\r\n uploadListOfCodesData.listScope = \"Project\";\r\n }\r\n\r\n if (this.state.editworkspace === false) {\r\n this.state.lineGroups.push(uploadListOfCodesData);\r\n this.setState({\r\n uploadShow: false,\r\n });\r\n\r\n let k = {\r\n key: uploadListOfCodesData.listName.split(\"SRCODES_\")[1],\r\n value: uploadListOfCodesData.listValue,\r\n isGlobal: toJS(UserStore.isGlobalListofCodes),\r\n };\r\n\r\n this.state.listOfCodesforAPI.push(k);\r\n }\r\n });\r\n } else {\r\n this.setState({\r\n Duplicatekey: true,\r\n });\r\n }\r\n } else {\r\n let duplicateFromProject;\r\n let duplicateFromNewList;\r\n let savedListOfCodesData = {\r\n listScope: \"\",\r\n listName: \"\",\r\n listId: \"\",\r\n listValue: \"\",\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n deleteLOC: true,\r\n deleteidLOC: e.target.id,\r\n });\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n if (toJS(UserStore.isGlobalListofCodes) == true) {\r\n savedListOfCodesData.listScope = \"Global\";\r\n } else {\r\n savedListOfCodesData.listScope = \"Project\";\r\n }\r\n\r\n if (\r\n document.getElementById(\"listName\").value === \"\" ||\r\n document.getElementById(\"listValue\").value === \"\"\r\n ) {\r\n this.handleSaveListValidation();\r\n } else {\r\n this.setState({\r\n saveListValidation: false,\r\n });\r\n const newGlobalList = this.state.listOfCodesforAPI.filter((item) => {\r\n return item.isGlobal === true;\r\n });\r\n\r\n duplicateFromNewList = newGlobalList.find(\r\n (o) =>\r\n o.key.toLowerCase() ===\r\n document.getElementById(\"listName\").value.toLowerCase()\r\n );\r\n\r\n const newProjectlList = this.state.listOfCodesforAPI.filter((item) => {\r\n return item.isGlobal === false;\r\n });\r\n duplicateFromProject = newProjectlList.find(\r\n (o) =>\r\n o.key.toLowerCase() ===\r\n document.getElementById(\"listName\").value.toLowerCase()\r\n );\r\n\r\n if (!duplicateFromProject && !duplicateFromNewList) {\r\n savedListOfCodesData.listId = this.state.lineGroups.length + 1;\r\n const listName = `SRCODES_${\r\n document.getElementById(\"listName\").value\r\n }`;\r\n savedListOfCodesData.listName = listName;\r\n const listValue = document.getElementById(\"listValue\").value;\r\n savedListOfCodesData.listValue = listValue;\r\n if (this.state.editworkspace === false) {\r\n this.state.lineGroups.push(savedListOfCodesData);\r\n this.setState({\r\n uploadShow: false,\r\n Duplicatekey: false,\r\n });\r\n\r\n let k = {\r\n key: savedListOfCodesData.listName.split(\"SRCODES_\")[1],\r\n value: savedListOfCodesData.listValue,\r\n isGlobal: toJS(UserStore.isGlobalListofCodes),\r\n };\r\n\r\n this.state.listOfCodesforAPI.push(k);\r\n } else {\r\n if (toJS(UserStore.isGlobalListofCodes) == true) {\r\n savedListOfCodesData.listScope = \"Global\";\r\n } else {\r\n savedListOfCodesData.listScope = \"Project\";\r\n }\r\n\r\n savedListOfCodesData.listId = this.state.lineGroups.length + 1;\r\n const listName = `SRCODES_${\r\n document.getElementById(\"listName\").value\r\n }`;\r\n savedListOfCodesData.listName = listName;\r\n const listValue = document.getElementById(\"listValue\").value;\r\n savedListOfCodesData.listValue = listValue;\r\n\r\n this.setState({\r\n lineGroups: [...this.state.lineGroups, savedListOfCodesData],\r\n });\r\n this.setState({\r\n uploadShow: false,\r\n Duplicatekey: false,\r\n });\r\n\r\n let k = {\r\n key: savedListOfCodesData.listName.split(\"SRCODES_\")[1],\r\n value: savedListOfCodesData.listValue,\r\n isGlobal: toJS(UserStore.isGlobalListofCodes),\r\n };\r\n\r\n this.state.listOfCodesforAPI.push(k);\r\n }\r\n } else {\r\n this.setState({\r\n Duplicatekey: true,\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n handleDelete = (e) => {\r\n let id = e.target.id;\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({\r\n setShow: false,\r\n uploadShow: false,\r\n uploadShow1: false,\r\n showfiletypedailog: false,\r\n });\r\n };\r\n\r\n handleCloserow = () => {\r\n this.setState({\r\n setShow: false,\r\n setShow1: false,\r\n uploadShow: false,\r\n uploadShow1: false,\r\n exclude: false,\r\n newrow: {},\r\n listName: \"\",\r\n listValue: \"\",\r\n });\r\n };\r\n\r\n handleEditSave = () => {\r\n if (this.state.editworkspace === false) {\r\n let editProducts = [...this.state.products];\r\n editProducts[toJS(UserStore.regExpEditID)] = \"\";\r\n if (toJS(UserStore.isExclusionRule) == true) {\r\n editProducts[toJS(UserStore.regExpEditID)] = {\r\n ...editProducts[toJS(UserStore.regExpEditID)],\r\n type: \"Exclusion\",\r\n };\r\n } else {\r\n editProducts[toJS(UserStore.regExpEditID)] = {\r\n ...editProducts[toJS(UserStore.regExpEditID)],\r\n type: \"Inclusion\",\r\n };\r\n }\r\n editProducts[toJS(UserStore.regExpEditID)] = {\r\n ...editProducts[toJS(UserStore.regExpEditID)],\r\n regId: toJS(UserStore.regExpEditID),\r\n };\r\n editProducts[toJS(UserStore.regExpEditID)] = {\r\n ...editProducts[toJS(UserStore.regExpEditID)],\r\n key: this.state.newrow.key,\r\n };\r\n editProducts[toJS(UserStore.regExpEditID)] = {\r\n ...editProducts[toJS(UserStore.regExpEditID)],\r\n expression: document.getElementById(\"editExpression\").value,\r\n };\r\n if (toJS(UserStore.isExclusionRule) == false) {\r\n editProducts[toJS(UserStore.regExpEditID)] = {\r\n ...editProducts[toJS(UserStore.regExpEditID)],\r\n weightage: document.getElementById(\"editWeightage\").value,\r\n };\r\n }\r\n editProducts[toJS(UserStore.regExpEditID)] = {\r\n ...editProducts[toJS(UserStore.regExpEditID)],\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n delete: true,\r\n deleteid: e.target.id,\r\n });\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n this.setState({ products: editProducts, setShow: false });\r\n\r\n this.dataforAPI(editProducts);\r\n } else {\r\n let editProducts = [...this.state.products];\r\n editProducts[toJS(UserStore.regExpEditID)] = \"\";\r\n if (toJS(UserStore.isExclusionRule) == true) {\r\n editProducts[toJS(UserStore.regExpEditID)] = {\r\n ...editProducts[toJS(UserStore.regExpEditID)],\r\n type: \"Exclusion\",\r\n };\r\n } else {\r\n editProducts[toJS(UserStore.regExpEditID)] = {\r\n ...editProducts[toJS(UserStore.regExpEditID)],\r\n type: \"Inclusion\",\r\n };\r\n }\r\n editProducts[toJS(UserStore.regExpEditID)] = {\r\n ...editProducts[toJS(UserStore.regExpEditID)],\r\n regId: toJS(UserStore.regExpEditID),\r\n };\r\n editProducts[toJS(UserStore.regExpEditID)] = {\r\n ...editProducts[toJS(UserStore.regExpEditID)],\r\n key: this.state.newrow.key,\r\n };\r\n editProducts[toJS(UserStore.regExpEditID)] = {\r\n ...editProducts[toJS(UserStore.regExpEditID)],\r\n expression: document.getElementById(\"editExpression\").value,\r\n };\r\n if (toJS(UserStore.isExclusionRule) == false) {\r\n editProducts[toJS(UserStore.regExpEditID)] = {\r\n ...editProducts[toJS(UserStore.regExpEditID)],\r\n weightage: document.getElementById(\"editWeightage\").value,\r\n };\r\n }\r\n editProducts[toJS(UserStore.regExpEditID)] = {\r\n ...editProducts[toJS(UserStore.regExpEditID)],\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n delete: true,\r\n deleteid: e.target.id,\r\n });\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n\r\n this.setState({ products: editProducts, setShow: false });\r\n\r\n this.dataforAPI(editProducts);\r\n }\r\n };\r\n\r\n handleEditListOfCodesSave = () => {\r\n let duplicateFromNewList;\r\n let duplicateFromProject;\r\n const listOfvalue = this.state.listOfCodesforAPI.filter((value, index) => {\r\n return index != toJS(UserStore.listOfCodesEditID);\r\n });\r\n\r\n const newGlobalList = listOfvalue.filter((item) => {\r\n return item.isGlobal === true;\r\n });\r\n\r\n duplicateFromNewList = newGlobalList.find(\r\n (o) =>\r\n o.key.toLowerCase() ===\r\n document.getElementById(\"listName\").value.toLowerCase()\r\n );\r\n\r\n const newProjectlList = listOfvalue.filter((item) => {\r\n return item.isGlobal === false;\r\n });\r\n\r\n duplicateFromProject = newProjectlList.find(\r\n (o) =>\r\n o.key.toLowerCase() ===\r\n document.getElementById(\"listName\").value.toLowerCase()\r\n );\r\n\r\n if (!duplicateFromProject && !duplicateFromNewList) {\r\n this.setState({\r\n Duplicatekey: false,\r\n });\r\n let editProducts = [...this.state.lineGroups];\r\n editProducts[toJS(UserStore.listOfCodesEditID)] = \"\";\r\n\r\n if (toJS(UserStore.isGlobalListofCodes) == true) {\r\n editProducts[toJS(UserStore.listOfCodesEditID)] = {\r\n ...editProducts[toJS(UserStore.listOfCodesEditID)],\r\n listScope: \"Global\",\r\n };\r\n } else {\r\n editProducts[toJS(UserStore.listOfCodesEditID)] = {\r\n ...editProducts[toJS(UserStore.listOfCodesEditID)],\r\n listScope: \"Project\",\r\n };\r\n }\r\n\r\n editProducts[toJS(UserStore.listOfCodesEditID)] = {\r\n ...editProducts[toJS(UserStore.listOfCodesEditID)],\r\n listId: toJS(UserStore.regExpEditID),\r\n };\r\n editProducts[toJS(UserStore.listOfCodesEditID)] = {\r\n ...editProducts[toJS(UserStore.listOfCodesEditID)],\r\n listName: `SRCODES_${document.getElementById(\"listName\").value}`,\r\n };\r\n editProducts[toJS(UserStore.listOfCodesEditID)] = {\r\n ...editProducts[toJS(UserStore.listOfCodesEditID)],\r\n listValue: document.getElementById(\"listValue\").value,\r\n };\r\n\r\n editProducts[toJS(UserStore.listOfCodesEditID)] = {\r\n ...editProducts[toJS(UserStore.listOfCodesEditID)],\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n deleteLOC: true,\r\n deleteidLOC: toJS(UserStore.listOfCodesEditID) + 1,\r\n });\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n };\r\n\r\n this.setState({\r\n lineGroups: editProducts,\r\n uploadShow1: false,\r\n });\r\n\r\n let k = {\r\n key: editProducts[toJS(UserStore.listOfCodesEditID)].listName.split(\r\n \"SRCODES_\"\r\n )[1],\r\n value: editProducts[toJS(UserStore.listOfCodesEditID)].listValue,\r\n isGlobal:\r\n editProducts[toJS(UserStore.listOfCodesEditID)].listScope ===\r\n \"Project\"\r\n ? false\r\n : true,\r\n };\r\n\r\n this.state.listOfCodesforAPI[toJS(UserStore.listOfCodesEditID)] = k;\r\n } else {\r\n this.setState({\r\n Duplicatekey: true,\r\n });\r\n }\r\n };\r\n // -----------------------End:Function: Save newly edited business rule------------------\r\n\r\n // open the new Create Workspace page\r\n Openworkspace = () => {\r\n this.setState({ showForm: true });\r\n };\r\n\r\n handleCloseDialog = () => {\r\n this.setState({\r\n delete: false,\r\n deleteid: \"\",\r\n deleteLOC: false,\r\n deleteidLOC: \"\",\r\n });\r\n };\r\n\r\n handlePurge = (e) => {\r\n const rowID = this.state.deleteid - 1;\r\n const alldata = this.state.products;\r\n\r\n alldata.splice(rowID, 1);\r\n this.dataforAPI(alldata);\r\n const changedValue = alldata.map((items, index) => ({\r\n key: items.key,\r\n type: items.type,\r\n expression: items.expression,\r\n weightage: items.weightage,\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n delete: true,\r\n deleteid: index + 1,\r\n });\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n }));\r\n this.setState({\r\n products: changedValue,\r\n deleteid: \"\",\r\n delete: false,\r\n deleteidLOC: \"\",\r\n });\r\n };\r\n\r\n handleLOCPurge = (e) => {\r\n const rowID = this.state.deleteidLOC - 1;\r\n const alldata = this.state.lineGroups;\r\n alldata.splice(rowID, 1);\r\n const changedValue = alldata.map((items, index) => ({\r\n listName: items.listName,\r\n listValue: items.listValue,\r\n listScope: items.listScope,\r\n More: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({\r\n deleteLOC: true,\r\n deleteidLOC: index + 1,\r\n });\r\n }\r\n : \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n }));\r\n this.setState({\r\n lineGroups: changedValue,\r\n deleteidLOC: \"\",\r\n deleteLOC: false,\r\n });\r\n \r\n const listOfCodesforAPIData = this.state.listOfCodesforAPI;\r\n listOfCodesforAPIData.splice(rowID, 1);\r\n this.setState({\r\n listOfCodesforAPI: listOfCodesforAPIData,\r\n });\r\n };\r\n\r\n handleSubmit = async (event) => {\r\n event.preventDefault();\r\n const isEditWorkspaceFlag = localStorage.getItem(\"Editworkspace\")\r\n ? JSON.parse(localStorage.getItem(\"Editworkspace\"))\r\n : UserStore.editworkspace;\r\n\r\n if (isEditWorkspaceFlag === false) {\r\n if (\r\n this.state.lineGroups.length == 0 &&\r\n this.state.products.length == 0\r\n ) {\r\n this.setState({\r\n phraseError: true,\r\n phraseMessage:\r\n \"Please add atleast one List of Code and Regular Expression to proceed\",\r\n });\r\n } else if (this.state.products.length == 0) {\r\n this.setState({\r\n phraseError: true,\r\n phraseMessage: \"Please add atleast one Regular Expression to proceed\",\r\n });\r\n } else if (this.state.lineGroups.length == 0) {\r\n this.setState({\r\n phraseError: true,\r\n phraseMessage: \"Please add atleast one List of Code to proceed\",\r\n });\r\n }\r\n\r\n const datatofeed = Object.values(toJS(UserStore.createWorkspacedata))\r\n .length\r\n ? toJS(UserStore.createWorkspacedata)\r\n : localStorage.getItem(\"createWorkspacedata\")\r\n ? JSON.parse(localStorage.getItem(\"createWorkspacedata\"))\r\n : {};\r\n datatofeed[\"fieldInclusionRules\"] = this.state.inclusionArray;\r\n datatofeed[\"fieldExclusionRules\"] = this.state.exclusionArray;\r\n datatofeed[\"filedKeyValues\"] = this.state.listOfCodesforAPI;\r\n\r\n const fieldId1 = [];\r\n const fieldId2 = [];\r\n const fieldId3 = [];\r\n const fieldId4 = [];\r\n\r\n datatofeed[\"fieldThreshold\"].map((items) => {\r\n if (items.fieldId == 1) {\r\n fieldId1.push(parseFloat(items.OCRWeightage));\r\n } else if (items.fieldId == 2) {\r\n fieldId2.push(parseFloat(items.OCRWeightage));\r\n } else if (items.fieldId == 3) {\r\n fieldId3.push(parseFloat(items.OCRWeightage));\r\n } else if (items.fieldId == 4) {\r\n fieldId4.push(parseFloat(items.OCRWeightage));\r\n }\r\n });\r\n\r\n this.state.inclusionArray.map((items) => {\r\n if (items.fieldId == 1) {\r\n fieldId1.push(parseFloat(items.weightage));\r\n } else if (items.fieldId == 2) {\r\n fieldId2.push(parseFloat(items.weightage));\r\n } else if (items.fieldId == 3) {\r\n fieldId3.push(parseFloat(items.weightage));\r\n } else if (items.fieldId == 4) {\r\n fieldId4.push(parseFloat(items.weightage));\r\n }\r\n });\r\n let weightageValidateion = false;\r\n if (fieldId1.reduce((a, b) => a + b, 0) > 1) {\r\n weightageValidateion = true;\r\n this.setState({\r\n showfiletypedailog: true,\r\n showmessage:\r\n \"Line Number and OCR sum of the weightage should be less than are equal to 1\",\r\n });\r\n }\r\n if (fieldId2.reduce((a, b) => a + b, 0) > 1) {\r\n weightageValidateion = true;\r\n this.setState({\r\n showfiletypedailog: true,\r\n showmessage:\r\n \"Document Number and OCR sum of the weightage should be less than are equal to 1\",\r\n });\r\n }\r\n if (fieldId3.reduce((a, b) => a + b, 0) > 1) {\r\n weightageValidateion = true;\r\n this.setState({\r\n showfiletypedailog: true,\r\n showmessage:\r\n \"Sheet Number and OCR sum of theweightage should be less than are equal to 1\",\r\n });\r\n }\r\n if (fieldId4.reduce((a, b) => a + b, 0) > 1) {\r\n weightageValidateion = true;\r\n this.setState({\r\n showfiletypedailog: true,\r\n showmessage:\r\n \"Revision Number and OCR sum of the weightage should be less than are equal to 1\",\r\n });\r\n }\r\n\r\n if (\r\n (fieldId1.reduce((a, b) => a + b, 0) <= 1 &&\r\n fieldId2.reduce((a, b) => a + b, 0) <= 1 &&\r\n fieldId3.reduce((a, b) => a + b, 0) <= 1 &&\r\n fieldId4.reduce((a, b) => a + b, 0) <= 1) === true\r\n ) {\r\n if (\r\n this.state.lineGroups.length != 0 &&\r\n this.state.products.length != 0\r\n ) {\r\n this.setState({loading: true});\r\n await axios\r\n .post(API_Endpoint + `/CreateWorkSpace`, datatofeed)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n let id = response.data.workspaceId;\r\n UserStore.setnewWorkspaceId(id);\r\n localStorage.setItem(\"newWorkspaceId\", id);\r\n UserStore.doColumnsort(true);\r\n this.setState({loading: false});\r\n if (\r\n this.state.lineGroups.length != 0 &&\r\n this.state.products.length != 0\r\n ) {\r\n this.navigatetoWorkSpace();\r\n }\r\n }\r\n \r\n });\r\n }\r\n \r\n }\r\n } else {\r\n const datatofeed = Object.values(toJS(UserStore.editWorkspacedata)).length\r\n ? toJS(UserStore.editWorkspacedata)\r\n : localStorage.getItem(\"setEditWorkspacedata\")\r\n ? JSON.parse(localStorage.getItem(\"setEditWorkspacedata\"))\r\n : {};\r\n\r\n UserStore.setEditWorkspacedata(datatofeed);\r\n localStorage.setItem(\"setEditWorkspacedata\", JSON.stringify(datatofeed));\r\n this.setState({loading: true});\r\n await axios\r\n .post(API_Endpoint + `/EditWorkSpace`, datatofeed)\r\n .then((res) => {\r\n if (res.status === 200) {\r\n this.setState({loading: false});\r\n this.navigatetoWorkSpace();\r\n }\r\n }); \r\n }\r\n };\r\n // ---------------End: Function: Submit detection logic --------------------\r\n\r\n navigatetoWorkSpace = () => {\r\n if (this.state.isEditWorkspaceFlag === true) {\r\n if (toJS(UserStore.editRow[0].isIsometricTickBased)) {\r\n this.props.history.push(`/Workspace`);\r\n } else {\r\n this.props.history.push(\r\n `/Workspace/EditWorkSpaceStamp/SetDetectionlogic/RegularExpression/Businessrulessetup`\r\n );\r\n }\r\n } else if (toJS(UserStore.isTickBasedCreateWS)) {\r\n this.props.history.push(`/Workspace`);\r\n } else {\r\n this.props.history.push(\r\n `/Workspace/CreateNewWorkspace/SetDetectionlogic/RegularExpression/Businessrulessetup`\r\n );\r\n }\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({\r\n showfiletypedailog: false,\r\n showmessage: \"\",\r\n });\r\n };\r\n\r\n radioInput = (e) => {\r\n let inputValue = e.target.value;\r\n if (inputValue === \"Exclusion\") {\r\n UserStore.setIsExclusionRule(true);\r\n this.setState({ exclude: true, include: false });\r\n } else {\r\n UserStore.setIsExclusionRule(false);\r\n this.setState({ include: true, exclude: false });\r\n }\r\n };\r\n\r\n radioListofCodes = (e) => {\r\n let inputValue = e.target.value;\r\n if (inputValue === \"Global\") {\r\n UserStore.setIsGlobalListofCodes(true);\r\n } else {\r\n UserStore.setIsGlobalListofCodes(false);\r\n }\r\n };\r\n\r\n handleFileUpload = (event) => {\r\n if (event.target.files[0].type !== \"text/csv\") {\r\n this.setState({ validFileType: true, listName: \"\", listValue: \"\" });\r\n } else {\r\n Papa.parse(event.target.files[0], {\r\n header: true,\r\n skipEmptyLines: true,\r\n complete: (results) => {\r\n this.setState({\r\n uploadedCSVList: results.data,\r\n listName: `SRCODES_${results.data[0].Key}`,\r\n listValue: results.data[0].Value,\r\n validFileType: false,\r\n });\r\n },\r\n });\r\n }\r\n };\r\n\r\n handleListCodeChangeKey = (e) => {\r\n const { name, value } = e.target;\r\n this.setState({ listName: value });\r\n };\r\n\r\n handleListCodeChangeValue = (e) => {\r\n const { name, value } = e.target;\r\n this.setState({ listValue: value });\r\n };\r\n\r\n handleModalClose = () => {\r\n this.setState({ phraseError: false });\r\n };\r\n\r\n render() {\r\n UserStore.setIsRegExp(true);\r\n const isTickBased = toJS(UserStore.editRow).length\r\n ? toJS(UserStore.editRow)[0].isIsometricTickBased\r\n : toJS(UserStore.isTickBasedCreateWS);\r\n\r\n if (!this.state.showForm) {\r\n return (\r\n
    \r\n {this.showForm && }\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Add Regular Expression\r\n \r\n\r\n \r\n Add List of Codes\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {isTickBased ? \"Save\" : \"Next\"}\r\n \r\n {\r\n this.props.history.push(`/Workspace`);\r\n }}\r\n >\r\n Cancel\r\n \r\n
    \r\n
    \r\n {this.state.setShow && this.state.editProducts && (\r\n \r\n \r\n \r\n Edit Regular Expression\r\n \r\n \r\n \r\n \r\n \r\n \r\n Inclusion Rules\r\n \r\n \r\n \r\n Exclusion Rules\r\n \r\n \r\n \r\n\r\n \r\n Key\r\n \r\n\r\n \r\n\r\n {this.state.exclude != true ? (\r\n {\r\n if (e.target.value > 0.9) {\r\n e.target.value = \"\";\r\n this.setState({ editWeightageMessage: true });\r\n } else if (e.target.value === 1) {\r\n this.setState({ editWeightageMessage: false });\r\n } else {\r\n this.setState({ editWeightageMessage: false });\r\n }\r\n }}\r\n helperText={\r\n this.state.editWeightageMessage ? (\r\n

    \r\n Enter value less than 1\r\n

    \r\n ) : (\r\n \"\"\r\n )\r\n }\r\n />\r\n ) : (\r\n \"\"\r\n )}\r\n\r\n \r\n\r\n {/* {this.state.editRegexValidation ?

    Please fill all the fields to save Regular Expression

    :\"\"} */}\r\n
    \r\n \r\n \r\n Save\r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n )}\r\n\r\n {this.state.uploadShow1 && this.state.editLineGroups && (\r\n \r\n \r\n \r\n Edit List of Codes\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n Global\r\n \r\n \r\n \r\n Project\r\n \r\n \r\n {this.state.validFileType ? (\r\n

    \r\n Please Upload only CSV files to add list of codes\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n {this.state.Duplicatekey ? (\r\n

    \r\n The List Name already exists. Please add unique name\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n \r\n \r\n \r\n \r\n Upload CSV\r\n \r\n \r\n\r\n \r\n Save\r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n
    Are you sure to delete?
    \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n this.handlePurge(e)}\r\n style={{\r\n padding: \"0\",\r\n background: \"#0C629B\",\r\n color: \"white\",\r\n position: \"absolute\",\r\n right: \"2%\",\r\n }}\r\n >\r\n {\" \"}\r\n {\" \"}\r\n \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n
    Are you sure to delete?
    \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n this.handleLOCPurge(e)}\r\n style={{\r\n padding: \"0\",\r\n background: \"#0C629B\",\r\n color: \"white\",\r\n position: \"absolute\",\r\n right: \"2%\",\r\n }}\r\n >\r\n {\" \"}\r\n {\" \"}\r\n \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n Add Regular Expression\r\n \r\n \r\n \r\n \r\n \r\n \r\n Inclusion Rules\r\n \r\n \r\n \r\n Exclusion Rules\r\n \r\n \r\n\r\n \r\n\r\n \r\n Key\r\n \r\n \r\n\r\n {this.state.exclude != true ? (\r\n {\r\n if (e.target.value > 0.9) {\r\n e.target.value = \"\";\r\n this.setState({ weightageMessage: true });\r\n } else if (e.target.value === 1) {\r\n this.setState({ weightageMessage: false });\r\n } else {\r\n this.setState({ weightageMessage: false });\r\n }\r\n }}\r\n helperText={\r\n this.state.weightageMessage ? (\r\n

    \r\n Enter value less than 1\r\n

    \r\n ) : (\r\n \"\"\r\n )\r\n }\r\n />\r\n ) : (\r\n \"\"\r\n )}\r\n\r\n \r\n {this.state.saveRegexValidation ? (\r\n

    \r\n Please fill all the fields to add Regular Expression\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n\r\n \r\n \r\n Add Regular Expression\r\n \r\n \r\n Cancel\r\n \r\n \r\n {/* */}\r\n \r\n\r\n \r\n \r\n \r\n Add List of Codes\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {this.state.saveListValidation ? (\r\n

    \r\n Please fill all the fields to add List of Codes\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n {this.state.validFileType ? (\r\n

    \r\n Please Upload only CSV files to add list of codes\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n {this.state.Duplicatekey ? (\r\n

    \r\n The List Name already exists. Please add unique name.\r\n

    \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n\r\n \r\n \r\n \r\n \r\n Upload CSV\r\n \r\n \r\n\r\n \r\n Add\r\n \r\n\r\n \r\n Cancel\r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {this.state.showmessage}\r\n\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n } else {\r\n return ;\r\n }\r\n }\r\n}\r\nexport default RegularExp;\r\n","import React from 'react';\r\nimport { BrowserRouter as Router, Switch, Route, browserHistory } from 'react-router-dom';\r\nimport { getAppInsights } from '../../TelemetryService';\r\nimport TelemetryProvider from '../../telemetry-provider';\r\n\r\n//SR imports\r\nimport Home from '../../pages/Home/Home';\r\nimport { DataGrid } from '../CreateWorkspace/DataGrid/DataGrid';\r\nimport UserForm from '../CreateWorkspace/CreatenewWorkspace/UserForm';\r\nimport ProjectSetupdetails from '../CreateWorkspace/ProjectSetupdetails/ProjectSetupdetails';\r\nimport StampUpload from '../Upload/UploadFiles/UploadFiles';\r\nimport Preview from '../Preview/Preview';\r\nimport EditWorkSpaceStamp from '../CreateWorkspace/EditWorkSpaceStamp/EditWorkSpaceStamp';\r\n\r\n//PID imports\r\nimport WorkspaceDashboard from '../workspacePID/workspaceDashboard/WorkspaceDashboard';\r\nimport CreateNewWorkspace from '../workspacePID/createNewWorkspace/CreateNewWorkspace';\r\nimport EditWorkSpace from '../workspacePID/EditWorkspace/EditWorkspace';\r\nimport PIDUpload from '../UploadPID/UploadFiles/UploadFiles';\r\nimport SetDetectionlogic from '../CreateWorkspace/Setdetectionlogic/setDetectionlogic'\r\nimport OverallMTO from '../PreviewPID/OverallMTO/OverallMTO';\r\nimport PreviewPID from '../PreviewPID/Preview/Preview';\r\nimport EditConfiguration from '../workspacePID/createNewWorkspace/EditConfiguration';\r\n\r\n// Bootstrap styles, optionally with jQuery and Popper\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\n\r\n// Custom app styles\r\nimport './App.scss';\r\nimport Buisnessrule from '../CreateWorkspace/Buisnessrule';\r\nimport Buisnessrulessetup from '../CreateWorkspace/DataGrid/Buisnessrulessetup';\r\nimport RegularExp from '../CreateWorkspace/DataGrid/RegularExp';\r\n\r\nexport default function App() { \r\n\r\n const routes = [\r\n {path: '/', Component: Home},\r\n {path: '/Workspace', Component: DataGrid}, \r\n {path: '/Workspace/CreateNewWorkspace', Component: UserForm},\r\n {path: '/Workspace/CreateNewWorkspace/SetDetectionlogic', Component: SetDetectionlogic},\r\n {path: '/Workspace/EditWorkSpaceStamp/SetDetectionlogic', Component: SetDetectionlogic},\r\n {path: '/Workspace/CreateNewWorkspace/Businessrule', Component: Buisnessrule},\r\n {path: '/Workspace/CreateNewWorkspace/SetDetectionlogic/RegularExpression/Businessrulessetup', Component: Buisnessrulessetup},\r\n {path: '/Workspace/EditWorkSpaceStamp/SetDetectionlogic/RegularExpression/Businessrulessetup', Component: Buisnessrulessetup},\r\n {path: '/Workspace/CreateNewWorkspace/SetDetectionlogic/RegularExpression', Component: RegularExp},\r\n {path: '/Workspace/EditWorkSpaceStamp/SetDetectionlogic/RegularExpression', Component: RegularExp},\r\n {path: '/Workspace/CreateNewWorkspace/RegularExpression', Component: RegularExp},\r\n {path: '/Workspace/EditWorkSpaceStamp/RegularExpression', Component: RegularExp},\r\n {path: '/Workspace/CreateNewWorkspace/ProjectSetup', Component: ProjectSetupdetails},\r\n {path: '/Workspace/CreateNewWorkspace/UploadFiles', Component: StampUpload},\r\n {path: '/Workspace/UploadFiles', Component: StampUpload},\r\n {path: '/Workspace/CreateNewWorkspace/Upload', Component: StampUpload},\r\n {path: '/Workspace/EditWorkSpaceStamp', Component: EditWorkSpaceStamp},\r\n {path: '/Workspace/Upload', Component: StampUpload},\r\n {path: '/WorkspacePID/EditConfiguration', Component: EditConfiguration},\r\n {path: '/Workspace/Upload/Preview', Component: Preview},\r\n {path: '/Workspace/UploadFiles/:id', Component: Preview},\r\n {path: '/WorkspacePID', Component: WorkspaceDashboard},\r\n {path: '/WorkspacePID/CreateNewWorkspace', Component: CreateNewWorkspace},\r\n {path: '/WorkspacePID/Upload/:id/OverallMTO', Component: OverallMTO},\r\n {path: '/WorkspacePID/Upload/:id', Component: PreviewPID},\r\n {path: '/WorkspacePID/EditWorkspace', Component: EditWorkSpace},\r\n {path: '/WorkspacePID/Upload', Component: PIDUpload}\r\n ];\r\n let appInsights = null;\r\n\r\n const instrumentationKey = process.env.REACT_APP_INSTRUMENTATION_KEY;\r\n\r\n return (\r\n
    \r\n \r\n { appInsights = getAppInsights() }}>\r\n \r\n {routes.map(route => (\r\n \r\n ))}\r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\n","import {combineReducers} from 'redux';\r\nimport documentData from './documentReducers';\r\nconst allReducers = combineReducers({\r\n documentData\r\n})\r\n\r\nexport default allReducers;","import {\r\n filterData,\r\n getLineGroup,\r\n addNewAsset,\r\n updateJsonData,\r\n editJsonData,\r\n addNewLineGroup,\r\n transform,\r\n editDataWindow1,\r\n getShortCode,\r\n editLineDataWindow1,\r\n deleteSymbolData,\r\n deleteLineData,\r\n symbolsRanking\r\n} from \"../CanvasActions\";\r\n\r\nexport default function documentReducer(state = {}, action) {\r\n switch (action.type) {\r\n case \"GET_JSON_DATA\":\r\n const lineGroupSpecification = getLineGroup(Object.entries(action.data));\r\n const shortCode = getShortCode(Object.entries(action.data));\r\n return {\r\n ...state,\r\n initialList: action.data,\r\n documentList: action.data,\r\n lineGroupSpec: lineGroupSpecification,\r\n assetsList: action.data,\r\n shortCodeList: shortCode,\r\n };\r\n case \"SYMBOLS_DETAILS\":\r\n // console.log(action.data);\r\n // const confidenceScore = [];\r\n // let k = action.data;\r\n // console.log(k);\r\n // if(k.length > 0)\r\n // k.filter(row => (row.ConfidenceScore > 90 && row.ConfidenceScore <= 100 ? confidenceScore.push(row) : \"\"));\r\n // console.log(confidenceScore);\r\n return {\r\n ...state,\r\n symbolsDetails: action.data,\r\n }\r\n case \"FILTER_LINE_GROUP\":\r\n // console.log(state.documentList)\r\n const assetsData = action.data[0];\r\n let symbolsList = action.data[1];\r\n if(Object.keys(symbolsList).length === 0) {\r\n symbolsList = state.documentList;\r\n }\r\n if (assetsData.assetID) {\r\n const filteredAssets = filterData(\r\n assetsData.lineNumber,\r\n Object.entries(symbolsList),\r\n assetsData.assetType\r\n );\r\n state.filteredList = filteredAssets;\r\n } else {\r\n state.filteredList = symbolsList;\r\n }\r\n return {\r\n ...state,\r\n selectedAsset: assetsData,\r\n };\r\n case \"ADD_NEW_ASSET\":\r\n const assets = filterData(\r\n action.data.lineNumber,\r\n Object.entries(state.documentList)\r\n );\r\n const newAsset = addNewAsset(assets, action.data);\r\n const updatedJson = updateJsonData(\r\n newAsset,\r\n state.documentList,\r\n action.data.assetType,\r\n assets[0]\r\n );\r\n const shortCodeL = getShortCode(Object.entries(updatedJson));\r\n return {\r\n ...state,\r\n newAddedAsset: newAsset,\r\n documentList: updatedJson,\r\n shortCodeList: shortCodeL,\r\n };\r\n case \"EDIT_ASSET\":\r\n const oldValue = action.data[0];\r\n const newValue = action.data[1];\r\n const asset = filterData(\r\n oldValue[\"LineNumber\"],\r\n Object.entries(state.documentList)\r\n );\r\n const editedJson = editJsonData(\r\n oldValue,\r\n newValue,\r\n state.documentList,\r\n asset[0]\r\n );\r\n return {\r\n ...state,\r\n documentList: editedJson,\r\n };\r\n case \"NEW_LINE_GROUP\":\r\n const updatedJsonData = addNewLineGroup(action.data, state.documentList);\r\n const lineGSpec = getLineGroup(Object.entries(updatedJsonData));\r\n return {\r\n ...state,\r\n documentList: updatedJsonData,\r\n lineGroupSpec: lineGSpec,\r\n };\r\n case \"NEW_LINE_NUMBER\":\r\n return {\r\n ...state,\r\n newLineNumber: action.data,\r\n };\r\n case \"TRANSFORM\":\r\n const lineGroup = filterData(\r\n action.data.lineNumber,\r\n Object.entries(state.documentList)\r\n );\r\n const transformData = transform(\r\n action.data,\r\n state.documentList,\r\n lineGroup[0]\r\n );\r\n return {\r\n ...state,\r\n documentList: transformData,\r\n };\r\n case \"EDIT_DATA\":\r\n const lineGroup1 = filterData(\r\n action.data.lineNumber,\r\n Object.entries(state.documentList)\r\n );\r\n const oldLineGroup2 = filterData(\r\n action.data.oldLineNumber,\r\n Object.entries(state.documentList)\r\n );\r\n let editedData;\r\n if (lineGroup1 === undefined) {\r\n const updatedJson1 = addNewLineGroup(action.data, state.documentList);\r\n editedData = updatedJson1;\r\n delete editedData[oldLineGroup2[0]][\"Symbols\"][action.data.id];\r\n }\r\n\r\n else {\r\n editedData = editDataWindow1(\r\n action.data,\r\n state.documentList,\r\n lineGroup1[0]\r\n );\r\n }\r\n return {\r\n ...state,\r\n documentList: editedData,\r\n };\r\n case \"EDIT_LINE_DATA\":\r\n const lineGroup2 = filterData(\r\n action.data.lineNumber,\r\n Object.entries(state.documentList)\r\n );\r\n\r\n const oldLineGroup = filterData(\r\n action.data.oldSpecification,\r\n Object.entries(state.documentList)\r\n );\r\n let modifiedData1;\r\n if (lineGroup2 === undefined) {\r\n const updatedJsonData1 = addNewLineGroup(\r\n action.data,\r\n state.documentList\r\n );\r\n modifiedData1 = updatedJsonData1;\r\n delete modifiedData1[oldLineGroup[0]][\"Lines\"][action.data.id];\r\n } else {\r\n const editedData1 = editLineDataWindow1(\r\n action.data,\r\n state.documentList,\r\n lineGroup2[0],\r\n oldLineGroup[0]\r\n );\r\n modifiedData1 = editedData1[1];\r\n }\r\n \r\n const editedShortCodeList = getShortCode(Object.entries(modifiedData1));\r\n return {\r\n ...state,\r\n documentList: modifiedData1,\r\n shortCodeList: editedShortCodeList,\r\n };\r\n case \"DELETE_SYMBOL\":\r\n const lineGroupDelete = filterData(\r\n action.data.LineNumber,\r\n Object.entries(state.documentList)\r\n );\r\n \r\n const deleteModify = deleteSymbolData(\r\n action.data,\r\n state.documentList,\r\n lineGroupDelete[0]\r\n );\r\n return {\r\n ...state,\r\n documentList: deleteModify,\r\n };\r\n case \"DELETE_LINE\":\r\n const lineGroupDeleteLine = filterData(\r\n action.data.LineNumber,\r\n Object.entries(state.documentList)\r\n );\r\n const deleteLine = deleteLineData(\r\n action.data,\r\n state.documentList,\r\n lineGroupDeleteLine[0]\r\n );\r\n return {\r\n ...state,\r\n documentList: deleteLine,\r\n };\r\n case \"EDIT_LINE_GROUP\":\r\n let jsonMod = \"\";\r\n const oldLg = action.data[0];\r\n const rowData = action.data[1];\r\n rowData.assetType = \"symbols\";\r\n const lg = filterData(\r\n rowData.LineNumber,\r\n Object.entries(state.documentList)\r\n );\r\n\r\n const tobeModified = {\r\n AgUg: rowData.ugag,\r\n Coords: rowData.coords,\r\n ExtendedBonet: rowData.extendedBonet,\r\n Fluid: rowData.fluid,\r\n FromLine: rowData.fromLine,\r\n HdrSize: rowData.hdr,\r\n Hold: rowData.hold,\r\n InsulationType: rowData.insulationType,\r\n IsJacketedLine: rowData.isJacketed,\r\n ItemOrder: rowData.itemOrder,\r\n LimitSwich: rowData.limitSwich,\r\n Quantity: rowData.quantity,\r\n Remarks: rowData.remarks,\r\n Seat: rowData.seat,\r\n SequenceNumber: rowData.Seq,\r\n ShortCode: rowData.shortCode,\r\n Size1: rowData.size1,\r\n Size2: rowData.size2,\r\n Spec: rowData.Spec,\r\n SymbolId: rowData.id,\r\n ToLine: rowData.toLine,\r\n ValveBody: rowData.valveBody,\r\n assetComponentType: rowData.assetCompType,\r\n assetType: \"symbols\",\r\n id: rowData.assetId,\r\n lineNumber: rowData.LineNumber,\r\n oldLineNumber: oldLg,\r\n specification: rowData.LineNumber,\r\n SymbolRank: rowData.SymbolRank,\r\n ConfidenceScore: rowData.ConfidenceScore,\r\n };\r\n if (lg === undefined) {\r\n jsonMod = addNewLineGroup(tobeModified, state.documentList);\r\n const lgFilter = filterData(\r\n oldLg,\r\n Object.entries(jsonMod)\r\n );\r\n delete jsonMod[lgFilter[0]][\"Symbols\"][tobeModified.id];\r\n }\r\n else {\r\n jsonMod = editDataWindow1(tobeModified,state.documentList,lg[0]);\r\n }\r\n return {\r\n ...state,\r\n documentList: jsonMod,\r\n };\r\n case \"SELECT_ASSET\" : \r\n let item = \"\";\r\n if(action.data.id === undefined) {\r\n item = undefined;\r\n }\r\n else {\r\n item = action.data;\r\n }\r\n return {\r\n ...state,\r\n selectedAssetData : action.data.id,\r\n selectedItem : item\r\n }\r\n case \"SYMBOLS_RANKING\":\r\n let ranking = \"\";\r\n if(action.data !== undefined) \r\n ranking = symbolsRanking(action.data.properties,action.data.symbolsData);\r\n return {\r\n ...state,\r\n rankingOrder : ranking,\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import \"bootstrap/dist/css/bootstrap.css\";\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport App from \"./components/App/App\";\r\nimport { PublicClientApplication } from \"@azure/msal-browser\";\r\nimport { MsalProvider } from \"@azure/msal-react\";\r\nimport { msalConfig } from \"./authConfig\";\r\nimport { toast } from \"react-toastify\";\r\nimport { Provider } from \"react-redux\";\r\nimport CanvasState from \"../src/components/redux/CanvasState\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\n\r\n// toast-configuration method,\r\n// it is compulsory method.\r\ntoast.configure();\r\n//create reduxStore\r\nconst store = CanvasState();\r\n// For GET requests\r\n/**\r\n * Initialize a PublicClientApplication instance which is provided to the MsalProvider component\r\n * We recommend initializing this outside of your root component to ensure it is not re-initialized on re-renders\r\n */\r\nconst msalInstance = new PublicClientApplication(msalConfig);\r\n// async function getToken() {\r\n// const account = msalInstance.getActiveAccount();\r\n// const response = await msalInstance.acquireTokenSilent({\r\n// ...loginRequest,\r\n// account: account,\r\n// });\r\n// return response;\r\n// }\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n","import {createStore, applyMiddleware} from 'redux';\r\nimport rootReducer from '../redux/reducers/rootReducer';\r\nimport thunk from 'redux-thunk';\r\n\r\nexport default function CanvasState() {\r\n return createStore(\r\n rootReducer,\r\n applyMiddleware(thunk)\r\n );\r\n}","import { LogLevel } from \"@azure/msal-browser\";\r\n\r\n//Configuration object to be passed to MSAL instance on creation. \r\nconst clientId = process.env.REACT_APP_CLIENT_ID;\r\nconst authority = process.env.REACT_APP_AUTHORITY;\r\nconst redirectUri = process.env.REACT_APP_REDIRECT_URI;\r\n\r\nexport const msalConfig = {\r\n auth: {\r\n clientId: clientId,\r\n authority: authority,\r\n redirectUri: redirectUri,\r\n clientCapabilities: [\"CP1\"]\r\n },\r\n cache: {\r\n cacheLocation: \"sessionStorage\", // This configures where your cache will be stored\r\n storeAuthStateInCookie: false, // Set this to \"true\" if you are having issues on IE11 or Edge\r\n },\r\n system: {\t\r\n loggerOptions: {\t\r\n loggerCallback: (level, message, containsPii) => {\t\r\n if (containsPii) {\t\t\r\n return;\t\t\r\n }\t\t\r\n switch (level) {\t\t\r\n case LogLevel.Error:\t\t\r\n // console.error(message);\t\t\r\n return;\t\t\r\n case LogLevel.Info:\t\t\r\n // console.info(message);\t\t\r\n return;\t\t\r\n case LogLevel.Verbose:\t\t\r\n // console.debug(message);\t\t\r\n return;\t\t\r\n case LogLevel.Warning:\t\t\r\n // console.warn(message);\t\t\r\n return;\t\t\r\n }\t\r\n }\t\r\n }\t\r\n }\r\n};\r\n\r\n/**\r\n * Scopes you add here will be prompted for user consent during sign-in.\r\n * By default, MSAL.js will add OIDC scopes (openid, profile, email) to any login request.\r\n */\r\nexport const loginRequest = {\r\n scopes: [\"User.Read\", \"profile\"]\r\n};\r\n\r\n// Add here the scopes to request when obtaining an access token for MS Graph API. For more information, see:\r\nexport const graphConfig = {\r\n graphMeEndpoint: \"https://graph.microsoft.com/v1.0/me\",\r\n graphProfiePicEndpoint: \"https://graph.microsoft.com/v1.0/me/photo/$value\",\r\n graphGetUsersEndpoint: \"https://graph.microsoft.com/v1.0/users\"\r\n};","import {\r\n action,\r\n computed,\r\n makeObservable,\r\n autorun,\r\n runInAction,\r\n observable,\r\n} from \"mobx\";\r\n\r\nclass UserStore {\r\n fileSucceded = [];\r\n fileSuccededPID = [];\r\n proposalno = 0;\r\n percentage = 0;\r\n droppedFiles = [];\r\n droppedPIDFiles = [];\r\n selectedFiles = [];\r\n selectedfilesforupload = [];\r\n rejectedfilesforupload = [];\r\n reportData = [];\r\n createWorkspacedata = {};\r\n editWorkspacedata = {};\r\n UploadDateForProcess = \"\";\r\n UploadRromDateForProcess = \"\";\r\n PIDToDate = \"\";\r\n editRow = [];\r\n editRowPID = [];\r\n PIDselectedRowID = [];\r\n selectedRowID = [];\r\n userGroup = [];\r\n addUserforWorkspace = [];\r\n addUserforWorkspacePID = [];\r\n splitedFileId = 0;\r\n sheetId = 0;\r\n workspaceId = 0;\r\n regExpEditID=\"\";\r\n listOfCodesEditID=\"\";\r\n columnsortFlag = false;\r\n createworkspaceflag = false;\r\n reportstamp = false;\r\n stampFilterRetain = false;\r\n PIDFilterRetain = false;\r\n accountName = \"\";\r\n showprocessgrid = 0;\r\n showprocessgridPID = 0;\r\n countforProgress = 0;\r\n countforProgressPID = 0;\r\n accesstoken = \"\";\r\n AccountInfoValue = \"\";\r\n PIDworkspaceID = 0;\r\n editworkspace = false;\r\n editworkspacePID = false;\r\n inBusinessrule = false;\r\n percentagePID = 0;\r\n workspaceName = \"\";\r\n workspaceNamePID = \"\";\r\n NewworkspaceName = \"\";\r\n NewProjectName = \"\";\r\n NewModelName = \"\";\r\n setDetectionQuery = \"\";\r\n newWorkspaceId = 0;\r\n userEmail = \"\";\r\n readOnly = false;\r\n readOnlyPID = false;\r\n inBusinessrule = false;\r\n isTickBasedIsometric = false;\r\n accepteddoc = false;\r\n accepteddocpid = false;\r\n PIDworkspaceData = [];\r\n PIDProcessData = [];\r\n processData = [];\r\n PIDwsData = [];\r\n filterProcessConfiguration = {};\r\n PIDfilterProcessConfiguration = {};\r\n stampSearchData = [];\r\n stampFilterData = [];\r\n PIDFilterData = [];\r\n PIDSearchData = [];\r\n PIDGlobalAdmin = false;\r\n confidId = 1;\r\n editConfigData = [];\r\n perPageData = localStorage.getItem(\"perPageData\") == null ? \"10\" : localStorage.getItem(\"perPageData\");;\r\n perwsdPageData = localStorage.getItem(\"perwsdPageData\") == null ? \"10\" : localStorage.getItem(\"perwsdPageData\");\r\n skipData = 0;\r\n skipwsdData = 0;\r\n afterSearch = \"\";\r\n IsTickBasedCreateWS = false;\r\n isRegExp = false;\r\n isExclusionRule = false;\r\n isGlobalListofCodes = true;\r\n regExpFields = [];\r\n accuracyPID = [];\r\n filesFilterPID = \"All\";\r\n currentPage = (this.skipData / this.perPageData) + 1;\r\n loader = false;\r\n processGridData = [];\r\n constructor() {\r\n makeObservable(this, {\r\n processGridData: observable,\r\n loader: observable,\r\n fileSucceded: observable,\r\n selectedfilesforupload: observable,\r\n rejectedfilesforupload: observable,\r\n reportstamp: observable,\r\n createWorkspacedata: observable,\r\n editWorkspacedata: observable,\r\n IsTickBasedCreateWS: observable,\r\n isRegExp: observable,\r\n selectedFiles: observable,\r\n UploadDateForProcess: observable,\r\n UploadRromDateForProcess: observable,\r\n PIDToDate: observable,\r\n fileSuccededPID: observable,\r\n editworkspace: observable,\r\n editworkspacePID: observable,\r\n proposalno: observable,\r\n inBusinessrule: observable,\r\n newWorkspaceId: observable,\r\n stampFilterRetain: observable,\r\n PIDFilterRetain: observable,\r\n NewworkspaceName: observable,\r\n NewProjectName : observable,\r\n NewModelName:observable,\r\n droppedFiles: observable,\r\n droppedPIDFiles: observable,\r\n reportData: observable,\r\n editRow: observable,\r\n editRowPID: observable,\r\n userGroup: observable,\r\n percentage: observable,\r\n createworkspaceflag: observable,\r\n columnsortFlag: observable,\r\n splitedFileId: observable,\r\n sheetId: observable,\r\n workspaceId: observable,\r\n accountName: observable,\r\n PIDselectedRowID: observable,\r\n selectedRowID: observable,\r\n showprocessgrid: observable,\r\n showprocessgridPID: observable,\r\n countforProgress: observable,\r\n countforProgressPID: observable,\r\n accesstoken: observable,\r\n AccountInfoValue: observable,\r\n PIDworkspaceID: observable,\r\n percentagePID: observable,\r\n workspaceName: observable,\r\n workspaceNamePID: observable,\r\n addUserforWorkspace: observable,\r\n addUserforWorkspacePID: observable,\r\n setDetectionQuery: observable,\r\n setUserforWorkspace: observable,\r\n setUserforWorkspacePID: observable,\r\n userEmail: observable,\r\n readOnly: observable,\r\n readOnlyPID: observable,\r\n inBusinessrule: observable,\r\n isTickBasedIsometric: observable,\r\n accepteddoc: observable,\r\n accepteddocpid: observable,\r\n PIDGlobalAdmin: observable,\r\n PIDworkspaceData: observable,\r\n PIDProcessData: observable,\r\n processData: observable,\r\n PIDwsData: observable,\r\n filterProcessConfiguration: observable,\r\n PIDfilterProcessConfiguration: observable,\r\n stampSearchData: observable,\r\n stampFilterData: observable,\r\n PIDFilterData: observable,\r\n PIDSearchData: observable,\r\n editConfigData: observable,\r\n perPageData: observable,\r\n perwsdPageData: observable,\r\n skipData: observable,\r\n skipwsdData: observable,\r\n afterSearch: observable,\r\n isExclusionRule: observable,\r\n regExpEditID: observable,\r\n isGlobalListofCodes: observable,\r\n listOfCodesEditID: observable,\r\n regExpFields: observable,\r\n currentPage: observable,\r\n // all the desired actions\r\n setCurrentPage: action,\r\n addUser: action,\r\n addFiles: action,\r\n SetDetectionQuery: action, \r\n addFilesPID: action,\r\n dropfiles: action,\r\n dropPIDfiles: action,\r\n setnewWorkspaceId: action,\r\n selectedfiles: action,\r\n selectedFilesforupload: action,\r\n rejectedFilesforupload: action,\r\n createWorkspaceflag: action,\r\n addReportdata: action,\r\n addRowdata: action,\r\n addRowdataPID: action,\r\n setEditworkspace: action,\r\n setUploadDateForProcess: action,\r\n setUploadFromDateForProcess: action,\r\n setPIDToDate: action,\r\n setEditworkspacePID: action,\r\n setInbusinessrule: action,\r\n setSplitedFileId: action,\r\n setSheetId: action,\r\n getWorkspaceId: action,\r\n setaccountName: action,\r\n getprocessGrid: action,\r\n getprocessGridPID: action,\r\n setCount: action,\r\n setCountPID: action,\r\n setreportStamp: action,\r\n setToken: action,\r\n setAccountInfo: action,\r\n doColumnsort: action,\r\n gettheToken: action,\r\n setPIDWorkspaceId: action,\r\n getPercentage: action,\r\n getPercentagePID: action,\r\n getworkspaceName: action,\r\n getworkspaceNamePID: action,\r\n SetNewworkspaceName: action,\r\n SetNewProjectName: action,\r\n SetNewModelName:action,\r\n setUserEmail: action,\r\n isreadOnly: action,\r\n isreadOnlyPID: action,\r\n setInbusinessrule: action,\r\n setTickBasedIsometric: action,\r\n isaccepteddoc: action,\r\n isaccepteddocpid: action,\r\n changePIDGlobalAdmin: action,\r\n setPIDselectedRowID: action,\r\n setSelectedRowID: action,\r\n setPIDworkspaceData: action,\r\n setPIDProcessData: action,\r\n setProcessData: action,\r\n setPIDwsData: action,\r\n setStampFilterRetain: action,\r\n setPIDFilterRetain: action,\r\n setFilterProcessConfiguration: action,\r\n setPIDFilterProcessConfiguration: action,\r\n setStampSearchData: action,\r\n setStampFilterData: action,\r\n setPIDFilterData: action,\r\n setPIDSearchData: action,\r\n confidId: observable,\r\n setConfigId: action,\r\n setEditConfigData : action,\r\n SetPerPageData: action,\r\n setPerwsdPageData: action,\r\n setSkipData: action,\r\n setSkipwsdData: action,\r\n setAfterSearch: action,\r\n setIsRegExp: action,\r\n setIsTickBasedCreateWS: action,\r\n setIsExclusionRule: action,\r\n setRegExpEditID: action,\r\n setIsGlobalListofCodes: action,\r\n setListOfCodesEditID: action,\r\n setRegExpFields: action,\r\n setAccuracyPID: action,\r\n setFilesFilterPID: action,\r\n setLoader: action,\r\n setProcessGridData: action,\r\n });\r\n }\r\n\r\n setProcessGridData(data) {\r\n this.processGridData = data;\r\n return this.processGridData;\r\n }\r\n\r\n setPIDworkspaceData(data) {\r\n this.PIDworkspaceData = data;\r\n return this.PIDworkspaceData;\r\n }\r\n\r\n setAccuracyPID(data) {\r\n this.accuracyPID = data;\r\n return this.accuracyPID;\r\n }\r\n setFilesFilterPID(data) {\r\n this.filesFilterPID = data;\r\n return this.filesFilterPID;\r\n }\r\n\r\n setRegExpFields(data) {\r\n this.regExpFields = data;\r\n return this.regExpFields;\r\n }\r\n\r\n setListOfCodesEditID(data) {\r\n this.listOfCodesEditID = data;\r\n return this.listOfCodesEditID;\r\n }\r\n\r\n setRegExpEditID(data) {\r\n this.regExpEditID = data;\r\n return this.regExpEditID;\r\n }\r\n\r\n setLoader(value) {\r\n this.loader = value;\r\n return this.loader;\r\n }\r\n\r\n setIsGlobalListofCodes(data) {\r\n this.isGlobalListofCodes = data;\r\n return this.isGlobalListofCodes;\r\n }\r\n\r\n setIsRegExp(data) {\r\n this.isRegExp = data;\r\n return this.isRegExp;\r\n }\r\n\r\n setIsExclusionRule(data) {\r\n this.isExclusionRule = data;\r\n return this.isExclusionRule;\r\n }\r\n\r\n setIsTickBasedCreateWS(data) {\r\n this.isTickBasedCreateWS = data;\r\n return this.isTickBasedCreateWS;\r\n }\r\n\r\n setAfterSearch(data) {\r\n this.afterSearch = data;\r\n return this.afterSearch;\r\n }\r\n\r\n setStampFilterData(data) {\r\n this.stampFilterData = data;\r\n return this.stampFilterData;\r\n }\r\n\r\n setPIDFilterData(data) {\r\n this.PIDFilterData = data;\r\n return this.PIDFilterData;\r\n }\r\n\r\n setPIDSearchData(data) {\r\n this.PIDSearchData = data;\r\n return this.PIDSearchData;\r\n }\r\n\r\n setStampSearchData(data) {\r\n this.stampSearchData = data;\r\n return this.stampSearchData;\r\n }\r\n\r\n setPIDProcessData(data) {\r\n this.PIDProcessData = data;\r\n return this.PIDProcessData;\r\n }\r\n\r\n setProcessData(data) {\r\n this.processData = data;\r\n return this.processData;\r\n }\r\n\r\n setPIDwsData(data) {\r\n this.PIDwsData = data;\r\n return this.PIDwsData;\r\n }\r\n\r\n setFilterProcessConfiguration(data) {\r\n this.filterProcessConfiguration = data;\r\n return this.filterProcessConfiguration;\r\n }\r\n\r\n setPIDFilterProcessConfiguration(data) {\r\n this.PIDfilterProcessConfiguration = data;\r\n return this.PIDfilterProcessConfiguration;\r\n }\r\n\r\n setStampFilterRetain(data) {\r\n this.stampFilterRetain = data;\r\n return this.stampFilterRetain;\r\n }\r\n\r\n setPIDFilterRetain(data) {\r\n this.PIDFilterRetain = data;\r\n return this.PIDFilterRetain;\r\n }\r\n \r\n\r\n setPIDselectedRowID(data) {\r\n this.PIDselectedRowID.push(data);\r\n //this.PIDselectedRowID = data;\r\n return this.PIDselectedRowID;\r\n }\r\n\r\n setSelectedRowID(data) {\r\n this.selectedRowID.push(data);\r\n //this.PIDselectedRowID = data;\r\n return this.selectedRowID;\r\n }\r\n\r\n isaccepteddoc(accepted) {\r\n this.accepteddoc = accepted;\r\n return this.accepteddoc;\r\n }\r\n isaccepteddocpid(acceptedpid) {\r\n this.accepteddocpid = acceptedpid;\r\n return this.accepteddocpid;\r\n }\r\n \r\n changePIDGlobalAdmin(dataField) {\r\n this.PIDGlobalAdmin = dataField;\r\n return this.PIDGlobalAdmin;\r\n }\r\n getPercentage(percent) {\r\n this.percentage = percent;\r\n return this.percentage;\r\n }\r\n\r\n setProprsal(data){\r\n this.proposalno = data;\r\n return this.proposalno;\r\n }\r\n\r\n getworkspaceName(name) {\r\n this.workspaceName = name;\r\n return this.workspaceName;\r\n }\r\n\r\n getworkspaceNamePID(name) {\r\n this.workspaceNamePID = name;\r\n return this.workspaceNamePID;\r\n }\r\n\r\n setEditworkspace(data){\r\n this.editworkspace = data;\r\n return this.editworkspace;\r\n }\r\n\r\n setUploadDateForProcess(date){\r\n this.UploadDateForProcess = date; \r\n return this.UploadDateForProcess;\r\n }\r\n\r\n setUploadFromDateForProcess(date){\r\n this.UploadRromDateForProcess = date; \r\n return this.UploadRromDateForProcess;\r\n }\r\n setPIDToDate(date){\r\n this.PIDToDate = date; \r\n return this.PIDToDate;\r\n }\r\n\r\n setEditworkspacePID(data){\r\n this.editworkspacePID = data;\r\n return this.editworkspacePID;\r\n }\r\n\r\n setInbusinessrule(data){\r\n this.inBusinessrule = data;\r\n return this.inBusinessrule;\r\n }\r\n\r\n setnewWorkspaceId(id) {\r\n this.newWorkspaceId = id;\r\n return this.newWorkspaceId;\r\n }\r\n\r\n setworkspaceuploadID(id){\r\n this.workspaceuploadID = id;\r\n return this.workspaceuploadID;\r\n }\r\n\r\n isreadOnly(roleid) {\r\n this.readOnly = roleid;\r\n return this.readOnly;\r\n }\r\n\r\n isreadOnlyPID(roleid) {\r\n this.readOnlyPID = roleid;\r\n return this.readOnlyPID;\r\n }\r\n\r\n SetDetectionQuery(query) {\r\n this.setDetectionQuery = query;\r\n return this.setDetectionQuery;\r\n }\r\n\r\n SetNewworkspaceName(name) {\r\n this.NewworkspaceName = name;\r\n return this.NewworkspaceName;\r\n }\r\n\r\n setEditWorkspacedata(data){\r\n this.editWorkspacedata = data;\r\n }\r\n\r\n setCreateWorkspacedata(data){\r\n this.createWorkspacedata = data;\r\n }\r\n\r\n SetNewProjectName(name) {\r\n this.NewProjectName = name;\r\n return this.NewProjectName;\r\n }\r\n\r\n SetNewModelName(name) {\r\n this.NewModelName = name;\r\n return this.NewModelName;\r\n }\r\n\r\n getPercentagePID(percent) {\r\n this.percentagePID = percent;\r\n return this.percentagePID;\r\n }\r\n\r\n doColumnsort(val) {\r\n this.columnsortFlag = val;\r\n return this.columnsortFlag;\r\n }\r\n\r\n setToken(token) {\r\n this.accesstoken = token;\r\n return this.accesstoken;\r\n }\r\n setAccountInfo(value) {\r\n this.AccountInfoValue = value;\r\n return this.AccountInfoValue;\r\n }\r\n\r\n createWorkspaceflag(val) {\r\n this.createworkspaceflag = val;\r\n }\r\n\r\n gettheToken() {\r\n return this.accesstoken;\r\n }\r\n\r\n setaccountName(name) {\r\n this.accountName = name;\r\n return this.accountName;\r\n }\r\n\r\n setUserEmail(email) {\r\n this.userEmail = email;\r\n return this.userEmail;\r\n }\r\n\r\n getprocessGrid(name) {\r\n this.showprocessgrid = name;\r\n return this.showprocessgrid;\r\n }\r\n\r\n getprocessGridPID(name) {\r\n this.showprocessgridPID = name;\r\n return this.showprocessgridPID;\r\n }\r\n\r\n getWorkspaceId(id) {\r\n this.workspaceId = id;\r\n return this.workspaceId;\r\n }\r\n\r\n setCount(count) {\r\n this.countforProgress = count;\r\n return this.countforProgress;\r\n }\r\n\r\n setCountPID(count) {\r\n this.countforProgressPID = count;\r\n return this.countforProgresspid;\r\n }\r\n\r\n addFiles(newfile) {\r\n this.fileSucceded.push(newfile);\r\n }\r\n\r\n emptySuccededFiles() {\r\n this.fileSucceded = [];\r\n this.selectedFiles = [];\r\n this.droppedFiles = [];\r\n this.selectedfilesforupload = [];\r\n this.rejectedfilesforupload = [];\r\n \r\n }\r\n\r\n emptyRejectedFiles(){\r\n this.rejectedfilesforupload = [];\r\n \r\n }\r\n\r\n emptySuccededFilesPID() {\r\n this.fileSucceded = [];\r\n this.selectedFiles = [];\r\n this.droppedPIDFiles = [];\r\n this.selectedfilesforupload = [];\r\n }\r\n\r\n selectedFilesforupload(file) {\r\n this.selectedfilesforupload = file;\r\n }\r\n\r\n rejectedFilesforupload(file) {\r\n this.rejectedfilesforupload = file;\r\n }\r\n\r\n addFilesPID(newfile) {\r\n this.fileSuccededPID.push(newfile);\r\n }\r\n\r\n addReportdata(data) {\r\n this.reportData = data;\r\n return this.reportData;\r\n }\r\n cleareReportdata () {\r\n this.reportData = [];\r\n return this.reportData;\r\n }\r\n\r\n setreportStamp(data) {\r\n this.reportstamp = data;\r\n }\r\n\r\n setUserforWorkspace(data) {\r\n this.addUserforWorkspace = data;\r\n }\r\n\r\n setUserforWorkspacePID(data) {\r\n this.addUserforWorkspacePID = data;\r\n }\r\n\r\n addUser(data) {\r\n this.userGroup = data;\r\n return this.userGroup;\r\n }\r\n\r\n addRowdata(data) {\r\n this.editRow = [];\r\n this.editRow.push(data); \r\n return this.editRow;\r\n }\r\n\r\n addRowdataPID(data) {\r\n \r\n this.editRowPID = [];\r\n this.editRowPID.push(data);\r\n return this.editRowPID;\r\n }\r\n\r\n dropfiles(file) {\r\n this.droppedFiles = file;\r\n }\r\n\r\n dropPIDfiles(file) {\r\n this.droppedPIDFiles = file;\r\n }\r\n\r\n selectedfiles(file) {\r\n this.selectedFiles = file;\r\n }\r\n\r\n setSplitedFileId(id) {\r\n this.splitedFileId = id;\r\n }\r\n\r\n setSheetId(id) {\r\n this.sheetId = id;\r\n }\r\n\r\n setPIDWorkspaceId(id) {\r\n this.PIDworkspaceID = id;\r\n return this.PIDworkspaceID;\r\n }\r\n setInbusinessrule(data){\r\n this.inBusinessrule = data;\r\n return this.inBusinessrule;\r\n }\r\n\r\n setTickBasedIsometric(value) {\r\n this.isTickBasedIsometric = value;\r\n return this.isTickBasedIsometric;\r\n }\r\n\r\n setConfigId(value) {\r\n this.confidId = value;\r\n return this.confidId;\r\n }\r\n\r\n setEditConfigData(value) {\r\n this.editConfigData = value;\r\n return this.editConfigData;\r\n }\r\n\r\n SetPerPageData(value) {\r\n this.perPageData = value;\r\n return this.perPageData;\r\n }\r\n\r\n setPerwsdPageData(value) {\r\n this.perwsdPageData = value;\r\n return this.perwsdPageData;\r\n }\r\n setSkipData(value) {\r\n this.skipData = value;\r\n return this.skipData;\r\n }\r\n\r\n setSkipwsdData(value) {\r\n this.skipwsdData = value;\r\n return this.skipwsdData;\r\n }\r\n setCurrentPage(value) {\r\n this.currentPage = value;\r\n return this.currentPage;\r\n }\r\n}\r\n\r\nconst myStore = new UserStore();\r\n\r\nexport default myStore;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport { MuiThemeProvider, Button, MenuItem, Select } from \"@material-ui/core\";\r\nimport AppHeader from \"../../AppHeader/AppHeader\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport AppFooter from \"../../AppFooter/AppFooter\";\r\nimport BreadCrumbs from \"../../Upload/BreadCrumbs/BreadCrumbs\";\r\nimport \"./setDetectionlogic.scss\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport UserStore from \"../../UserStore\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { toJS } from \"mobx\";\r\nimport { styled } from \"@material-ui/core/styles\";\r\nimport Chip from \"@material-ui/core/Chip\";\r\n\r\nconst API_Endpoint = process.env.REACT_APP_API_ENDPOINT;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formControl: {\r\n margin: theme.spacing(2),\r\n minWidth: 200,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\nexport default function SetDetectionlogic() {\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n const isEditWs = localStorage.getItem(\"Editworkspace\")\r\n ? JSON.parse(localStorage.getItem(\"Editworkspace\"))\r\n : UserStore.editworkspace;\r\n if (isEditWs && UserStore.editRow.length) {\r\n let initdata = toJS(UserStore.DetectionData);\r\n testtdata = toJS(UserStore.editRow[0].detectionExpressionArray);\r\n setData(testtdata);\r\n }\r\n }, []);\r\n\r\n const isEditWorkspace = localStorage.getItem(\"Editworkspace\")\r\n ? JSON.parse(localStorage.getItem(\"Editworkspace\"))\r\n : UserStore.editworkspace;\r\n var [detectionQuery, setdetectionquery] = React.useState([]);\r\n useEffect(() => {\r\n const sdQuery = UserStore.setDetectionQuery\r\n ? UserStore.setDetectionQuery\r\n : localStorage.getItem(\"SetDetectionQuery\")\r\n ? localStorage.getItem(\"SetDetectionQuery\")\r\n : \"\";\r\n setdetectionquery(sdQuery);\r\n }, []);\r\n\r\n let [attribute, setattribute] = React.useState([]);\r\n let [operator, setoperator] = React.useState([]);\r\n\r\n let [arr, setarr] = useState([]);\r\n let [data, setData] = useState([]);\r\n let [testtdata, settesttdata] = useState([]);\r\n let [opendialog, setopendialog] = useState(false);\r\n let [index, setindex] = useState(0);\r\n let [messageselect, setmessageselect] = useState(\"\");\r\n let [getoperand, setgetoperand] = useState(false);\r\n let [changechipvalue, setchangechipvalue] = useState(\"\");\r\n\r\n let [name, setName] = useState(\"\");\r\n let [userEmpty, setuserEmpty] = useState(false);\r\n\r\n let [valueAtt, setValueAttribute] = useState(\"\");\r\n let [valueOpt, setValueOperator] = useState(\"\");\r\n let [dailogText, setDailogtext] = useState(\"\");\r\n\r\n //----------------Chip implementation for edit------------------------------------\r\n\r\n const ListItem = styled(\"li\")(({ theme }) => ({\r\n margin: theme.spacing(0.5),\r\n }));\r\n const [chipData, setChipData] = React.useState([\r\n { key: 0, label: \"Angular\" },\r\n { key: 1, label: \"jQuery\" },\r\n { key: 2, label: \"Polymer\" },\r\n { key: 3, label: \"React\" },\r\n { key: 4, label: \"Vue.js\" },\r\n ]);\r\n\r\n const handleDelete = (chipToDelete) => () => {\r\n setData((chips) =>\r\n chips.filter((chip) => chip.index !== chipToDelete.index)\r\n );\r\n };\r\n\r\n const handleClick = (chipToDelete) => () => {\r\n setchangechipvalue(chipToDelete.index);\r\n\r\n if (\r\n chipToDelete.value === \"AND\" ||\r\n chipToDelete.value === \"OR\" ||\r\n chipToDelete.value === \"(\" ||\r\n chipToDelete.value === \")\"\r\n ) {\r\n setmessageselect(\"Operator\");\r\n setgetoperand(true);\r\n } else {\r\n setmessageselect(\"Attribute\");\r\n setgetoperand(false);\r\n }\r\n setopendialog(true);\r\n };\r\n\r\n //------------------------end of chip implementation---------------------------------\r\n\r\n const classes = useStyles();\r\n const attributes = [\r\n \"Line Number\",\r\n \"Document Number\",\r\n \"Sheet Number\",\r\n \"Revision Number\",\r\n \"Phrase1\",\r\n \"Phrase2\",\r\n \"Phrase3\",\r\n \"Phrase4\",\r\n ];\r\n\r\n const operators = [\"AND\", \"OR\", \"(\", \")\"];\r\n\r\n const handleChangeDailogDropdown = (event) => {\r\n let name = event.target.name;\r\n let value = event.target.value;\r\n let index = data.findIndex((obj) => obj.index === changechipvalue);\r\n data[index].value = value;\r\n setValueAttribute(value);\r\n };\r\n\r\n const handleChangeDropdownAttribute = (event) => {\r\n let name = event.target.name;\r\n let value = event.target.value;\r\n setattribute(value);\r\n setName(name);\r\n setValueAttribute(value);\r\n };\r\n\r\n const handleChangeDropdownOperator = (event) => {\r\n let name = event.target.name;\r\n let value = event.target.value;\r\n setoperator(value);\r\n setName(name);\r\n setValueOperator(value);\r\n };\r\n\r\n // ---------------Start: Function to add new operator------------------\r\n const AddOperator = () => {\r\n setdetectionquery([]);\r\n const indexer = data.length;\r\n if (valueOpt !== \"\") {\r\n let addSelectedValue = [\r\n ...data,\r\n { id: name, value: valueOpt, index: indexer },\r\n ];\r\n setData(addSelectedValue);\r\n\r\n if (name == 1) {\r\n setattribute(valueAtt);\r\n } else if (name == 2) {\r\n setoperator(valueOpt);\r\n }\r\n }\r\n };\r\n // ---------------End: Function to add new operator------------------\r\n\r\n // ---------------Start: Function to add new attribute------------------\r\n const AddAttribute = () => {\r\n setdetectionquery([]);\r\n if (isEditWorkspace) {\r\n const index = data.length;\r\n setindex(index + 1);\r\n } else {\r\n setindex(index + 1);\r\n }\r\n\r\n if (valueAtt.length != 0) {\r\n let attributeValue = valueAtt.toLowerCase().split(\" \");\r\n let attribute =\r\n attributeValue[0].charAt(0).toUpperCase() + attributeValue[0].slice(1);\r\n for (let i = 1; i < attributeValue.length; i++) {\r\n attribute =\r\n attribute +\r\n \" \" +\r\n attributeValue[i].charAt(0).toUpperCase() +\r\n attributeValue[i].slice(1);\r\n }\r\n valueAtt = attribute;\r\n }\r\n if (valueAtt !== \"\") {\r\n const indexer = data.length;\r\n let addSelectedValue = [\r\n ...data,\r\n { id: name, value: valueAtt, index: indexer },\r\n ];\r\n\r\n setData(addSelectedValue);\r\n if (name == 1) {\r\n setattribute(valueAtt);\r\n } else if (name == 2) {\r\n setoperator(valueOpt);\r\n }\r\n }\r\n };\r\n // ---------------End: Function to add new attribute------------------\r\n\r\n // ---------------Start: Function: Submit detection logic --------------------\r\n const handleSubmit = async (event) => {\r\n event.preventDefault();\r\n let expArray = [];\r\n\r\n expArray = data.map((a) => {\r\n return { ...a };\r\n });\r\n\r\n let res = \"\";\r\n\r\n for (var i = 0; i < expArray.length; i++) {\r\n if (\r\n expArray[i].value === \"Line Number\" ||\r\n expArray[i].value === \"Document Number\" ||\r\n expArray[i].value === \"Phrase1\" ||\r\n expArray[i].value === \"Sheet Number\" ||\r\n expArray[i].value === \"Revision Number\" ||\r\n expArray[i].value === \"Phrase2\" ||\r\n expArray[i].value === \"Phrase3\" ||\r\n expArray[i].value === \"Phrase4\"\r\n ) {\r\n expArray[i].value = true;\r\n\r\n res = res + \"true\";\r\n } else if (expArray[i].value === \"AND\") {\r\n expArray[i].value = \"&&\";\r\n res = res + \"&&\";\r\n } else if (expArray[i].value === \"OR\") {\r\n expArray[i].value = \"||\";\r\n res = res + \"||\";\r\n } else if (expArray[i].value === \"(\") {\r\n res = res + \"(\";\r\n } else if (expArray[i].value === \")\") {\r\n res = res + \")\";\r\n } else {\r\n res = res + expArray[i].value;\r\n }\r\n }\r\n // checking the result for detection logic\r\n try {\r\n var c = eval(res);\r\n const isEditWorkspaceFlag = localStorage.getItem(\"Editworkspace\")\r\n ? JSON.parse(localStorage.getItem(\"Editworkspace\"))\r\n : UserStore.editworkspace;\r\n if (\r\n isEditWorkspaceFlag === false &&\r\n res == \"\" &&\r\n !detectionQuery.length\r\n ) {\r\n setDailogtext(\"Please select a valid query\");\r\n setuserEmpty(true);\r\n } else if (\r\n isEditWorkspaceFlag === false &&\r\n res == \"\" &&\r\n UserStore.inBusinessrule === true &&\r\n !detectionQuery.length\r\n ) {\r\n setDailogtext(\"Please select a valid query\");\r\n setuserEmpty(true);\r\n } else if (expArray.length == 1) {\r\n setDailogtext(\"Please select a valid query\");\r\n setuserEmpty(true);\r\n } else if (c == true) {\r\n const resultQuery = data.map((item) => item.value).join(\" \");\r\n UserStore.SetDetectionQuery(resultQuery);\r\n localStorage.setItem(\"SetDetectionQuery\", toJS(resultQuery));\r\n if (isEditWorkspaceFlag === false) {\r\n const datatofeed = Object.values(toJS(UserStore.createWorkspacedata))\r\n .length\r\n ? toJS(UserStore.createWorkspacedata)\r\n : localStorage.getItem(\"createWorkspacedata\")\r\n ? JSON.parse(localStorage.getItem(\"createWorkspacedata\"))\r\n : {};\r\n datatofeed[\"detectionExpression\"] = resultQuery;\r\n datatofeed[\"detectionExpressionArray\"] = data;\r\n\r\n UserStore.setCreateWorkspacedata(datatofeed);\r\n localStorage.setItem(\r\n \"createWorkspacedata\",\r\n JSON.stringify(datatofeed)\r\n );\r\n } else {\r\n const datatofeed = Object.values(toJS(UserStore.editWorkspacedata))\r\n .length\r\n ? toJS(UserStore.editWorkspacedata)\r\n : localStorage.getItem(\"setEditWorkspacedata\")\r\n ? JSON.parse(localStorage.getItem(\"setEditWorkspacedata\"))\r\n : {};\r\n datatofeed[\"detectionExpression\"] = resultQuery;\r\n datatofeed[\"detectionExpressionArray\"] = data;\r\n\r\n UserStore.setEditWorkspacedata(datatofeed);\r\n localStorage.setItem(\r\n \"setEditWorkspacedata\",\r\n JSON.stringify(datatofeed)\r\n );\r\n }\r\n navigatetoWorkSpace();\r\n } else {\r\n const resultQuery =\r\n data.length != 0\r\n ? data.map((item) => item.value).join(\" \")\r\n : detectionQuery;\r\n UserStore.SetDetectionQuery(resultQuery);\r\n localStorage.setItem(\"SetDetectionQuery\", toJS(resultQuery));\r\n if (resultQuery == \"\") {\r\n setDailogtext(\"Please select a detection query\");\r\n setuserEmpty(true);\r\n } else {\r\n if (isEditWorkspaceFlag === false) {\r\n const datatofeed = Object.values(\r\n toJS(UserStore.createWorkspacedata)\r\n ).length\r\n ? toJS(UserStore.createWorkspacedata)\r\n : localStorage.getItem(\"createWorkspacedata\")\r\n ? JSON.parse(localStorage.getItem(\"createWorkspacedata\"))\r\n : {};\r\n datatofeed[\"detectionExpression\"] = resultQuery;\r\n\r\n UserStore.setCreateWorkspacedata(datatofeed);\r\n localStorage.setItem(\r\n \"createWorkspacedata\",\r\n JSON.stringify(datatofeed)\r\n );\r\n } else {\r\n const datatofeed = Object.values(toJS(UserStore.editWorkspacedata))\r\n .length\r\n ? toJS(UserStore.editWorkspacedata)\r\n : localStorage.getItem(\"setEditWorkspacedata\")\r\n ? JSON.parse(localStorage.getItem(\"setEditWorkspacedata\"))\r\n : {};\r\n if (resultQuery === \"\") {\r\n const sdQuery = UserStore.setDetectionQuery\r\n ? UserStore.setDetectionQuery\r\n : localStorage.getItem(\"SetDetectionQuery\")\r\n ? localStorage.getItem(\"SetDetectionQuery\")\r\n : \"\";\r\n datatofeed[\"detectionExpression\"] = sdQuery;\r\n } else {\r\n datatofeed[\"detectionExpression\"] = resultQuery;\r\n }\r\n\r\n UserStore.setEditWorkspacedata(datatofeed);\r\n localStorage.setItem(\r\n \"setEditWorkspacedata\",\r\n JSON.stringify(datatofeed)\r\n );\r\n }\r\n navigatetoWorkSpace();\r\n }\r\n }\r\n } catch (error) {\r\n setDailogtext(\"Please Select a valid Expression\");\r\n setuserEmpty(true);\r\n }\r\n };\r\n // ---------------End: Function: Submit detection logic --------------------\r\n\r\n const navigatetoWorkSpace = () => {\r\n if (isEditWorkspace === true) {\r\n history.push(\r\n `/Workspace/EditWorkSpaceStamp/SetDetectionlogic/RegularExpression`\r\n );\r\n } else\r\n history.push(\r\n `/Workspace/CreateNewWorkspace/SetDetectionlogic/RegularExpression`\r\n );\r\n };\r\n\r\n const navigatetoWorkSpaceAgain = () => {\r\n if (isEditWorkspace === true) {\r\n history.push(`/Workspace/EditWorkSpaceStamp`);\r\n } else history.push(\"/Workspace/CreateNewWorkspace\");\r\n };\r\n\r\n const handleCloseEmptyUser = () => {\r\n setuserEmpty(false);\r\n };\r\n\r\n const handledailogClose = () => {\r\n setopendialog(false);\r\n };\r\n\r\n // -------------------Start:Function: Reset the detection logic-------------------\r\n const doReset = () => {\r\n setData([]);\r\n setarr([]);\r\n setattribute([]);\r\n setoperator([]);\r\n setValueAttribute([]);\r\n setValueOperator([]);\r\n setdetectionquery(\"\");\r\n };\r\n // -------------------End:Function: Reset the detection logic-------------------\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    \r\n {isEditWorkspace ? \"Edit\" : \"Create\"} Project Workspace\r\n

    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n Set Detection Logic\r\n \r\n
    \r\n \r\n \r\n \r\n Reset\r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n Select Attribute\r\n \r\n \r\n {attributes.map((name) => (\r\n \r\n {name}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n Select Operator\r\n \r\n \r\n {operators.map((name) => (\r\n \r\n {name}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {arr.map((name) => (\r\n
    {name}
    \r\n ))}\r\n \r\n Preview\r\n

    \r\n \r\n {data.map((data) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n
    \r\n \r\n Next\r\n \r\n {\r\n isEditWorkspace\r\n ? history.push(`/Workspace/EditWorkSpaceStamp`)\r\n : history.goBack(-1);\r\n }}\r\n style={{\r\n background: \"#ffffff\",\r\n border: \"0.05vw solid #0c629b\",\r\n borderRadius: \"0.15vw\",\r\n width: \"8.4vw\",\r\n height: \"2.29vw\",\r\n padding: \"0.15vw 0\",\r\n fontSize: \"0.9vw\",\r\n color: \"#0c629b\",\r\n textTransform: \"none\",\r\n }}\r\n >\r\n Cancel\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dailogText}\r\n\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Select {messageselect}
    \r\n
    \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Select Attribute\r\n \r\n \r\n {getoperand\r\n ? operators.map((name) => (\r\n \r\n {name}\r\n \r\n ))\r\n : attributes.map((name) => (\r\n \r\n {name}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport './AppFooter.scss';\r\n\r\nexport default function AppFooter() {\r\n return (\r\n
    \r\n
    \r\n

    © Petrofac Limited 2021

    \r\n
    \r\n
    \r\n )\r\n}\r\n","import { graphConfig } from \"./authConfig\";\r\n\r\n/**\r\n * Attaches a given access token to a MS Graph API call. Returns information about the user\r\n * @param accessToken \r\n */\r\nexport async function callMsGraph(accessToken, data) {\r\n const headers = new Headers();\r\n const bearer = `Bearer ${accessToken}`;\r\n\r\n headers.append(\"Authorization\", bearer);\r\n headers.append(\"Content-Type\", \"application/json\");\r\n headers.append(\"Accept\", \"application/json\");\r\n\r\n const options = {\r\n method: \"GET\",\r\n headers: headers\r\n };\r\n\r\n //graph me API\r\n // return fetch(graphConfig.graphMeEndpoint, options)\r\n // .then(response => response.json())\r\n // .catch(error => console.log(error));\r\n\r\n //graph profile pic API\r\n if (data === \"picture\") {\r\n return fetch(graphConfig.graphProfiePicEndpoint, options)\r\n .then(response => response.blob())\r\n .catch(error => console.log(error));\r\n }\r\n //graph get users API\r\n else\r\n return fetch(graphConfig.graphGetUsersEndpoint, options)\r\n .then(response => response.json())\r\n .catch(error => console.log(error));\r\n}\r\n","import { graphConfig } from \"./authConfig\";\r\n\r\n/**\r\n * Attaches a given access token to a MS Graph API call. Returns information about the user\r\n * @param accessToken \r\n */\r\nexport async function profilePic(accessToken) {\r\n const headers = new Headers();\r\n const bearer = `Bearer ${accessToken}`;\r\n\r\n headers.append(\"Authorization\", bearer);\r\n headers.append(\"Content-Type\", \"application/json\");\r\n headers.append(\"Accept\", \"application/json\");\r\n\r\n const options = {\r\n method: \"GET\",\r\n headers: headers\r\n };\r\n\r\n //graph profile pic API\r\n return fetch(graphConfig.graphProfiePicEndpoint, options)\r\n .then(response => response)\r\n .catch(error => console.log(error));\r\n}\r\n","import React, { useRef, useState, useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\nimport { callMsGraph } from \"../../graph\";\r\nimport { loginRequest } from \"../../authConfig\";\r\nimport { profilePic } from \"../../profilePic\";\r\nimport UserStore from \"../UserStore\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport { toast } from \"react-toastify\";\r\nimport axios from \"axios\";\r\nimport \"./AppHeader.scss\";\r\nimport { toJS } from \"mobx\";\r\nimport { useIdleTimer } from 'react-idle-timer';\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport {v4 as uuidv4} from 'uuid';\r\n\r\n\r\n\r\nexport default function AppHeader() {\r\n const history = useHistory();\r\n const { instance, accounts } = useMsal();\r\n let [accountsValue] = accounts;\r\n let graphData, graphDataforUsers, theImage;\r\n const timeout = parseInt(process.env.REACT_APP_SESSION_TIMEOUT); /* 5 minutes in milli seconds - 300000, 1800000 for 30 minutes */\r\n const [remaining, setRemaining] = useState(timeout)\r\n const [elapsed, setElapsed] = useState(0)\r\n const [lastActive, setLastActive] = useState(+new Date())\r\n const [isIdle, setIsIdle] = useState(false);\r\n const [show,setShow] = useState(false);\r\n /* logic for session time out */\r\n const handleOnIdle = async() =>{\r\n // calling api for concurrent session management;\r\n const options = {\r\n \"UserId\": localStorage.getItem(\"userEmail\"),\r\n \"UniqueSessionCode\": localStorage.getItem(\"uuid\"),\r\n }\r\n \r\n const res = await axios.post(\r\n APIEndpoint + `/LogoutSessionTable`,\r\n options\r\n );\r\n localStorage.removeItem(\"uuid\");\r\n \r\n instance.logoutRedirect({ postLogoutRedirectUri: \"/\" });\r\n }\r\n\r\n const {\r\n reset,\r\n pause,\r\n resume,\r\n getRemainingTime,\r\n getLastActiveTime,\r\n getElapsedTime\r\n } = useIdleTimer({\r\n timeout,\r\n onIdle: handleOnIdle\r\n })\r\n\r\n useEffect(() => {\r\n setRemaining(getRemainingTime())\r\n setLastActive(getLastActiveTime())\r\n setElapsed(getElapsedTime())\r\n\r\n setInterval(() => {\r\n setRemaining(getRemainingTime())\r\n setLastActive(getLastActiveTime())\r\n setElapsed(getElapsedTime())\r\n }, 1000)\r\n }, [])\r\n\r\n const handleClose = () => {\r\n setShow(false);\r\n };\r\n const sessionTimeoutNotify = parseInt(process.env.REACT_APP_SESSION_TIMEOUT_NOTIFY);\r\n useEffect(() => {\r\n if(remaining <= sessionTimeoutNotify && remaining > 1) {\r\n setShow(true);\r\n }\r\n if(remaining <= 1 || remaining > sessionTimeoutNotify) {\r\n setShow(false);\r\n }\r\n },[remaining]);\r\n\r\n useEffect(() => {\r\n if(localStorage.getItem(\"apicalls\") === \"active\") {\r\n pause();\r\n }\r\n if(localStorage.getItem(\"apicalls\") === \"inactive\") {\r\n resume();\r\n setRemaining(timeout);\r\n localStorage.setItem(\"apicalls\",\"\")\r\n }\r\n },[localStorage.getItem(\"apicalls\")])\r\n\r\n const handleLogout = async() => {\r\n // calling api for concurrent session management;\r\n const options = {\r\n \"UserId\": localStorage.getItem(\"userEmail\"),\r\n \"UniqueSessionCode\": localStorage.getItem(\"uuid\"),\r\n }\r\n \r\n const res = await axios.post(\r\n APIEndpoint + `/LogoutSessionTable`,\r\n options\r\n );\r\n localStorage.removeItem(\"uuid\");\r\n\r\n instance.logoutRedirect({ postLogoutRedirectUri: \"/\" });\r\n \r\n };\r\n\r\n const navigateToHome = () => {\r\n history.push(\"/\");\r\n };\r\n\r\n const APIEndpoint = process.env.REACT_APP_API_ENDPOINT;\r\n useEffect(() => {\r\n if (accountsValue) {\r\n apigraph();\r\n getToken();\r\n UserStore.setaccountName(accountsValue.name);\r\n UserStore.setUserEmail(accountsValue.username.toLowerCase());\r\n localStorage.setItem('userEmail', accountsValue.username.toLowerCase());\r\n UserStore.setAccountInfo(accountsValue); \r\n }\r\n }, [accountsValue]);\r\n\r\n\r\n let sessionValidateTime = parseInt(process.env.REACT_APP_VALIDATE_SESSION_TIME);\r\n const validateSession = async(options) => {\r\n const res = await axios.post(\r\n APIEndpoint + `/ValidateSessionTable`,\r\n options\r\n );\r\n \r\n if(res.data === false) {\r\n handleLogout();\r\n }\r\n else\r\n setTime(sessionValidateTime);\r\n\r\n }\r\n /* validate if user session is active or not every 20 secs */\r\n\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n const options = {\r\n \"UserId\": localStorage.getItem(\"userEmail\"),\r\n \"UniqueSessionCode\": localStorage.getItem(\"uuid\"),\r\n }\r\n\r\n validateSession(options);\r\n }, sessionValidateTime);\r\n return () => clearInterval(interval);\r\n }, []);\r\n const [time,setTime] = useState(sessionValidateTime);\r\n \r\n async function getToken() {\r\n const response = await instance.acquireTokenSilent({\r\n ...loginRequest,\r\n scopes: [process.env.REACT_APP_API_SCOPE],\r\n account: accountsValue ? accountsValue : toJS(UserStore.AccountInfoValue),\r\n });\r\n UserStore.setToken(response.accessToken);\r\n if(localStorage.getItem(\"uuid\") === null) {\r\n let myuuid = uuidv4();\r\n localStorage.setItem(\"uuid\",myuuid);\r\n const options = {\r\n \"UserId\": localStorage.getItem(\"userEmail\"),\r\n \"UniqueSessionCode\": localStorage.getItem(\"uuid\"),\r\n }\r\n\r\n // calling api for concurrent session management;\r\n \r\n const res = axios.post(\r\n APIEndpoint + `/LoginSessionTable`,\r\n options\r\n );\r\n }\r\n }\r\n axios.interceptors.request.use(\r\n (config) => {\r\n let token = UserStore.accesstoken;\r\n if (token) {\r\n config.headers[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n return config;\r\n },\r\n (error) => {\r\n Promise.reject(error);\r\n }\r\n );\r\n \r\n axios.interceptors.response.use(\r\n (response) => {\r\n return response;\r\n },\r\n async function (error) {\r\n const originalRequest = error.config;\r\n if (error.response.status === 200) {\r\n toast.success(\"successful\", { autoClose: 3000 });\r\n } else if (error.response.status === 400) {\r\n toast.error(\r\n \"Request error:\" + error.response.data.map((row) => row.error),\r\n {\r\n // Set to 5sec\r\n position: toast.POSITION.TOP_LEFT,\r\n autoClose: 5000,\r\n }\r\n );\r\n } else if (error.response.status === 401) {\r\n // toast.error(\"Unauthorized user\", {\r\n // // Set to 5sec\r\n // position: toast.POSITION.BOTTOM_LEFT,\r\n // autoClose: 5000,\r\n // });\r\n \r\n try {\r\n getToken();\r\n return axios(originalRequest);\r\n } catch (_error) {\r\n return Promise.reject(_error);\r\n }\r\n } else if (error.response.status === 404) {\r\n toast.error(\"Service Not found\", {\r\n // Set to 5sec\r\n position: toast.POSITION.BOTTOM_LEFT,\r\n autoClose: 5000,\r\n });\r\n } else if (error.response.status === 408) {\r\n toast.error(\"Request timeout\", {\r\n // Set to 5sec\r\n position: toast.POSITION.BOTTOM_LEFT,\r\n autoClose: 5000,\r\n });\r\n } else if (error.response.status === 500) {\r\n toast.error(\"Internal Server Error\", {\r\n // Set to 5sec\r\n position: toast.POSITION.BOTTOM_LEFT,\r\n autoClose: 5000,\r\n });\r\n } else if (error.response.status === 501) {\r\n toast.error(\"Not Implemented\", {\r\n // Set to 5sec\r\n position: toast.POSITION.BOTTOM_LEFT,\r\n autoClose: 5000,\r\n });\r\n } else if (error.response.status === 502) {\r\n toast.error(\"Bad Gateway\", {\r\n // Set to 5sec\r\n position: toast.POSITION.BOTTOM_LEFT,\r\n autoClose: 5000,\r\n });\r\n } else if (error.response.status === 503) {\r\n toast.error(\"Service Unavailable\", {\r\n // Set to 5sec\r\n position: toast.POSITION.BOTTOM_LEFT,\r\n autoClose: 5000,\r\n });\r\n } else {\r\n }\r\n return error.response;\r\n },\r\n (err) => {}\r\n );\r\n async function apigraph() {\r\n // Silently acquires an access token which is then attached to a request for MS Graph data\r\n const res = await instance.acquireTokenSilent({\r\n ...loginRequest,\r\n account: accountsValue,\r\n });\r\n theImage = await profilePic(res.accessToken);\r\n const profilepic = \"picture\";\r\n const userData = \"userdata\";\r\n graphData = await callMsGraph(res.accessToken, profilepic);\r\n graphDataforUsers = await callMsGraph(res.accessToken, userData);\r\n UserStore.addUser(graphDataforUsers.value);\r\n\r\n const reader = new FileReader();\r\n const preview = document.querySelector(\".navbar-logo\");\r\n if (theImage.ok === true) {\r\n reader.addEventListener(\r\n \"load\",\r\n function () {\r\n // convert image file to base64 string\r\n preview.src = reader.result;\r\n },\r\n false\r\n );\r\n\r\n if (graphData) {\r\n reader.readAsDataURL(graphData);\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n {\"session will be expired in 60 seconds.\"}\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n\r\n
    \r\n );\r\n}\r\n","import React from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Link from '@material-ui/core/Link';\r\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\r\nimport UserStore from '../../UserStore';\r\nimport './BreadCrumbs.scss';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n '& > * + *': {\r\n marginTop:theme.spacing(2),\r\n },\r\n },\r\n }));\r\n\r\n function BreadCrumbs(props) { \r\n const classes = useStyles();\r\n const { history, location: { pathname }} = props;\r\n const pathnames = pathname.split(\"/\").filter(x => x);\r\n\r\n var wname = \"\";\r\n\r\n // condition for SR\r\n\r\n if(pathnames.includes('Workspace')) {\r\n if(UserStore.workspaceName == '' && UserStore.workspaceId == 0) {\r\n if(localStorage.getItem('WorkspaceId') && localStorage.getItem('workspaceName')) {\r\n UserStore.getWorkspaceId(localStorage.getItem('WorkspaceId') ? localStorage.getItem('WorkspaceId'): 0);\r\n UserStore.setworkspaceuploadID(localStorage.getItem('WorkspaceId') ? localStorage.getItem('WorkspaceId'): 0);\r\n UserStore.getworkspaceName(localStorage.getItem('workspaceName') ? localStorage.getItem('workspaceName'): '');\r\n }\r\n }\r\n wname = !pathnames.includes('CreateNewWorkspace') ? `${UserStore.workspaceName}` : ``;\r\n }\r\n // condition for pid\r\n if(pathnames.includes('WorkspacePID')) {\r\n if(UserStore.workspaceNamePID == '' && UserStore.PIDworkspaceID == 0) {\r\n if(localStorage.getItem('WorkspaceIdPID') && localStorage.getItem('workspaceNamePID')) {\r\n UserStore.setPIDWorkspaceId(localStorage.getItem('WorkspaceIdPID') ? localStorage.getItem('WorkspaceIdPID'): 0);\r\n UserStore.getworkspaceNamePID(localStorage.getItem('workspaceNamePID') ? localStorage.getItem('workspaceNamePID'): '');\r\n }\r\n }\r\n wname = !pathnames.includes('CreateNewWorkspace') ? `${UserStore.workspaceNamePID}` : ``;\r\n }\r\n // Logic for editing the breadcrumbs name\r\n return (\r\n
    \r\n } aria-label=\"breadcrumb\" style={{marginLeft: \"1%\"}}>\r\n history.push(\"/\")}>Home\r\n { pathnames.map((name,index) => {\r\n if(name === 'Upload') {\r\n name = name.replace(/Upload/, `Upload Files`);\r\n }\r\n if(name === 'CreateNewWorkspace') {\r\n name = name.replace(/CreateNewWorkspace/, 'Create New Workspace');\r\n }\r\n if(name === 'UploadFiles') {\r\n name = name.replace(/UploadFiles/, 'Upload Files');\r\n }\r\n if(name === 'Workspace' || name === 'workspace') {\r\n name = name.replace(/Workspace/, `Project Workspace`);\r\n }\r\n if(name === 'SetDetectionlogic') {\r\n name = name.replace(/SetDetectionlogic/, `Set Detection Logic`);\r\n }\r\n if(name === 'RegularExpression') {\r\n name = name.replace(/RegularExpression/, `Regular Expression`);\r\n }\r\n if(name === 'Businessrulessetup') {\r\n name = name.replace(/Businessrulessetup/, `Business Rules Setup`);\r\n }\r\n if(name === 'EditWorkSpaceStamp') {\r\n name = name.replace(/EditWorkSpaceStamp/, `Edit Workspace`);\r\n }\r\n if(name === 'EditWorkspace') {\r\n name = name.replace(/EditWorkspace/, `Edit Workspace`);\r\n }\r\n if(name === 'WorkspacePID') {\r\n name = name.replace(/WorkspacePID/, `Project Workspace PID`);\r\n }\r\n if(name === 'WorkspacePid') {\r\n name = name.replace(/WorkspacePid/, `Project Workspace PID`);\r\n }\r\n if(name === 'OverallMTO') {\r\n name = name.replace(/OverallMTO/, `Overall MTO`);\r\n }\r\n if(name === 'EditConfiguration') {\r\n name = name.replace(/EditConfiguration/, `Edit Configuration`);\r\n }\r\n \r\n let routeTo = pathnames.slice(0, index+1).join('/');\r\n routeTo = \"/\" + routeTo;\r\n const isLast = index === pathnames.length -1;\r\n return isLast ? (\r\n {name}\r\n ) : \r\n (\r\n history.push(routeTo)} key={index}>{name}\r\n ) \r\n })} \r\n \r\n {pathnames.length > 1 && {wname.length === 0 ? \"\" : \"Workspace Name:\"} {wname}}\r\n
    \r\n );\r\n};\r\nexport default withRouter(BreadCrumbs);\r\n"],"sourceRoot":""}