{"version":3,"sources":["../navisModels.ts","../modifiers.ts","../disciplinesFile.ts","Utilities/DataTypes/Error.ts","Utilities/ApiCalls.ts","Utilities/DataTypes/User.ts","Utilities/DataTypes/Hub.ts","Utilities/DataTypes/Log.ts","Utilities/Functions/parseJson.ts","Utilities/DataTypes/WorkItem.ts","Utilities/DataTypes/Model.ts","Utilities/DataTypes/DesignAutomationEngine.ts","Utilities/DataTypes/Project.ts","Utilities/DataTypes/Config.ts","Utilities/AppState.ts","Utilities/Functions/objectUtils.ts","Components/SortedTable.tsx","Components/Loading.tsx","Components/SearchableAndSortableTable.tsx","Components/Settings/HubsList.tsx","Components/Settings/LogsList.tsx","Components/Settings/EngineList.tsx","Components/VersionButton.tsx","Pages/SettingsPage.tsx","Components/ErrorBar.tsx","Components/Header.tsx","Components/Layout.tsx","Pages/LoadingPage.tsx","Pages/LoginPage.tsx","Components/SimpleDate.tsx","Components/ProjectsList.tsx","Utilities/Functions/arrayUtils.ts","Pages/ProjectsPage.tsx","Pages/Page404.tsx","Components/NextRunButton.tsx","Components/ModelsList.tsx","Components/SelectEngine.tsx","Components/ConfirmRunAllModal.tsx","Components/RunAllButton.tsx","Components/ProjectPanel.tsx","Components/ProjectsListSidePanel.tsx","Components/RefreshButton.tsx","Pages/SingleProjectPage.tsx","Pages/SingleHubPage.tsx","Components/WorkItemsList.tsx","Components/ModelPanel.tsx","Pages/SingleModelPage.tsx","Pages/SingleLogPage.tsx","Pages/SingleEnginePage.tsx","Pages/SingleWorkitemPage.tsx","Components/Contexts.tsx","Components/Spinner.tsx","Components/SelectOptions.tsx","Components/Icons.tsx","Components/DocumentTree.tsx","Components/DocumentList.tsx","Components/Filter.tsx","Components/DocumentFilter.tsx","Utilities/DataTypes/Highcharts/Events.ts","Components/PieChartFigure.tsx","Utilities/classes/splashPage.ts","Utilities/classes/sheets.ts","Utilities/classes/sourceModels.ts","Utilities/SubmittalReporting.ts","Components/DrilldownList.tsx","Utilities/classes/excel.ts","Components/CollectSubmittal.tsx","Utilities/classes/layers/workStatus.ts","Utilities/classes/layers/clearances.ts","Utilities/classes/layers/allDiscipline.ts","Utilities/classes/layers/layerSheet.ts","Utilities/classes/layers/layersFile.ts","Utilities/classes/revitCoordinatesFile.ts","Utilities/classes/sharedParametersFile.ts","Utilities/classes/revitWarningsFile.ts","Utilities/classes/supplierCodesFile.ts","Utilities/classes/buildingModelCodesFile.ts","Utilities/classes/upnFile.ts","Utilities/classes/modelTypesFile.ts","Utilities/classes/largeProjectsFile.ts","Components/GenerateReportButton.tsx","Utilities/GenerateReport.ts","Pages/ReportingPage.tsx","App.tsx","Utilities/i18next.ts","registerServiceWorker.js","index.js"],"names":["Modifiers","Error","_class","_ref","title","message","appState","_classCallCheck","_initializerDefineProperty","_descriptor","_descriptor2","_appState","this","_title","_message","clear","bind","_createClass","key","value","_this","setErrors","errors","filter","val","get","_ref2","newError","concat","_applyDecoratedDescriptor","prototype","observable","configurable","enumerable","writable","initializer","_regeneratorRuntime","e","t","r","Object","n","hasOwnProperty","o","defineProperty","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","ApiCalls","_PrepSubmittalReporting","_GetLayersXlsx","_GetLargeProjectsDb","_GetLargeProjects","_GetRevitCoordinates","_GetSharedParameters","_GetRevitWarnings","_GetSupplierCodesDb","_GetDisciplinesDb","_GetSupplierCodes","_GetBuildingSectorCodes","_ValidateMpaResults","_GetSubmittal","SimpleGet","btoa","window","location","href","log","engine","SimplePatch","id","interface","_ref3","file","SimplePost","_ref4","hub","hubId","_ref5","includeDisabled","_ref6","projectId","_ref7","project","toInterface","_ref8","body","_ref9","_ref10","_ref11","_ref12","folderId","_ref13","_ref14","model","_ref15","_ref16","_ref17","url","options","reject","axios","delete","result","data","error","_error$response7","_error$response8","response","status","statusText","_ref18","workItem","_x","_asyncToGenerator","_callee","submittal","template","_context","chart","text","tooltip","pointFormat","accessibility","point","valueSuffix","plotOptions","pie","allowPointSelect","cursor","dataLabels","enabled","format","series","reporting","report","indexFailed","apply","arguments","_callee2","_yield$Promise$all","_yield$Promise$all2","xlsx","_context2","all","_slicedToArray","_callee3","_context3","_callee4","_yield$Promise$all3","_yield$Promise$all4","_context4","_callee5","_yield$Promise$all5","_yield$Promise$all6","_context5","_callee6","_yield$Promise$all7","_yield$Promise$all8","_context6","_callee7","_yield$Promise$all9","_yield$Promise$all10","_context7","_callee8","_context8","_callee9","_context9","_callee10","_yield$Promise$all11","_yield$Promise$all12","_context10","_callee11","_yield$Promise$all13","_yield$Promise$all14","_context11","_x2","_callee12","_yield$Promise$all15","_yield$Promise$all16","_context12","_x3","_callee13","_yield$Promise$all17","_yield$Promise$all18","link","_context13","version","fileId","post","_error$response","_error$response2","_error$response3","patch","_error$response4","_error$response5","_error$response6","console","_error$response9","_error$response10","_error$response11","User","email","permissions","profilePicture","token","logout","find","role","computed","getOwnPropertyDescriptor","AutoSyncIntervalType","Hub","_dec","action","bound","_dec2","_dec3","_dec4","_dec5","_dec6","_dec7","_dec8","_dec9","params","region","applicationUrl","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","_descriptor8","_descriptor9","_descriptor10","_descriptor11","secondsBetweenRetry","autoEnableProjects","autoEnableModels","processFamilySizes","groupNameParamName","businessLineParamName","autoSyncProjectFolderTrees","autoSyncInterval","autoSyncIntervalType","lastInterface","JSON","stringify","PatchHub","fetchUser","fetchProjects","seconds","save","runInAction","toLowerCase","Log","getLogFile","ready","_this2","downloadValue","load","bytes","Uint8Array","charCodeAt","blob","Blob","FileSaver","saveAs","parseJson","json","parse","err","dayjs","extend","utc","timezone","calendar","advancedFormat","WorkItem","props","_descriptor12","_descriptor13","_descriptor14","_descriptor15","_descriptor16","_descriptor17","workItemId","activityId","runBy","inputJson","outputJson","started","tz","guess","undefined","isCompositeDesign","daTimeQueued","daTimeFinished","daTimeDownloadStarted","daTimeInstructionsStarted","daTimeInstructionsEnded","daTimeUploadEnded","fetched","getWorkItem","diff","split","shift","_this$started","_this$daTimeQueued","_this$daTimeDownloadS","_this$daTimeInstructi","_this$daTimeInstructi2","_this$daTimeUploadEnd","ModelType","Model","urn","pathInProject","lastPublish","lastStatus","enabledOn","firstExtraction","lastExtraction","designAutomationEngine","GetModelRuns","IWorkItems","workItems","map","sort","b","_a$started","isBefore","RunModelMPA","_this3","DeleteModel","setModels","models","_this4","_this5","_this6","PatchModel","_this$lastExtraction","_this$project","_this$project$hub","nextPossible","add","isAfter","_this$project$hub2","substring","DesignAutomationEngine","_name$split$pop","_name$split$pop2","zipActivityId","product","year","patchDesignAutomationEngines","postUploadAppBundle","ProjectStatus","Project","_sync","_refresh","acadEngine","enabledBy","modelCount","lastFolderTreeSync","_engine","_acadEngine","hubs","x","designAutomationEngines","_this2$_engine","_this3$_acadEngine","refresh","GetModels","IModels","RunFilteredModels","RunAllModels","_this7","webhooksLoading","GetWebHooks","hooks","webhooks","_appState$user","_this8","user","_this9","_this10","_this11","SyncProjectFolderTree","_this12","GetProject","PatchProject","_this$engine","_this$acadEngine","_this$hub","Config","isAutocadEnabled","AppState","history","fetchTimezones","fetchDesignAutomationEngines","fetchHubs","fetchLogs","fetchConfig","finally","setReady","state","authUrl","projects","RefreshHubs","modelId","fetch","fetchAuthUrl","setAuthUrl","getTimezones","timezones","getDesignAutomationEngines","engines","localeCompare","numeric","GetHubs","GetConfig","config","GetProjects","_projects$map","_this9$projects","_step","nextProjects","found","_iterator","_createForOfIteratorHelper","proj","_projects$map2","_projects$map3","getLogs","logNames","logs","getByStringPath","obj","accessor","currentObj","_currentObj","SortedTable","observer","items","onItemInvoked","columns","onRenderRow","sortedColumnKey","selectedRowId","defaultSort","_useState","useState","_useState2","currentColumns","setCurrentColumns","_useState3","_useState4","lastColumn","setLastColumn","_useState5","_useState6","sortedItems","setSortedItems","useEffect","column","onColumnClick","ev","keepSort","newColumns","currColumn","currCol","newCol","isSortedDescending","isSorted","sorted","_currColumn$data","sortKey","finalKey","fieldName","aVal","bVal","second","first","String","_objectSpread","direction","filtered","React","createElement","DetailsList","selectionMode","SelectionMode","none","layoutMode","DetailsListLayoutMode","justified","constrainMode","ConstrainMode","horizontalConstrained","DetailsRow","assign","onClick","item","styles","cell","backgroundColor","Loading","style","display","flex","alignItems","justifyContent","height","className","SearchableAndSortableTable","titleLink","placeholder","rightTitle","showSearchCount","loading","setFoundItems","search","setSearch","searchedItems","setSearchedItems","lowerCaseTerm","searchTerm","indexOf","flexDirection","padding","Link","color","textDecoration","to","SearchBox","inputMode","onChange","width","textAlign","fontWeight","overflowY","HubsList","useTranslation","useHistory","minWidth","onRender","HubToggle","Toggle","disabled","applicationAdmin","checked","stopPropagation","toggleEnabled","LogsList","DefaultButton","download","EngineList","isResizable","VersionButton","position","bottom","right","SettingsPage","_appState$user2","_appState$user3","handleDownloadAll","useCallback","_appState$logs","Fragment","borderRight","borderBottom","overflow","refreshHubs","ErrorBar","MessageBar","messageBarType","MessageBarType","onDismiss","Header","marginRight","src","borderRadius","PrimaryButton","iconProps","iconName","Layout","children","index","LoadingPage","LoginPage","margin","maxWidth","marginTop","border","Text","variant","block","SimpleDate","date","toDate","toLocaleString","ProjectsList","_appState$config","useParams","showDisabledProjects","setLoading","_item$hub","RevitVersion","rvtYearIdx","arr","predicate","findIndexOf","col","splice","AutocadVersion","fetchDisabledProjects","allProjects","enabledProjects","_project$engine","_project$engine2","_project$acadEngine","_project$acadEngine$d","label","replace","ProjectsPage","Page404","NextRunButton","_model$nextRun","_model$project$engine","_model$project$acadEn","_model$nextRun2","nextRun","isDisabled","Math","round","Revit","Autocad","run","ModelsList","_appState$config2","showDisabled","setItems","useMemo","ModelFirstExtraction","ModelLastPublish","ModelToggle","ModelLastExtraction","bim360url","target","rel","enabledModels","labelText","searchText","SelectEngine","_selectedEngine$displ","setEngine","errorLabel","selectedEngine","Select","_val$displayName","isClearable","singleValue","provided","dialogStyles","main","ConfirmRunAllModal","isOpen","onResolve","count","labelId","useId","subTextId","modalProps","titleAriaId","subtitleAriaId","isBlocking","contentProps","DialogType","normal","closeButtonAriaLabel","subText","Dialog","hidden","dialogContentProps","DialogFooter","RunAllButton","filteredModels","_filteredModels$lengt","modelIds","m","runFilteredModels","ProjectPanel","_project$lastFolderTr","_project$enabledOn","showWebhookDialog","setShowWebhookDialog","foundModels","setFoundModels","isAdmin","onFetchWebhooks","fetchWebHooks","NavLink","onText","offText","sync","BuildingFolderTree","Icon","paddingRight","gap","Modal","_engine$displayName","startsWith","_engine$displayName2","setAcadEngine","ProjectsListSidePanel","RefreshButton","_useParams","viewBox","xmlns","SingleProjectPage","SingleHubPage","_appState$user4","_appState$user5","_appState$user6","_appState$user7","_appState$user8","_appState$user9","_appState$user10","setValue","increment","setIncrement","setSeconds","_useState7","_useState8","setAutoSyncInterval","_useState9","_useState10","setAutoSyncIntervalType","setEverything","autoSyncIntervalOptions","Hourly","Daily","Monthly","marginBottom","TextField","toString","parseFloat","Dropdown","selectedKey","option","toggleEnabledProjects","toggleEnabledModels","toggleProcessFamilySizes","toggleAutoSyncEnabled","_","setGroupNameParam","setBusinessLineParam","readOnly","changed","setSecondsBetweenRetry","saveChanges","WorkItemsList","RunTime","runtime","ModelPanel","_appState$user$permis","_model$enabledOn","includes","SingleModelPage","SingleLogPage","logFileName","currentLog","whiteSpace","overflowWrap","SingleEnginePage","engineId","setActivityId","setZipActivityId","TIME_FORMAT","SingleWorkitemPage","_workItem$started","_workItem$started2","_workItem$daTimeQueue","_workItem$daTimeDownl","_workItem$daTimeInstr","_workItem$daTimeInstr2","_workItem$daTimeUploa","_workItem$daTimeFinis","LogTypeDisplay","view","setView","_useMemo","outputText","outputDisabled","overflowX","SpinnerContext","createContext","setSpinner","ErrorContext","canClose","setError","setUser","Spinner","spinner","useContext","SelectOptions","prompt","selected","selectedIndex","aria-label","defaultValue","Folder","fill","CaretRight","CaretDown","DocumentTree","path","DocumentTreeNode","onSelect","childNodes","setChildNodes","aria-current","DocumentList","DocumentItem","isChecked","setChecked","passed","Filter","onSelectAll","onClearAll","onFilterChanged","documents","filterString","setFilterString","numberOfDocuments","aria-describedby","ria-label","DocumentFilter","documentList","onSelectedDocumentsChanged","onDocumentChanged","filerString","filteredDocList","setFilteredDocList","list","toLocaleLowerCase","Events","drilldown","selection","PieChartFigure","_data","plotBackgroundColor","plotBorderWidth","plotShadow","colorByPoint","Highcharts","ImplementChart","SplashPage","splashPageTab","deliverableIndex","supplierCode","projectName","packageNumber","packageDescriptionTitle","closedOutByRecord","packageLayerModifier","int_ssid","int_pkg_name","issuedFor","issuedDate","sheetsRequired","navisRequired","modelsRequired","A1","C2","C3","C4","C5","C6","C7","C8","trim","C9","C10","C11","C15","C16","C17","Sheets","sheetsTab","containsDwg","containsRevit","containsPdf","pkgno","discipline","sheet","filename","revno","revdate","comments","row","extension","SourceModels","sourceModelsTab","SubmittalReporting","_validateSubmittal","_x4","_x5","_x6","_x7","_x8","_x9","_x10","_x11","_x12","_x13","_x14","topFolder","layersXlsx","revitCoordinatesXlsx","sharedParametersXlsx","revitWarningsXlsx","supplierCodesXlsx","buildingModelCodesXlsx","upnXlsx","disciplinesXlsx","modelTypesXlsx","largeProjectsXlsx","numberOfChecks","navisModelsTab","submittalResults","splashPage","sheets","sourcModels","navisModels","validLargeProjects","validSupplierCodes","validDisciplines","deliverableIndexResults","splashPageResults","sheetsResults","navisResults","sourcModelsResults","mpaResults","passingChecks","warnings","results","sheetArray","workbook","NavisModels","GetLargeProjectsDb","GetSupplierCodesDb","validateDeliverableIndex","validateSplashPage","validateSheets","validateNavisModels","validateSourcModels","failedChecks","ValidateMpaResults","sourcePath","folderName","sourceModels","warningChecks","revitModelResults","acadModelResults","baseReport","drilldownData","mpaRevit","mpaAcad","submittalPassed","validationResults","alert","DOMException","t0","description","code","toUpperCase","input","Date","disciplineCodes","fileExtension","pkgnoValid","sheetsInvalidPkgno","sheetDisciplinesValid","sheetsMissingDiscipline","sheetRevNosValid","filesInvalidRevNo","sheetRevDatesValid","filesInvalidRevDates","sheetPdfValid","sheetPdfsInvalid","validFileNames","invalidFileNames","j","sheetRow","num","Number","isInteger","test","modelsInvalidPkgno","modelsDisciplinesValid","modelsMissingDiscipline","issuedDatesValid","navisInvalidIssuedDates","invalidFilenames","navisRow","navisRowFileExtension","disciplineValid","invalidDiscipline","DrilldownList","base","List","component","aria-labelledby","subheader","ListSubheader","CheckItem","_React$useState","_React$useState2","open","setOpen","Array","isArray","Button","ListItemText","primary","Typography","ExpandLess","ExpandMore","Collapse","in","timeout","unmountOnExit","disablePadding","Excel","reader","FileReader","onload","_e$target","XLSX","readAsArrayBuffer","stream","CollectSubmittal","selectedFile","GetSubmittal","arrayBuffer","buffer","streamFile","WorkStatus","linetype","lineWeight","Clearances","AllDiscipline","LayerSheet","sheetName","disciplineCode","upn","LayersFile","ArchitecturalLayers","CivilLayers","ElectricalLayers","FireProtectionLayers","GeneralLayers","InstrumentationControlsLayers","LandscapeLayers","LssLayers","MechanicalLayers","PlumbingLayers","ProcessLayers","StructuralLayers","TelecommunicationLayers","workStatusSheet","modifiersSheet","clearancesSheet","allDisciplineSheet","RevitCoordinatesFile","tab","modelName","originPoint","projectNorthSouth","projectEastWest","elevation","projectAngleToTrueNorth","surveyElevation","surveyNorthSouth","surveyEastWest","cityLocation","longitude","latitude","revitVersionName","precision","SharedParametersFile","param","guid","dataType","dataCategory","group","visible","userModifiable","hideWhenNoValue","RevitWarningsFile","warningID","warningDescription","SupplierCodesFile","BuildingModelCodesFile","buildingModelCode","level","UpnFile","ModelTypesFile","modelType","LargeProjectsFile","GenerateReportButton","reportName","checks","book_new","displayRows","at","worksheet","json_to_sheet","book_append_sheet","compression","ReportGenerator","ReportingPage","setReport","indexPassed","setIndexPassed","setData2","onDrilldown","category","points","accountsList","setAccountsList","_useState11","_useState12","selectedAccount","setSelectedAccount","_useState13","_useState14","projectList","setProjectList","_useState15","_useState16","selectedProject","setSelectedProject","_useState17","_useState18","setTopFolder","_useState19","_useState20","setSelectedProjectName","_useState21","_useState22","baseFolderList","setBaseFolderList","_useState23","_useState24","setCurrentFolderSelected","_useState25","_useState26","setDocumentList","_useState27","_useState28","currentDocumentSelected","setCurrentDocumentSelected","_useState29","_useState30","setSubmittal","_useState31","_useState32","setLayersXlsx","_useState33","_useState34","setRevitCoordinatesXlsx","_useState35","_useState36","setSharedParametersXlsx","_useState37","_useState38","setRevitWarningsXlsx","_useState39","_useState40","setSupplierCodesXlsx","_useState41","_useState42","setLargeProjectsXlsx","_useState43","_useState44","submittalLink","_useState45","_useState46","setSubmittalDocumentList","_useState47","_useState48","selectedDocumentsList","setSelectedDocumentsList","_useState49","_useState50","setBuildingModelCodesXlsx","_useState51","_useState52","setUpnXlsx","_useState53","_useState54","setDisciplinesXlsx","_useState55","_useState56","setModelTypesXlsx","_useState57","_useState58","reportSheetArray","setReportSheetArray","_useState59","_useState60","exportReportName","setExportReportName","PrepSubmittalReporting","validateSubmittal","ancestorFolderPath","events","reason","accAndBim360Accounts","accAndBim360Projects","GetHubProjects","GetLayersXlsx","layersFile","GetRevitCoordinates","revitCoordinatesFile","GetSharedParameters","sharedParametersFile","GetRevitWarnings","revitWarningsFile","GetSupplierCodes","supplierCodesFile","GetBuildingSectorCodes","buildingModelCodesFile","upnFile","disciplinesFile","DisciplineFile","modelTypesFile","GetLargeProjects","largeProjectsFile","rootFolders","GetUserSelectableFolders","htmlFor","folderIdObject","files","xlsxFiles","folders","GetFolderContentAll","storageId","endsWith","initializeIcons","App","spinnerContext","Provider","Switch","Route","exact","Redirect","i18n","use","detector","backend","initReactI18next","init","loadPath","defaultNS","lng","fallbackLng","keySeparator","interpolation","escapeValue","Boolean","hostname","match","baseUrl","document","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","render","Suspense","fallback","BrowserRouter","basename","ModalContainer","navigator","serviceWorker","registration","unregister"],"mappings":"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","file":"static/js/main.8fa6687b.chunk.js","sourcesContent":["\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NavisModels = void 0;\r\nvar NavisModels = /** @class */ (function () {\r\n function NavisModels(sourceModelsTab) {\r\n var i = 3;\r\n var data = [];\r\n while (sourceModelsTab['A' + i] || sourceModelsTab['B' + i] || sourceModelsTab['C' + i] || sourceModelsTab['D' + i] || sourceModelsTab['E' + i]) {\r\n var pkgno = sourceModelsTab['A' + i];\r\n var discipline = sourceModelsTab['B' + i];\r\n var filename = sourceModelsTab['C' + i];\r\n var issuedDate = sourceModelsTab['E' + i];\r\n var row = {\r\n pkgno: pkgno ? pkgno.v : undefined,\r\n discipline: discipline ? discipline.v : undefined,\r\n filename: filename ? filename.v : undefined,\r\n issuedDate: issuedDate ? issuedDate.v : undefined\r\n };\r\n data.push(row);\r\n i++;\r\n }\r\n this.data = data;\r\n }\r\n return NavisModels;\r\n}());\r\nexports.NavisModels = NavisModels;\r\n//# sourceMappingURL=navisModels.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Modifiers = void 0;\r\nvar Modifiers = /** @class */ (function () {\r\n function Modifiers(sheet) {\r\n var _a, _b;\r\n var data = [];\r\n var i = 6; // excell starts at 5\r\n while (sheet['F' + i]) {\r\n if (sheet['F' + i]) {\r\n var name = sheet['B' + i];\r\n var color = sheet['C' + i];\r\n var linetype = sheet['D' + i];\r\n var lineWeight = sheet['E' + i];\r\n var description = sheet['F' + i];\r\n var row = {\r\n name: name ? name.v : undefined,\r\n color: color ? color.v : undefined,\r\n linetype: linetype ? linetype.v : undefined,\r\n lineWeight: lineWeight ? lineWeight.v : undefined,\r\n description: description ? description.v : undefined,\r\n disciplines: []\r\n };\r\n var asciiStart = 71; // ascii value of 'F'\r\n var asciiEnd = 83;\r\n for (var j = asciiStart; j <= asciiEnd; j++) {\r\n var columnChar = String.fromCharCode(j);\r\n var value = (_a = sheet[columnChar + i]) === null || _a === void 0 ? void 0 : _a.v;\r\n if (value && value.toLowerCase() === 'x') {\r\n var disciplineAllowed = (_b = sheet[columnChar + 5]) === null || _b === void 0 ? void 0 : _b.v;\r\n row.disciplines.push(disciplineAllowed);\r\n }\r\n }\r\n data.push(row);\r\n }\r\n i++;\r\n }\r\n this.data = data;\r\n }\r\n return Modifiers;\r\n}());\r\nexports.Modifiers = Modifiers;\r\n//# sourceMappingURL=modifiers.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DisciplineFile = void 0;\r\nvar DisciplineFile = /** @class */ (function () {\r\n function DisciplineFile(workbook) {\r\n this.workbook = workbook;\r\n var i = 2;\r\n var data = [];\r\n var tab = workbook.Sheets[\"Disciplines\"];\r\n while (tab['A' + i]) {\r\n var discipline = tab['A' + i];\r\n var row = {\r\n discipline: discipline ? discipline.v : undefined,\r\n };\r\n data.push(row);\r\n i++;\r\n }\r\n this.data = data;\r\n }\r\n return DisciplineFile;\r\n}());\r\nexports.DisciplineFile = DisciplineFile;\r\n//# sourceMappingURL=disciplinesFile.js.map","import { observable } from 'mobx';\r\nimport { AppState } from '../AppState';\r\n\r\ninterface IError {\r\n title: string;\r\n message: string;\r\n appState: AppState;\r\n}\r\n\r\nexport class Error {\r\n @observable private readonly _title: string;\r\n @observable private readonly _message: string;\r\n private readonly _appState: AppState;\r\n\r\n constructor({ title, message, appState }: IError) {\r\n this._title = title;\r\n this._message = message;\r\n this._appState = appState;\r\n\r\n this.clear = this.clear.bind(this);\r\n }\r\n\r\n static create({ title, message, appState }: IError) {\r\n const newError = new Error({ title, message, appState });\r\n appState.setErrors(appState.errors.concat([newError]));\r\n }\r\n\r\n public clear() {\r\n this._appState.setErrors(\r\n this._appState.errors.filter((val) => val !== this)\r\n );\r\n }\r\n\r\n public get title() {\r\n return this._title;\r\n }\r\n public get message() {\r\n return this._message;\r\n }\r\n}\r\n","import { appState } from '../App';\r\nimport axios from 'axios';\r\nimport { Log } from './DataTypes/Log';\r\nimport { IUser } from './DataTypes/User';\r\nimport { IProject, Project } from './DataTypes/Project';\r\nimport { Error } from './DataTypes/Error';\r\nimport { Hub, IHub } from './DataTypes/Hub';\r\nimport { IModel, Model } from './DataTypes/Model';\r\nimport { IWorkItem, WorkItem } from './DataTypes/WorkItem';\r\nimport {\r\n DesignAutomationEngine,\r\n IDesignAutomationEngine,\r\n} from './DataTypes/DesignAutomationEngine';\r\nimport { IConfig } from './DataTypes/Config';\r\nimport { IData } from './DataTypes/Highcharts/Data';\r\nimport { Events } from './DataTypes/Highcharts/Events';\r\nimport { ISeries } from './DataTypes/Highcharts/Series';\r\nimport { remove } from 'mobx';\r\nimport { ISeriesData } from './DataTypes/Highcharts/SeriesData';\r\nimport { ILargeProjectsModelDb } from './classes/largeProjectsFile';\r\nimport { ISupplierCodesDbRow } from './classes/supplierCodesFile';\r\nimport { IDiscliplineCodesDbRow } from './classes/disciplinesFile';\r\n\r\nexport class ApiCalls {\r\n //Auth Calls\r\n public static fetchAuthUrl() {\r\n return SimpleGet(\r\n `/api/forge/oauth/url?encodedRedirectUrl=${btoa(window.location.href)}`\r\n );\r\n }\r\n public static fetchUser() {\r\n return SimpleGet(`/api/auth/user`);\r\n }\r\n public static logout() {\r\n return SimpleGet(`/api/auth/logout`);\r\n }\r\n //Logs and Debugging\r\n public static getLogs() {\r\n return SimpleGet(`/api/logs`);\r\n }\r\n public static getLogFile({ log }: { log: Log }) {\r\n return SimpleGet(`/api/logs/${log.name}`);\r\n }\r\n //Timezones\r\n public static getTimezones() {\r\n return SimpleGet(`/api/timezones`);\r\n }\r\n //Design Automation Engines\r\n public static getDesignAutomationEngines() {\r\n return SimpleGet(`/api/designAutomationEngines`);\r\n }\r\n public static patchDesignAutomationEngines({\r\n engine,\r\n }: {\r\n engine: DesignAutomationEngine;\r\n }) {\r\n return SimplePatch(\r\n `/api/designAutomationEngines/${engine.id}`,\r\n engine.interface\r\n );\r\n }\r\n public static postUploadAppBundle({\r\n engine,\r\n file,\r\n }: {\r\n engine: DesignAutomationEngine;\r\n file: File;\r\n }) {\r\n return SimplePost(\r\n `/api/designAutomationEngines/${engine.id}/appBundle`,\r\n file\r\n );\r\n }\r\n //Hubs\r\n public static GetHubs() {\r\n return SimpleGet(`/api/hubs`);\r\n }\r\n public static PatchHub({ hub }: { hub: Hub }) {\r\n return SimplePatch(`/api/hubs/${hub.hubId}`, hub);\r\n }\r\n public static RefreshHubs() {\r\n return SimplePost(`api/hubs/refresh`);\r\n }\r\n //Projects\r\n public static GetProjects({ includeDisabled }: { includeDisabled: boolean }) {\r\n return SimpleGet(\r\n `/api/projects?includeDisabled=${includeDisabled}`\r\n );\r\n }\r\n public static GetHubProjects(hubId: string, includeDisabled: boolean) {\r\n return SimpleGet(\r\n `/api/projects?includeDisabled=${includeDisabled}&hubId=${hubId}`\r\n );\r\n }\r\n public static GetProject({ projectId }: { projectId: string }) {\r\n return SimpleGet(`/api/projects/${projectId}`);\r\n }\r\n public static PatchProject({ project }: { project: Project }) {\r\n return SimplePatch(\r\n `/api/projects/${project.id}`,\r\n project.toInterface()\r\n );\r\n }\r\n public static RunFilteredModels({ project, body }: { project: Project, body: any }) {\r\n return SimplePost(`/api/projects/${project.id}/models:run-all`, body);\r\n }\r\n public static RunAllModels({ project }: { project: Project }) {\r\n return SimplePost(`/api/projects/${project.id}/models:run-all`, {});\r\n }\r\n public static RunProjectMPA({ project }: { project: Project }) {\r\n return SimplePatch(`/api/projects/${project.id}/runMPA`);\r\n }\r\n public static SyncProjectFolderTree({ project }: { project: Project }) {\r\n return SimplePost(`/api/projects/${project.id}/sync`);\r\n }\r\n public static GetWebHooks({ project }: { project: Project }) {\r\n return SimpleGet(`/api/projects/${project.id}/hooks`);\r\n }\r\n public static GetProjectTopFolders(projectId: string) {\r\n return SimpleGet(`api/projects/topFolders?id=${projectId}`);\r\n }\r\n //public static GetTopFolders({ project }: { project: Project }) {\r\n // return SimpleGet(`api/projects/${project.id}/topFolders`);\r\n //}\r\n //Folders\r\n public static GetFolderContentAll(projectId: string, folderId: string) {\r\n return SimpleGet(`api/projects/${projectId}/${folderId}/contents`);\r\n }\r\n public static GetUserSelectableFolders(projectId: string) {\r\n return SimpleGet(`api/projects/userSelectableFolders?projectId=${projectId}`)\r\n }\r\n //Models\r\n public static GetModels({ project }: { project: Project }) {\r\n return SimpleGet(`/api/projects/${project.id}/models`);\r\n }\r\n public static PatchModel({ model }: { model: Model }) {\r\n return SimplePatch(`/api/models/${model.id}`, model.toInterface());\r\n }\r\n public static GetModelRuns({ model }: { model: Model }) {\r\n return SimpleGet(`/api/models/${model.id}/workItems`);\r\n }\r\n public static RunModelMPA({ model }: { model: Model }) {\r\n return SimplePost(`/api/models/${model.id}/runMPA`);\r\n }\r\n public static DeleteModel({ model }: { model: Model }) {\r\n return SimpleDelete(`/api/models/${model.id}`);\r\n }\r\n //WorkItems\r\n public static getWorkItem({ workItem }: { workItem: WorkItem }) {\r\n return SimpleGet(`/api/workitems/${workItem.id}`);\r\n }\r\n // Config \r\n public static GetConfig(): Promise {\r\n return SimpleGet('/api/config');\r\n }\r\n // Reporting\r\n public static async PrepSubmittalReporting(submittal) {\r\n\r\n var template = {\r\n chart: { type: \"pie\" },\r\n title: { text: submittal.file.name },\r\n tooltip: { pointFormat: \"{series.name}: {point.percentage:.1f}%\" },\r\n accessibility: {\r\n point: { valueSuffix: \"%\" }\r\n },\r\n plotOptions: {\r\n pie: {\r\n allowPointSelect: true,\r\n cursor: \"pointer\",\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.name}: {point.percentage:.1f} %\"\r\n },\r\n }\r\n },\r\n series: []\r\n };\r\n\r\n submittal.reporting = {\r\n report: template,\r\n data: []\r\n };\r\n submittal.indexFailed = false;\r\n return submittal;\r\n }\r\n public static async GetLayersXlsx() {\r\n const [xlsx] = await Promise.all([\r\n SimpleGet('/api/reporting/layersxlsx')\r\n ])\r\n return xlsx;\r\n }\r\n public static async GetLargeProjectsDb() {\r\n return SimpleGet('/api/reporting/largeProjectsDb');\r\n }\r\n\r\n public static async GetLargeProjects() {\r\n const [xlsx] = await Promise.all([\r\n SimpleGet('/api/reporting/largeProjectsXlsx')\r\n ])\r\n return xlsx;\r\n\r\n }\r\n public static async GetRevitCoordinates() {\r\n const [xlsx] = await Promise.all([\r\n SimpleGet('/api/reporting/revitCoordinates')\r\n ])\r\n return xlsx;\r\n }\r\n public static async GetSharedParameters() {\r\n const [xlsx] = await Promise.all([\r\n SimpleGet('/api/reporting/sharedParameters')\r\n ])\r\n return xlsx;\r\n }\r\n public static async GetRevitWarnings() {\r\n const [xlsx] = await Promise.all([\r\n SimpleGet('/api/reporting/revitWarnings')\r\n ])\r\n return xlsx;\r\n }\r\n\r\n public static async GetSupplierCodesDb() {\r\n return SimpleGet('/api/reporting/supplierCodesDb');\r\n }\r\n\r\n public static async GetDisciplinesDb() {\r\n return SimpleGet('/api/reporting/disciplinesDb');\r\n }\r\n\r\n public static async GetSupplierCodes() {\r\n const [xlsx] = await Promise.all([\r\n SimpleGet('/api/reporting/supplierCodes')\r\n ])\r\n return xlsx;\r\n }\r\n public static async GetBuildingSectorCodes() {\r\n const [xlsx] = await Promise.all([\r\n SimpleGet('api/reporting/buildingSectorCodes')\r\n ])\r\n return xlsx;\r\n }\r\n public static async ValidateMpaResults(submittal) {\r\n const [result] = await Promise.all([\r\n SimplePost('/api/reporting/submittal/validate', submittal),\r\n ])\r\n return result;\r\n }\r\n public static async GetSubmittal(file) {\r\n const [link] = await Promise.all([\r\n SimplePost(`/api/reporting/submittal/${file.version}`, file)\r\n ])\r\n return link;\r\n }\r\n // This may not be a good check anymore\r\n public static DoesModelPass(fileId) {\r\n return SimpleGet(`/api/modelPass/${fileId}`)\r\n }\r\n}\r\n\r\nfunction SimplePost(url: string, body?: any, options?: any): Promise {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .post(url, body, options)\r\n .then((result) => {\r\n resolve(result?.data);\r\n })\r\n .catch((error) => {\r\n if (error.response?.status !== 401) {\r\n Error.create({\r\n title: `Could not POST ${url}`,\r\n message: `${error.response?.status}: ${error.response?.statusText} (${url})`,\r\n appState,\r\n });\r\n }\r\n reject(error);\r\n });\r\n });\r\n}\r\n\r\nfunction SimplePatch(url: string, body?: any, options?: any): Promise {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .patch(url, body, options)\r\n .then((result) => {\r\n resolve(result?.data);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n if (error.response?.status !== 401) {\r\n Error.create({\r\n title: `Could not PATCH ${url}`,\r\n message: `${error.response?.status}: ${error.response?.statusText} (${url})`,\r\n appState,\r\n });\r\n }\r\n reject(error);\r\n });\r\n });\r\n}\r\n\r\nfunction SimpleDelete(url: string, options?: any): Promise {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .delete(url, options)\r\n .then((result) => {\r\n resolve(result?.data);\r\n })\r\n .catch((error) => {\r\n Error.create({\r\n title: `Could not DELETE ${url}`,\r\n message: `${error.response?.status}: ${error.response?.statusText} (${url})`,\r\n appState,\r\n });\r\n reject(error);\r\n });\r\n });\r\n}\r\n\r\nfunction SimpleGet(url: string, options?: any): Promise {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .get(url, options)\r\n .then((result) => {\r\n resolve(result?.data);\r\n })\r\n .catch((error) => {\r\n if (error.response?.status !== 401) {\r\n Error.create({\r\n title: `Could not GET ${url}`,\r\n message: `${error.response?.status}: ${error.response?.statusText} (${url})`,\r\n appState,\r\n });\r\n }\r\n reject(error);\r\n });\r\n });\r\n}\r\n","import { IPermissions } from './Permissions';\r\nimport { ApiCalls } from '../ApiCalls';\r\nimport { computed } from 'mobx';\r\n\r\nexport interface IUser {\r\n name: string;\r\n email: string;\r\n permissions: IPermissions[];\r\n profilePicture: string;\r\n // token should be temporary\r\n //token: string;\r\n}\r\n\r\nexport class User {\r\n public readonly permissions: IPermissions[];\r\n public readonly name: string;\r\n public readonly email: string;\r\n public readonly profilePicture: string;\r\n // token should be temporary\r\n public readonly token: string;\r\n\r\n // token should be temporary\r\n constructor({ name, email, permissions, profilePicture }: IUser) {\r\n this.name = name;\r\n this.email = email;\r\n this.permissions = permissions;\r\n this.profilePicture = profilePicture;\r\n // token should be temporary\r\n // this.token = token;\r\n }\r\n\r\n public logout() {\r\n ApiCalls.logout();\r\n }\r\n\r\n @computed public get applicationAdmin() {\r\n return !!this.permissions.find((val) => val.role === 'ApplicationAdmin');\r\n }\r\n}\r\n","import { action, computed, observable, runInAction } from 'mobx';\r\nimport { ApiCalls } from '../ApiCalls';\r\nimport { appState } from '../../App';\r\n\r\nexport enum AutoSyncIntervalType {\r\n Minutely = 'Minutely',\r\n Hourly = 'Hourly',\r\n Daily = 'Daily',\r\n Monthly = 'Monthly'\r\n}\r\n\r\nexport interface IHub {\r\n id: string;\r\n hubId: string;\r\n name: string;\r\n secondsBetweenRetry: number;\r\n region: 'US' | 'EU';\r\n enabled: boolean;\r\n autoEnableProjects: boolean;\r\n autoEnableModels: boolean;\r\n processFamilySizes: boolean;\r\n groupNameParamName: string;\r\n businessLineParamName: string;\r\n applicationUrl: string;\r\n autoSyncProjectFolderTrees: boolean;\r\n autoSyncInterval?: number;\r\n autoSyncIntervalType?: AutoSyncIntervalType;\r\n}\r\n\r\nexport class Hub {\r\n public readonly id: string;\r\n public readonly hubId: string;\r\n public readonly name: string;\r\n @observable public secondsBetweenRetry: number;\r\n public readonly region: 'US' | 'EU';\r\n public readonly applicationUrl: string;\r\n @observable public enabled: boolean;\r\n @observable public autoEnableProjects: boolean;\r\n @observable public autoEnableModels: boolean;\r\n @observable public processFamilySizes: boolean;\r\n @observable public groupNameParamName: string;\r\n @observable public businessLineParamName: string;\r\n @observable public autoSyncProjectFolderTrees: boolean;\r\n @observable public autoSyncInterval?: number;\r\n @observable public autoSyncIntervalType?: AutoSyncIntervalType;\r\n\r\n @observable public lastInterface: string;\r\n\r\n constructor(params: IHub) {\r\n this.id = params.id;\r\n this.hubId = params.hubId;\r\n this.name = params.name;\r\n this.secondsBetweenRetry = params.secondsBetweenRetry;\r\n this.region = params.region;\r\n this.enabled = params.enabled;\r\n this.applicationUrl = params.applicationUrl;\r\n this.autoEnableProjects = params.autoEnableProjects;\r\n this.autoEnableModels = params.autoEnableModels;\r\n this.processFamilySizes = params.processFamilySizes;\r\n this.groupNameParamName = params.groupNameParamName;\r\n this.businessLineParamName = params.businessLineParamName;\r\n this.autoSyncProjectFolderTrees = params.autoSyncProjectFolderTrees;\r\n this.autoSyncInterval = params.autoSyncInterval;\r\n this.autoSyncIntervalType = params.autoSyncIntervalType;\r\n\r\n this.lastInterface = JSON.stringify(this.interface);\r\n }\r\n\r\n @action.bound public toggleEnabled() {\r\n this.enabled = !this.enabled;\r\n ApiCalls.PatchHub({ hub: this })\r\n .then(appState.fetchUser)\r\n .then(appState.fetchProjects);\r\n }\r\n\r\n @action.bound public toggleEnabledProjects() {\r\n this.autoEnableProjects = !this.autoEnableProjects;\r\n }\r\n\r\n @action.bound public toggleEnabledModels() {\r\n this.autoEnableModels = !this.autoEnableModels;\r\n }\r\n\r\n @action.bound public toggleProcessFamilySizes() {\r\n this.processFamilySizes = !this.processFamilySizes;\r\n }\r\n\r\n @action.bound public setGroupNameParam(value: string) {\r\n this.groupNameParamName = value;\r\n }\r\n\r\n @action.bound public setBusinessLineParam(value: string) {\r\n this.businessLineParamName = value;\r\n }\r\n\r\n @action.bound public toggleAutoSyncEnabled() {\r\n this.autoSyncProjectFolderTrees = !this.autoSyncProjectFolderTrees;\r\n }\r\n\r\n @action.bound public setAutoSyncInterval(value?: number) {\r\n this.autoSyncInterval = value;\r\n }\r\n\r\n @action.bound public setAutoSyncIntervalType(value?: AutoSyncIntervalType) {\r\n this.autoSyncIntervalType = value;\r\n }\r\n\r\n @action setSecondsBetweenRetry(seconds: number) {\r\n this.secondsBetweenRetry = seconds;\r\n return this.save();\r\n }\r\n\r\n @computed public get delayTime() {\r\n const seconds = this.secondsBetweenRetry;\r\n if (seconds === 0) {\r\n return 'No Delay';\r\n } else if (seconds % 86400 === 0) {\r\n return `${seconds / 86400} Days`;\r\n } else if (seconds % 3600 === 0) {\r\n return `${seconds / 3600} Hours`;\r\n } else if (seconds % 60 === 0) {\r\n return `${seconds / 60} Minutes`;\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n @computed public get changed() {\r\n return this.lastInterface !== JSON.stringify(this.interface);\r\n }\r\n\r\n public save() {\r\n return ApiCalls.PatchHub({ hub: this }).then(() => {\r\n runInAction(() => {\r\n this.lastInterface = JSON.stringify(this.interface);\r\n });\r\n });\r\n }\r\n\r\n @computed public get interface() {\r\n return {\r\n id: this.id,\r\n hubId: this.hubId,\r\n secondsBetweenRetry: this.secondsBetweenRetry,\r\n autoEnableModels: this.autoEnableModels,\r\n autoEnableProjects: this.autoEnableProjects,\r\n processFamilySizes: this.processFamilySizes,\r\n groupNameParamName: this.groupNameParamName,\r\n businessLineParamName: this.businessLineParamName,\r\n autoSyncProjectFolderTrees: this.autoSyncProjectFolderTrees,\r\n autoSyncInterval: this.autoSyncInterval,\r\n autoSyncIntervalType: this.autoSyncIntervalType,\r\n };\r\n }\r\n\r\n @computed public get searchTerm() {\r\n return `${this.name}`.toLowerCase();\r\n }\r\n}\r\n","import { computed, observable, runInAction } from 'mobx';\r\nimport { ApiCalls } from '../ApiCalls';\r\nimport FileSaver from 'file-saver';\r\n\r\nexport class Log {\r\n public readonly name: string = '';\r\n @observable public value: string = '';\r\n @observable public ready: boolean = false;\r\n\r\n constructor({ name }: { name: string }) {\r\n this.name = name;\r\n }\r\n\r\n public load() {\r\n return ApiCalls.getLogFile({ log: this }).then((result) => {\r\n return runInAction(() => {\r\n this.value = result;\r\n this.ready = true;\r\n });\r\n });\r\n }\r\n\r\n public download() {\r\n if (this.value) {\r\n this.downloadValue();\r\n } else {\r\n this.load().then(() => {\r\n this.downloadValue();\r\n });\r\n }\r\n }\r\n\r\n private downloadValue() {\r\n let bytes = new Uint8Array(this.value.length);\r\n\r\n for (let i = 0; i < bytes.length; i++) {\r\n bytes[i] = this.value.charCodeAt(i);\r\n }\r\n\r\n const blob = new Blob([bytes], { type: 'text/plain' });\r\n FileSaver.saveAs(blob, this.name);\r\n }\r\n\r\n @computed public get searchTerm() {\r\n return `${this.name}`.toLowerCase();\r\n }\r\n}\r\n","export function parseJson(json: string) {\r\n try {\r\n return json ? JSON.stringify(JSON.parse(json), null, 2) : '';\r\n } catch (err) {\r\n return json || '';\r\n }\r\n}\r\n","import { Model } from './Model';\r\nimport { action, computed, observable, runInAction } from 'mobx';\r\nimport dayjs, { Dayjs } from 'dayjs';\r\nimport utc from 'dayjs/plugin/utc';\r\nimport timezone from 'dayjs/plugin/timezone';\r\nimport calendar from 'dayjs/plugin/calendar';\r\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\r\nimport FileSaver from 'file-saver';\r\nimport { ApiCalls } from '../ApiCalls';\r\nimport { parseJson } from '../Functions/parseJson';\r\ndayjs.extend(utc);\r\ndayjs.extend(timezone);\r\ndayjs.extend(calendar);\r\ndayjs.extend(advancedFormat);\r\n\r\nexport interface IWorkItem {\r\n id: string;\r\n workItemId: string;\r\n activityId: string;\r\n log: string;\r\n started: string;\r\n isCompositeDesign: boolean;\r\n runBy: string;\r\n status: string;\r\n inputJson: string;\r\n outputJson: string;\r\n daTimeQueued: string;\r\n daTimeFinished: string;\r\n daTimeDownloadStarted: string;\r\n daTimeInstructionsStarted: string;\r\n daTimeInstructionsEnded: string;\r\n daTimeUploadEnded: string;\r\n}\r\n\r\nexport class WorkItem {\r\n public readonly id: string;\r\n @observable public readonly workItemId: string;\r\n @observable public activityId: string;\r\n @observable public log: string;\r\n @observable public inputJson: string;\r\n @observable public outputJson: string;\r\n @observable public started?: Dayjs;\r\n @observable public isCompositeDesign?: boolean;\r\n @observable public status: string;\r\n @observable public runBy: string;\r\n @observable public daTimeQueued?: Dayjs;\r\n @observable public daTimeFinished?: Dayjs;\r\n @observable public daTimeDownloadStarted?: Dayjs;\r\n @observable public daTimeInstructionsStarted?: Dayjs;\r\n @observable public daTimeInstructionsEnded?: Dayjs;\r\n @observable public daTimeUploadEnded?: Dayjs;\r\n @observable public readonly model: Model;\r\n @observable public fetched: boolean = false;\r\n\r\n constructor(props: IWorkItem, model: Model) {\r\n this.id = props.id;\r\n this.workItemId = props.workItemId;\r\n this.activityId = props.activityId;\r\n this.log = props.log;\r\n this.runBy = props.runBy;\r\n this.inputJson = parseJson(props.inputJson);\r\n this.outputJson = parseJson(props.outputJson);\r\n this.started = props.started\r\n ? dayjs.utc(props.started).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.isCompositeDesign = props.isCompositeDesign;\r\n this.status = props.status;\r\n this.daTimeQueued = props.daTimeQueued\r\n ? dayjs.utc(props.daTimeQueued).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.daTimeFinished = props.daTimeFinished\r\n ? dayjs.utc(props.daTimeFinished).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.daTimeDownloadStarted = props.daTimeDownloadStarted\r\n ? dayjs.utc(props.daTimeDownloadStarted).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.daTimeInstructionsStarted = props.daTimeInstructionsStarted\r\n ? dayjs.utc(props.daTimeInstructionsStarted).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.daTimeInstructionsEnded = props.daTimeInstructionsEnded\r\n ? dayjs.utc(props.daTimeInstructionsEnded).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.daTimeUploadEnded = props.daTimeUploadEnded\r\n ? dayjs.utc(props.daTimeUploadEnded).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.model = model;\r\n }\r\n\r\n @action public fetch() {\r\n this.fetched = false;\r\n ApiCalls.getWorkItem({ workItem: this }).then((workItem: IWorkItem) => {\r\n runInAction(() => {\r\n this.activityId = workItem.activityId;\r\n this.log = workItem.log;\r\n this.inputJson = parseJson(workItem.inputJson);\r\n this.outputJson = parseJson(workItem.outputJson);\r\n this.started = workItem.started\r\n ? dayjs.utc(workItem.started).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.isCompositeDesign = workItem.isCompositeDesign;\r\n this.status = workItem.status;\r\n this.daTimeQueued = workItem.daTimeQueued\r\n ? dayjs.utc(workItem.daTimeQueued).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.daTimeFinished = workItem.daTimeFinished\r\n ? dayjs.utc(workItem.daTimeFinished).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.daTimeDownloadStarted = workItem.daTimeDownloadStarted\r\n ? dayjs.utc(workItem.daTimeDownloadStarted).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.daTimeInstructionsStarted = workItem.daTimeInstructionsStarted\r\n ? dayjs.utc(workItem.daTimeInstructionsStarted).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.daTimeInstructionsEnded = workItem.daTimeInstructionsEnded\r\n ? dayjs.utc(workItem.daTimeInstructionsEnded).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.daTimeUploadEnded = workItem.daTimeUploadEnded\r\n ? dayjs.utc(workItem.daTimeUploadEnded).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.fetched = true;\r\n });\r\n });\r\n }\r\n\r\n @computed public get runtime() {\r\n if (this.daTimeDownloadStarted && this.daTimeFinished) {\r\n return this.daTimeFinished.diff(this.daTimeDownloadStarted, 'm');\r\n }\r\n return undefined;\r\n }\r\n\r\n public download() {\r\n if (this.log) {\r\n this.downloadValue();\r\n }\r\n }\r\n\r\n private downloadValue() {\r\n let bytes = new Uint8Array(this.log.length);\r\n\r\n for (let i = 0; i < bytes.length; i++) {\r\n bytes[i] = this.log.charCodeAt(i);\r\n }\r\n\r\n const blob = new Blob([bytes], { type: 'text/plain' });\r\n FileSaver.saveAs(blob, `${this.model.name.split('.').shift()}.txt`);\r\n }\r\n\r\n @computed public get searchTerm() {\r\n return `${\r\n this.status\r\n }${this.started?.calendar()}${this.daTimeQueued?.calendar()}${this.daTimeDownloadStarted?.calendar()}${this.daTimeInstructionsStarted?.calendar()}${this.daTimeInstructionsEnded?.calendar()}${this.daTimeUploadEnded?.calendar()}`.toLowerCase();\r\n }\r\n}\r\n","import { action, computed, observable, runInAction } from 'mobx';\r\nimport { IWorkItem, WorkItem } from './WorkItem';\r\nimport { Project } from './Project';\r\nimport { ApiCalls } from '../ApiCalls';\r\nimport dayjs, { Dayjs } from 'dayjs';\r\nimport utc from 'dayjs/plugin/utc';\r\nimport timezone from 'dayjs/plugin/timezone';\r\nimport calendar from 'dayjs/plugin/calendar';\r\ndayjs.extend(utc);\r\ndayjs.extend(timezone);\r\ndayjs.extend(calendar);\r\n\r\nexport enum ModelType {\r\n Unknown = 'Unknown',\r\n Revit = 'Revit',\r\n Autocad = 'Autocad',\r\n}\r\n\r\nexport interface IModel {\r\n id: string;\r\n urn: string;\r\n name: string;\r\n hubId: string;\r\n projectId: string;\r\n folderId: string;\r\n designAutomationEngine: string;\r\n enabled: boolean;\r\n enabledOn: string;\r\n firstExtraction: string;\r\n lastPublish: string;\r\n lastExtraction: string;\r\n lastStatus: string;\r\n pathInProject: string;\r\n type: ModelType;\r\n}\r\n\r\nexport class Model {\r\n public readonly id: string;\r\n public readonly urn: string;\r\n public readonly name: string;\r\n public readonly hubId: string;\r\n public readonly projectId: string;\r\n public readonly folderId: string;\r\n public readonly pathInProject: string;\r\n public readonly type: ModelType;\r\n @observable public designAutomationEngine?: string;\r\n @observable public enabled: boolean;\r\n @observable public enabledOn?: Dayjs;\r\n @observable public firstExtraction?: Dayjs;\r\n public readonly lastPublish?: Dayjs;\r\n @observable public lastExtraction?: Dayjs;\r\n public readonly lastStatus: string;\r\n\r\n public readonly project: Project;\r\n\r\n @observable public workItems: WorkItem[] = [];\r\n @observable public fetched: boolean = false;\r\n\r\n constructor(props: IModel, project: Project) {\r\n this.id = props.id;\r\n this.urn = props.urn;\r\n this.name = props.name || 'Retrieving Name...';\r\n this.hubId = props.hubId;\r\n this.projectId = props.projectId;\r\n this.folderId = props.folderId;\r\n this.pathInProject = props.pathInProject;\r\n this.type = props.type;\r\n this.enabled = props.enabled;\r\n this.enabledOn = props.enabledOn\r\n ? dayjs.utc(props.enabledOn).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.firstExtraction = props.firstExtraction\r\n ? dayjs.utc(props.firstExtraction).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.lastPublish = props.lastPublish\r\n ? dayjs.utc(props.lastPublish).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.lastExtraction = props.lastExtraction\r\n ? dayjs.utc(props.lastExtraction).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.lastStatus = props.lastStatus;\r\n this.project = project;\r\n this.designAutomationEngine = props.designAutomationEngine;\r\n }\r\n\r\n @action public fetch() {\r\n this.fetched = false;\r\n ApiCalls.GetModelRuns({ model: this }).then((IWorkItems: IWorkItem[]) => {\r\n runInAction(() => {\r\n this.workItems = IWorkItems.map((val) => new WorkItem(val, this)).sort(\r\n (a, b) =>\r\n a.started && b.started && a.started?.isBefore(b.started) ? 1 : -1\r\n );\r\n this.fetched = true;\r\n });\r\n });\r\n }\r\n\r\n public run() {\r\n ApiCalls.RunModelMPA({ model: this }).then((result: IWorkItem) => {\r\n if (result) {\r\n runInAction(() => {\r\n this.firstExtraction =\r\n !this.firstExtraction && result.started\r\n ? dayjs.utc(result.started).tz(dayjs.tz.guess())\r\n : this.firstExtraction;\r\n this.lastExtraction = result.started\r\n ? dayjs.utc(result.started).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.workItems = [new WorkItem(result, this)].concat(this.workItems);\r\n });\r\n }\r\n });\r\n }\r\n\r\n public delete() {\r\n return ApiCalls.DeleteModel({ model: this }).then(() => {\r\n this.project.setModels(this.project.models.filter((val) => val !== this));\r\n });\r\n }\r\n\r\n @action.bound toggleEnabled() {\r\n runInAction(() => {\r\n this.enabled = !this.enabled;\r\n this.save();\r\n });\r\n }\r\n\r\n @action.bound setEngine(engine?: string) {\r\n return new Promise((resolve) => {\r\n runInAction(() => {\r\n this.designAutomationEngine = engine;\r\n this.save().then(resolve);\r\n });\r\n });\r\n }\r\n\r\n private save() {\r\n return ApiCalls.PatchModel({ model: this }).then((model) => {\r\n runInAction(() => {\r\n this.enabled = model.enabled;\r\n this.enabledOn = model.enabledOn\r\n ? dayjs.utc(model.enabledOn).tz(dayjs.tz.guess())\r\n : undefined;\r\n });\r\n });\r\n }\r\n\r\n public toInterface() {\r\n return {\r\n id: this.id,\r\n urn: this.urn,\r\n name: this.name,\r\n hubId: this.hubId,\r\n projectId: this.projectId,\r\n pathInProject: this.pathInProject,\r\n enabled: this.enabled,\r\n designAutomationEngine: this.designAutomationEngine,\r\n enabledOn: this.enabledOn,\r\n lastPublish: this.lastPublish,\r\n lastExtraction: this.lastExtraction,\r\n lastStatus: this.lastStatus,\r\n };\r\n }\r\n public get nextRun(): Dayjs | undefined {\r\n const nextPossible = this.lastExtraction?.add(\r\n this.project?.hub?.secondsBetweenRetry || 0,\r\n 's'\r\n );\r\n return nextPossible && nextPossible.isAfter(dayjs.utc())\r\n ? nextPossible\r\n : undefined;\r\n }\r\n\r\n @computed public get bim360url() {\r\n const isEmea = (this.project.hub?.region as any) === 'EMEA';\r\n\r\n return isEmea\r\n ? `https://docs.b360.eu.autodesk.com/projects/${this.projectId.substring(\r\n 2\r\n )}/folders/${this.folderId}/detail/viewer/items/${this.urn}`\r\n : `https://docs.b360.autodesk.com/projects/${this.projectId.substring(\r\n 2\r\n )}/folders/${this.folderId}/detail/viewer/items/${this.urn}`;\r\n }\r\n\r\n @computed public get searchTerm() {\r\n return `${this.pathInProject}/${this.name} ${this.type} ${this.lastExtraction} ${this.lastPublish} ${this.lastStatus}`.toLowerCase();\r\n }\r\n}\r\n","import { computed, observable, runInAction } from 'mobx';\r\nimport { ApiCalls } from '../ApiCalls';\r\n\r\nexport interface IDesignAutomationEngine {\r\n id: string;\r\n name: string;\r\n displayName: string;\r\n activityId?: string;\r\n zipActivityId?: string;\r\n}\r\n\r\nexport class DesignAutomationEngine {\r\n public id: string;\r\n public name: string;\r\n public displayName: string;\r\n public product: string;\r\n public year: string;\r\n @observable public activityId?: string;\r\n @observable public zipActivityId?: string;\r\n\r\n constructor({\r\n id,\r\n name,\r\n displayName,\r\n activityId,\r\n zipActivityId,\r\n }: IDesignAutomationEngine) {\r\n this.id = id;\r\n this.name = name;\r\n this.displayName = displayName;\r\n this.product = name.split('.').pop()?.split('+').shift() || '';\r\n this.year = name.split('.').pop()?.split('+').pop() || '';\r\n this.activityId = activityId;\r\n this.zipActivityId = zipActivityId;\r\n }\r\n\r\n @computed public get simpleName() {\r\n return `${this.product} ${this.year}`;\r\n }\r\n\r\n public setActivityId({\r\n activityId,\r\n zipActivityId,\r\n }: {\r\n activityId?: string;\r\n zipActivityId?: string;\r\n }) {\r\n return new Promise((resolve) => {\r\n runInAction(() => {\r\n this.activityId = activityId || '';\r\n this.zipActivityId = zipActivityId || '';\r\n this.save().then(resolve);\r\n });\r\n });\r\n }\r\n\r\n public save() {\r\n return ApiCalls.patchDesignAutomationEngines({ engine: this });\r\n }\r\n\r\n public upload(file: File) {\r\n ApiCalls.postUploadAppBundle({ engine: this, file: file }).then(\r\n (engine) => {\r\n runInAction(() => {\r\n this.activityId = engine.activityId;\r\n });\r\n }\r\n );\r\n }\r\n\r\n public get interface() {\r\n return {\r\n id: this.id,\r\n name: this.name,\r\n displayName: this.displayName,\r\n activityId: this.activityId,\r\n zipActivityId: this.zipActivityId,\r\n };\r\n }\r\n\r\n @computed public get searchTerm() {\r\n return `${this.name}${this.activityId}`;\r\n }\r\n}\r\n","import { ApiCalls } from '../ApiCalls';\r\nimport { action, computed, observable, runInAction } from 'mobx';\r\nimport { appState } from '../../App';\r\nimport { IModel, Model } from './Model';\r\nimport dayjs, { Dayjs } from 'dayjs';\r\nimport utc from 'dayjs/plugin/utc';\r\nimport timezone from 'dayjs/plugin/timezone';\r\nimport calendar from 'dayjs/plugin/calendar';\r\nimport advancedFormat from 'dayjs/plugin/advancedFormat'\r\nimport {\r\n DesignAutomationEngine,\r\n IDesignAutomationEngine,\r\n} from './DesignAutomationEngine';\r\ndayjs.extend(utc);\r\ndayjs.extend(timezone);\r\ndayjs.extend(calendar);\r\ndayjs.extend(advancedFormat);\r\n\r\nexport enum ProjectStatus {\r\n Idle = 'Idle',\r\n BuildingFolderTree = 'BuildingFolderTree',\r\n}\r\n\r\nexport interface IProject {\r\n hubId: string;\r\n projectId: string;\r\n id: string;\r\n name: string;\r\n designAutomationEngine: string;\r\n engine: IDesignAutomationEngine;\r\n acadEngine: IDesignAutomationEngine;\r\n enabled: boolean;\r\n enabledOn: string;\r\n enabledBy: string;\r\n lastPublish: string;\r\n lastExtraction: string;\r\n lastStatus: string;\r\n modelCount: number;\r\n status: ProjectStatus;\r\n lastFolderTreeSync?: string;\r\n}\r\n\r\nexport class Project {\r\n public readonly id: string;\r\n public readonly hubId: string;\r\n @computed public get accountId() {\r\n return this.hubId.substring(2);\r\n }\r\n public readonly projectId: string;\r\n public readonly name: string;\r\n @observable private _engine?: DesignAutomationEngine;\r\n @observable private _acadEngine?: DesignAutomationEngine;\r\n @observable public enabled: boolean;\r\n @observable public enabledOn?: Dayjs;\r\n @observable public enabledBy: string;\r\n @observable public status: ProjectStatus;\r\n @observable public lastFolderTreeSync?: Dayjs;\r\n @observable public webhooks?: any;\r\n @observable public webhooksLoading: boolean = false;\r\n\r\n public lastPublish?: Dayjs;\r\n public lastExtraction?: Dayjs;\r\n public lastStatus: string;\r\n public modelCount: number;\r\n\r\n @observable public models: Model[] = [];\r\n @observable public fetched: boolean = false;\r\n\r\n constructor({\r\n hubId,\r\n projectId,\r\n id,\r\n name,\r\n engine,\r\n acadEngine,\r\n enabled,\r\n enabledOn,\r\n enabledBy,\r\n lastPublish,\r\n lastExtraction,\r\n lastStatus,\r\n modelCount,\r\n status,\r\n lastFolderTreeSync,\r\n }: IProject) {\r\n this.id = id;\r\n this.hubId = hubId;\r\n this.projectId = projectId;\r\n this.name = name;\r\n this._engine = engine ? new DesignAutomationEngine(engine) : undefined;\r\n this._acadEngine = acadEngine ? new DesignAutomationEngine(acadEngine) : undefined;\r\n this.enabled = enabled;\r\n this.enabledOn = enabledOn\r\n ? dayjs.utc(enabledOn).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.enabledBy = enabledBy;\r\n\r\n this.lastPublish = lastPublish\r\n ? dayjs.utc(lastPublish).tz(dayjs.tz.guess())\r\n : undefined;\r\n this.lastExtraction = lastExtraction\r\n ? dayjs.utc(lastExtraction).tz(dayjs.tz.guess())\r\n : undefined;\r\n\r\n this.lastStatus = lastStatus;\r\n this.modelCount = modelCount;\r\n this.status = status;\r\n this.lastFolderTreeSync = lastFolderTreeSync\r\n ? dayjs.utc(lastFolderTreeSync).tz(dayjs.tz.guess())\r\n : undefined;\r\n }\r\n\r\n @computed public get hub() {\r\n return appState.hubs.find((x) => x.hubId === this.hubId);\r\n }\r\n\r\n @computed public get engine() {\r\n return appState.designAutomationEngines.find(\r\n (x) => x.id === this._engine?.id\r\n );\r\n }\r\n\r\n @computed public get acadEngine() {\r\n return appState.designAutomationEngines.find(\r\n (e) => e.id === this._acadEngine?.id\r\n );\r\n }\r\n\r\n @action public fetch() {\r\n this.fetched = false;\r\n this.refresh();\r\n ApiCalls.GetModels({ project: this }).then((IModels: IModel[]) => {\r\n this.setModels(IModels.map((val) => new Model(val, this)));\r\n });\r\n }\r\n\r\n @action public runFilteredModels(body) {\r\n ApiCalls.RunFilteredModels({ project: this, body: body }).then(() => {\r\n this.refresh();\r\n })\r\n }\r\n\r\n @action public runAllModels() {\r\n ApiCalls.RunAllModels({project: this}).then(() => {\r\n this.refresh();\r\n })\r\n }\r\n\r\n @action public setModels(models: Model[]) {\r\n this.models = models;\r\n this.fetched = true;\r\n }\r\n \r\n @action public fetchWebHooks(): Promise {\r\n this.webhooksLoading = true;\r\n return ApiCalls.GetWebHooks({project: this}).then(hooks => runInAction(() => {\r\n this.webhooks = hooks;\r\n this.webhooksLoading = false;\r\n console.log(`Webhooks for project ${this.name}:`, hooks);\r\n }));\r\n }\r\n\r\n @action public toggleEnabled() {\r\n this.enabled = !this.enabled;\r\n if (this.enabled) {\r\n this.enabledBy = appState.user?.email || '';\r\n this.enabledOn = dayjs();\r\n } else {\r\n this.enabledBy = '';\r\n this.enabledOn = undefined;\r\n }\r\n return this.save().then((project) => {\r\n runInAction(() => {\r\n this.enabledBy = project.enabledBy;\r\n this.enabledOn = project.enabledOn\r\n ? dayjs.utc(project.enabledOn).tz(dayjs.tz.guess())\r\n : undefined;\r\n });\r\n });\r\n }\r\n\r\n @action.bound public setEngine(engine?: string) {\r\n return new Promise((resolve) => {\r\n runInAction(() => {\r\n this._engine = appState.designAutomationEngines.find(\r\n (x) => x.id === engine\r\n );\r\n this.save().then(resolve);\r\n });\r\n });\r\n }\r\n\r\n @action.bound public setAcadEngine(engine?: string) {\r\n return new Promise((resolve) => {\r\n runInAction(() => {\r\n this._acadEngine = appState.designAutomationEngines.find(\r\n (x) => x.id === engine\r\n );\r\n this.save().then(resolve);\r\n });\r\n });\r\n }\r\n\r\n public async sync() {\r\n return await ApiCalls.SyncProjectFolderTree({ project: this }).then(\r\n (project) => {\r\n runInAction(() => {\r\n this.status = project.status;\r\n });\r\n }\r\n );\r\n }\r\n\r\n public async refresh() {\r\n return await ApiCalls.GetProject({ projectId: this.id }).then((project) => {\r\n runInAction(() => {\r\n this.status = project.status;\r\n this.lastFolderTreeSync = project.lastFolderTreeSync\r\n ? dayjs.utc(project.lastFolderTreeSync).tz(dayjs.tz.guess())\r\n : undefined;\r\n });\r\n });\r\n }\r\n\r\n private save() {\r\n return ApiCalls.PatchProject({ project: this });\r\n }\r\n\r\n public toInterface() {\r\n return {\r\n id: this.id,\r\n hubId: this.hubId,\r\n projectId: this.projectId,\r\n enabled: this.enabled,\r\n engine: this.engine ?? '',\r\n acadEngine: this.acadEngine ?? ''\r\n };\r\n }\r\n\r\n @computed public get searchTerm() {\r\n return `${this.name} ${this.hub?.name} ${this.enabledBy}`.toLowerCase();\r\n }\r\n}\r\n","export interface IConfig {\r\n isAutocadEnabled: boolean;\r\n}\r\n\r\nexport class Config {\r\n public isAutocadEnabled: boolean;\r\n\r\n constructor({ isAutocadEnabled }: IConfig) {\r\n this.isAutocadEnabled = isAutocadEnabled;\r\n }\r\n\r\n public toInterface(): IConfig {\r\n return {\r\n isAutocadEnabled: this.isAutocadEnabled\r\n }\r\n }\r\n}\r\n","import { action, computed, observable, runInAction } from 'mobx';\r\nimport { Error } from './DataTypes/Error';\r\nimport { User } from './DataTypes/User';\r\nimport { Hub } from './DataTypes/Hub';\r\nimport { Log } from './DataTypes/Log';\r\nimport { Project } from './DataTypes/Project';\r\nimport { ApiCalls } from './ApiCalls';\r\nimport { DesignAutomationEngine } from './DataTypes/DesignAutomationEngine';\r\nimport { Config } from './DataTypes/Config';\r\n\r\nexport class AppState {\r\n @observable public errors: Error[] = [];\r\n @observable public hubs: Hub[] = [];\r\n @observable public logs: Log[] = [];\r\n @observable public projects: Project[] = [];\r\n @observable public authUrl?: string;\r\n @observable public user?: User;\r\n @observable public timezones: string[] = [];\r\n @observable public designAutomationEngines: DesignAutomationEngine[] = [];\r\n @observable public ready: boolean = false;\r\n @observable public config?: Config;\r\n\r\n public history: any;\r\n\r\n @action setErrors(errors: Error[]) {\r\n this.errors = errors;\r\n }\r\n\r\n constructor() {\r\n new Promise((resolve, reject) => {\r\n this.fetchUser()\r\n .then(() => resolve())\r\n .catch(() => {\r\n reject();\r\n });\r\n })\r\n .then(() => {\r\n return Promise.all([\r\n this.fetchTimezones(),\r\n this.fetchDesignAutomationEngines(),\r\n this.fetchHubs(),\r\n this.fetchLogs(),\r\n this.fetchProjects(),\r\n this.fetchConfig(),\r\n ]);\r\n })\r\n .finally(() => {\r\n this.setReady(true);\r\n });\r\n }\r\n\r\n @action public setReady(state: boolean) {\r\n this.ready = state;\r\n }\r\n\r\n @action public setAuthUrl(authUrl: string) {\r\n this.authUrl = authUrl;\r\n }\r\n\r\n @computed public get allProjects() {\r\n return this.projects;\r\n }\r\n @computed public get enabledProjects() {\r\n return this.projects.filter((val) => val.enabled);\r\n }\r\n\r\n public refreshHubs() {\r\n ApiCalls.RefreshHubs().then(() => {\r\n return this.fetchHubs();\r\n });\r\n }\r\n\r\n public refresh({\r\n projectId,\r\n modelId,\r\n workItemId,\r\n }: {\r\n projectId: string;\r\n modelId: string;\r\n workItemId: string;\r\n }) {\r\n const project = this.projects.find((x) => x.id === projectId);\r\n const model = project?.models.find((x) => x.id === modelId);\r\n const workItem = model?.workItems.find((x) => x.id === workItemId);\r\n if (workItem) {\r\n workItem.fetch();\r\n } else if (model) {\r\n model.fetch();\r\n } else if (project) {\r\n project.fetch();\r\n }\r\n }\r\n\r\n @action.bound public fetchUser() {\r\n return new Promise((resolve, reject) => {\r\n ApiCalls.fetchUser()\r\n .then((user) => {\r\n runInAction(() => {\r\n this.user = new User(user);\r\n resolve();\r\n });\r\n })\r\n .catch((err: unknown) => {\r\n ApiCalls.fetchAuthUrl().then((authUrl: string) => {\r\n this.setAuthUrl(authUrl);\r\n reject();\r\n });\r\n\r\n console.error('ERROR', err);\r\n });\r\n });\r\n }\r\n\r\n private fetchTimezones() {\r\n return ApiCalls.getTimezones().then((timezones) => {\r\n runInAction(() => {\r\n this.timezones = timezones;\r\n });\r\n });\r\n }\r\n\r\n private fetchDesignAutomationEngines() {\r\n return ApiCalls.getDesignAutomationEngines().then((engines) => {\r\n runInAction(() => {\r\n this.designAutomationEngines = engines\r\n .map((val) => new DesignAutomationEngine(val))\r\n .filter((val) => val.product === 'Revit' || val.product === 'AutoCAD')\r\n .sort((a, b) =>\r\n b.name.localeCompare(a.name, 'en', { numeric: true })\r\n );\r\n });\r\n });\r\n }\r\n\r\n private fetchHubs() {\r\n return ApiCalls.GetHubs().then((hubs) => {\r\n runInAction(() => {\r\n this.hubs = hubs.map((hub) => new Hub(hub));\r\n });\r\n });\r\n }\r\n\r\n private fetchConfig() {\r\n return ApiCalls.GetConfig().then((config) => {\r\n runInAction(() => {\r\n this.config = new Config(config);\r\n });\r\n });\r\n }\r\n\r\n @action.bound public fetchProjects() {\r\n return ApiCalls.GetProjects({ includeDisabled: true })\r\n .then((projects) => {\r\n runInAction(() => {\r\n this.projects =\r\n projects?.map((project) => new Project(project)) ?? [];\r\n });\r\n })\r\n .catch(() => {\r\n runInAction(() => (this.projects = []));\r\n });\r\n }\r\n\r\n @action.bound public fetchProject(projectId: string) {\r\n return ApiCalls.GetProject({ projectId })\r\n .then((project) => {\r\n runInAction(() => {\r\n if (this.projects?.length) {\r\n const nextProjects: Project[] = [];\r\n let found = false;\r\n for (const proj of this.projects) {\r\n if (proj.id === project.id) {\r\n nextProjects.push(new Project(project));\r\n found = true;\r\n } else {\r\n nextProjects.push(proj);\r\n }\r\n }\r\n if (!found) {\r\n nextProjects.push(new Project(project));\r\n }\r\n\r\n this.projects = nextProjects;\r\n } else {\r\n this.projects = [new Project(project)];\r\n }\r\n });\r\n })\r\n .catch(() => {});\r\n }\r\n\r\n public fetchDisabledProjects() {\r\n return ApiCalls.GetProjects({ includeDisabled: true }).then((projects) => {\r\n runInAction(() => {\r\n this.projects =\r\n projects?.map?.((project) => new Project(project)) ?? [];\r\n });\r\n });\r\n }\r\n\r\n private fetchLogs() {\r\n return ApiCalls.getLogs().then((logNames) => {\r\n runInAction(() => {\r\n this.logs = (logNames || []).map((name) => new Log({ name }));\r\n });\r\n });\r\n }\r\n}\r\n","export const getByStringPath = (obj: any, accessor: string): any => {\r\n const keys = accessor.split('.');\r\n let currentObj = obj;\r\n for (const key of keys) {\r\n currentObj = currentObj?.[key];\r\n }\r\n return currentObj;\r\n}","import React, { useEffect, useState } from 'react';\r\nimport {\r\n ConstrainMode,\r\n DetailsList,\r\n DetailsListLayoutMode,\r\n DetailsRow,\r\n IColumn,\r\n SelectionMode,\r\n} from 'office-ui-fabric-react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport dayjs from 'dayjs';\r\nimport { getByStringPath } from '../Utilities/Functions/objectUtils';\r\n\r\ninterface ISortedTable {\r\n items: any[];\r\n onItemInvoked?: any;\r\n columns: IColumn[];\r\n onRenderRow?: any;\r\n sortedColumnKey?: string;\r\n selectedRowId?: string;\r\n defaultSort?: { key: string; direction?: 'asc' | 'desc' };\r\n}\r\n\r\nexport const SortedTable = observer(\r\n ({\r\n items,\r\n onItemInvoked,\r\n columns,\r\n onRenderRow,\r\n sortedColumnKey,\r\n selectedRowId,\r\n defaultSort,\r\n }: ISortedTable) => {\r\n const [currentColumns, setCurrentColumns] = useState(\r\n columns.slice()\r\n );\r\n const [lastColumn, setLastColumn] = useState();\r\n const [sortedItems, setSortedItems] = useState(items.slice());\r\n\r\n useEffect(() => setCurrentColumns(columns.slice()), [columns]);\r\n\r\n useEffect(() => {\r\n if (sortedColumnKey) {\r\n const column = columns.find((val) => val.key === sortedColumnKey);\r\n if (column) {\r\n setLastColumn(column);\r\n }\r\n }\r\n //eslint-disable-next-line\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (lastColumn) {\r\n onColumnClick(null, lastColumn, true);\r\n } else {\r\n setSortedItems(items);\r\n }\r\n //eslint-disable-next-line\r\n }, [items]);\r\n\r\n const onColumnClick = (ev: any, column: IColumn, keepSort?: boolean) => {\r\n const newColumns: IColumn[] = columns.slice();\r\n const currColumn: IColumn = newColumns.filter(\r\n (currCol) => column.key === currCol.key\r\n )[0];\r\n\r\n newColumns.forEach((newCol: IColumn) => {\r\n if (newCol === currColumn) {\r\n currColumn.isSortedDescending = keepSort\r\n ? !!column.isSortedDescending\r\n : !currColumn.isSortedDescending;\r\n currColumn.isSorted = true;\r\n setLastColumn(currColumn);\r\n } else {\r\n newCol.isSorted = false;\r\n newCol.isSortedDescending = false;\r\n }\r\n });\r\n\r\n const sorted = items.slice().sort((a, b) => {\r\n const sortKey = currColumn.data?.sortKey;\r\n const finalKey = sortKey ?? currColumn.fieldName ?? currColumn.key;\r\n\r\n const aVal = getByStringPath(a, finalKey);\r\n const bVal = getByStringPath(b, finalKey);\r\n\r\n const second: any = currColumn.isSortedDescending ? aVal : bVal;\r\n const first: any = currColumn.isSortedDescending ? bVal : aVal;\r\n\r\n if (!first && first !== 0) {\r\n return 1;\r\n }\r\n if (!second && second !== 0) {\r\n return -1;\r\n }\r\n\r\n if (first instanceof dayjs || second instanceof dayjs) {\r\n return first.isBefore(second) ? 1 : -1;\r\n }\r\n\r\n //@ts-ignore\r\n return String(first).localeCompare(String(second), 'en', {\r\n numeric: true,\r\n });\r\n });\r\n\r\n setCurrentColumns(newColumns);\r\n setSortedItems(sorted);\r\n };\r\n\r\n useEffect(() => {\r\n if (defaultSort) {\r\n const column = columns.find((val) => val.key === defaultSort.key);\r\n if (column) {\r\n onColumnClick(\r\n null,\r\n {\r\n ...column,\r\n isSortedDescending: defaultSort.direction === 'desc',\r\n },\r\n true\r\n );\r\n }\r\n }\r\n }, [defaultSort]);\r\n\r\n const filtered = currentColumns.map((val) => {\r\n val.onColumnClick = onColumnClick;\r\n return val;\r\n });\r\n\r\n return (\r\n {\r\n return (\r\n onItemInvoked?.(props?.item)}\r\n styles={{\r\n cell: {\r\n cursor: onItemInvoked ? 'pointer' : 'inherit',\r\n backgroundColor:\r\n selectedRowId === props?.item.id\r\n ? 'rgba(0,181,226,.10)'\r\n : 'white',\r\n },\r\n }}\r\n />\r\n );\r\n }\r\n }\r\n columns={filtered.slice()}\r\n />\r\n );\r\n }\r\n);\r\n","import React from 'react';\r\n\r\nexport const Loading = () => {\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","import React, { useEffect, useState } from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { IColumn, SearchBox } from 'office-ui-fabric-react';\r\nimport { SortedTable } from './SortedTable';\r\nimport { Link } from 'react-router-dom';\r\nimport { Loading } from './Loading';\r\n\r\ninterface ISearchableAndSortableTable {\r\n title?: string;\r\n titleLink?: string;\r\n placeholder?: string;\r\n items: any[];\r\n onItemInvoked?: any;\r\n columns: IColumn[];\r\n onRenderRow?: any;\r\n sortedColumnKey?: string;\r\n selectedRowId?: string;\r\n rightTitle?: any;\r\n showSearchCount?: boolean;\r\n loading?: boolean;\r\n defaultSort?: { key: string; direction?: 'asc' | 'desc' };\r\n setFoundItems?: any;\r\n}\r\n\r\nexport const SearchableAndSortableTable = observer(\r\n ({\r\n title,\r\n titleLink,\r\n placeholder,\r\n items,\r\n onItemInvoked,\r\n columns,\r\n onRenderRow,\r\n sortedColumnKey,\r\n selectedRowId,\r\n rightTitle,\r\n showSearchCount,\r\n loading,\r\n defaultSort,\r\n setFoundItems\r\n }: ISearchableAndSortableTable) => {\r\n const [search, setSearch] = useState('');\r\n const [searchedItems, setSearchedItems] = useState(items);\r\n\r\n useEffect(() => {\r\n if (search) {\r\n var lowerCaseTerm = search.toLowerCase();\r\n setSearchedItems(\r\n items.filter((val) => val.searchTerm.indexOf(lowerCaseTerm) > -1)\r\n );\r\n } else {\r\n setSearchedItems(items);\r\n }\r\n }, [search, items]);\r\n\r\n useEffect(() => {\r\n if (setFoundItems) {\r\n setFoundItems(searchedItems);\r\n }\r\n }, [searchedItems]);\r\n\r\n return (\r\n \r\n {title && (\r\n \r\n

\r\n {titleLink ? (\r\n \r\n {title}\r\n \r\n ) : (\r\n title\r\n )}\r\n

\r\n
\r\n {rightTitle}\r\n
\r\n )}\r\n
\r\n
\r\n setSearch(value || '')}\r\n />\r\n
\r\n {showSearchCount && search ? (\r\n \r\n {searchedItems.length} / {items.length}\r\n
\r\n ) : (\r\n ''\r\n )}\r\n
\r\n
\r\n {loading ? (\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 { observer } from 'mobx-react-lite';\r\nimport { Toggle } from 'office-ui-fabric-react';\r\nimport { appState } from '../../App';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Hub } from '../../Utilities/DataTypes/Hub';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { SearchableAndSortableTable } from '../SearchableAndSortableTable';\r\n\r\nexport const HubsList = observer(() => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n return (\r\n \r\n item.autoEnableProjects ? t('Enable') : t('Disable'),\r\n },\r\n {\r\n key: 'autoEnableModels',\r\n name: t('Model Default'),\r\n fieldName: 'autoEnableModels',\r\n minWidth: 120,\r\n onRender: (item) =>\r\n item.autoEnableModels ? t('Enable') : t('Disable'),\r\n },\r\n {\r\n key: 'delayTime',\r\n name: t('Minimum Delay'),\r\n fieldName: 'delayTime',\r\n minWidth: 120,\r\n },\r\n {\r\n key: 'enabled',\r\n name: t('Include in Project List'),\r\n fieldName: 'enabled',\r\n minWidth: 150,\r\n onRender: (item: Hub) => ,\r\n },\r\n ]}\r\n items={appState.hubs}\r\n onItemInvoked={(item: Hub) => {\r\n history.push(`/settings/hubs/${item.id}`);\r\n }}\r\n showSearchCount={true}\r\n />\r\n );\r\n});\r\n\r\nconst HubToggle = observer(({ hub }: { hub: Hub }) => {\r\n return (\r\n \r\n {\r\n e.stopPropagation();\r\n hub.toggleEnabled();\r\n }}\r\n />\r\n
\r\n );\r\n});\r\n","import React from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { DefaultButton } from 'office-ui-fabric-react';\r\nimport { appState } from '../../App';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Log } from '../../Utilities/DataTypes/Log';\r\nimport { useHistory } from 'react-router';\r\nimport { SearchableAndSortableTable } from '../SearchableAndSortableTable';\r\n\r\nexport const LogsList = observer(() => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n\r\n return (\r\n \r\n item.value === 'toggleAll' ? {item.name} : item.name,\r\n },\r\n {\r\n key: 'id',\r\n name: '',\r\n fieldName: 'id',\r\n minWidth: 120,\r\n onRender: (item: any) => (\r\n {\r\n e.stopPropagation();\r\n item.download();\r\n }}\r\n text={t('Download')}\r\n />\r\n ),\r\n },\r\n ]}\r\n items={appState.logs}\r\n onItemInvoked={(item: Log) => {\r\n history.push(`/settings/logs/${item.name}`);\r\n }}\r\n selectedRowId={''}\r\n showSearchCount={true}\r\n />\r\n );\r\n});\r\n","import React from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { appState } from '../../App';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Hub } from '../../Utilities/DataTypes/Hub';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { SearchableAndSortableTable } from '../SearchableAndSortableTable';\r\n\r\nexport const EngineList = observer(() => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n return (\r\n {\r\n history.push(`/settings/engines/${item.id}`);\r\n }}\r\n showSearchCount={true}\r\n />\r\n );\r\n});\r\n","import React from 'react';\r\n\r\nexport const VersionButton = () => {\r\n return (\r\n
\r\n 2023.10.03.a\r\n
\r\n );\r\n};\r\n","import React, { useCallback } from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { HubsList } from '../Components/Settings/HubsList';\r\nimport { LogsList } from '../Components/Settings/LogsList';\r\nimport '@fortawesome/fontawesome-free/css/all.min.css';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { DefaultButton } from 'office-ui-fabric-react';\r\nimport { appState } from '../App';\r\nimport { EngineList } from '../Components/Settings/EngineList';\r\nimport { VersionButton } from '../Components/VersionButton';\r\n\r\nexport const SettingsPage = observer(() => {\r\n const { t } = useTranslation();\r\n \r\n const handleDownloadAll = useCallback(() => {\r\n if (appState?.logs?.length) {\r\n for (const log of appState.logs) {\r\n log?.download();\r\n }\r\n }\r\n }, [appState.logs])\r\n\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n
\r\n

{t('Hubs')}

\r\n
\r\n {appState.user?.applicationAdmin ? (\r\n appState.refreshHubs()}\r\n />\r\n ) : (\r\n \r\n )}\r\n
\r\n \r\n \r\n {appState.user?.applicationAdmin ? (\r\n \r\n
\r\n

{t('Design Automation Engines')}

\r\n
\r\n \r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n {appState.user?.applicationAdmin ? (\r\n
\r\n
\r\n
\r\n

{t('Application Logs')}

\r\n
\r\n \r\n \r\n \r\n \r\n
\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 { Error } from '../Utilities/DataTypes/Error';\r\nimport { MessageBar, MessageBarType } from 'office-ui-fabric-react';\r\n\r\ninterface IErrorBar {\r\n error: Error;\r\n}\r\n\r\nconst ErrorBar = ({ error }: IErrorBar) => {\r\n return (\r\n \r\n {error.title}: {error.message}\r\n \r\n );\r\n};\r\n\r\nexport default ErrorBar;\r\n","import React from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { User } from '../Utilities/DataTypes/User';\r\nimport { Link } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { PrimaryButton } from 'office-ui-fabric-react';\r\n\r\nexport const Header = observer(({ user }: { user: User }) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n
\r\n

\r\n {t('Revit Model Performance Analytics')}\r\n

\r\n
    \r\n
  • \r\n {t('Projects')}\r\n
  • \r\n
  • \r\n {t('Settings')}\r\n
  • \r\n
  • \r\n {t('Index Reporting')}\r\n
  • \r\n
\r\n\r\n
\r\n {user.profilePicture && (\r\n \r\n \r\n
\r\n )}\r\n
\r\n {user.name}\r\n
\r\n
\r\n
\r\n \r\n {t('Logout')}\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n});\r\n","import React from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { appState } from '../App';\r\nimport ErrorBar from './ErrorBar';\r\nimport { Header } from './Header';\r\n\r\nexport const Layout = observer(({ children }: { children: any }) => {\r\n return (\r\n \r\n {appState.errors.map((val, index) => (\r\n \r\n ))}\r\n
\r\n
{children}
\r\n \r\n );\r\n});\r\n","import React from 'react';\r\nimport { Loading } from '../Components/Loading';\r\n\r\nexport const LoadingPage = () => {\r\n return ;\r\n};\r\n","import React from 'react';\r\nimport { appState } from '../App';\r\nimport { PrimaryButton, Text } from 'office-ui-fabric-react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport const LoginPage = () => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n {t('Login using Autodesk Account')}\r\n \r\n \r\n {t('You must log in prior to using this application')}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n","import { observer } from 'mobx-react-lite';\r\nimport { Dayjs } from 'dayjs';\r\nimport React from 'react';\r\n\r\nexport const SimpleDate = observer(({ date }: { date?: Dayjs }) => {\r\n return
{date?.calendar()}
;\r\n});\r\n","import React, { useEffect, useMemo, useState } from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { appState } from '../App';\r\nimport { SearchableAndSortableTable } from './SearchableAndSortableTable';\r\nimport { Project } from '../Utilities/DataTypes/Project';\r\nimport { IColumn, Toggle } from 'office-ui-fabric-react';\r\nimport { SimpleDate } from './SimpleDate';\r\nimport { findIndexOf } from '../Utilities/Functions/arrayUtils';\r\n\r\nexport const ProjectsList = observer(() => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n const { projectId } = useParams<{ projectId: string }>();\r\n const [showDisabledProjects, setShowDisabledProjects] = useState(true);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const columns: IColumn[] = projectId\r\n ? [\r\n {\r\n key: 'name',\r\n fieldName: 'name',\r\n minWidth: 120,\r\n name: t('Project Name'),\r\n },\r\n ]\r\n : [\r\n {\r\n key: 'name',\r\n fieldName: 'name',\r\n minWidth: 120,\r\n name: t('Project Name'),\r\n },\r\n {\r\n key: 'hub.name',\r\n fieldName: 'hub.name',\r\n minWidth: 100,\r\n name: t('Hub'),\r\n onRender: (item) => item.hub?.name,\r\n },\r\n {\r\n key: 'enabled',\r\n fieldName: 'enabled',\r\n minWidth: 70,\r\n name: t('Enabled'),\r\n onRender: (item) => (item.enabled ? t('Yes') : t('No')),\r\n },\r\n // {key: 'enabledOn', fieldName: 'enabledOn', minWidth: 140, name: t(\"Enabled On\"),\r\n // onRender: item=>()},\r\n // {key: 'enabledBy', fieldName: 'enabledBy', minWidth: 100, name: t(\"Enabled By\"),\r\n // onRender: item=>()},\r\n // {\r\n // key: 'lastPublish',\r\n // fieldName: 'lastPublish',\r\n // minWidth: 140,\r\n // name: t('Last Publish'),\r\n // onRender: (item) => ,\r\n // },\r\n {\r\n key: 'lastFolderTreeSync',\r\n fieldName: 'lastFolderTreeSync',\r\n minWidth: 140,\r\n name: t('Last Folder Tree Sync'),\r\n onRender: (item) =>\r\n item.lastFolderTreeSync ? (\r\n \r\n ) : (\r\n t('Never')\r\n ),\r\n },\r\n {\r\n key: 'lastExtraction',\r\n fieldName: 'lastExtraction',\r\n minWidth: 140,\r\n name: t('Last Extraction'),\r\n onRender: (item) => ,\r\n },\r\n {\r\n key: 'lastStatus',\r\n fieldName: 'lastStatus',\r\n minWidth: 100,\r\n name: t('Status'),\r\n onRender: (item: Project) => t(item.lastStatus),\r\n },\r\n {\r\n key: 'year',\r\n fieldName: 'year',\r\n minWidth: 100,\r\n name: t('Revit Version'),\r\n onRender: (item) => ,\r\n data: { sortKey: 'engine.year' },\r\n },\r\n {\r\n key: 'modelCount',\r\n fieldName: 'modelCount',\r\n minWidth: 100,\r\n name: t('Models'),\r\n },\r\n ];\r\n\r\n if (columns.length > 1 && appState.config?.isAutocadEnabled) {\r\n const rvtYearIdx = findIndexOf(columns, (col) => col?.key === 'year');\r\n if (rvtYearIdx > 0) {\r\n columns.splice(rvtYearIdx + 1, 0, {\r\n key: 'acadYear',\r\n fieldName: 'acadYear',\r\n minWidth: 100,\r\n name: t('Autocad Version'),\r\n onRender: (project) => ,\r\n });\r\n }\r\n }\r\n\r\n function toggleDisabledProjects() {\r\n setShowDisabledProjects((wasShowing) => !wasShowing);\r\n }\r\n\r\n useEffect(() => {\r\n if (showDisabledProjects) {\r\n setLoading(true);\r\n appState.fetchDisabledProjects().then(() => setLoading(false));\r\n }\r\n }, [showDisabledProjects]);\r\n\r\n return (\r\n
\r\n \r\n // )\r\n // }\r\n placeholder={t('Search Projects')}\r\n items={\r\n showDisabledProjects ? appState.allProjects : appState.enabledProjects\r\n }\r\n onItemInvoked={(item: Project) => {\r\n history.push(`/projects/${item.id}`);\r\n }}\r\n // columns={\r\n // !showDisabledProjects || projectId\r\n // ? columns\r\n // : columns.concat([\r\n // {\r\n // key: 'toggleEnabled',\r\n // fieldName: 'toggleEnabled',\r\n // minWidth: 100,\r\n // name: t('Enabled'),\r\n // onRender: (item) => ,\r\n // },\r\n // ])\r\n // }\r\n columns={columns}\r\n selectedRowId={projectId}\r\n showSearchCount={true}\r\n />\r\n
\r\n );\r\n});\r\n\r\nconst EnabledOn = observer(({ project }: { project: Project }) => {\r\n return ;\r\n});\r\nconst EnabledBy = observer(({ project }: { project: Project }) => {\r\n return {project.enabledBy};\r\n});\r\n\r\nconst RevitVersion = observer(({ project }: { project: Project }) => {\r\n return project.engine?.year ? (\r\n
{project.engine?.year}
\r\n ) : (\r\n
\r\n Not Set\r\n
\r\n );\r\n});\r\n\r\nconst AutocadVersion = observer(({ project }: { project: Project }) => {\r\n const label = project?.acadEngine?.displayName?.replace('AutoCAD ', '');\r\n return project.acadEngine ? (\r\n
{label}
\r\n ) : (\r\n
\r\n Not Set\r\n
\r\n );\r\n});\r\n\r\nexport const ProjectToggle = observer(({ project }: { project: Project }) => {\r\n return (\r\n {\r\n e.stopPropagation();\r\n project.toggleEnabled();\r\n return false;\r\n }}\r\n />\r\n );\r\n});\r\n","export function findIndexOf(arr: T[], predicate: (t?: T, idx?: number, arr?: T[]) => any): number {\r\n for (let i = 0; i < arr.length; i++) {\r\n const item = arr[i];\r\n if (predicate(item, i, arr)) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n}","import React from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { ProjectsList } from '../Components/ProjectsList';\r\n\r\nexport const ProjectsPage = observer(() => {\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport const Page404 = () => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n
\r\n

{t('Error 404')}

\r\n

{t('Page not found')}

\r\n
\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport dayjs from 'dayjs';\r\nimport { DefaultButton, PrimaryButton } from 'office-ui-fabric-react';\r\nimport { Model, ModelType } from '../Utilities/DataTypes/Model';\r\n\r\nexport const NextRunButton = observer(({ model }: { model: Model }) => {\r\n const diff = model.nextRun?.diff(dayjs(), 'm');\r\n let text = 'Run';\r\n let isDisabled = true;\r\n\r\n if (diff) {\r\n if (diff < 60) {\r\n text = `${diff} Minutes`;\r\n } else if (diff < 60 * 24) {\r\n text = `${Math.round(diff / 60)} Hours`;\r\n } else {\r\n text = `${Math.round(diff / (60 * 24))} Days`;\r\n }\r\n } else if (\r\n model.type === ModelType.Revit &&\r\n !model.project.engine?.activityId\r\n ) {\r\n text = `Can't run, activity id not defined!`;\r\n } else if (\r\n model.type === ModelType.Autocad &&\r\n !model.project.acadEngine?.activityId\r\n ) {\r\n text = `Can't run, activity id not defined!`;\r\n } else {\r\n isDisabled = false;\r\n }\r\n\r\n function run(e: React.MouseEvent) {\r\n e.stopPropagation();\r\n model.run();\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n});\r\n","import React, { useEffect, useMemo, useState } from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { appState } from '../App';\r\nimport { SearchableAndSortableTable } from './SearchableAndSortableTable';\r\nimport { DefaultButton, IColumn, Toggle } from 'office-ui-fabric-react';\r\nimport { Model, ModelType } from '../Utilities/DataTypes/Model';\r\nimport { SimpleDate } from './SimpleDate';\r\nimport { NextRunButton } from './NextRunButton';\r\nimport { Loading } from './Loading';\r\n\r\n\r\ninterface IModelList {\r\n setFoundItems?: any;\r\n}\r\n\r\nexport const ModelsList = observer(({ setFoundItems }: IModelList) => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n const { projectId } = useParams<{ projectId: string }>();\r\n const [showDisabled, setShowDisabled] = useState(true);\r\n const [items, setItems] = useState();\r\n\r\n\r\n useEffect(() => {\r\n if (items) {\r\n setFoundItems(items);\r\n }\r\n }, [items]);\r\n\r\n\r\n const project = useMemo(() => {\r\n return appState.projects.find((val) => val.id === projectId);\r\n //eslint-disable-next-line\r\n }, [projectId, appState.projects]);\r\n\r\n const columns: IColumn[] = [\r\n {\r\n key: 'name',\r\n fieldName: 'name',\r\n minWidth: 120,\r\n name: t('File Name'),\r\n isResizable: true,\r\n },\r\n {\r\n key: 'pathInProject',\r\n fieldName: 'pathInProject',\r\n minWidth: 300,\r\n isResizable: true,\r\n name: 'Path in Project',\r\n },\r\n {\r\n key: 'type',\r\n fieldName: 'type',\r\n minWidth: 100,\r\n name: t('Type'),\r\n isResizable: true,\r\n },\r\n {\r\n key: 'firstExtraction',\r\n fieldName: 'firstExtraction',\r\n minWidth: 130,\r\n name: t('First Extraction'),\r\n onRender: (item: Model) => ,\r\n isResizable: true,\r\n },\r\n {\r\n key: 'lastPublish',\r\n fieldName: 'lastPublish',\r\n minWidth: 170,\r\n name: t('Last Model Publish'),\r\n onRender: (item: Model) => ,\r\n isResizable: true,\r\n },\r\n {\r\n key: 'enabled',\r\n fieldName: 'enabled',\r\n name: t('Run on Publish?'),\r\n minWidth: 150,\r\n onRender: (item: Model) => ,\r\n },\r\n {\r\n key: 'lastExtraction',\r\n fieldName: 'lastExtraction',\r\n minWidth: 130,\r\n name: t('Last Data Extraction'),\r\n onRender: (item: Model) => ,\r\n isResizable: true,\r\n },\r\n {\r\n key: 'lastStatus',\r\n fieldName: 'lastStatus',\r\n minWidth: 100,\r\n name: t('Status'),\r\n onRender: (item: Model) => t(item.lastStatus),\r\n isResizable: true,\r\n },\r\n {\r\n key: 'bim360',\r\n fieldName: 'bim360',\r\n minWidth: 120,\r\n name: t('BIM 360'),\r\n isResizable: true,\r\n onRender: (item: Model) => (\r\n e.stopPropagation()}\r\n >\r\n \r\n \r\n ),\r\n },\r\n {\r\n key: 'retry',\r\n fieldName: 'retry',\r\n minWidth: 300,\r\n name: t('Run'),\r\n onRender: (item: Model) => ,\r\n isResizable: true,\r\n },\r\n ];\r\n\r\n const models = project?.models || [];\r\n const enabledModels = models.filter((val) => val.enabled);\r\n\r\n const labelText = appState.config?.isAutocadEnabled\r\n ? t('Models & Drawings')\r\n : t('Models');\r\n\r\n const searchText = appState.config?.isAutocadEnabled\r\n ? t('Search Models & Drawings')\r\n : t('Search Models');\r\n\r\n return project?.fetched ? (\r\n {\r\n history.push(`/projects/${item.project.id}/models/${item.id}`);\r\n }}\r\n defaultSort={{ key: 'pathInProject' }}\r\n // columns={\r\n // showDisabled\r\n // ? columns.concat([\r\n // {\r\n // key: 'enabled',\r\n // fieldName: 'enabled',\r\n // minWidth: 100,\r\n // name: t('Enabled'),\r\n // onRender: (item: Model) => ,\r\n // },\r\n // ])\r\n // : columns\r\n // }\r\n columns={columns}\r\n // rightTitle={\r\n // setShowDisabled(!showDisabled)}\r\n // />\r\n // }\r\n showSearchCount={true}\r\n setFoundItems={setItems}\r\n />\r\n ) : (\r\n \r\n );\r\n});\r\n\r\nconst ModelFirstExtraction = observer(({ model }: { model: Model }) => (\r\n \r\n));\r\nconst ModelLastExtraction = observer(({ model }: { model: Model }) => (\r\n \r\n));\r\nconst ModelLastPublish = observer(({ model }: { model: Model }) => {\r\n if (model.type === ModelType.Revit) {\r\n return ;\r\n } else {\r\n return <>N/A;\r\n }\r\n});\r\n\r\nexport const ModelToggle = observer(({ model }: { model: Model }) => {\r\n if (model.type === ModelType.Revit) {\r\n return (\r\n {\r\n e.stopPropagation();\r\n model.toggleEnabled();\r\n return false;\r\n }}\r\n />\r\n );\r\n } else {\r\n return ;\r\n }\r\n});\r\n","import React from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport Select from 'react-select';\r\nimport { appState } from '../App';\r\nimport { DesignAutomationEngine } from '../Utilities/DataTypes/DesignAutomationEngine';\r\n\r\ntype Props = {\r\n engine?: DesignAutomationEngine;\r\n setEngine: Function;\r\n filter: (engine: DesignAutomationEngine) => any;\r\n errorLabel: string;\r\n disabled?: boolean;\r\n};\r\n\r\nexport const SelectEngine = observer(\r\n ({ engine, setEngine, filter, errorLabel, disabled }: Props) => {\r\n const selectedEngine = engine;\r\n\r\n return (\r\n
\r\n filter(e))\r\n .map((val) => ({\r\n value: val.id,\r\n label: val.displayName ?? `${val.product} ${val.year}`,\r\n }))}\r\n //@ts-ignore\r\n onChange={(item) => {\r\n setEngine((item as any)?.value);\r\n }}\r\n isDisabled={disabled}\r\n isClearable={true}\r\n styles={{\r\n singleValue: (provided, state) => ({\r\n ...provided,\r\n color: selectedEngine ? 'inherit' : 'red',\r\n }),\r\n }}\r\n value={\r\n selectedEngine\r\n ? {\r\n value: selectedEngine.id,\r\n label:\r\n selectedEngine.displayName ??\r\n `${selectedEngine.product} ${selectedEngine.year}`,\r\n }\r\n : { value: '', label: errorLabel }\r\n }\r\n />\r\n
\r\n );\r\n }\r\n);\r\n","import { useId } from '@uifabric/react-hooks';\r\nimport {\r\n DefaultButton,\r\n Dialog,\r\n DialogFooter,\r\n DialogType,\r\n PrimaryButton,\r\n} from 'office-ui-fabric-react';\r\nimport React, { useMemo } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { create, InstanceProps } from 'react-modal-promise';\r\n\r\nconst dialogStyles = { main: { maxWidth: 450 } };\r\n\r\ntype OwnProps = {\r\n count: number;\r\n onResolve: (result: boolean) => any;\r\n};\r\ntype Props = OwnProps & InstanceProps;\r\n\r\nexport const ConfirmRunAllModal = create((props) => {\r\n const { isOpen, onResolve, count } = props;\r\n const labelId: string = useId('dialogLabel');\r\n const subTextId: string = useId('subTextLabel');\r\n\r\n const { t } = useTranslation();\r\n\r\n const modalProps = useMemo(\r\n () => ({\r\n titleAriaId: labelId,\r\n subtitleAriaId: subTextId,\r\n isBlocking: false,\r\n styles: dialogStyles,\r\n }),\r\n [labelId, subTextId]\r\n );\r\n\r\n const contentProps = useMemo(\r\n () => ({\r\n type: DialogType.normal,\r\n title: t('Confirm Run All'),\r\n closeButtonAriaLabel: t('Close'),\r\n subText: t('Confirm Run All Text', { count }),\r\n }),\r\n [t, count]\r\n );\r\n\r\n return (\r\n <>\r\n
\r\n engine.displayName?.startsWith('Revit')}\r\n errorLabel={t('Revit Version Not Selected')}\r\n disabled={!isAdmin}\r\n />\r\n {appState.config?.isAutocadEnabled && (\r\n engine.displayName?.startsWith('AutoCAD')}\r\n engine={project.acadEngine}\r\n setEngine={project.setAcadEngine}\r\n errorLabel={t('AutoCAD Version Not Selected')}\r\n disabled={!isAdmin}\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 { observer } from 'mobx-react-lite';\r\nimport { Link, useHistory, useParams } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { appState } from '../App';\r\nimport { SearchableAndSortableTable } from './SearchableAndSortableTable';\r\nimport { Project } from '../Utilities/DataTypes/Project';\r\nimport { WorkItemParams } from '../Utilities/DataTypes/WorkItemParams';\r\nimport { DetailsRow } from 'office-ui-fabric-react';\r\n\r\nexport const ProjectsListSidePanel = observer(() => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n const { projectId } = useParams();\r\n\r\n return (\r\n
\r\n {\r\n history.push(`/projects/${item.id}`);\r\n }}\r\n columns={[\r\n {\r\n key: 'name',\r\n fieldName: 'name',\r\n minWidth: 20,\r\n name: t('Project Name'),\r\n },\r\n ]}\r\n selectedRowId={projectId}\r\n showSearchCount={false}\r\n />\r\n {/*
*/}\r\n
\r\n );\r\n});\r\n","import React from 'react';\r\nimport { appState } from '../App';\r\nimport { useParams } from 'react-router';\r\n\r\nexport const RefreshButton = () => {\r\n const { projectId, modelId, workItemId } = useParams();\r\n\r\n return projectId || modelId ? (\r\n appState.refresh({ projectId, modelId, workItemId })}\r\n >\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n );\r\n};\r\n\r\n/*\r\nNotice for MIT Licensed SVG:\r\n\r\nCopyright 2020 Octicons\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n\r\n */\r\n","import React from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { ProjectPanel } from '../Components/ProjectPanel';\r\nimport { ProjectsListSidePanel } from '../Components/ProjectsListSidePanel';\r\nimport { RefreshButton } from '../Components/RefreshButton';\r\n\r\nexport const SingleProjectPage = observer(() => {\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n});\r\n","import React, { useEffect, useState } from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport '@fortawesome/fontawesome-free/css/all.min.css';\r\nimport { useTranslation } from 'react-i18next';\r\nimport {\r\n Dropdown,\r\n PrimaryButton,\r\n TextField,\r\n Toggle,\r\n} from 'office-ui-fabric-react';\r\nimport { appState } from '../App';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport { Page404 } from './Page404';\r\nimport { AutoSyncIntervalType, Hub } from '../Utilities/DataTypes/Hub';\r\nimport { NavLink } from 'react-router-dom';\r\n\r\nexport const SingleHubPage = observer(() => {\r\n const { t } = useTranslation();\r\n const { hubId } = useParams<{ hubId: string }>();\r\n const history = useHistory();\r\n const [value, setValue] = useState(0);\r\n const [increment, setIncrement] = useState<'m' | 'h' | 'd'>('h');\r\n const [seconds, setSeconds] = useState(0);\r\n const hub = appState.hubs.find((val) => val.id === hubId);\r\n\r\n const [autoSyncInterval, setAutoSyncInterval] = useState();\r\n const [autoSyncIntervalType, setAutoSyncIntervalType] =\r\n useState();\r\n\r\n useEffect(() => {\r\n setSeconds(hub?.secondsBetweenRetry || 0);\r\n setEverything(hub?.secondsBetweenRetry || 0);\r\n setAutoSyncInterval(hub?.autoSyncInterval);\r\n setAutoSyncIntervalType(hub?.autoSyncIntervalType);\r\n }, [hub]);\r\n\r\n useEffect(() => {\r\n setEverything(seconds);\r\n }, [seconds]);\r\n\r\n function setEverything(seconds: number) {\r\n if (seconds % 86400 === 0) {\r\n setValue(seconds / 86400);\r\n setIncrement('d');\r\n } else if (seconds % 3600 === 0) {\r\n setValue(seconds / 3600);\r\n setIncrement('h');\r\n } else if (seconds % 60 === 0) {\r\n setValue(seconds / 60);\r\n setIncrement('m');\r\n }\r\n }\r\n\r\n function onChangeIncrement(e: any, option: any) {\r\n setIncrement(option.key);\r\n switch (option.key) {\r\n case 'm':\r\n setSeconds(value * 60);\r\n break;\r\n case 'h':\r\n setSeconds(value * 3600);\r\n break;\r\n case 'd':\r\n setSeconds(value * 86400);\r\n break;\r\n }\r\n }\r\n\r\n function onChangeValue(e: any, value: any) {\r\n if (!isNaN(parseFloat(value))) {\r\n switch (increment) {\r\n case 'm':\r\n setSeconds(parseFloat(value) * 60);\r\n break;\r\n case 'h':\r\n setSeconds(parseFloat(value) * 3600);\r\n break;\r\n case 'd':\r\n setSeconds(parseFloat(value) * 86400);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n function saveChanges(hub: Hub) {\r\n hub.setSecondsBetweenRetry(seconds).then(() => history.push('/settings'));\r\n }\r\n\r\n const options = [\r\n { key: 'm', text: t('Minutes') },\r\n { key: 'h', text: t('Hours') },\r\n { key: 'd', text: t('Days') },\r\n ];\r\n\r\n const autoSyncIntervalOptions = [\r\n { key: AutoSyncIntervalType.Hourly, text: t(AutoSyncIntervalType.Hourly) },\r\n { key: AutoSyncIntervalType.Daily, text: t(AutoSyncIntervalType.Daily) },\r\n {\r\n key: AutoSyncIntervalType.Monthly,\r\n text: t(AutoSyncIntervalType.Monthly),\r\n },\r\n ];\r\n\r\n if (!hub) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n

\r\n \r\n Settings\r\n {' '}\r\n ▸ {hub.name} - {hub.region}\r\n

\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n\r\n {hub.autoSyncProjectFolderTrees && (\r\n \r\n hub.setAutoSyncIntervalType(o?.key as any)}\r\n label={t('Auto Sync Interval')}\r\n />\r\n \r\n )}\r\n\r\n \r\n hub.setGroupNameParam(v || '')}\r\n />\r\n \r\n \r\n hub.setBusinessLineParam(v || '')}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n {appState.user?.applicationAdmin ? (\r\n saveChanges(hub)}\r\n />\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n});\r\n","import React, { useMemo } from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { SearchableAndSortableTable } from './SearchableAndSortableTable';\r\nimport { IColumn, Toggle } from 'office-ui-fabric-react';\r\nimport { Model } from '../Utilities/DataTypes/Model';\r\nimport { WorkItem } from '../Utilities/DataTypes/WorkItem';\r\nimport { SimpleDate } from './SimpleDate';\r\nimport { AppState } from '../Utilities/AppState';\r\n\r\nexport const WorkItemsList = observer(\r\n ({ appState }: { appState: AppState }) => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n const { projectId, modelId } = useParams();\r\n\r\n const project = useMemo(() => {\r\n const project = appState.projects.find((val) => val.id === projectId);\r\n if (!project?.fetched) project?.fetch();\r\n\r\n return project;\r\n //eslint-disable-next-line\r\n }, [projectId, appState.projects]);\r\n\r\n const model = useMemo(() => {\r\n return project?.models.find((val) => val.id === modelId);\r\n //eslint-disable-next-line\r\n }, [project, modelId, project?.models]);\r\n\r\n const columns: IColumn[] = [\r\n {\r\n key: 'started',\r\n fieldName: 'started',\r\n minWidth: 130,\r\n name: t('Started At'),\r\n onRender: (item: WorkItem) => ,\r\n },\r\n {\r\n key: 'status',\r\n fieldName: 'status',\r\n minWidth: 100,\r\n name: t('Status'),\r\n onRender: (item: WorkItem) => t(item.status),\r\n },\r\n {\r\n key: 'runBy',\r\n fieldName: 'runBy',\r\n minWidth: 150,\r\n name: t('Run By'),\r\n onRender: (item: WorkItem) => (\r\n
{item.runBy}
\r\n ),\r\n },\r\n {\r\n key: 'runtime',\r\n fieldName: 'runtime',\r\n minWidth: 100,\r\n name: t('Run Time'),\r\n onRender: (item: WorkItem) => ,\r\n },\r\n {\r\n key: 'daStarted',\r\n fieldName: 'daTimeDownloadStarted',\r\n minWidth: 130,\r\n name: t('Forge DA Started'),\r\n onRender: (item: WorkItem) => (\r\n \r\n ),\r\n },\r\n {\r\n key: 'daTimeFinished',\r\n fieldName: 'daTimeFinished',\r\n minWidth: 130,\r\n name: t('Forge DA Ended'),\r\n onRender: (item: WorkItem) => ,\r\n },\r\n ];\r\n\r\n return (\r\n \r\n history.push(\r\n `/projects/${projectId}/models/${modelId}/workItems/${item.id}/logs`\r\n )\r\n }\r\n />\r\n );\r\n }\r\n);\r\n\r\nconst RunTime = observer(({ workItem }: { workItem: WorkItem }) => {\r\n const { t } = useTranslation();\r\n let value = '';\r\n\r\n if (workItem.runtime === undefined) {\r\n value = '---';\r\n } else if (workItem.runtime === 0) {\r\n value = `< 1 ${t('minute')}`;\r\n } else if (workItem.runtime === 1) {\r\n value = `1 ${t('minute')}`;\r\n } else {\r\n value = `${workItem.runtime} ${t('minutes')}`;\r\n }\r\n\r\n return {value};\r\n});\r\n\r\nexport const ModelToggle = observer(({ model }: { model: Model }) => {\r\n return (\r\n {\r\n e.stopPropagation();\r\n model.toggleEnabled();\r\n return false;\r\n }}\r\n />\r\n );\r\n});\r\n","import React, { useEffect, useMemo } from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport { appState } from '../App';\r\nimport { Page404 } from '../Pages/Page404';\r\nimport { WorkItemsList } from './WorkItemsList';\r\nimport { DefaultButton, Toggle } from 'office-ui-fabric-react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { Loading } from './Loading';\r\nimport { NextRunButton } from './NextRunButton';\r\nimport { ModelType } from '../Utilities/DataTypes/Model';\r\n\r\ntype ProjectAndModelParams = { projectId: string; modelId: string };\r\n\r\nexport const ModelPanel = observer(() => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n const { projectId, modelId } = useParams();\r\n\r\n const project = useMemo(() => {\r\n return appState.projects.find((val) => val.id === projectId);\r\n }, [projectId]);\r\n\r\n const model = useMemo(() => {\r\n return project?.models.find((val) => val.id === modelId);\r\n //eslint-disable-next-line\r\n }, [modelId, project, project?.models]);\r\n\r\n const isAdmin = appState.user?.permissions?.find(p => p.hubId === project?.hubId && ['AccountAdmin', 'ProjectAdmin'].includes(p.role));\r\n\r\n function deleteModel() {\r\n const confirmation = window.confirm(\r\n 'Are you sure you want to delete this model? This cannot be undone'\r\n );\r\n if (confirmation) {\r\n model?.delete().then(() => {\r\n history.push(`/projects/${projectId}`);\r\n });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (project && !project?.fetched) project?.fetch();\r\n if (model && !model?.fetched) model?.fetch();\r\n }, [model, project]);\r\n\r\n if (project && !project.fetched) {\r\n return ;\r\n }\r\n\r\n if (!model || !project) {\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n

\r\n \r\n {t('Projects')}\r\n {' '}\r\n ▸ \r\n \r\n {project?.name}\r\n {' '}\r\n ▸ \r\n {model?.name}\r\n

\r\n
\r\n
\r\n {model.type === ModelType.Revit ? (\r\n model?.toggleEnabled()}\r\n disabled={!isAdmin}\r\n />\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n {t('Run-on-Publish Enabled On')}:\r\n {model.enabledOn?.calendar()}\r\n
\r\n
\r\n {t('Path in Project')}:\r\n {model.pathInProject}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Open in BIM 360\r\n \r\n {/* {appState.user?.applicationAdmin ? (\r\n \r\n ) : (\r\n ''\r\n )} */}\r\n {/**/}\r\n
\r\n \r\n
\r\n {model.fetched ? : }\r\n
\r\n \r\n );\r\n});\r\n","import React from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { ModelPanel } from '../Components/ModelPanel';\r\nimport { ProjectsListSidePanel } from '../Components/ProjectsListSidePanel';\r\nimport { RefreshButton } from '../Components/RefreshButton';\r\n\r\nexport const SingleModelPage = observer(() => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n});\r\n","import React, { useEffect, useMemo } from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { useParams } from 'react-router';\r\nimport { appState } from '../App';\r\nimport { DefaultButton } from 'office-ui-fabric-react';\r\nimport { Loading } from '../Components/Loading';\r\nimport { Page404 } from './Page404';\r\n\r\nexport const SingleLogPage = observer(() => {\r\n const { logFileName } = useParams();\r\n\r\n const currentLog = useMemo(() => {\r\n return appState.logs.find((v) => v.name === logFileName);\r\n }, [logFileName]);\r\n\r\n useEffect(() => {\r\n if (currentLog?.ready === false) {\r\n currentLog.load();\r\n }\r\n }, [currentLog]);\r\n\r\n if (!currentLog) {\r\n return ;\r\n }\r\n\r\n if (!currentLog.ready) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

{currentLog.name}

\r\n
\r\n currentLog.download()}>\r\n Download Log File\r\n \r\n
\r\n
\r\n {currentLog.value}\r\n
\r\n
\r\n );\r\n});\r\n","import React, { useMemo, useState } from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport '@fortawesome/fontawesome-free/css/all.min.css';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { PrimaryButton, TextField } from 'office-ui-fabric-react';\r\nimport { appState } from '../App';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport { Page404 } from './Page404';\r\n\r\nexport const SingleEnginePage = observer(() => {\r\n const { t } = useTranslation();\r\n const { engineId } = useParams<{ engineId: string }>();\r\n const history = useHistory();\r\n const [activityId, setActivityId] = useState();\r\n const [zipActivityId, setZipActivityId] = useState();\r\n const engine = useMemo(() => {\r\n const engine = appState.designAutomationEngines.find(\r\n (val) => val.id === engineId\r\n );\r\n setActivityId(engine?.activityId);\r\n setZipActivityId(engine?.zipActivityId);\r\n return engine;\r\n }, [engineId]);\r\n\r\n function saveChanges() {\r\n engine\r\n ?.setActivityId({ activityId: activityId, zipActivityId })\r\n .then(() => history.push('/settings'));\r\n }\r\n\r\n if (!engine) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n

\r\n {engine.displayName}{' '}\r\n {engine.name !== engine.displayName && `(${engine.name})`}\r\n

\r\n\r\n setActivityId(value)}\r\n />\r\n\r\n
\r\n\r\n \r\n
\r\n );\r\n});\r\n","import React, { useEffect, useMemo, useState } from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { useParams } from 'react-router';\r\nimport { appState } from '../App';\r\nimport { DefaultButton } from 'office-ui-fabric-react';\r\nimport { Loading } from '../Components/Loading';\r\nimport { Page404 } from './Page404';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { RefreshButton } from '../Components/RefreshButton';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { ProjectsListSidePanel } from '../Components/ProjectsListSidePanel';\r\nimport { WorkItem } from '../Utilities/DataTypes/WorkItem';\r\n\r\nconst TIME_FORMAT = 'MMM D, YYYY h:mm A';\r\n\r\ntype Params = {\r\n projectId: string;\r\n modelId: string;\r\n workItemId: string;\r\n};\r\nexport const SingleWorkitemPage = observer(() => {\r\n const { t } = useTranslation();\r\n const { projectId, modelId, workItemId } = useParams();\r\n\r\n const projects = appState.projects;\r\n const project = useMemo(() => {\r\n return projects?.find((val) => val.id === projectId);\r\n }, [projectId, projects]);\r\n\r\n const models = project?.models.slice();\r\n const model = useMemo(() => {\r\n return models?.find((val) => val.id === modelId);\r\n }, [modelId, models]);\r\n\r\n const workItems = model?.workItems.slice();\r\n const workItem = useMemo(() => {\r\n return workItems?.find((val) => val.id === workItemId);\r\n }, [workItemId, workItems]);\r\n\r\n useEffect(() => {\r\n if (project && !project?.fetched) project?.fetch();\r\n if (model && !model?.fetched) model?.fetch();\r\n if (workItem && !workItem?.fetched) workItem?.fetch();\r\n }, [model, project, workItem]);\r\n\r\n if (\r\n (project && !project?.fetched) ||\r\n (model && !model?.fetched) ||\r\n (workItem && !workItem?.fetched)\r\n ) {\r\n return ;\r\n }\r\n\r\n if (!workItem || !model || !project) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n

\r\n \r\n {t('Projects')}\r\n {' '}\r\n ▸ \r\n \r\n {project?.name}\r\n {' '}\r\n ▸ \r\n \r\n {model?.name}\r\n {' '}\r\n ▸ \r\n {workItem?.started?.toString() || 'Logs'}\r\n

\r\n
\r\n workItem.download()}>\r\n Download Log File\r\n \r\n
\r\n
\r\n
\r\n {t('Status')}:\r\n {t(workItem.status)}\r\n
\r\n
\r\n {t('Is Zip File')}:\r\n {workItem.isCompositeDesign ? t('True') : t('False')}\r\n
\r\n
\r\n {t('Run By')}:\r\n {workItem.runBy}\r\n
\r\n
\r\n {t('Activity ID')}:\r\n {workItem.activityId}\r\n
\r\n
\r\n {t('Started')}:\r\n {workItem.started?.format(TIME_FORMAT)}\r\n
\r\n
\r\n {t('Queued')}:\r\n {workItem.daTimeQueued?.format(TIME_FORMAT)}\r\n
\r\n
\r\n {t('Download Started')}:\r\n {workItem.daTimeDownloadStarted?.format(TIME_FORMAT)}\r\n
\r\n
\r\n {t('Instructions Started')}:\r\n \r\n {workItem.daTimeInstructionsStarted?.format(TIME_FORMAT)}\r\n \r\n
\r\n
\r\n {t('Instructions Ended')}:\r\n {workItem.daTimeInstructionsEnded?.format(TIME_FORMAT)}\r\n
\r\n
\r\n {t('Upload Ended')}:\r\n {workItem.daTimeUploadEnded?.format(TIME_FORMAT)}\r\n
\r\n
\r\n {t('Finished')}:\r\n {workItem.daTimeFinished?.format(TIME_FORMAT)}\r\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 const LogTypeDisplay = ({ workItem }: { workItem: WorkItem }) => {\r\n const [view, setView] = useState('log');\r\n\r\n const { outputText, outputDisabled } = useMemo(() => {\r\n if (workItem?.status === 'Success' && workItem?.outputJson) {\r\n return { outputText: 'Output JSON', outputDisabled: false };\r\n } else if (workItem?.status === 'Success') {\r\n return { outputText: 'Output JSON (deleted)', outputDisabled: true };\r\n } else {\r\n return { outputText: 'Output JSON', outputDisabled: true };\r\n }\r\n }, [workItem?.outputJson, workItem?.status]);\r\n\r\n return (\r\n \r\n
\r\n setView('log')}\r\n iconProps={{ iconName: 'ComplianceAudit' }}\r\n />\r\n setView('inputJson')}\r\n iconProps={{ iconName: 'ComplianceAudit' }}\r\n />\r\n setView('outputJson')}\r\n href={`/api/workitems/${workItem.id}/output`}\r\n target=\"_blank\"\r\n iconProps={{ iconName: 'Download' }}\r\n />\r\n
\r\n \r\n \r\n {view === 'log'\r\n ? workItem.log\r\n ? workItem.log\r\n : '--- NO CONTENT ---'\r\n : ''}\r\n {view === 'inputJson'\r\n ? workItem.inputJson\r\n ? workItem.inputJson\r\n : '--- NO CONTENT ---'\r\n : ''}\r\n {view === 'outputJson'\r\n ? workItem.outputJson\r\n ? workItem.outputJson\r\n : '--- NO CONTENT ---'\r\n : ''}\r\n \r\n
\r\n \r\n );\r\n};\r\n","import React from 'react';\r\n\r\n//Spinner Modal\r\nexport const SpinnerContext = React.createContext({\r\n enabled : false,\r\n message : null,\r\n setSpinner : () => {},\r\n});\r\n\r\n//Error Modal\r\nexport const ErrorContext = React.createContext({\r\n title : null,\r\n message : null,\r\n canClose : false,\r\n setError : () => {},\r\n});\r\n\r\n//Autodesk Forge User\r\nexport const UserContext = React.createContext({\r\n name : null,\r\n token: null,\r\n setUser : () => {},\r\n});\r\n","import React, { useContext, Fragment } from 'react';\r\nimport { SpinnerContext } from './Contexts';\r\n\r\nfunction Spinner() {\r\n\r\n //@ts-ignore\r\n const { spinner } = useContext(SpinnerContext);\r\n\r\n if (!spinner) {\r\n return <>;\r\n }\r\n \r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Loading...\r\n
\r\n {spinner.message || \"\"}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
)\r\n}\r\n\r\nexport default Spinner;\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\n\r\nfunction SelectOptions({prompt, options, selected}) {\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default SelectOptions;\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\n\r\nconst SIZE = 18;\r\nexport function PlusIcon() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport function MinusIcon() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport function FolderPlusIcon() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport function FolderMinusIcon() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport function Folder() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport function CaretRight() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport function CaretDown() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","\r\nimport React, { useState } from 'react';\r\n\r\nimport { Folder, CaretRight, CaretDown } from './Icons';\r\n\r\nfunction DocumentTree({options, path, selected}) {\r\n \r\n // don't render if empty lists\r\n if (!options || options.length === 0) {\r\n return (
)\r\n }\r\n\r\n return (\r\n
    \r\n {options && options.map(o => (\r\n \r\n ))}\r\n
\r\n );\r\n}\r\n\r\nexport default DocumentTree;\r\n\r\nfunction DocumentTreeNode({id, name, path, onSelect}) {\r\n \r\n const [childNodes, setChildNodes] = useState(null);\r\n\r\n return (\r\n {\r\n e.stopPropagation();\r\n if (childNodes) return setChildNodes(null);\r\n onSelect(id, path, setChildNodes);\r\n }}\r\n className=\"list-group-item list-group-item-action user-select-none\" \r\n aria-current=\"true\">\r\n {childNodes ? : }\r\n \r\n {name}\r\n {childNodes && }\r\n \r\n )\r\n}\r\n","\r\nimport React, { useEffect, useState } from 'react';\r\nimport CheckCircleRounded from '@material-ui/icons/CheckCircleRounded';\r\nimport CancelRounded from '@material-ui/icons/CancelRounded';\r\nimport { color } from 'highcharts';\r\n\r\nfunction DocumentList({options, onChange}) {\r\n \r\n // don't render if empty lists\r\n if (!options || options.length === 0) {\r\n return (
)\r\n }\r\n\r\n return (\r\n
    \r\n {options && options.map(o => (\r\n \r\n ))}\r\n
\r\n );\r\n}\r\n\r\nexport default DocumentList;\r\n\r\nfunction DocumentItem({ item, checked, onChange }) {\r\n\r\n const [isChecked, setChecked] = useState(checked);\r\n\r\n useEffect(() => {\r\n setChecked(checked);\r\n }, [checked]);\r\n\r\n return (\r\n \r\n {\r\n item.checked = d.target.checked;\r\n setChecked(item.checked);\r\n onChange(item);\r\n }}\r\n checked={!!isChecked}\r\n aria-label=\"...\" />\r\n {item.name}\r\n {\r\n item.passed\r\n //? \r\n //: \r\n }\r\n \r\n )\r\n}\r\n","import React,{ useState, useEffect } from \"react\";\r\n\r\nfunction Filter({disabled, onSelectAll, onClearAll, onFilterChanged, documents}) {\r\n\r\n const [filterString, setFilterString] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if (!disabled) {\r\n setFilterString(\"\");\r\n }\r\n },[disabled])\r\n\r\n const numberOfDocuments = documents ? documents.length : 0;\r\n return (\r\n
\r\n
\r\n Filter\r\n {onFilterChanged(e.target.value); setFilterString(e.target.value)}}\r\n disabled={disabled}\r\n className=\"form-control\" \r\n aria-label=\"Sizing example input\" \r\n aria-describedby=\"inputGroup-sizing-sm\" />\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Filter;\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\n\r\nimport DocumentList from './DocumentList';\r\nimport Filter from './Filter';\r\n\r\nfunction DocumentFilter({documentList, onSelectedDocumentsChanged, onDocumentChanged}) {\r\n\r\n const [filerString, setFilterString] = useState(\"\");\r\n const [filteredDocList, setFilteredDocList] = useState(null);\r\n //const [fileredDocList, setFilteredDocList] = useState(null);\r\n\r\n // when new doc filter\r\n useEffect(() => {\r\n if (documentList) {\r\n let list = documentList;\r\n // apply filter\r\n if (filerString) {\r\n list = list.filter(d => d.name.toLocaleLowerCase().includes(filerString.toLocaleLowerCase())); \r\n }\r\n setFilteredDocList(list);\r\n \r\n } else {\r\n setFilteredDocList(null);\r\n }\r\n }, [documentList, filerString])\r\n\r\n return (\r\n \r\n {\r\n setFilteredDocList(filteredDocList.map(d => { d.isChecked = true; return d }))\r\n if(onSelectedDocumentsChanged)\r\n onSelectedDocumentsChanged(documentList.filter(d => d.isChecked));\r\n }}\r\n onClearAll={() => {\r\n setFilteredDocList(filteredDocList.map(d => {d.isChecked = false; return d}))\r\n if (onSelectedDocumentsChanged)\r\n onSelectedDocumentsChanged(documentList.filter(d => d.isChecked));\r\n }}\r\n disabled={documentList && DocumentList.length > 0 ? false : false}/>\r\n \r\n \r\n )\r\n}\r\n\r\nexport default DocumentFilter;","\r\nexport interface IEvents {\r\n drilldown: Function | undefined;\r\n selection: Function | undefined;\r\n}\r\n\r\n\r\nexport class Events {\r\n public drilldown: Function | undefined;\r\n public selection: Function | undefined;\r\n\r\n constructor( drilldown, selection ) {\r\n this.drilldown = drilldown;\r\n this.selection = selection;\r\n }\r\n}\r\n","import './PieChartFigure.css';\r\n\r\nimport Highcharts from 'highcharts';\r\nimport drilldown from 'highcharts/modules/drilldown';\r\nimport React, { Component, useEffect, useState } from 'react';\r\nimport { ApiCalls } from '../Utilities/ApiCalls';\r\nimport { Events } from '../Utilities/DataTypes/Highcharts/Events';\r\n\r\nexport const PieChartFigure = ({ id, data }: { id: string, data: any }) => {\r\n\r\n data = data ?? GetLoadingTemplate();\r\n\r\n drilldown(Highcharts);\r\n useEffect(() => {\r\n ImplementChart(id, data);\r\n }, [id, data]);\r\n\r\n return (
);\r\n}\r\n\r\nfunction ImplementChart(id, data) {\r\n Highcharts.chart(id, data);\r\n}\r\n\r\nfunction GetLoadingTemplate() {\r\n return {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie'\r\n },\r\n title: {\r\n text: 'Loading...'\r\n },\r\n tooltip: {\r\n pointFormat: undefined\r\n },\r\n accessibility: {\r\n point: undefined\r\n },\r\n plotOptions: {\r\n pie: {\r\n allowPointSelect: false,\r\n cursor: 'pointer',\r\n dataLabels: {\r\n enabled: false,\r\n format: undefined\r\n }\r\n }\r\n },\r\n series: [{\r\n name: 'Loading',\r\n colorByPoint: false,\r\n data: [{\r\n name: 'Loading',\r\n y: 100,\r\n }]\r\n }]\r\n }\r\n}\r\n\r\n// Sample data structure:\r\n//{\r\n// chart: {\r\n// type: 'pie',\r\n// events: {\r\n// drilldown: function (e) {\r\n// // If clicked on axis title: drill down into product group\r\n// if (e.category !== undefined) {\r\n// if (e.points.indexOf(e.point) == 0) {\r\n// //alert('drill down into ' + e.point.category);\r\n// console.log('drill down into ' + e.point.category);\r\n// }\r\n// } else if (e.point) {\r\n// // If clicked on the column or the data label: drill down into countries\r\n// //alert('drill down into ' + e.point.series.name);\r\n// console.log('drill down into ' + e.point.drilldown);\r\n// }\r\n// },\r\n// selection: function (e) {\r\n// console.log(\"selection\");\r\n// }\r\n// }\r\n// },\r\n// title: {\r\n// text: 'Browser market shares in January, 2018'\r\n// },\r\n// tooltip: {\r\n// pointFormat: '{series.name}: {point.percentage:.1f}%'\r\n// },\r\n// accessibility: {\r\n// point: {\r\n// valueSuffix: '%'\r\n// }\r\n// },\r\n// plotOptions: {\r\n// pie: {\r\n// allowPointSelect: true,\r\n// cursor: 'pointer',\r\n// dataLabels: {\r\n// enabled: true,\r\n// format: '{point.name}: {point.percentage:.1f} %'\r\n// }\r\n// }\r\n// },\r\n// series: [{\r\n// name: 'Brands',\r\n// colorByPoint: true,\r\n// data: [{\r\n// name: 'Chrome',\r\n// y: 61.41,\r\n// sliced: true,\r\n// selected: true,\r\n// drilldown: \"Chrome\"\r\n// }, {\r\n// name: 'Internet Explorer',\r\n// y: 11.84,\r\n// drilldown: 'Internet Explorer',\r\n// }, {\r\n// name: 'Firefox',\r\n// y: 10.85\r\n// }, {\r\n// name: 'Edge',\r\n// y: 4.67\r\n// }, {\r\n// name: 'Safari',\r\n// y: 4.18\r\n// }, {\r\n// name: 'Sogou Explorer',\r\n// y: 1.64\r\n// }, {\r\n// name: 'Opera',\r\n// y: 1.6\r\n// }, {\r\n// name: 'QQ',\r\n// y: 1.2\r\n// }, {\r\n// name: 'Other',\r\n// y: 2.61\r\n// }]\r\n// }],\r\n// drilldown: {\r\n// series: [\r\n// ]\r\n// }\r\n//}\r\n","\r\nexport interface ISplashPage {\r\n deliverableIndex: string;\r\n supplierCode: string;\r\n projectName: string;\r\n packageNumber: string;\r\n packageDescriptionTitle: string;\r\n closedOutByRecord: string;\r\n packageLayerModifier: string;\r\n int_ssid: string;\r\n int_pkg_name: string;\r\n issuedFor: string;\r\n issuedDate: string;\r\n sheetsRequired: string;\r\n navisRequired: string;\r\n modelsRequired: string;\r\n}\r\n\r\nexport class SplashPage {\r\n\r\n public readonly deliverableIndex: string;\r\n public readonly supplierCode: string;\r\n public readonly projectName: string;\r\n public readonly packageNumber: string;\r\n public readonly packageDescriptionTitle: string;\r\n public readonly closedOutByRecord: string;\r\n public readonly packageLayerModifier: string;\r\n public readonly int_ssid: string;\r\n public readonly int_pkg_name: string;\r\n public readonly issuedFor: string;\r\n public readonly issuedDate: string;\r\n public readonly sheetsRequired: string;\r\n public readonly navisRequired: string;\r\n public readonly modelsRequired: string;\r\n\r\n constructor(splashPageTab) {\r\n\r\n this.deliverableIndex = splashPageTab.A1 ? splashPageTab.A1.v : undefined;\r\n this.supplierCode = splashPageTab.C2 ? splashPageTab.C2.v.toString().split(';') : undefined;\r\n this.projectName = splashPageTab.C3 ? splashPageTab.C3.v : undefined;\r\n this.packageNumber = splashPageTab.C4 ? splashPageTab.C4.v : undefined;\r\n this.packageDescriptionTitle = splashPageTab.C5 ? splashPageTab.C5.v : undefined;\r\n this.closedOutByRecord = splashPageTab.C6 ? splashPageTab.C6.v : undefined;\r\n this.packageLayerModifier = splashPageTab.C7 ? splashPageTab.C7.v : undefined;\r\n this.int_ssid = splashPageTab.C8 ? splashPageTab.C8.v.toString().split(';').map(item => item.trim()) : undefined;\r\n this.int_pkg_name = splashPageTab.C9 ? splashPageTab.C9.v.toString().split(';').map(item => item.trim()) : undefined;\r\n this.issuedFor = splashPageTab.C10 ? splashPageTab.C10.v : undefined;\r\n this.issuedDate = splashPageTab.C11 ? splashPageTab.C11.v : undefined;\r\n this.sheetsRequired = splashPageTab.C15 ? splashPageTab.C15.v : undefined;\r\n this.navisRequired = splashPageTab.C16 ? splashPageTab.C16.v : undefined;\r\n this.modelsRequired = splashPageTab.C17 ?splashPageTab.C17.v : undefined;\r\n }\r\n}\r\n","export interface ISheets {\r\n containsDwg: boolean;\r\n containsRevit: boolean;\r\n containsPdf: boolean;\r\n data: ISheetRow[];\r\n}\r\n\r\nexport interface ISheetRow {\r\n\r\n pkgno: string;\r\n discipline: string;\r\n sheet: string;\r\n filename: string;\r\n revno: string;\r\n revdate: string;\r\n comments: string;\r\n}\r\n\r\nexport class Sheets {\r\n\r\n public readonly containsDwg: boolean;\r\n public readonly containsRevit: boolean;\r\n public readonly containsPdf: boolean;\r\n public readonly data: ISheetRow[];\r\n\r\n constructor(sheetsTab) {\r\n\r\n this.containsDwg = false;\r\n this.containsPdf = false;\r\n this.containsRevit = false;\r\n\r\n var i = 3; // rows start on excel row 3\r\n var data = [];\r\n while (sheetsTab['A' + i] || sheetsTab['B' + i] || sheetsTab['C' + i] || sheetsTab['D' + i] || sheetsTab['I' + i] || sheetsTab['J' + i]) {\r\n var pkgno = sheetsTab['A' + i];\r\n var discipline = sheetsTab['B' + i];\r\n var sheet = sheetsTab['C' + i];\r\n var filename = sheetsTab['D' + i];\r\n var revno = sheetsTab['I' + i];\r\n var revdate = sheetsTab['J' + i];\r\n var comments = sheetsTab['K' + i];\r\n\r\n var row = {\r\n pkgno: pkgno ? pkgno.v : undefined,\r\n discipline: discipline ? discipline.v : undefined,\r\n sheet: sheet ? sheet.v : undefined,\r\n filename: filename ? filename.v : undefined,\r\n revno: revno ? revno.v : undefined,\r\n revdate: revdate ? revdate.v : undefined,\r\n comments: comments ? comments.v : undefined,\r\n };\r\n data.push(row);\r\n\r\n if (row.filename) {\r\n\r\n // need to check non case sensitive \r\n var extension = row.filename.split('.').pop();\r\n extension = extension.toLowerCase();\r\n if (extension === 'dwg')\r\n this.containsDwg = true;\r\n else if (extension === 'rvt')\r\n this.containsRevit = true;\r\n else if (extension === 'pdf')\r\n this.containsPdf = true;\r\n }\r\n\r\n i++;\r\n }\r\n this.data = data;\r\n }\r\n}\r\n","export interface ISourceModels {\r\n containsDwg: boolean;\r\n containsRevit: boolean;\r\n data: ISourceModelRow[];\r\n}\r\n\r\nexport interface ISourceModelRow {\r\n\r\n pkgno: string;\r\n discipline: string;\r\n filename: string;\r\n comments: string;\r\n}\r\n\r\nexport class SourceModels {\r\n\r\n public readonly containsDwg: boolean;\r\n public readonly containsRevit: boolean;\r\n public readonly data: ISourceModelRow[];\r\n\r\n constructor(sourceModelsTab) {\r\n\r\n this.containsDwg = false;\r\n this.containsRevit = false;\r\n\r\n var i = 3;\r\n var data = [];\r\n while (sourceModelsTab['A' + i] || sourceModelsTab['B' + i] || sourceModelsTab['C' + i]) {\r\n\r\n var pkgno = sourceModelsTab['A' + i];\r\n var discipline = sourceModelsTab['B' + i];\r\n var filename = sourceModelsTab['C' + i];\r\n var comments = sourceModelsTab['D' + i];\r\n\r\n var row = {\r\n pkgno: pkgno ? pkgno.v : undefined,\r\n discipline: discipline ? discipline.v : undefined,\r\n filename: filename ? filename.v : undefined,\r\n comments: comments ? comments.v : undefined\r\n };\r\n data.push(row);\r\n\r\n if (row.filename) {\r\n var extension = row.filename.split('.').pop();\r\n extension = extension.toLowerCase();\r\n if (extension == 'dwg')\r\n this.containsDwg = true;\r\n else if (extension == 'rvt')\r\n this.containsRevit = true;\r\n }\r\n\r\n i++;\r\n }\r\n this.data = data;\r\n }\r\n}\r\n","import { ISplashPage, SplashPage } from './classes/splashPage';\r\nimport { ISheets, Sheets } from './classes/sheets';\r\nimport { ISourceModels, SourceModels } from './classes/sourceModels';\r\nimport { IModal, PrimaryButton } from 'office-ui-fabric-react';\r\nimport { ApiCalls } from './ApiCalls';\r\nimport { INavisModels, NavisModels } from './classes/navisModels';\r\nimport { ISupplierCodesModel, ISupplierCodesDbRow, SupplierCodesFile } from './classes/supplierCodesFile';\r\nimport * as XLSX from 'xlsx/xlsx';\r\nimport { FormatUnderlined, Work } from '@material-ui/icons';\r\nimport * as ReportGenerator from './GenerateReport';\r\nimport { ILargeProjectsModel, LargeProjectsFile, ILargeProjectsModelDb } from './classes/largeProjectsFile';\r\nimport { DisciplineFile, IDisciplineModel } from './classes/disciplinesFile';\r\nexport class SubmittalReporting {\r\n\r\n public static async validateSubmittal(submittal, hub, project, topFolder,\r\n layersXlsx, revitCoordinatesXlsx, sharedParametersXlsx, revitWarningsXlsx,\r\n supplierCodesXlsx, buildingModelCodesXlsx, upnXlsx, disciplinesXlsx, modelTypesXlsx, largeProjectsXlsx) {\r\n\r\n try {\r\n\r\n var numberOfChecks = 2;\r\n\r\n var splashPageTab = submittal.workbook.Sheets['SplashPage'];\r\n var sheetsTab = submittal.workbook.Sheets['Sheets'];\r\n var sourceModelsTab = submittal.workbook.Sheets['Source-Models'];\r\n var navisModelsTab = submittal.workbook.Sheets['Navis-Models'];\r\n\r\n var submittalResults = undefined;\r\n\r\n if (splashPageTab && sheetsTab && sourceModelsTab && navisModelsTab) {\r\n var splashPage = new SplashPage(splashPageTab);\r\n var sheets = new Sheets(sheetsTab);\r\n var sourcModels = new SourceModels(sourceModelsTab);\r\n var navisModels = new NavisModels(navisModelsTab);\r\n var validLargeProjects = await ApiCalls.GetLargeProjectsDb();\r\n var validSupplierCodes = await ApiCalls.GetSupplierCodesDb();\r\n // TODO: switch over when data is corrected\r\n var validDisciplines = [\"ARCHITECTURAL\", \"CIVIL\", \"ELECTRICAL\", \"FIRE PROTECTION\", \"GENERAL\", \"I&C\", \"LANDSCAPE\", \"LIFE SAFETY\", \"LSP\", \"MECHANICAL\", \"P&ID\", \"PLUMBING\", \"PROCESS\", \"STRUCTURAL\", \"SURVEY\", \"TELECOM\", \"VENDOR/POR\", \"PIPING AND INSTRUMENTATION\", \"LIFE SAFETY SYSTEMS\", \"INSTRUMENTATION AND CONTROLS\", \"TELECOMMUNICATIONS\"];\r\n //var validDisciplines = await ApiCalls.GetDisciplinesDb();\r\n //validDisciplines = validDisciplines2.map(function (x) { return x.toUpperCase(); }) \r\n \r\n var deliverableIndexResults = this.validateDeliverableIndex(splashPage);\r\n var splashPageResults = this.validateSplashPage(splashPage, sheets, navisModels, sourcModels, validSupplierCodes, validLargeProjects);\r\n var sheetsResults = this.validateSheets(splashPage, sheets, validDisciplines);\r\n var navisResults = this.validateNavisModels(splashPage, navisModels, validDisciplines);\r\n var sourcModelsResults = this.validateSourcModels(splashPage, sourcModels, validDisciplines);\r\n var mpaResults = undefined;\r\n\r\n var submittalPassed =\r\n deliverableIndexResults.failedChecks.length === 0 &&\r\n splashPageResults.failedChecks.length === 0 &&\r\n sheetsResults.failedChecks.length === 0 &&\r\n navisResults.failedChecks.length === 0 &&\r\n sourcModelsResults.failedChecks.length === 0;\r\n\r\n if (submittalPassed) {\r\n\r\n mpaResults = await ApiCalls.ValidateMpaResults(\r\n {\r\n hubId: hub.id,\r\n projectId: project.id,\r\n topFolder: topFolder.id,\r\n sourcePath: submittal.file.folderName,\r\n splashPage: splashPage,\r\n sheets: sheets,\r\n sourceModels: sourcModels,\r\n navisModels: navisModels,\r\n layersXlsx: layersXlsx\r\n }\r\n );\r\n\r\n mpaResults.sheetsResults.failedChecks.forEach(f => sheetsResults.failedChecks.push(f));\r\n sheetsResults.passingChecks += mpaResults.sheetsResults.passingChecks;\r\n\r\n mpaResults.sourcModelsResults.failedChecks.forEach(f => sourcModelsResults.failedChecks.push(f));\r\n sourcModelsResults.passingChecks += mpaResults.sourcModelsResults.passingChecks;\r\n\r\n mpaResults.navisResults.failedChecks.forEach(f => navisResults.failedChecks.push(f));\r\n navisResults.passingChecks += mpaResults.navisResults.passingChecks;\r\n }\r\n\r\n\r\n var passingChecks =\r\n deliverableIndexResults.passingChecks +\r\n splashPageResults.passingChecks +\r\n sheetsResults.passingChecks +\r\n navisResults.passingChecks +\r\n sourcModelsResults.passingChecks;\r\n\r\n var warnings =\r\n deliverableIndexResults.warningChecks.length;\r\n //mpaResults.revitModelResults.warningChecks.length;\r\n //splashpageResults.passingChecks +\r\n //sheetsResults.passingChecks +\r\n //sourcModelsResults.warningChecks.Length;\r\n\r\n if (mpaResults != undefined) {\r\n passingChecks +=\r\n mpaResults.revitModelResults.passingChecks +\r\n mpaResults.acadModelResults.passingChecks;\r\n warnings +=\r\n mpaResults.revitModelResults.warningChecks.length;\r\n }\r\n\r\n var results = {\r\n baseReport: {\r\n name: \"Checks\",\r\n colorByPoint: true,\r\n data: []\r\n },\r\n drilldownData: {\r\n splashPage: splashPageResults,\r\n sheets: sheetsResults,\r\n navisModels: navisResults,\r\n sourcModels: sourcModelsResults,\r\n mpaRevit: {},\r\n mpaAcad: {},\r\n warnings: {\r\n name: \"Warnings\",\r\n failedChecks: deliverableIndexResults.warningChecks\r\n }\r\n }\r\n }\r\n if (mpaResults != undefined) {\r\n results.drilldownData.mpaRevit = mpaResults.revitModelResults;\r\n results.drilldownData.warnings.failedChecks = results.drilldownData.warnings.failedChecks.concat(mpaResults.revitModelResults.warningChecks);\r\n results.drilldownData.warnings.failedChecks = results.drilldownData.warnings.failedChecks.concat(mpaResults.acadModelResults.warningChecks);\r\n results.drilldownData.mpaAcad = mpaResults.acadModelResults\r\n }\r\n\r\n if (passingChecks > 0) {\r\n\r\n results.baseReport.data.push({\r\n name: \"Passed\",\r\n y: 100 * passingChecks / numberOfChecks,\r\n drilldown: \"passed\"\r\n });\r\n }\r\n if (warnings > 0) {\r\n\r\n results.baseReport.data.push({\r\n name: \"Warnings\",\r\n y: 100 * warnings / numberOfChecks,\r\n drilldown: \"warnings\"\r\n })\r\n }\r\n\r\n var sheetArray = [];\r\n if (splashPageResults.failedChecks.length > 0) {\r\n results.baseReport.data.push({\r\n name: \"Failed Splash Page\",\r\n y: 100 * splashPageResults.failedChecks.length / numberOfChecks,\r\n drilldown: \"splashPage\"\r\n });\r\n sheetArray.push(JSON.stringify(splashPageResults));\r\n }\r\n if (sheetsResults.failedChecks.length > 0) {\r\n\r\n results.baseReport.data.push({\r\n name: \"Failed Sheets Tab\",\r\n y: 100 * sheetsResults.failedChecks.length / numberOfChecks,\r\n drilldown: \"sheets\"\r\n });\r\n sheetArray.push(JSON.stringify(sheetsResults));\r\n }\r\n\r\n if (navisResults.failedChecks.length > 0) {\r\n results.baseReport.data.push({\r\n name: \"Failed Navis-Models Tab\",\r\n y: 100 * navisResults.failedChecks.length / numberOfChecks,\r\n drilldown: \"navisModels\"\r\n });\r\n sheetArray.push(JSON.stringify(navisResults));\r\n }\r\n\r\n if (sourcModelsResults.failedChecks.length > 0) {\r\n results.baseReport.data.push({\r\n name: \"Failed Source-Models Tab\",\r\n y: 100 * sourcModelsResults.failedChecks.length / numberOfChecks,\r\n drilldown: \"sourcModels\"\r\n });\r\n sheetArray.push(JSON.stringify(sourcModelsResults));\r\n }\r\n if (mpaResults && mpaResults.revitModelResults.failedChecks.length > 0) {\r\n results.baseReport.data.push({\r\n name: \"Failed Revit\",\r\n y: 100 * mpaResults.revitModelResults.failedChecks.length / numberOfChecks,\r\n drilldown: \"mpaRevit\"\r\n });\r\n sheetArray.push(JSON.stringify(mpaResults.revitModelResults));\r\n }\r\n if (mpaResults && mpaResults.acadModelResults.failedChecks.length > 0) {\r\n\r\n results.baseReport.data.push({\r\n name: \"Failed AutoCAD\",\r\n y: 100 * mpaResults.acadModelResults.failedChecks.length / numberOfChecks,\r\n drilldown: \"mpaAcad\"\r\n });\r\n sheetArray.push(JSON.stringify(mpaResults.acadModelResults));\r\n }\r\n\r\n if (warnings > 0) {\r\n sheetArray.push(JSON.stringify(results.drilldownData.warnings))\r\n }\r\n\r\n submittalResults = {\r\n submittalPassed: mpaResults != undefined,\r\n validationResults: results,\r\n sheetArray: sheetArray\r\n }\r\n }\r\n else {\r\n\r\n alert(\"Index not recognizable. Check template\");\r\n throw new DOMException(\"Index not reconizable. Check template\", \"Failed Index\");\r\n\r\n //var results = {\r\n // baseReport: {\r\n // name: \"Checks\",\r\n // colorByPoint: true,\r\n // data: []\r\n // },\r\n // drilldownData: {\r\n // splashPage: {},\r\n // sheets: {},\r\n // navisModels: {},\r\n // sourcModels: {},\r\n // mpaRevit: {},\r\n // mpaAcad: {},\r\n // warnings: {}\r\n // }\r\n //}\r\n\r\n //results.baseReport.data.push({\r\n // name: \"Failed to Identify Index\",\r\n // y: 100,\r\n // drilldown: undefined\r\n //})\r\n\r\n //submittalResults = {\r\n // submittalPassed: false,\r\n // validationResults: results,\r\n // sheetArray: sheetArray\r\n //}\r\n }\r\n\r\n return submittalResults;\r\n }\r\n catch (e) {\r\n\r\n throw e;\r\n }\r\n }\r\n\r\n static validateDeliverableIndex(splashPage: ISplashPage) {\r\n\r\n var passingChecks = 0;\r\n var warningChecks = [];\r\n var failedChecks = [];\r\n\r\n if (splashPage.deliverableIndex) {\r\n passingChecks++\r\n }\r\n else {\r\n warningChecks.push({\r\n description: \"Unable to determine index version in cell A1 on the splash page\",\r\n value: splashPage.deliverableIndex\r\n })\r\n }\r\n\r\n return {\r\n name: \"Failed Deliverable Index\",\r\n failedChecks: failedChecks,\r\n warningChecks: warningChecks,\r\n passingChecks: passingChecks,\r\n }\r\n }\r\n\r\n static validateSplashPage(splashPage: ISplashPage, sheets: ISheets, navisModels: INavisModels, sourcModels: ISourceModels,validSupplierCodes: ISupplierCodesDbRow[], validLargeProjects: ILargeProjectsModelDb[]) {\r\n\r\n var passingChecks = 0;\r\n var failedChecks = [];\r\n\r\n // Valid Supplier Code Check\r\n if (validSupplierCodes.filter(e => e.code === splashPage.supplierCode)) {\r\n passingChecks++;\r\n } else {\r\n failedChecks.push({\r\n description: \"Supplier Code Invalid\",\r\n value: splashPage.supplierCode\r\n })\r\n }\r\n\r\n if (validLargeProjects.filter(e => e.description === splashPage.projectName)) {\r\n passingChecks++;\r\n } else {\r\n failedChecks.push({\r\n description: \"Project Name is Invalid\",\r\n value: splashPage.projectName\r\n })\r\n }\r\n\r\n\r\n // Package Number is not empty\r\n if (splashPage.packageNumber) {\r\n passingChecks++;\r\n }\r\n else {\r\n if (!(splashPage.issuedFor.toUpperCase() === \"AUDIT\")) {\r\n failedChecks.push({\r\n description: \"Package Number\",\r\n value: splashPage.packageNumber\r\n })\r\n } \r\n }\r\n\r\n // Valid Description/Title\r\n if (splashPage.packageDescriptionTitle) {\r\n //if( validate the value is correct)\r\n passingChecks++\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Package Description\",\r\n value: splashPage.packageDescriptionTitle\r\n })\r\n }\r\n\r\n // Validate Packages Closed Out by Record\r\n if (splashPage.closedOutByRecord && splashPage.issuedFor && (\r\n //lower case all values\r\n splashPage.issuedFor.toLowerCase() === 'construction' && splashPage.closedOutByRecord.toString().toUpperCase() === 'N/A' || // if issue for CONSTRUCTION closed out is N/A\r\n splashPage.issuedFor.toLowerCase() === 'audit' && splashPage.closedOutByRecord.toString().toUpperCase() === 'N/A' ||\r\n splashPage.issuedFor.toLowerCase() === 'content' && splashPage.closedOutByRecord.toString().toUpperCase() === 'N/A' ||\r\n splashPage.issuedFor.toLowerCase() === 'record' && splashPage.closedOutByRecord && splashPage.closedOutByRecord.toString().toUpperCase() != 'N/A') // if issue for RECORD closed out is not N/A\r\n ) {\r\n passingChecks++;\r\n }\r\n else {\r\n\r\n failedChecks.push({\r\n description: \"Packages being closed out\",\r\n value: splashPage.closedOutByRecord\r\n })\r\n\r\n }\r\n\r\n // Validate Package Layer Modifier is not blank\r\n if (splashPage.packageLayerModifier) {\r\n if ((sourcModels.containsDwg || sheets.containsDwg) && splashPage.packageLayerModifier && splashPage.packageLayerModifier.toString().toUpperCase() != \"N/A\" ||\r\n sourcModels.containsDwg === false && sheets.containsDwg === false && (splashPage.packageLayerModifier === undefined || splashPage.packageLayerModifier.toString().toUpperCase() === \"N/A\") ||\r\n splashPage.issuedFor.toLowerCase() === \"audit\" && splashPage.packageLayerModifier.toString().toUpperCase() === \"N/A\") {\r\n // if issued for record then sheets pkg no can be different\r\n passingChecks++\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Package Layer Modifier\",\r\n value: splashPage.packageLayerModifier\r\n })\r\n }\r\n }\r\n else {\r\n if (!(splashPage.issuedFor.toLowerCase() === \"audit\")) {\r\n failedChecks.push({\r\n description: \"Package Layer Modifier cannot be blank\",\r\n value: undefined\r\n })\r\n }\r\n }\r\n\r\n //INT_SSID required if package is not on large projects list and Revit in package\r\n let intSsidRequired = function () {\r\n if (splashPage.projectName) {\r\n if (validLargeProjects.filter(e => e.description && e.description.toLowerCase() === splashPage.projectName.toLowerCase())) {\r\n return sourcModels.containsRevit; \r\n }\r\n } else {\r\n return sourcModels.containsRevit; \r\n }\r\n }\r\n\r\n if (splashPage.issuedFor.toLowerCase() !== \"audit\") {\r\n if (splashPage.int_ssid) {\r\n if (splashPage.projectName) {\r\n if (intSsidRequired()) {\r\n if (splashPage.int_ssid[0].toLowerCase() === \"n/a\") {\r\n failedChecks.push({\r\n description: \"INT_SSID required, but INT_SSID not provided: \",\r\n value: splashPage.int_ssid[0]\r\n })\r\n }\r\n }\r\n else {\r\n if (splashPage.int_ssid[0].toLowerCase() !== \"n/a\") {\r\n failedChecks.push({\r\n description: \"INT_SSID not required, but INT_SSID provided: \",\r\n value: splashPage.int_ssid[0]\r\n })\r\n }\r\n }\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"INT_SSID cannot be validated without valid project name\",\r\n value: splashPage.projectName\r\n })\r\n }\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"INT_SSID cannot be blank\",\r\n value: splashPage.int_ssid\r\n })\r\n }\r\n }\r\n \r\n\r\n // Validate INT_PKG_Name\r\n if (splashPage.issuedFor.toLowerCase() !== \"audit\") {\r\n if (splashPage.int_pkg_name) {\r\n if (sourcModels.containsRevit || sheets.containsRevit) {\r\n if (splashPage.int_pkg_name[0].toLowerCase() === \"n/a\") {\r\n failedChecks.push({\r\n description: \"INT_PKG_Name required if package contains revit\",\r\n value: splashPage.int_pkg_name[0]\r\n })\r\n }\r\n }\r\n else {\r\n if (splashPage.int_pkg_name[0].toLowerCase() !== \"n/a\") {\r\n failedChecks.push({\r\n description: \"INT_PKG_Name not required if package does not contains revit\",\r\n value: splashPage.int_pkg_name[0]\r\n })\r\n }\r\n }\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"INT_PKG_Name cannot be blank.\",\r\n value: undefined\r\n })\r\n }\r\n }\r\n\r\n\r\n // Validate Issue for Construction/Record\r\n if (splashPage.issuedFor && (splashPage.issuedFor.toLowerCase() === 'construction' || splashPage.issuedFor.toLowerCase() === 'record'\r\n || splashPage.issuedFor.toLowerCase() === 'audit') || splashPage.issuedFor.toLowerCase() === 'content') {\r\n passingChecks++;\r\n }\r\n else {\r\n\r\n failedChecks.push({\r\n description: \"Issue for (construction or record)\",\r\n value: splashPage.issuedFor\r\n })\r\n\r\n }\r\n\r\n // Issue Date is a valid date\r\n let isDate = function (input) {\r\n if (Object.prototype, toString.call(input) === \"[object Date]\")\r\n return true;\r\n return false;\r\n }\r\n if (isDate(splashPage.issuedDate) || Date.parse(splashPage.issuedDate)) {\r\n passingChecks++;\r\n }\r\n else {\r\n\r\n failedChecks.push({\r\n description: \"Issue Date\",\r\n value: splashPage.issuedDate\r\n });\r\n }\r\n\r\n // Sheets Deliverable Required\r\n if (splashPage.sheetsRequired !== undefined) {\r\n if (splashPage.sheetsRequired.toLowerCase() === 'y' && sheets.data.length > 0 ||\r\n splashPage.sheetsRequired.toLowerCase() !== 'y' && sheets.data.length === 0\r\n ) {\r\n passingChecks++;\r\n }\r\n else {\r\n\r\n failedChecks.push({\r\n description: \"Sheets deliverable required\",\r\n value: splashPage.sheetsRequired\r\n })\r\n }\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Sheets Required must contain a value of either y / n for Sheets Required\",\r\n value: undefined\r\n })\r\n }\r\n\r\n\r\n // Navis-Models Deliverable Required\r\n if (splashPage.navisRequired !== undefined) {\r\n if (splashPage.navisRequired.toLowerCase() === 'y' && navisModels.data.length > 0 ||\r\n splashPage.navisRequired.toLowerCase() !== 'y' && navisModels.data.length === 0\r\n ) {\r\n passingChecks++;\r\n }\r\n else {\r\n\r\n failedChecks.push({\r\n description: \"Navisworks deliverable required\",\r\n value: splashPage.navisRequired\r\n })\r\n\r\n }\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Sheets Required must contain a value of either y / n for Navis Required\",\r\n value: undefined\r\n })\r\n }\r\n\r\n\r\n // Source-Models Deliverable Required\r\n if (splashPage.modelsRequired != undefined) {\r\n if (splashPage.modelsRequired.toLowerCase() === 'y' && sourcModels.data.length > 0 ||\r\n splashPage.modelsRequired.toLowerCase() !== 'y' && sourcModels.data.length === 0\r\n ) {\r\n passingChecks++;\r\n }\r\n else {\r\n\r\n failedChecks.push({\r\n description: \"Models deliverable required\",\r\n value: splashPage.modelsRequired\r\n })\r\n\r\n }\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Sheets Required must contain a value of either y / n for Source-Models Required\",\r\n value: undefined\r\n })\r\n }\r\n\r\n\r\n return {\r\n name: 'Failed Splash Page',\r\n failedChecks: failedChecks,\r\n passingChecks: passingChecks\r\n };\r\n }\r\n\r\n static validateSheets(splashPage: ISplashPage, sheets: ISheets, disciplineCodes: string[]) {\r\n\r\n let isDate = function (input) {\r\n if (Object.prototype, toString.call(input) === \"[object Date]\")\r\n return true;\r\n return false;\r\n }\r\n\r\n let fileExtension = function (input) {\r\n var a = input.split(\".\");\r\n if (a.length === 1 || (a[0] === \"\" && a.length === 2)) {\r\n return \"\";\r\n }\r\n return a.pop().toLowerCase();\r\n }\r\n\r\n var failedChecks = [];\r\n var passingChecks = 0;\r\n\r\n var pkgnoValid = true;\r\n var sheetsInvalidPkgno = [];\r\n\r\n var sheetDisciplinesValid = true;\r\n var sheetsMissingDiscipline = [];\r\n\r\n var sheetRevNosValid = true;\r\n var filesInvalidRevNo = [];\r\n\r\n var sheetRevDatesValid = true;\r\n var filesInvalidRevDates = [];\r\n\r\n var sheetPdfValid = true;\r\n var sheetPdfsInvalid = [];\r\n\r\n var validFileNames = true;\r\n var invalidFileNames = [];\r\n\r\n for (var j = 0; j < sheets.data.length; j++) {\r\n var sheetRow = sheets.data[j];\r\n // validate file names\r\n if (sheetRow.filename) {\r\n if (fileExtension(sheetRow.filename) === \"dwg\" || fileExtension(sheetRow.filename) === \"rvt\" || fileExtension(sheetRow.filename) === \"pdf\") { }\r\n else {\r\n validFileNames = false;\r\n invalidFileNames.push(\"Invalid or missing file extension at row: \"+(j+3))\r\n }\r\n }\r\n else {\r\n validFileNames = false;\r\n invalidFileNames.push(\"Invalid or missing file name at row: \"+(j + 3));\r\n }\r\n // Validate PDF sheets\r\n if (sheetRow.sheet) {\r\n if (fileExtension(sheetRow.sheet) === \"pdf\" || fileExtension(sheetRow.sheet) === \"\"\r\n || sheetRow.sheet.includes(\".\")) { }\r\n else {\r\n sheetPdfValid = false;\r\n sheetPdfsInvalid.push(\"Invalid or missing extension for sheet at row: \"+(j+3))\r\n }\r\n }\r\n else {\r\n sheetPdfValid = false;\r\n sheetPdfsInvalid.push(\"Missing or incorrect file extension for sheet at row: \"+(j+3))\r\n }\r\n\r\n // Validate Package Number is consistent if Issued for Construction\r\n if (splashPage.issuedFor && splashPage.issuedFor.toLowerCase() == 'construction' &&\r\n sheetRow.pkgno != splashPage.packageNumber) {\r\n pkgnoValid = false;\r\n sheetsInvalidPkgno.push(\"Missing or mismatch package number at row: \"+(j+3))\r\n }\r\n\r\n if (sheetRow.discipline) {\r\n if (disciplineCodes.filter(x => x === sheetRow.discipline.toUpperCase()).length > 0) { }\r\n else {\r\n sheetDisciplinesValid = false;\r\n sheetsMissingDiscipline.push(\"Invalid discipline at row: \" + (j + 3));\r\n }\r\n }\r\n else {\r\n sheetDisciplinesValid = false;\r\n sheetsMissingDiscipline.push(\"Missing discipline at row: \"+(j+3));\r\n }\r\n\r\n var num = Number(sheetRow.revno);\r\n var isInteger = Number.isInteger(num);\r\n\r\n //�\tNeed vendor/POR drawings to recognize blank,\r\n // number, and single letter revision number \r\n if (sheetRow.discipline) { \r\n if (sheetRow.discipline.toLowerCase() == \"vendor/por\") {\r\n if (sheetRow.revno === undefined) {\r\n sheetRevNosValid = true;\r\n } else if (sheetRow.revno.toString() == \"NaN\") {\r\n sheetRevNosValid = true;\r\n } else if ((/[a-zA-Z]/).test(sheetRow.revno.toString()) && sheetRow.revno.toString().length === 1) {\r\n sheetRevNosValid = true;\r\n } else if (num >= 0 && isInteger) {\r\n sheetRevNosValid = true;\r\n } else {\r\n sheetRevNosValid = false;\r\n filesInvalidRevNo.push(\"Invalid rev number at row: \" + (j + 3));\r\n }\r\n } \r\n }\r\n\r\n // Validate Rev Date\r\n if ((isDate(sheetRow.revdate) || Date.parse(sheetRow.revdate)) || (sheetRow.revdate === undefined && sheetRow.discipline.toLowerCase() === \"vendor/por\")) { }\r\n else {\r\n sheetRevDatesValid = false;\r\n filesInvalidRevDates.push(\"Missing or invalid date at row: \"+(j+3))\r\n } \r\n }\r\n\r\n\r\n // reporting\r\n if (validFileNames) {\r\n passingChecks++\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"File Name\",\r\n value: invalidFileNames\r\n })\r\n }\r\n\r\n if (sheetPdfValid) {\r\n passingChecks++\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Sheet Name\",\r\n value: sheetPdfsInvalid\r\n })\r\n }\r\n\r\n if (pkgnoValid) {\r\n passingChecks++;\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Pkg No\",\r\n value: sheetsInvalidPkgno\r\n })\r\n }\r\n if (sheetDisciplinesValid) {\r\n passingChecks++;\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Discipline\",\r\n value: sheetsMissingDiscipline\r\n })\r\n }\r\n if (sheetRevNosValid) {\r\n passingChecks++;\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Rev No\",\r\n value: filesInvalidRevNo\r\n })\r\n }\r\n if (sheetRevDatesValid) {\r\n passingChecks++;\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Rev Date\",\r\n value: filesInvalidRevDates\r\n })\r\n }\r\n\r\n // Validate CAD and Revit sheets are provided... This may need to be checked against the database on backenend...\r\n\r\n return {\r\n name: 'Failed Sheets Tabs',\r\n failedChecks: failedChecks,\r\n passingChecks: passingChecks\r\n };\r\n }\r\n\r\n static validateNavisModels(splashPage: ISplashPage, navisModels: INavisModels, disciplineCodes: string[]) {\r\n\r\n var passingChecks = 0;\r\n var failedChecks = [];\r\n\r\n\r\n // Validate Package Number is consistent if Issued for Construction\r\n var pkgnoValid = true;\r\n var modelsInvalidPkgno = [];\r\n\r\n // Validate Source Models all have Discipline\r\n var modelsDisciplinesValid = true;\r\n var modelsMissingDiscipline = [];\r\n\r\n var issuedDatesValid = true;\r\n var navisInvalidIssuedDates = [];\r\n\r\n var validFileNames = true;\r\n var invalidFilenames = [];\r\n\r\n let isDate = function (input) {\r\n if (Object.prototype, toString.call(input) === \"[object Date]\")\r\n return true;\r\n return false;\r\n }\r\n\r\n let fileExtension = function (input) {\r\n var a = input.split(\".\");\r\n if (a.length === 1 || (a[0] === \"\" && a.length === 2)) {\r\n return \"\";\r\n }\r\n return a.pop().toLowerCase(); \r\n }\r\n\r\n for (var j = 0; j < navisModels.data.length; j++) {\r\n\r\n var navisRow = navisModels.data[j];\r\n\r\n // Validate Package Number is consistent if Issued for Construction\r\n if (splashPage.issuedFor && splashPage.issuedFor.toLowerCase() == 'construction' &&\r\n navisRow.pkgno != splashPage.packageNumber) {\r\n pkgnoValid = false;\r\n modelsInvalidPkgno.push(\"Missing or mismatch package number at row: \"+(j+3))\r\n }\r\n\r\n // Validate Source Models all have Discipline\r\n if (navisRow.discipline) {\r\n if (disciplineCodes.filter(x=> x === navisRow.discipline.toUpperCase()).length > 0) { }\r\n else {\r\n modelsDisciplinesValid = false;\r\n modelsMissingDiscipline.push(\"Invalid discipline at row: \"+(j+3));\r\n }\r\n }\r\n else {\r\n modelsDisciplinesValid = false;\r\n modelsMissingDiscipline.push(\"Missing Discipline at row: \"+(j+3))\r\n }\r\n\r\n // Validate navis models have issue date\r\n if (isDate(navisRow.issuedDate) || Date.parse(navisRow.issuedDate)) { }\r\n else {\r\n issuedDatesValid = false;\r\n navisInvalidIssuedDates.push(\"Invalid or missing date at row: \"+(j+3))\r\n }\r\n\r\n // validate every row has a model \r\n if (navisRow.filename) {\r\n var navisRowFileExtension = fileExtension(navisRow.filename);\r\n if (navisRowFileExtension === \"nwd\" || navisRowFileExtension === \"nwc\") { }\r\n else {\r\n validFileNames = false;\r\n invalidFilenames.push(\"Invalid or missing file extension at row: \"+(j+3))\r\n }\r\n }\r\n else {\r\n validFileNames = false;\r\n invalidFilenames.push(\"Missing file name at row:\"+(j+3))\r\n }\r\n }\r\n\r\n // reporting\r\n if (validFileNames) {\r\n passingChecks++\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"File Names\",\r\n value: invalidFilenames\r\n })\r\n }\r\n\r\n if (pkgnoValid) {\r\n passingChecks++;\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Pkg No\",\r\n value: modelsInvalidPkgno\r\n })\r\n }\r\n\r\n if (modelsDisciplinesValid) {\r\n passingChecks++;\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Discipline\",\r\n value: modelsMissingDiscipline\r\n })\r\n }\r\n\r\n if (issuedDatesValid) {\r\n passingChecks++;\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Issued Date\",\r\n value: navisInvalidIssuedDates\r\n })\r\n }\r\n\r\n return {\r\n name: 'Failed Navis Models Checks',\r\n failedChecks: failedChecks,\r\n passingChecks: passingChecks\r\n };\r\n }\r\n\r\n static validateSourcModels(splashPage: ISplashPage, sourceModels: ISourceModels, disciplineCodes: string[]) {\r\n\r\n var passingChecks = 0;\r\n var failedChecks = [];\r\n //var warningChecks = [];\r\n\r\n // Validate Package Number is consistent if Issued for Construction\r\n var pkgnoValid = true;\r\n var modelsInvalidPkgno = [];\r\n\r\n var disciplineValid = true;\r\n var invalidDiscipline = [];\r\n\r\n var validFileNames = true;\r\n var invalidFilenames = [];\r\n\r\n let fileExtension = function (input) {\r\n var a = input.split(\".\");\r\n if (a.length === 1 || (a[0] === \"\" && a.length === 2)) {\r\n return \"\";\r\n }\r\n return a.pop().toLowerCase();\r\n }\r\n\r\n if (splashPage.issuedFor && splashPage.issuedFor.toLowerCase() == 'construction') {\r\n\r\n for (var j = 0; j < sourceModels.data.length; j++) {\r\n\r\n if (sourceModels.data[j].pkgno === splashPage.packageNumber) { }\r\n else {\r\n pkgnoValid = false;\r\n modelsInvalidPkgno.push(\"Missing or mismatch package number at row: \" + (j + 3))\r\n }\r\n if (sourceModels.data[j].filename) {\r\n if (fileExtension(sourceModels.data[j].filename) === \"rvt\" || fileExtension(sourceModels.data[j].filename) === \"dwg\") { }\r\n else {\r\n validFileNames = false;\r\n invalidFilenames.push(\"Invalid file extension at row: \"+(j+3))\r\n }\r\n }\r\n else {\r\n validFileNames = false;\r\n invalidFilenames.push(\"Missing file name at row: \"+(j+3))\r\n }\r\n\r\n if (sourceModels.data[j].discipline) {\r\n if (disciplineCodes.filter(x => x === sourceModels.data[j].discipline.toUpperCase()).length > 0) { }\r\n else {\r\n disciplineValid = false;\r\n invalidDiscipline.push(\"Invalid discipline at row: \" + (j + 3));\r\n }\r\n }\r\n else {\r\n disciplineValid = false;\r\n invalidDiscipline.push(\"Missing discipline at row: \"+(j+3))\r\n }\r\n }\r\n }\r\n // reporting\r\n if (disciplineValid) {\r\n passingChecks++\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Discipline\",\r\n value: invalidDiscipline\r\n })\r\n }\r\n\r\n if (validFileNames) {\r\n passingChecks++\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"File Names\",\r\n value: invalidFilenames\r\n })\r\n }\r\n\r\n\r\n if (pkgnoValid) {\r\n passingChecks++;\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Pkg No\",\r\n value: modelsInvalidPkgno\r\n })\r\n }\r\n\r\n return {\r\n name: 'Failed Source-Models Tab',\r\n failedChecks: failedChecks,\r\n passingChecks: passingChecks\r\n };\r\n }\r\n}","import './PieChartFigure.css';\r\n\r\n//import Highcharts from 'highcharts';\r\nimport drilldown from 'highcharts/modules/drilldown';\r\nimport React, { Component, useEffect, useState } from 'react';\r\nimport { ApiCalls } from '../Utilities/ApiCalls';\r\nimport { Events } from '../Utilities/DataTypes/Highcharts/Events';\r\nimport { List, ListSubheader, Button, ListItemText, Collapse, Typography } from '@material-ui/core';\r\nimport { ExpandLess, ExpandMore } from '@material-ui/icons';\r\n\r\nexport const DrilldownList = (base: any) => {\r\n return (\r\n \r\n {base.drilldownData.name}\r\n \r\n }\r\n >\r\n
\r\n {base.drilldownData.failedChecks.map(function (item, index) {\r\n\r\n return \r\n })}\r\n
\r\n \r\n );\r\n}\r\n\r\nexport const CheckItem = ({ item }: { item: any }) => {\r\n\r\n const [open, setOpen] = React.useState(false);\r\n\r\n const handleClick = () => {\r\n setOpen(!open);\r\n };\r\n\r\n if (item.value && Array.isArray(item.value)) {\r\n return \r\n \r\n \r\n \r\n {item.value.map(function (value, index) {\r\n return {value};\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
{item.description}:{item.value ? item.value : \"\"}
\r\n
;\r\n }\r\n}\r\n","import * as XLSX from 'xlsx/xlsx';\r\nimport { ApiCalls } from '../ApiCalls';\r\nimport { Model } from '../DataTypes/Model';\r\n\r\nexport class Excel {\r\n\r\n static readFile(file: File) {\r\n return new Promise((resolve) => {\r\n\r\n const reader = new FileReader();\r\n\r\n reader.onload = ((e) => {\r\n const workbook = XLSX.read(e.target?.result, { type: 'array' });\r\n resolve(workbook);\r\n });\r\n\r\n reader.readAsArrayBuffer(file);\r\n })\r\n }\r\n\r\n static streamFile(stream: any) {\r\n return new Promise((resolve) => {\r\n\r\n const workbook = XLSX.read(stream, { type: 'array' });\r\n resolve(workbook);\r\n })\r\n }\r\n}","import React, { FormEvent, useEffect, useState } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { PrimaryButton } from \"office-ui-fabric-react\";\r\nimport { Excel } from \"../Utilities/classes/excel\";\r\nimport { ApiCalls } from \"../Utilities/ApiCalls\";\r\nimport { read } from \"xlsx\";\r\n\r\n\r\nexport const CollectSubmittal = observer(({ action, text, selectedFile }: { text: string, action: Function, selectedFile: any }) => {\r\n\r\n function click() {\r\n if (selectedFile) {\r\n action(null);\r\n\r\n ApiCalls.GetSubmittal(selectedFile).then((link) => {\r\n //action(link);\r\n\r\n fetch(link)\r\n .then(response => {\r\n return response.arrayBuffer();\r\n })\r\n .then(buffer => {\r\n // Respond with our stream\r\n\r\n Excel.streamFile(buffer)\r\n .then((workbook: any) => {\r\n\r\n var submittal = {\r\n file: selectedFile,\r\n workbook: workbook,\r\n report: null,\r\n models: null\r\n };\r\n\r\n action(submittal)\r\n });\r\n })\r\n })\r\n }\r\n }\r\n\r\n return (\r\n \r\n );\r\n})","import { Build } from \"@material-ui/icons\";\r\nimport { IValueRow } from \"./layerRow\";\r\n\r\nexport class WorkStatus {\r\n \r\n public readonly data: IValueRow[];\r\n\r\n constructor(sheet) {\r\n let data = [];\r\n\r\n let i = 4; // excell starts at 4\r\n while (sheet['B' + i]) {\r\n\r\n if (sheet['C' + i]) {\r\n var value = sheet['B' + i];\r\n var color = sheet['C' + i];\r\n var linetype = sheet['D' + i];\r\n var lineWeight = sheet['E' + i];\r\n var description = sheet['F' + i];\r\n\r\n var row = {\r\n value: value ? value.v : undefined,\r\n color: color ? color.v : undefined,\r\n linetype: linetype ? linetype.v : undefined,\r\n lineWeight: lineWeight ? lineWeight.v : undefined,\r\n description: description ? description.v : undefined\r\n\r\n };\r\n data.push(row);\r\n }\r\n\r\n i++;\r\n }\r\n\r\n this.data = data;\r\n }\r\n\r\n}\r\n","import { Build } from \"@material-ui/icons\";\r\nimport { IValueRow } from \"./layerRow\";\r\n\r\nexport class Clearances {\r\n \r\n public readonly data: IValueRow[];\r\n\r\n constructor(sheet) {\r\n\r\n let data = [];\r\n\r\n let i = 4; // excell starts at 4\r\n while (sheet['B' + i]) {\r\n\r\n if (sheet['C' + i]) {\r\n var value = sheet['B' + i];\r\n var color = sheet['C' + i];\r\n var linetype = sheet['D' + i];\r\n var lineWeight = sheet['E' + i];\r\n var description = sheet['F' + i];\r\n\r\n var row = {\r\n value: value ? value.v : undefined,\r\n color: color ? color.v : undefined,\r\n linetype: linetype ? linetype.v : undefined,\r\n lineWeight: lineWeight ? lineWeight.v : undefined,\r\n description: description ? description.v : undefined\r\n\r\n };\r\n data.push(row);\r\n }\r\n\r\n i++;\r\n }\r\n\r\n this.data = data;\r\n }\r\n\r\n}\r\n","import { Build } from \"@material-ui/icons\";\r\nimport { IAllDisciplineRow } from \"./layerRow\";\r\n\r\nexport class AllDiscipline {\r\n \r\n public readonly data: IAllDisciplineRow[];\r\n\r\n constructor(sheet) {\r\n\r\n let data = [];\r\n\r\n let i = 5; // excell starts at 5\r\n while (sheet['B' + i]) {\r\n\r\n if (sheet['C' + i]) {\r\n var name = sheet['B' + i];\r\n var color = sheet['C' + i];\r\n var linetype = sheet['D' + i];\r\n var lineWeight = sheet['E' + i];\r\n var description = sheet['F' + i];\r\n\r\n var row = {\r\n name: name ? name.v : undefined,\r\n color: color ? color.v : undefined,\r\n linetype: linetype ? linetype.v : undefined,\r\n lineWeight: lineWeight ? lineWeight.v : undefined,\r\n description: description ? description.v : undefined\r\n };\r\n data.push(row);\r\n }\r\n\r\n i++;\r\n }\r\n\r\n this.data = data;\r\n }\r\n\r\n}\r\n","import { Build } from \"@material-ui/icons\";\r\nimport { ILayerRow } from \"./layerRow\";\r\n\r\nexport class LayerSheet {\r\n\r\n public readonly name: string;\r\n //public readonly sheet: any;\r\n public readonly data: ILayerRow[];\r\n\r\n constructor(workbook, sheetName) {\r\n\r\n var sheet = workbook.Sheets[sheetName];\r\n let data = [];\r\n\r\n let i = 5; // excel starts at 5\r\n var disciplineCode = undefined;\r\n while (sheet['B' + i] || sheet['C' + i]) {\r\n\r\n if (sheet['B' + i] && sheet['C' + i] == undefined) {\r\n i++;\r\n continue;\r\n }\r\n\r\n if (sheet['B' + i] && sheet['C' + i]) {\r\n disciplineCode = sheet['B' + i];\r\n }\r\n\r\n if (sheet['C' + i]) {\r\n var name = sheet['C' + i];\r\n var color = sheet['D' + i];\r\n var linetype = sheet['E' + i];\r\n var lineWeight = sheet['F' + i];\r\n var description = sheet['G' + i];\r\n var upn = sheet['H' + i];\r\n\r\n var row = {\r\n disciplineCode: disciplineCode ? disciplineCode.v : undefined,\r\n name: name ? name.v : undefined,\r\n color: color ? color.v : undefined,\r\n linetype: linetype ? linetype.v : undefined,\r\n lineWeight: lineWeight ? lineWeight.v : undefined,\r\n description: description ? description.v : undefined,\r\n upn: upn ? upn.v : undefined\r\n\r\n };\r\n data.push(row);\r\n }\r\n\r\n i++;\r\n }\r\n\r\n this.name = sheetName;\r\n //this.sheet = sheet;\r\n this.data = data;\r\n }\r\n\r\n}\r\n","import { Build } from \"@material-ui/icons\";\r\nimport { Modifiers } from \"./modifiers\";\r\nimport { WorkStatus } from \"./workStatus\";\r\nimport { Clearances } from \"./clearances\";\r\nimport { AllDiscipline } from \"./allDiscipline\";\r\nimport { LayerSheet } from \"./layerSheet\";\r\n\r\nexport interface ILayersPage {\r\n \r\n}\r\n\r\nexport interface ILayerRow {\r\n disciplineCode: string,\r\n value: string,\r\n color: string,\r\n linetype: string,\r\n lineWeight: string,\r\n description: string,\r\n upn: string\r\n}\r\n\r\n\r\n\r\nexport class LayersFile {\r\n \r\n public readonly workbook: any;\r\n\r\n public readonly WorkStatus: WorkStatus;\r\n public readonly Modifiers: Modifiers;\r\n public readonly Clearances: Clearances;\r\n public readonly AllDiscipline: AllDiscipline;\r\n\r\n public readonly ArchitecturalLayers: LayerSheet;\r\n public readonly CivilLayers: LayerSheet;\r\n public readonly ElectricalLayers: LayerSheet;\r\n public readonly FireProtectionLayers: LayerSheet;\r\n public readonly GeneralLayers: LayerSheet;\r\n public readonly InstrumentationControlsLayers: LayerSheet;\r\n public readonly LandscapeLayers: LayerSheet;\r\n public readonly LssLayers: LayerSheet;\r\n public readonly MechanicalLayers: LayerSheet;\r\n public readonly PlumbingLayers: LayerSheet;\r\n public readonly ProcessLayers: LayerSheet;\r\n public readonly StructuralLayers: LayerSheet;\r\n public readonly TelecommunicationLayers: LayerSheet;\r\n //public readonly SurveyLayers: LayerSheet;\r\n\r\n constructor(workbook) {\r\n this.workbook = workbook;\r\n\r\n // irregular layer sheets\r\n var workStatusSheet = workbook.Sheets['Work Status'];\r\n var modifiersSheet = workbook.Sheets['Modifiers'];\r\n var clearancesSheet = workbook.Sheets['Clearances'];\r\n var allDisciplineSheet = workbook.Sheets['All Discipline'];\r\n\r\n this.WorkStatus = new WorkStatus(workStatusSheet);\r\n this.Modifiers = new Modifiers(modifiersSheet);\r\n this.Clearances = new Clearances(clearancesSheet);\r\n this.AllDiscipline = new AllDiscipline(allDisciplineSheet);\r\n\r\n // regular layer sheets\r\n this.ArchitecturalLayers =new LayerSheet(workbook, 'Architectural');\r\n this.CivilLayers = new LayerSheet(workbook, 'Civil');\r\n this.ElectricalLayers = new LayerSheet(workbook, 'Electrical');\r\n this.FireProtectionLayers = new LayerSheet(workbook, 'Fire Protection');\r\n this.GeneralLayers = new LayerSheet(workbook, 'General');\r\n this.InstrumentationControlsLayers = new LayerSheet(workbook, 'Instrumentation & Controls');\r\n this.LandscapeLayers = new LayerSheet(workbook, 'Landscape');\r\n this.LssLayers = new LayerSheet(workbook, 'LSS');\r\n this.MechanicalLayers = new LayerSheet(workbook, 'Mechanical');\r\n this.PlumbingLayers = new LayerSheet(workbook, 'Plumbing');\r\n this.ProcessLayers = new LayerSheet(workbook, 'Process');\r\n this.StructuralLayers = new LayerSheet(workbook, 'Structural');\r\n this.TelecommunicationLayers = new LayerSheet(workbook, 'Telecommunication');\r\n //this.SurveyLayers = new LayerSheet(workbook, 'Survey');\r\n\r\n }\r\n}\r\n","import { Build } from \"@material-ui/icons\";\r\n\r\nexport interface IRevitCoordinatesPage {\r\n \r\n}\r\n\r\nexport interface IRevitCoordinatesRow {\r\n modelName: string,\r\n originPoint: string,\r\n projectNorthSouth: number,\r\n projectEastWest: number,\r\n elevation: number,\r\n projectAngleToTrueNorth: number,\r\n surveyElevation: number,\r\n surveyNorthSouth: number,\r\n surveyEastWest: number,\r\n cityLocation: string,\r\n longitude: number,\r\n latitude: number,\r\n revitVersionName: string,\r\n precision: number\r\n}\r\n\r\nexport class RevitCoordinatesFile {\r\n \r\n public readonly workbook: any;\r\n public readonly data: IRevitCoordinatesRow[];\r\n\r\n constructor(workbook) {\r\n this.workbook = workbook;\r\n\r\n var i = 2;\r\n var data = []\r\n var tab = workbook.Sheets[\"Revit_Templates\"]\r\n\r\n while (tab['A' + i] || tab['B' + i] || tab['C' + i] ||\r\n tab['D' + i] || tab['E' + i] || tab['F' + i] ||\r\n tab['G' + i] || tab['H' + i] || tab['I' + i] ||\r\n tab['J' + i] || tab['K' + i] || tab['L' + i] ||\r\n tab['M' + i] || tab['N' + i]) {\r\n\r\n var modelName = tab['A' + i];\r\n var originPoint = tab['B' + i];\r\n var projectNorthSouth = tab['C' + i];\r\n var projectEastWest = tab['D' + i];\r\n var elevation = tab['E' + i];\r\n var projectAngleToTrueNorth = tab['F' + i];\r\n var surveyElevation = tab['G' + i];\r\n var surveyNorthSouth = tab['H' + i];\r\n var surveyEastWest = tab['I' + i];\r\n var cityLocation = tab['J' + i];\r\n var longitude = tab['K' + i];\r\n var latitude = tab['L' + i];\r\n var revitVersionName = tab['M' + i];\r\n var precision = tab['N' + i];\r\n\r\n var row = {\r\n modelName: modelName ? modelName.v : undefined,\r\n originPoint: originPoint ? originPoint.v : undefined,\r\n projectNorthSouth: projectNorthSouth ? projectNorthSouth.v : undefined,\r\n projectEastWest: projectEastWest ? projectEastWest.v : undefined,\r\n elevation: elevation ? elevation.v : undefined,\r\n projectAngleToTrueNorth: projectAngleToTrueNorth ? projectAngleToTrueNorth.v : undefined,\r\n surveyElevation: surveyElevation ? surveyElevation.v : undefined,\r\n surveyNorthSouth: surveyNorthSouth ? surveyNorthSouth.v : undefined,\r\n surveyEastWest: surveyEastWest ? surveyEastWest.v : undefined,\r\n cityLocation: cityLocation ? cityLocation.v : undefined,\r\n longitude: longitude ? longitude.v : undefined,\r\n latitude: latitude ? latitude.v : undefined,\r\n revitVersionName: revitVersionName ? revitVersionName.v : undefined,\r\n precision: precision ? precision.v : undefined,\r\n }\r\n data.push(row);\r\n i++;\r\n }\r\n this.data = data;\r\n\r\n }\r\n}\r\n","import { Build } from \"@material-ui/icons\";\r\n\r\nexport interface ISharedParametersPage {\r\n \r\n}\r\n\r\nexport interface ISharedParametersRow {\r\n param: string,\r\n guid: string,\r\n name: string,\r\n dataType: string,\r\n dataCategory: string,\r\n group: number,\r\n visible: number,\r\n description: string,\r\n userModifiable: number,\r\n hideWhenNoValue: number\r\n}\r\n\r\nexport class SharedParametersFile {\r\n \r\n public readonly workbook: any;\r\n public readonly data: ISharedParametersRow[];\r\n\r\n constructor(workbook) {\r\n this.workbook = workbook;\r\n\r\n var i = 2;\r\n var data = []\r\n var tab = workbook.Sheets[\"01_34_14_00-INT_Shared-Paramete\"]\r\n\r\n while (tab['A' + i] || tab['B' + i] || tab['C' + i] ||\r\n tab['D' + i] || tab['E' + i] || tab['F' + i] ||\r\n tab['G' + i] || tab['H' + i] || tab['I' + i] ||\r\n tab['J' + i]) {\r\n\r\n var param = tab['A' + i];\r\n var guid = tab['B' + i];\r\n var name = tab['C' + i];\r\n var dataType = tab['D' + i];\r\n var dataCategory = tab['E' + i];\r\n var group = tab['F' + i];\r\n var visible = tab['G' + i];\r\n var description = tab['H' + i];\r\n var userModifiable = tab['I' + i];\r\n var hideWhenNoValue = tab['J' + i];\r\n\r\n var row = {\r\n param: param ? param.v : undefined,\r\n guid: guid ? guid.v : undefined,\r\n name: name ? name.v : undefined,\r\n dataType: dataType ? dataType.v : undefined,\r\n dataCategory: dataCategory ? dataCategory.v : undefined,\r\n group: group ? group.v : undefined,\r\n visible: visible ? visible.v : undefined,\r\n description: description ? description.v : undefined,\r\n userModifiable: userModifiable ? userModifiable.v : undefined,\r\n hideWhenNoValue: hideWhenNoValue ? hideWhenNoValue.v : undefined\r\n }\r\n data.push(row);\r\n i++;\r\n }\r\n this.data = data;\r\n\r\n }\r\n}\r\n","import { Build } from \"@material-ui/icons\";\r\n\r\nexport interface IRevitWarningsPage {\r\n \r\n}\r\n\r\nexport interface IRevitWarningsRow {\r\n warningID: string,\r\n warningDescription: string,\r\n\r\n}\r\n\r\nexport class RevitWarningsFile {\r\n \r\n public readonly workbook: any;\r\n public readonly data: IRevitWarningsRow[];\r\n\r\n constructor(workbook) {\r\n this.workbook = workbook;\r\n\r\n var i = 2;\r\n var data = []\r\n var tab = workbook.Sheets[\"WarningsList\"]\r\n\r\n while (tab['A' + i] || tab['B' + i]) {\r\n\r\n var warningID = tab['A' + i];\r\n var warningDescription = tab['B' + i];\r\n\r\n var row = {\r\n warningID: warningID ? warningID.v : undefined,\r\n warningDescription: warningDescription ? warningDescription.v : undefined,\r\n \r\n }\r\n data.push(row);\r\n i++;\r\n }\r\n this.data = data;\r\n\r\n }\r\n}\r\n","import { Build } from \"@material-ui/icons\";\r\n\r\nexport interface ISupplierCodesModel {\r\n data: ISupplierCodesRow[];\r\n}\r\n\r\nexport interface ISupplierCodesRow {\r\n supplierCode: string;\r\n description: string;\r\n region: string;\r\n}\r\n\r\nexport interface ISupplierCodesDbRow {\r\n code: string;\r\n longname: string;\r\n}\r\n\r\nexport class SupplierCodesFile {\r\n \r\n public readonly workbook: any;\r\n public readonly data: ISupplierCodesRow[];\r\n\r\n constructor(workbook) {\r\n this.workbook = workbook;\r\n\r\n var i = 2;\r\n var data = []\r\n var tab = workbook.Sheets[\"Sheet1\"]\r\n\r\n while (tab['A' + i] || tab['B' + i] || tab['C' + i]) {\r\n\r\n var supplierCode = tab['A' + i];\r\n var description = tab['B' + i];\r\n var region = tab['C' + i];\r\n var row = {\r\n supplierCode: supplierCode ? supplierCode.v : undefined,\r\n description: description ? description.v : undefined,\r\n region: region ? region.v : undefined,\r\n }\r\n data.push(row);\r\n i++;\r\n }\r\n this.data = data;\r\n\r\n }\r\n}","import { Build } from \"@material-ui/icons\";\r\n\r\nexport interface IBuildingModelCodesPage {\r\n \r\n}\r\n\r\nexport interface IBuildingModeCodesRow {\r\n buildingModelCode: string,\r\n level: string\r\n}\r\n\r\nexport class BuildingModelCodesFile {\r\n \r\n public readonly workbook: any;\r\n public readonly data: IBuildingModeCodesRow[];\r\n\r\n constructor(workbook) {\r\n this.workbook = workbook;\r\n\r\n var i = 2;\r\n var data = []\r\n var tab = workbook.Sheets[\"Building Model Code\"]\r\n\r\n while (tab['A' + i] || tab['B' + i]) {\r\n\r\n var buildingModelCode = tab['A' + i];\r\n var level = tab['B' + i];\r\n\r\n var row = {\r\n buildingModelCode: buildingModelCode ? buildingModelCode.v : undefined,\r\n level: level ? level.v : undefined,\r\n }\r\n data.push(row);\r\n i++;\r\n }\r\n this.data = data;\r\n\r\n }\r\n}\r\n","import { Build } from \"@material-ui/icons\";\r\n\r\nexport interface IUpnPage {\r\n \r\n}\r\n\r\nexport interface IUpnRow {\r\n upn: string\r\n}\r\n\r\nexport class UpnFile {\r\n \r\n public readonly workbook: any;\r\n public readonly data: IUpnRow[];\r\n\r\n constructor(workbook) {\r\n this.workbook = workbook;\r\n\r\n var i = 2;\r\n var data = []\r\n var tab = workbook.Sheets[\"UPN\"]\r\n\r\n while (tab['A' + i]) {\r\n\r\n var upn = tab['A' + i];\r\n\r\n var row = {\r\n upn: upn ? upn.v : undefined,\r\n }\r\n data.push(row);\r\n i++;\r\n }\r\n this.data = data;\r\n\r\n }\r\n}\r\n","import { Build } from \"@material-ui/icons\";\r\n\r\nexport interface IModelTypesPage {\r\n \r\n}\r\n\r\nexport interface IModelTypesRow {\r\n modelType: string\r\n}\r\n\r\nexport class ModelTypesFile {\r\n \r\n public readonly workbook: any;\r\n public readonly data: IModelTypesRow[];\r\n\r\n constructor(workbook) {\r\n this.workbook = workbook;\r\n\r\n var i = 2;\r\n var data = []\r\n var tab = workbook.Sheets[\"Model Types\"]\r\n\r\n while (tab['A' + i]) {\r\n\r\n var modelType = tab['A' + i];\r\n\r\n var row = {\r\n modelType: modelType ? modelType.v : undefined,\r\n }\r\n data.push(row);\r\n i++;\r\n }\r\n this.data = data;\r\n\r\n }\r\n}\r\n","import { Build } from \"@material-ui/icons\";\r\n\r\nexport interface ILargeProjectsModel {\r\n data: ILargeProjectsRow[];\r\n}\r\n\r\nexport interface ILargeProjectsModelDb {\r\n description: string;\r\n}\r\n\r\nexport interface ILargeProjectsRow {\r\n projectName: string\r\n}\r\n\r\nexport class LargeProjectsFile {\r\n \r\n public readonly workbook: any;\r\n public readonly data: ILargeProjectsRow[];\r\n\r\n constructor(workbook) {\r\n this.workbook = workbook;\r\n\r\n var i = 2;\r\n var data = []\r\n var tab = workbook.Sheets[\"Sheet1\"]\r\n\r\n while (tab['A' + i]) {\r\n\r\n var projectName = tab['A' + i];\r\n\r\n var row = {\r\n projectName: projectName ? projectName.v : undefined,\r\n }\r\n data.push(row);\r\n i++;\r\n }\r\n this.data = data;\r\n\r\n }\r\n}","import React, { FormEvent, useEffect, useState } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { PrimaryButton } from \"office-ui-fabric-react\";\r\nimport { Excel } from \"../Utilities/classes/excel\";\r\nimport { ApiCalls } from \"../Utilities/ApiCalls\";\r\nimport * as ReportGenerator from '../Utilities/GenerateReport';\r\n\r\n\r\n\r\n\r\nexport const GenerateReportButton = observer(({ text, data, reportName }: { text: string, data: any, reportName: string }) => {\r\n\r\n function click() {\r\n if (data.length != 0) {\r\n ReportGenerator.generateMultipleTabbedReport(data, reportName);\r\n }\r\n else {\r\n alert(\"No data to report.\");\r\n }\r\n }\r\n return (\r\n \r\n );\r\n})","import * as XLSX from 'xlsx';\r\n\r\nexport function generateReport(report) {\r\n var obj = JSON.parse(report);\r\n console.log(obj.name);\r\n var displayRows = [];\r\n for (var i = 0; i < obj.failedChecks.length; i++) {\r\n console.log(obj.failedChecks[i]['description']);\r\n for (var x = 0; x < obj.failedChecks[i]['value'].length; x++) {\r\n console.log(obj.failedChecks[i]['value'].at(x));\r\n displayRows.push({\r\n description: obj.failedChecks[i]['description'],\r\n value: obj.failedChecks[i]['value'].at(x),\r\n });\r\n }\r\n }\r\n const worksheet = XLSX.utils.json_to_sheet(displayRows);\r\n const workbook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(workbook, worksheet, obj.name);\r\n\r\n return XLSX.writeFile(workbook, 'Report.xlsx', { compression: true });\r\n}\r\n\r\nexport function generateMultipleTabbedReport(checks: string[], reportName: string) {\r\n debugger;\r\n const workbook = XLSX.utils.book_new();\r\n console.log('Checks: ', checks);\r\n\r\n checks.forEach(function (value) {\r\n var obj = JSON.parse(value);\r\n console.log('OBJ: ', obj);\r\n var displayRows = [];\r\n\r\n for (var i = 0; i < obj.failedChecks.length; i++) {\r\n console.log('Failed Check: ', obj.failedChecks[i]['description']);\r\n\r\n if (obj.failedChecks[i].value) {\r\n if (!Array.isArray(obj.failedChecks[i]['value'])) {\r\n displayRows.push({\r\n description: obj.failedChecks[i]['description'],\r\n value: obj.failedChecks[i]['value'],\r\n });\r\n } else {\r\n for (var x = 0; x < obj.failedChecks[i]['value'].length; x++) {\r\n console.log(obj.failedChecks[i]['value'].at(x));\r\n displayRows.push({\r\n description: obj.failedChecks[i]['description'],\r\n value: obj.failedChecks[i]['value'].at(x),\r\n });\r\n }\r\n }\r\n } else {\r\n displayRows.push({\r\n description: obj.failedChecks[i]['description'],\r\n value: undefined,\r\n });\r\n }\r\n }\r\n const worksheet = XLSX.utils.json_to_sheet(displayRows);\r\n XLSX.utils.book_append_sheet(workbook, worksheet, obj.name);\r\n });\r\n\r\n return XLSX.writeFile(workbook, reportName + '_mpareport.xlsx', { compression: true });\r\n}","import React, { useContext, useEffect, useState } from 'react';\r\nimport { UserContext, SpinnerContext, ErrorContext } from '../Components/Contexts';\r\nimport SelectOptions from '../Components/SelectOptions';\r\nimport DocumentTree from '../Components/DocumentTree';\r\nimport DocumentFilter from '../Components/DocumentFilter';\r\n\r\n//import { getHubs, getProjects, getProjectTopFolder, getProjectFolderContentAll, getDocumentCustomAttributes } from '../Components/forge';\r\n\r\n\r\n\r\nimport { groupBy } from '../Components/helper';\r\nimport { appState } from '../App';\r\nimport { ApiCalls } from '../Utilities/ApiCalls';\r\nimport { Events } from '../Utilities/DataTypes/Highcharts/Events';\r\nimport { PieChartFigure } from '../Components/PieChartFigure';\r\n\r\n//import FileBrowser from 'react-keyed-file-browser';\r\nimport { ImportExcel } from '../Components/ImportExcel';\r\nimport DocumentList from '../Components/DocumentList';\r\nimport { fail } from 'mobx/lib/internal';\r\nimport { SubmittalReporting } from '../Utilities/SubmittalReporting';\r\nimport { DrilldownList } from '../Components/DrilldownList';\r\nimport { CollectSubmittal } from '../Components/CollectSubmittal';\r\nimport { Excel } from '../Utilities/classes/excel';\r\nimport { FormatAlignLeft, FormatAlignLeftOutlined, Work } from '@material-ui/icons';\r\nimport { LayersFile } from '../Utilities/classes/layers/layersFile';\r\nimport { RevitCoordinatesFile } from '../Utilities/classes/revitCoordinatesFile';\r\nimport { SharedParametersFile } from '../Utilities/classes/sharedParametersFile';\r\nimport { RevitWarningsFile } from '../Utilities/classes/revitWarningsFile';\r\nimport { SupplierCodesFile } from '../Utilities/classes/supplierCodesFile';\r\nimport { BuildingModelCodesFile } from '../Utilities/classes/buildingModelCodesFile';\r\nimport { UpnFile } from '../Utilities/classes/upnFile';\r\nimport { DisciplineFile } from '../Utilities/classes/disciplinesFile';\r\nimport { ModelTypesFile } from '../Utilities/classes/modelTypesFile';\r\nimport { Model } from '../Utilities/DataTypes/Model';\r\nimport { LargeProjectsFile } from '../Utilities/classes/largeProjectsFile';\r\nimport { blue } from '@material-ui/core/colors';\r\nimport { PrimaryButton } from 'office-ui-fabric-react';\r\nimport { GenerateReportButton } from '../Components/GenerateReportButton';\r\n//import 'font-awesome/css/font-awesome.min.css'\r\n\r\n\r\n//TODO - refactor Main is too large\r\nfunction ReportingPage() {\r\n\r\n const [selected, setSelected] = useState();\r\n const [report, setReport] = useState();\r\n const [indexPassed, setIndexPassed] = useState(true);\r\n const [drilldownData, setData2] = useState();\r\n\r\n function onDrilldown(e) {\r\n if (e.category !== undefined) {\r\n\r\n if (e.points.indexOf(e.point) == 0) {\r\n\r\n console.log('e.points.indexOf(e.point) == 0 => drill down into ' + e.point.category);\r\n }\r\n }\r\n else if (e.point) {\r\n if (e.point.selected == false) {\r\n var drilldownData = submittal.reporting.data.drilldownData[e.point.drilldown];\r\n\r\n if (drilldownData == undefined) {\r\n setData2(undefined);\r\n }\r\n else if (drilldownData.failedChecks.length > 0) {\r\n setData2(drilldownData);\r\n }\r\n }\r\n else {\r\n\r\n setData2(undefined);\r\n }\r\n }\r\n else {\r\n var test = e;\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (selected) {\r\n //var test = ApiCalls.GetLayersReport(selected)\r\n // .then((report: any) => {\r\n\r\n // report.chart.events = new Events(onDrilldown, undefined);\r\n // setReport(report);\r\n // setData2(undefined);\r\n // });\r\n }\r\n }, [selected]);\r\n\r\n // Contexts\r\n const { setSpinner } = useContext(SpinnerContext);\r\n const { setError } = useContext(ErrorContext);\r\n\r\n // States\r\n const [accountsList, setAccountsList] = useState(null);\r\n const [selectedAccount, setSelectedAccount] = useState(null);\r\n const [projectList, setProjectList] = useState(null);\r\n const [selectedProject, setSelectedProject] = useState(null);\r\n const [topFolder, setTopFolder] = useState(null);\r\n const [selectedProjectName, setSelectedProjectName] = useState(\"\");\r\n const [baseFolderList, setBaseFolderList] = useState(null);\r\n const [currentFolderSelected, setCurrentFolderSelected] = useState(null);\r\n const [documentList, setDocumentList] = useState(null);\r\n const [currentDocumentSelected, setCurrentDocumentSelected] = useState(null);\r\n\r\n const [submittal, setSubmittal] = useState(null);\r\n const [layersXlsx, setLayersXlsx] = useState(null);\r\n const [revitCoordinatesXlsx, setRevitCoordinatesXlsx] = useState(null);\r\n const [sharedParametersXlsx, setSharedParametersXlsx] = useState(null);\r\n const [revitWarningsXlsx, setRevitWarningsXlsx] = useState(null);\r\n const [supplierCodesXlsx, setSupplierCodesXlsx] = useState(null);\r\n const [largeProjectsXlsx, setLargeProjectsXlsx] = useState(null);\r\n const [submittalLink, setSubmittalLink] = useState(null);\r\n\r\n const [submittalDocumentList, setSubmittalDocumentList] = useState(null);\r\n const [selectedDocumentsList, setSelectedDocumentsList] = useState(null);\r\n\r\n const [buildingModelCodesXlsx, setBuildingModelCodesXlsx] = useState(null);\r\n const [upnXlsx, setUpnXlsx] = useState(null);\r\n const [disciplinesXlsx, setDisciplinesXlsx] = useState(null);\r\n const [modelTypesXlsx, setModelTypesXlsx] = useState(null);\r\n\r\n const [reportSheetArray, setReportSheetArray] = useState(null);\r\n const [exportReportName, setExportReportName] = useState(null);\r\n\r\n useEffect(() => {\r\n if (submittalLink) {\r\n\r\n }\r\n }, submittalLink)\r\n\r\n // Effects\r\n useEffect(() => {\r\n if (submittal) {\r\n //@ts-ignore\r\n setSpinner({ message: \"Loading Audit Results...\" })\r\n ApiCalls.PrepSubmittalReporting(submittal)\r\n .then((submittal: any) => {\r\n SubmittalReporting.validateSubmittal(submittal, selectedAccount, selectedProject, topFolder,\r\n layersXlsx, revitCoordinatesXlsx, sharedParametersXlsx, revitWarningsXlsx, supplierCodesXlsx, buildingModelCodesXlsx, upnXlsx, disciplinesXlsx, modelTypesXlsx, largeProjectsXlsx\r\n ).then(\r\n submittalResults => {\r\n\r\n submittal.reporting.data = submittalResults.validationResults;\r\n\r\n var ancestorFolderPath = submittal.file.folderName.split(\" / \");\r\n ancestorFolderPath.pop();\r\n ancestorFolderPath.pop();\r\n setExportReportName(ancestorFolderPath.pop());\r\n\r\n submittal.reporting.report.chart.events = new Events(onDrilldown, undefined);\r\n submittal.reporting.report.series = [submittalResults.validationResults.baseReport];\r\n\r\n setReport(submittal.reporting.report);\r\n setIndexPassed(submittalResults.submittalPassed);\r\n setReportSheetArray(submittalResults.sheetArray);\r\n setData2(undefined);\r\n //@ts-ignore\r\n setSubmittalDocumentList(submittal.models);\r\n setSpinner();\r\n },\r\n (reason: any) => {\r\n console.log(reason);\r\n setSpinner();\r\n }\r\n );\r\n })\r\n }\r\n }, submittal)\r\n\r\n // User Changed\r\n useEffect(() => {\r\n\r\n setAccountsList(null);\r\n setProjectList(null);\r\n setSelectedProject(null);\r\n setBaseFolderList(null);\r\n setDocumentList(null);\r\n setSelectedDocumentsList(null);\r\n\r\n if (appState.user) {\r\n\r\n //@ts-ignore\r\n setSpinner({ message: \"Loading Accounts...\" });\r\n\r\n // get hubs from APS\r\n (async () => {\r\n try {\r\n\r\n var data = await ApiCalls.GetHubs();\r\n\r\n const accAndBim360Accounts = data\r\n .map(h => {\r\n return {\r\n id: h.hubId,\r\n name: h.name\r\n }\r\n });\r\n\r\n setAccountsList(accAndBim360Accounts);\r\n\r\n } catch (e) {\r\n //@ts-ignore\r\n setError({\r\n title: \"Failed Getting User Accounts\",\r\n message: e.message,\r\n })\r\n }\r\n //@ts-ignore\r\n setSpinner(null);\r\n })()\r\n }\r\n\r\n }, [appState.user, setError, setAccountsList, setSpinner]);\r\n\r\n // Account Changed\r\n useEffect(() => {\r\n\r\n // clear\r\n setProjectList(null);\r\n setSelectedProject(null);\r\n setBaseFolderList(null);\r\n setDocumentList(null);\r\n setSelectedDocumentsList(null);\r\n\r\n if (selectedAccount) {\r\n\r\n //@ts-ignore\r\n setSpinner({ message: \"Loading Projects...\" });\r\n\r\n // get projects from APS\r\n (async () => {\r\n try {\r\n var data = await ApiCalls.GetHubProjects(selectedAccount.id, false);\r\n\r\n // filter only ACC or BIM360\r\n const accAndBim360Projects = data\r\n .map(h => {\r\n return {\r\n id: h.projectId,\r\n name: h.name\r\n }\r\n });\r\n setProjectList(accAndBim360Projects);\r\n\r\n } catch (e) {\r\n //@ts-ignore\r\n setError({\r\n title: \"Failed Getting Projects\",\r\n message: e.message,\r\n })\r\n }\r\n //@ts-ignore\r\n setSpinner(null);\r\n })();\r\n }\r\n\r\n }, [appState.user, selectedAccount, setError, setSpinner]);\r\n\r\n // Project Changed\r\n useEffect(() => {\r\n\r\n // clear\r\n setBaseFolderList(null);\r\n setDocumentList(null);\r\n setSelectedDocumentsList(null);\r\n\r\n if (selectedProject) {\r\n\r\n ApiCalls.GetLayersXlsx().then((link) => {\r\n if (link)\r\n fetch(link)\r\n .then(response => {\r\n return response.arrayBuffer();\r\n })\r\n .then(buffer => {\r\n // Respond with our stream\r\n\r\n Excel.streamFile(buffer)\r\n .then((workbook: any) => {\r\n\r\n var layersFile = new LayersFile(workbook);\r\n //workbook.Sheets['Architectural']\r\n\r\n var layers = {\r\n file: selected,\r\n workbook: workbook,\r\n report: null,\r\n models: null\r\n };\r\n\r\n setLayersXlsx(layersFile);\r\n });\r\n })\r\n })\r\n\r\n ApiCalls.GetRevitCoordinates().then((link) => {\r\n if (link)\r\n fetch(link)\r\n .then(response => {\r\n return response.arrayBuffer();\r\n })\r\n .then(buffer => {\r\n // Respond with our stream\r\n\r\n Excel.streamFile(buffer)\r\n .then((workbook: any) => {\r\n\r\n var revitCoordinatesFile = new RevitCoordinatesFile(workbook);\r\n //workbook.Sheets['Architectural']\r\n\r\n var revitCoordinates = {\r\n file: selected,\r\n workbook: workbook,\r\n report: null,\r\n models: null\r\n };\r\n setRevitCoordinatesXlsx(revitCoordinatesFile);\r\n });\r\n })\r\n })\r\n\r\n ApiCalls.GetSharedParameters().then((link) => {\r\n if (link)\r\n fetch(link)\r\n .then(response => {\r\n return response.arrayBuffer();\r\n })\r\n .then(buffer => {\r\n // Respond with our stream\r\n\r\n Excel.streamFile(buffer)\r\n .then((workbook: any) => {\r\n\r\n var sharedParametersFile = new SharedParametersFile(workbook);\r\n //workbook.Sheets['Architectural']\r\n\r\n var sharedParameters = {\r\n file: selected,\r\n workbook: workbook,\r\n report: null,\r\n models: null\r\n };\r\n setSharedParametersXlsx(sharedParametersFile);\r\n });\r\n })\r\n })\r\n ApiCalls.GetRevitWarnings().then((link) => {\r\n if (link)\r\n fetch(link)\r\n .then(response => {\r\n return response.arrayBuffer();\r\n })\r\n .then(buffer => {\r\n // Respond with our stream\r\n\r\n Excel.streamFile(buffer)\r\n .then((workbook: any) => {\r\n\r\n var revitWarningsFile = new RevitWarningsFile(workbook);\r\n //workbook.Sheets['Architectural']\r\n\r\n var revitWarnings = {\r\n file: selected,\r\n workbook: workbook,\r\n report: null,\r\n models: null\r\n };\r\n setRevitWarningsXlsx(revitWarningsFile);\r\n });\r\n })\r\n })\r\n ApiCalls.GetSupplierCodes().then((link) => {\r\n if (link)\r\n fetch(link)\r\n .then(response => {\r\n return response.arrayBuffer();\r\n })\r\n .then(buffer => {\r\n // Respond with our stream\r\n\r\n Excel.streamFile(buffer)\r\n .then((workbook: any) => {\r\n\r\n var supplierCodesFile = new SupplierCodesFile(workbook);\r\n //workbook.Sheets['Architectural']\r\n\r\n var supplierCodes = {\r\n file: selected,\r\n workbook: workbook,\r\n report: null,\r\n models: null\r\n };\r\n setSupplierCodesXlsx(supplierCodesFile);\r\n });\r\n })\r\n })\r\n ApiCalls.GetBuildingSectorCodes().then((link) => {\r\n if (link)\r\n fetch(link)\r\n .then(response => {\r\n return response.arrayBuffer();\r\n })\r\n .then(buffer => {\r\n // Respond with our stream\r\n\r\n Excel.streamFile(buffer)\r\n .then((workbook: any) => {\r\n\r\n var buildingModelCodesFile = new BuildingModelCodesFile(workbook);\r\n var upnFile = new UpnFile(workbook);\r\n var disciplinesFile = new DisciplineFile(workbook)\r\n var modelTypesFile = new ModelTypesFile(workbook)\r\n //workbook.Sheets['Architectural']\r\n\r\n var buildingModelCodes = {\r\n file: selected,\r\n workbook: workbook,\r\n report: null,\r\n models: null\r\n };\r\n setBuildingModelCodesXlsx(buildingModelCodesFile);\r\n setUpnXlsx(upnFile);\r\n setDisciplinesXlsx(disciplinesFile);\r\n setModelTypesXlsx(modelTypesFile);\r\n });\r\n })\r\n })\r\n ApiCalls.GetLargeProjects().then((link) => {\r\n if (link)\r\n fetch(link)\r\n .then(response => {\r\n return response.arrayBuffer();\r\n })\r\n .then(buffer => {\r\n // Respond with our stream\r\n\r\n Excel.streamFile(buffer)\r\n .then((workbook: any) => {\r\n\r\n var largeProjectsFile = new LargeProjectsFile(workbook);\r\n //workbook.Sheets['Architectural']\r\n\r\n var largeProjects = {\r\n file: selected,\r\n workbook: workbook,\r\n report: null,\r\n models: null\r\n };\r\n setLargeProjectsXlsx(largeProjectsFile);\r\n });\r\n })\r\n })\r\n\r\n setSelectedProjectName(selectedProject.name.slice());\r\n\r\n //@ts-ignore\r\n setSpinner({ message: \"Loading Folders...\" });\r\n\r\n (async () => {\r\n try {\r\n\r\n // get project top folder\r\n //var data = await ApiCalls.GetProjectTopFolders(selectedProject.id);\r\n var data = await ApiCalls.GetUserSelectableFolders(selectedProject.id);\r\n\r\n //const rootFolders = data.filter(f => f.name.toLowerCase() === \"project files\").map(f => {\r\n // return {\r\n // id: JSON.stringify({\r\n // folderId: f.id,\r\n // projectId: selectedProject.id\r\n // }),\r\n // name: f.name\r\n // }\r\n //})\r\n const rootFolders = data.map(f => {\r\n return {\r\n id: JSON.stringify({\r\n folderId: f.id,\r\n projectId: selectedProject.id\r\n }),\r\n name: f.name\r\n }\r\n })\r\n\r\n setTopFolder(rootFolders[0].id);\r\n\r\n setBaseFolderList(rootFolders);\r\n } catch (e) {\r\n //@ts-ignore\r\n setError({\r\n title: \"Failed Getting Project Top Folders\",\r\n message: e.message,\r\n });\r\n }\r\n //@ts-ignore\r\n setSpinner(null);\r\n })();\r\n }\r\n\r\n }, [appState.user, setError, selectedAccount, selectedProject, setSpinner]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n Account:\r\n \r\n
\r\n
\r\n Project:\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n //@ts-ignore\r\n setSpinner({ message: \"Loading Folder Contents...\" });\r\n //@ts-ignore\r\n const folderIdObject = JSON.parse(id);\r\n\r\n (async () => {\r\n try {\r\n const data = await ApiCalls.GetFolderContentAll(folderIdObject.projectId, folderIdObject.folderId);\r\n const files = data.files.map(f => {\r\n return {\r\n id: f.id,\r\n version: f.version,\r\n storageId: f.storageId,\r\n name: f.name,\r\n projectId: folderIdObject.projectId,\r\n folderId: folderIdObject.folderId,\r\n folderName: folderName,\r\n passed: false, // check if passed using rules\r\n checked: false\r\n }\r\n });\r\n\r\n var xlsxFiles = files.filter(function (x) { return x.name.endsWith('.xlsx'); });\r\n\r\n\r\n // check if in selection list\r\n xlsxFiles.forEach(f => {\r\n if (selectedDocumentsList && selectedDocumentsList.find(s => s.id === f.id)) {\r\n f.checked = true;\r\n }\r\n });\r\n const folders = data.folders.map(f => {\r\n return {\r\n id: JSON.stringify({ folderId: f.id, projectId: folderIdObject.projectId }),\r\n name: f.name\r\n }\r\n })\r\n setChildNodes(folders);\r\n setDocumentList(xlsxFiles);\r\n setCurrentFolderSelected(folderIdObject);\r\n } catch (e) {\r\n //@ts-ignore\r\n setError({\r\n title: \"Failed Getting Folder Contents\",\r\n message: e.message,\r\n });\r\n }\r\n //@ts-ignore\r\n setSpinner(null);\r\n\r\n })();\r\n\r\n }}\r\n options={baseFolderList} />\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {report ? \r\n \r\n \r\n \r\n : <>}\r\n {indexPassed ? <> : }\r\n {drilldownData != undefined ? : <>}\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ReportingPage;\r\n\r\n// takes currentList and new list and computes new selection list\r\nfunction computeNewSelectedList(currentList, currentFolder, newSelection) {\r\n\r\n // remove nulls\r\n currentList = currentList || [];\r\n newSelection = newSelection || [];\r\n\r\n //const folderIdOfNewSelection = currentFolder.folderId;\r\n\r\n //const removeCurrent = currentList.filter(s => s.folderId !== folderIdOfNewSelection);\r\n\r\n // filter out all current list items that contain folderIdOfNewSelection in id\r\n const result = currentList.concat(newSelection).filter(d => d.checked);\r\n\r\n return result;\r\n}\r\n","import React, { useMemo, useState } from 'react';\r\nimport { Route, Switch, Redirect, useHistory } from 'react-router';\r\n\r\nimport { AppState } from './Utilities/AppState';\r\nimport { SettingsPage } from './Pages/SettingsPage';\r\nimport { Layout } from './Components/Layout';\r\nimport { initializeIcons } from 'office-ui-fabric-react/lib/Icons';\r\nimport { LoadingPage } from './Pages/LoadingPage';\r\nimport { LoginPage } from './Pages/LoginPage';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { ProjectsPage } from './Pages/ProjectsPage';\r\nimport { SingleProjectPage } from './Pages/SingleProjectPage';\r\nimport { SingleHubPage } from './Pages/SingleHubPage';\r\nimport { SingleModelPage } from './Pages/SingleModelPage';\r\nimport { SingleLogPage } from './Pages/SingleLogPage';\r\nimport { SingleEnginePage } from './Pages/SingleEnginePage';\r\nimport { SingleWorkitemPage } from './Pages/SingleWorkitemPage';\r\nimport Spinner from './Components/Spinner';\r\nimport { SpinnerContext, UserContext } from './Components/Contexts';\r\nimport ReportingPage from './Pages/ReportingPage';\r\n\r\nexport const appState = new AppState();\r\ninitializeIcons();\r\n\r\nexport const App = observer(() => {\r\n appState.history = useHistory();\r\n\r\n // Spinner Modal Context\r\n const [spinner, setSpinner] = useState(null);\r\n const spinnerContext = useMemo(\r\n () => ({ spinner, setSpinner }),\r\n [spinner]\r\n );\r\n\r\n // User Context\r\n const [user, setUser] = useState(null);\r\n const userContext = useMemo(\r\n () => ({ user, setUser }),\r\n [user]\r\n );\r\n\r\n if (!appState.ready) {\r\n return ;\r\n } else if (!appState.user) {\r\n return ;\r\n } else {\r\n return (\r\n //@ts-ignore\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 i18n from 'i18next';\r\nimport detector from 'i18next-browser-languagedetector';\r\nimport backend from 'i18next-http-backend';\r\nimport { initReactI18next } from 'react-i18next';\r\n\r\ni18n\r\n .use(detector)\r\n .use(backend)\r\n .use(initReactI18next) // passes i18n down to react-i18next\r\n .init({\r\n backend: {\r\n loadPath: '/locales/{{lng}}/{{ns}}.json',\r\n },\r\n defaultNS: 'translation',\r\n lng: 'en',\r\n fallbackLng: 'en', // use en if detected lng is not available\r\n\r\n keySeparator: false, // we do not use keys in form messages.welcome\r\n\r\n interpolation: {\r\n escapeValue: false, // react already safes from xss\r\n },\r\n });\r\n\r\nexport default i18n;\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register() {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch((error) => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React, { Suspense } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport { App } from './App';\r\nimport './Utilities/i18next';\r\nimport './custom.css';\r\nimport { unregister } from './registerServiceWorker';\r\nimport ModalContainer from 'react-modal-promise';\r\nimport { Loading } from './Components/Loading';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n rootElement\r\n);\r\n\r\nunregister();\r\n"],"sourceRoot":""}