{"version":3,"sources":["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/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","Components/DrilldownList.tsx","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","../ApiCalls.ts","../SubmittalReporting.ts","../modifiers.ts","../disciplinesFile.ts","Utilities/DataTypes/Error.ts","Utilities/classes/splashPage.ts","Utilities/classes/sheets.ts","Utilities/classes/sourceModels.ts","../navisModels.ts","Utilities/i18next.ts","registerServiceWorker.js","index.js","Components/Loading.tsx","../excel.ts"],"names":["User","_class","_ref","name","email","permissions","profilePicture","_classCallCheck","token","this","_createClass","key","value","ApiCalls","logout","get","find","val","role","_applyDecoratedDescriptor","prototype","computed","Object","getOwnPropertyDescriptor","AutoSyncIntervalType","Hub","_dec","action","bound","_dec2","_dec3","_dec4","_dec5","_dec6","_dec7","_dec8","_dec9","params","id","hubId","_initializerDefineProperty","_descriptor","region","applicationUrl","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","_descriptor8","_descriptor9","_descriptor10","_descriptor11","secondsBetweenRetry","enabled","autoEnableProjects","autoEnableModels","processFamilySizes","groupNameParamName","businessLineParamName","autoSyncProjectFolderTrees","autoSyncInterval","autoSyncIntervalType","lastInterface","JSON","stringify","interface","PatchHub","hub","then","appState","fetchUser","fetchProjects","seconds","save","concat","_this","runInAction","toLowerCase","observable","configurable","enumerable","writable","initializer","Log","getLogFile","log","result","ready","_this2","downloadValue","load","bytes","Uint8Array","length","i","charCodeAt","blob","Blob","type","FileSaver","saveAs","parseJson","json","parse","err","dayjs","extend","utc","timezone","calendar","advancedFormat","WorkItem","props","model","_descriptor12","_descriptor13","_descriptor14","_descriptor15","_descriptor16","_descriptor17","workItemId","activityId","runBy","inputJson","outputJson","started","tz","guess","undefined","isCompositeDesign","status","daTimeQueued","daTimeFinished","daTimeDownloadStarted","daTimeInstructionsStarted","daTimeInstructionsEnded","daTimeUploadEnded","fetched","getWorkItem","workItem","diff","split","shift","_this$started","_this$daTimeQueued","_this$daTimeDownloadS","_this$daTimeInstructi","_this$daTimeInstructi2","_this$daTimeUploadEnd","ModelType","Model","project","urn","projectId","folderId","pathInProject","lastPublish","lastStatus","enabledOn","firstExtraction","lastExtraction","designAutomationEngine","GetModelRuns","IWorkItems","workItems","map","sort","a","b","_a$started","isBefore","RunModelMPA","_this3","DeleteModel","setModels","models","filter","_this4","engine","_this5","Promise","resolve","_this6","PatchModel","_this$lastExtraction","_this$project","_this$project$hub","nextPossible","add","isAfter","_this$project$hub2","substring","DesignAutomationEngine","_name$split$pop","_name$split$pop2","displayName","zipActivityId","product","year","pop","_ref2","patchDesignAutomationEngines","file","postUploadAppBundle","_regeneratorRuntime","e","t","r","n","hasOwnProperty","o","defineProperty","Symbol","iterator","c","asyncIterator","u","toStringTag","define","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","keys","reverse","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","ProjectStatus","Project","_sync","_refresh","acadEngine","enabledBy","modelCount","lastFolderTreeSync","_engine","_acadEngine","hubs","x","designAutomationEngines","_this2$_engine","_this3$_acadEngine","refresh","GetModels","IModels","body","RunFilteredModels","RunAllModels","_this7","webhooksLoading","GetWebHooks","hooks","webhooks","console","_appState$user","_this8","user","_this9","_this10","_asyncToGenerator","_callee","_this11","_context","SyncProjectFolderTree","apply","arguments","_callee2","_this12","_context2","GetProject","PatchProject","_this$engine","_this$acadEngine","_this$hub","Config","isAutocadEnabled","AppState","history","reject","all","fetchTimezones","fetchDesignAutomationEngines","fetchHubs","fetchLogs","fetchConfig","finally","setReady","errors","state","authUrl","projects","RefreshHubs","modelId","fetch","fetchAuthUrl","setAuthUrl","error","getTimezones","timezones","getDesignAutomationEngines","engines","localeCompare","numeric","GetHubs","GetConfig","config","GetProjects","includeDisabled","_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","_slicedToArray","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","data","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","cursor","backgroundColor","SearchableAndSortableTable","title","titleLink","placeholder","rightTitle","showSearchCount","loading","setFoundItems","search","setSearch","searchedItems","setSearchedItems","lowerCaseTerm","searchTerm","indexOf","style","display","flexDirection","padding","flex","alignItems","Link","color","textDecoration","to","className","SearchBox","inputMode","onChange","width","textAlign","fontWeight","overflowY","Loading","HubsList","useTranslation","useHistory","minWidth","onRender","HubToggle","justifyContent","Toggle","disabled","applicationAdmin","checked","stopPropagation","toggleEnabled","LogsList","DefaultButton","download","text","EngineList","isResizable","VersionButton","position","bottom","right","SettingsPage","_appState$user2","_appState$user3","handleDownloadAll","useCallback","_appState$logs","Fragment","borderRight","borderBottom","height","overflow","refreshHubs","href","ErrorBar","MessageBar","messageBarType","MessageBarType","onDismiss","clear","message","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","_ref3","_project$engine","_project$engine2","_ref4","_project$acadEngine","_project$acadEngine$d","label","replace","ProjectsPage","_ref5","Page404","NextRunButton","_model$nextRun","_model$project$acadEn","_model$nextRun2","nextRun","isDisabled","Revit","Math","round","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","options","_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","nonRevitModelIds","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","format","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","chart","plotBackgroundColor","plotBorderWidth","plotShadow","tooltip","pointFormat","accessibility","point","plotOptions","pie","allowPointSelect","dataLabels","series","colorByPoint","Highcharts","ImplementChart","DrilldownList","base","List","component","aria-labelledby","subheader","ListSubheader","drilldownData","failedChecks","CheckItem","_React$useState","_React$useState2","open","setOpen","Array","isArray","Button","ListItemText","primary","Typography","description","ExpandLess","ExpandMore","Collapse","in","timeout","unmountOnExit","disablePadding","CollectSubmittal","selectedFile","GetSubmittal","link","response","arrayBuffer","buffer","Excel","streamFile","workbook","report","WorkStatus","sheet","linetype","lineWeight","row","Clearances","AllDiscipline","LayerSheet","sheetName","Sheets","disciplineCode","upn","LayersFile","Modifiers","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","supplierCode","BuildingModelCodesFile","buildingModelCode","level","UpnFile","ModelTypesFile","modelType","LargeProjectsFile","projectName","GenerateReportButton","reportName","checks","XLSX","book_new","displayRows","at","worksheet","json_to_sheet","book_append_sheet","compression","ReportGenerator","alert","ReportingPage","setReport","indexPassed","setIndexPassed","setData2","onDrilldown","category","points","submittal","reporting","accountsList","setAccountsList","_useState11","_useState12","selectedAccount","setSelectedAccount","_useState13","_useState14","projectList","setProjectList","_useState15","_useState16","selectedProject","setSelectedProject","_useState17","_useState18","topFolder","setTopFolder","_useState19","_useState20","setSelectedProjectName","_useState21","_useState22","baseFolderList","setBaseFolderList","_useState23","_useState24","setCurrentFolderSelected","_useState25","_useState26","setDocumentList","_useState27","_useState28","currentDocumentSelected","setCurrentDocumentSelected","_useState29","_useState30","setSubmittal","_useState31","_useState32","layersXlsx","setLayersXlsx","_useState33","_useState34","revitCoordinatesXlsx","setRevitCoordinatesXlsx","_useState35","_useState36","sharedParametersXlsx","setSharedParametersXlsx","_useState37","_useState38","revitWarningsXlsx","setRevitWarningsXlsx","_useState39","_useState40","supplierCodesXlsx","setSupplierCodesXlsx","_useState41","_useState42","largeProjectsXlsx","setLargeProjectsXlsx","_useState43","_useState44","submittalLink","_useState45","_useState46","setSubmittalDocumentList","_useState47","_useState48","selectedDocumentsList","setSelectedDocumentsList","_useState49","_useState50","buildingModelCodesXlsx","setBuildingModelCodesXlsx","_useState51","_useState52","upnXlsx","setUpnXlsx","_useState53","_useState54","disciplinesXlsx","setDisciplinesXlsx","_useState55","_useState56","modelTypesXlsx","setModelTypesXlsx","_useState57","_useState58","reportSheetArray","setReportSheetArray","_useState59","_useState60","exportReportName","setExportReportName","PrepSubmittalReporting","SubmittalReporting","validateSubmittal","submittalResults","validationResults","ancestorFolderPath","folderName","events","baseReport","submittalPassed","sheetArray","reason","accAndBim360Accounts","t0","accAndBim360Projects","GetHubProjects","GetLayersXlsx","layersFile","GetRevitCoordinates","revitCoordinatesFile","GetSharedParameters","sharedParametersFile","GetRevitWarnings","revitWarningsFile","GetSupplierCodes","supplierCodesFile","GetBuildingSectorCodes","buildingModelCodesFile","upnFile","disciplinesFile","DisciplineFile","modelTypesFile","GetLargeProjects","largeProjectsFile","_callee3","rootFolders","_context3","GetUserSelectableFolders","htmlFor","folderIdObject","_callee4","files","xlsxFiles","folders","_context4","GetFolderContentAll","version","storageId","endsWith","initializeIcons","App","spinnerContext","Provider","Switch","Route","exact","Redirect","passingChecks","splashPage","issuedFor","j","_appState","_title","_message","bind","setErrors","newError","SplashPage","splashPageTab","deliverableIndex","packageNumber","packageDescriptionTitle","closedOutByRecord","packageLayerModifier","int_ssid","int_pkg_name","issuedDate","sheetsRequired","navisRequired","modelsRequired","A1","C2","C3","C4","C5","C6","C7","C8","trim","C9","C10","C11","C15","C16","C17","sheetsTab","containsDwg","containsRevit","containsPdf","pkgno","discipline","filename","revno","revdate","comments","extension","SourceModels","sourceModelsTab","i18n","use","detector","backend","initReactI18next","init","loadPath","defaultNS","lng","fallbackLng","keySeparator","interpolation","escapeValue","Boolean","window","location","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.704e0832.chunk.js","sourcesContent":["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, { 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 (model.type === ModelType.Revit) {\r\n // do nothing\r\n }\r\n else if (diff) {\r\n if (diff < 60) {\r\n text = `${diff} Minutes`;\r\n }\r\n else if (diff < 60 * 24) {\r\n text = `${Math.round(diff / 60)} Hours`;\r\n }\r\n else {\r\n text = `${Math.round(diff / (60 * 24))} Days`;\r\n }\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 //}\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 }\r\n else\r\n {\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});","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","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 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","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ApiCalls = void 0;\r\nvar App_1 = require(\"../App\");\r\nvar axios_1 = require(\"axios\");\r\nvar Error_1 = require(\"./DataTypes/Error\");\r\nvar ApiCalls = /** @class */ (function () {\r\n function ApiCalls() {\r\n }\r\n //Auth Calls\r\n ApiCalls.fetchAuthUrl = function () {\r\n return SimpleGet(\"/api/forge/oauth/url?encodedRedirectUrl=\".concat(btoa(window.location.href)));\r\n };\r\n ApiCalls.fetchUser = function () {\r\n return SimpleGet(\"/api/auth/user\");\r\n };\r\n ApiCalls.logout = function () {\r\n return SimpleGet(\"/api/auth/logout\");\r\n };\r\n //Logs and Debugging\r\n ApiCalls.getLogs = function () {\r\n return SimpleGet(\"/api/logs\");\r\n };\r\n ApiCalls.getLogFile = function (_a) {\r\n var log = _a.log;\r\n return SimpleGet(\"/api/logs/\".concat(log.name));\r\n };\r\n //Timezones\r\n ApiCalls.getTimezones = function () {\r\n return SimpleGet(\"/api/timezones\");\r\n };\r\n //Design Automation Engines\r\n ApiCalls.getDesignAutomationEngines = function () {\r\n return SimpleGet(\"/api/designAutomationEngines\");\r\n };\r\n ApiCalls.patchDesignAutomationEngines = function (_a) {\r\n var engine = _a.engine;\r\n return SimplePatch(\"/api/designAutomationEngines/\".concat(engine.id), engine.interface);\r\n };\r\n ApiCalls.postUploadAppBundle = function (_a) {\r\n var engine = _a.engine, file = _a.file;\r\n return SimplePost(\"/api/designAutomationEngines/\".concat(engine.id, \"/appBundle\"), file);\r\n };\r\n //Hubs\r\n ApiCalls.GetHubs = function () {\r\n return SimpleGet(\"/api/hubs\");\r\n };\r\n ApiCalls.PatchHub = function (_a) {\r\n var hub = _a.hub;\r\n return SimplePatch(\"/api/hubs/\".concat(hub.hubId), hub);\r\n };\r\n ApiCalls.RefreshHubs = function () {\r\n return SimplePost(\"api/hubs/refresh\");\r\n };\r\n //Projects\r\n ApiCalls.GetProjects = function (_a) {\r\n var includeDisabled = _a.includeDisabled;\r\n return SimpleGet(\"/api/projects?includeDisabled=\".concat(includeDisabled));\r\n };\r\n ApiCalls.GetHubProjects = function (hubId, includeDisabled) {\r\n return SimpleGet(\"/api/projects?includeDisabled=\".concat(includeDisabled, \"&hubId=\").concat(hubId));\r\n };\r\n ApiCalls.GetProject = function (_a) {\r\n var projectId = _a.projectId;\r\n return SimpleGet(\"/api/projects/\".concat(projectId));\r\n };\r\n ApiCalls.PatchProject = function (_a) {\r\n var project = _a.project;\r\n return SimplePatch(\"/api/projects/\".concat(project.id), project.toInterface());\r\n };\r\n ApiCalls.RunFilteredModels = function (_a) {\r\n var project = _a.project, body = _a.body;\r\n return SimplePost(\"/api/projects/\".concat(project.id, \"/models:run-all\"), body);\r\n };\r\n ApiCalls.RunAllModels = function (_a) {\r\n var project = _a.project;\r\n return SimplePost(\"/api/projects/\".concat(project.id, \"/models:run-all\"), {});\r\n };\r\n ApiCalls.RunProjectMPA = function (_a) {\r\n var project = _a.project;\r\n return SimplePatch(\"/api/projects/\".concat(project.id, \"/runMPA\"));\r\n };\r\n ApiCalls.SyncProjectFolderTree = function (_a) {\r\n var project = _a.project;\r\n return SimplePost(\"/api/projects/\".concat(project.id, \"/sync\"));\r\n };\r\n ApiCalls.GetWebHooks = function (_a) {\r\n var project = _a.project;\r\n return SimpleGet(\"/api/projects/\".concat(project.id, \"/hooks\"));\r\n };\r\n ApiCalls.GetProjectTopFolders = function (projectId) {\r\n return SimpleGet(\"api/projects/topFolders?id=\".concat(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 ApiCalls.GetFolderContentAll = function (projectId, folderId) {\r\n return SimpleGet(\"api/projects/\".concat(projectId, \"/\").concat(folderId, \"/contents\"));\r\n };\r\n ApiCalls.GetUserSelectableFolders = function (projectId) {\r\n return SimpleGet(\"api/projects/userSelectableFolders?projectId=\".concat(projectId));\r\n };\r\n //Models\r\n ApiCalls.GetModels = function (_a) {\r\n var project = _a.project;\r\n return SimpleGet(\"/api/projects/\".concat(project.id, \"/models\"));\r\n };\r\n ApiCalls.PatchModel = function (_a) {\r\n var model = _a.model;\r\n return SimplePatch(\"/api/models/\".concat(model.id), model.toInterface());\r\n };\r\n ApiCalls.GetModelRuns = function (_a) {\r\n var model = _a.model;\r\n return SimpleGet(\"/api/models/\".concat(model.id, \"/workItems\"));\r\n };\r\n ApiCalls.RunModelMPA = function (_a) {\r\n var model = _a.model;\r\n return SimplePost(\"/api/models/\".concat(model.id, \"/runMPA\"));\r\n };\r\n ApiCalls.DeleteModel = function (_a) {\r\n var model = _a.model;\r\n return SimpleDelete(\"/api/models/\".concat(model.id));\r\n };\r\n //WorkItems\r\n ApiCalls.getWorkItem = function (_a) {\r\n var workItem = _a.workItem;\r\n return SimpleGet(\"/api/workitems/\".concat(workItem.id));\r\n };\r\n // Config \r\n ApiCalls.GetConfig = function () {\r\n return SimpleGet('/api/config');\r\n };\r\n // Reporting\r\n ApiCalls.PrepSubmittalReporting = function (submittal) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var template;\r\n return __generator(this, function (_a) {\r\n 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 submittal.reporting = {\r\n report: template,\r\n data: []\r\n };\r\n submittal.indexFailed = false;\r\n return [2 /*return*/, submittal];\r\n });\r\n });\r\n };\r\n ApiCalls.GetLayersXlsx = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var xlsx;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, Promise.all([\r\n SimpleGet('/api/reporting/layersxlsx')\r\n ])];\r\n case 1:\r\n xlsx = (_a.sent())[0];\r\n return [2 /*return*/, xlsx];\r\n }\r\n });\r\n });\r\n };\r\n ApiCalls.GetLargeProjectsDb = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, SimpleGet('/api/reporting/largeProjectsDb')];\r\n });\r\n });\r\n };\r\n ApiCalls.GetLargeProjects = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var xlsx;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, Promise.all([\r\n SimpleGet('/api/reporting/largeProjectsXlsx')\r\n ])];\r\n case 1:\r\n xlsx = (_a.sent())[0];\r\n return [2 /*return*/, xlsx];\r\n }\r\n });\r\n });\r\n };\r\n ApiCalls.GetRevitCoordinates = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var xlsx;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, Promise.all([\r\n SimpleGet('/api/reporting/revitCoordinates')\r\n ])];\r\n case 1:\r\n xlsx = (_a.sent())[0];\r\n return [2 /*return*/, xlsx];\r\n }\r\n });\r\n });\r\n };\r\n ApiCalls.GetSharedParameters = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var xlsx;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, Promise.all([\r\n SimpleGet('/api/reporting/sharedParameters')\r\n ])];\r\n case 1:\r\n xlsx = (_a.sent())[0];\r\n return [2 /*return*/, xlsx];\r\n }\r\n });\r\n });\r\n };\r\n ApiCalls.GetRevitWarnings = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var xlsx;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, Promise.all([\r\n SimpleGet('/api/reporting/revitWarnings')\r\n ])];\r\n case 1:\r\n xlsx = (_a.sent())[0];\r\n return [2 /*return*/, xlsx];\r\n }\r\n });\r\n });\r\n };\r\n ApiCalls.GetSupplierCodesDb = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, SimpleGet('/api/reporting/supplierCodesDb')];\r\n });\r\n });\r\n };\r\n ApiCalls.GetDisciplinesDb = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, SimpleGet('/api/reporting/disciplinesDb')];\r\n });\r\n });\r\n };\r\n ApiCalls.GetSupplierCodes = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var xlsx;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, Promise.all([\r\n SimpleGet('/api/reporting/supplierCodes')\r\n ])];\r\n case 1:\r\n xlsx = (_a.sent())[0];\r\n return [2 /*return*/, xlsx];\r\n }\r\n });\r\n });\r\n };\r\n ApiCalls.GetBuildingSectorCodes = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var xlsx;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, Promise.all([\r\n SimpleGet('api/reporting/buildingSectorCodes')\r\n ])];\r\n case 1:\r\n xlsx = (_a.sent())[0];\r\n return [2 /*return*/, xlsx];\r\n }\r\n });\r\n });\r\n };\r\n ApiCalls.ValidateMpaResults = function (submittal) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var result;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, Promise.all([\r\n SimplePost('/api/reporting/submittal/validate', submittal),\r\n ])];\r\n case 1:\r\n result = (_a.sent())[0];\r\n return [2 /*return*/, result];\r\n }\r\n });\r\n });\r\n };\r\n ApiCalls.GetSubmittal = function (file) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var link;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, Promise.all([\r\n SimplePost(\"/api/reporting/submittal/\".concat(file.version), file)\r\n ])];\r\n case 1:\r\n link = (_a.sent())[0];\r\n return [2 /*return*/, link];\r\n }\r\n });\r\n });\r\n };\r\n // This may not be a good check anymore\r\n ApiCalls.DoesModelPass = function (fileId) {\r\n return SimpleGet(\"/api/modelPass/\".concat(fileId));\r\n };\r\n return ApiCalls;\r\n}());\r\nexports.ApiCalls = ApiCalls;\r\nfunction SimplePost(url, body, options) {\r\n return new Promise(function (resolve, reject) {\r\n axios_1.default\r\n .post(url, body, options)\r\n .then(function (result) {\r\n resolve(result === null || result === void 0 ? void 0 : result.data);\r\n })\r\n .catch(function (error) {\r\n var _a, _b, _c;\r\n if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) !== 401) {\r\n Error_1.Error.create({\r\n title: \"Could not POST \".concat(url),\r\n message: \"\".concat((_b = error.response) === null || _b === void 0 ? void 0 : _b.status, \": \").concat((_c = error.response) === null || _c === void 0 ? void 0 : _c.statusText, \" (\").concat(url, \")\"),\r\n appState: App_1.appState,\r\n });\r\n }\r\n reject(error);\r\n });\r\n });\r\n}\r\nfunction SimplePatch(url, body, options) {\r\n return new Promise(function (resolve, reject) {\r\n axios_1.default\r\n .patch(url, body, options)\r\n .then(function (result) {\r\n resolve(result === null || result === void 0 ? void 0 : result.data);\r\n })\r\n .catch(function (error) {\r\n var _a, _b, _c;\r\n console.log(error);\r\n if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) !== 401) {\r\n Error_1.Error.create({\r\n title: \"Could not PATCH \".concat(url),\r\n message: \"\".concat((_b = error.response) === null || _b === void 0 ? void 0 : _b.status, \": \").concat((_c = error.response) === null || _c === void 0 ? void 0 : _c.statusText, \" (\").concat(url, \")\"),\r\n appState: App_1.appState,\r\n });\r\n }\r\n reject(error);\r\n });\r\n });\r\n}\r\nfunction SimpleDelete(url, options) {\r\n return new Promise(function (resolve, reject) {\r\n axios_1.default\r\n .delete(url, options)\r\n .then(function (result) {\r\n resolve(result === null || result === void 0 ? void 0 : result.data);\r\n })\r\n .catch(function (error) {\r\n var _a, _b;\r\n Error_1.Error.create({\r\n title: \"Could not DELETE \".concat(url),\r\n message: \"\".concat((_a = error.response) === null || _a === void 0 ? void 0 : _a.status, \": \").concat((_b = error.response) === null || _b === void 0 ? void 0 : _b.statusText, \" (\").concat(url, \")\"),\r\n appState: App_1.appState,\r\n });\r\n reject(error);\r\n });\r\n });\r\n}\r\nfunction SimpleGet(url, options) {\r\n return new Promise(function (resolve, reject) {\r\n axios_1.default\r\n .get(url, options)\r\n .then(function (result) {\r\n resolve(result === null || result === void 0 ? void 0 : result.data);\r\n })\r\n .catch(function (error) {\r\n var _a, _b, _c;\r\n if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) !== 401) {\r\n Error_1.Error.create({\r\n title: \"Could not GET \".concat(url),\r\n message: \"\".concat((_b = error.response) === null || _b === void 0 ? void 0 : _b.status, \": \").concat((_c = error.response) === null || _c === void 0 ? void 0 : _c.statusText, \" (\").concat(url, \")\"),\r\n appState: App_1.appState,\r\n });\r\n }\r\n reject(error);\r\n });\r\n });\r\n}\r\n//# sourceMappingURL=ApiCalls.js.map","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SubmittalReporting = void 0;\r\nvar splashPage_1 = require(\"./classes/splashPage\");\r\nvar sheets_1 = require(\"./classes/sheets\");\r\nvar sourceModels_1 = require(\"./classes/sourceModels\");\r\nvar ApiCalls_1 = require(\"./ApiCalls\");\r\nvar navisModels_1 = require(\"./classes/navisModels\");\r\nvar SubmittalReporting = /** @class */ (function () {\r\n function SubmittalReporting() {\r\n }\r\n SubmittalReporting.validateSubmittal = function (submittal, hub, project, topFolder, layersXlsx, revitCoordinatesXlsx, sharedParametersXlsx, revitWarningsXlsx, supplierCodesXlsx, buildingModelCodesXlsx, upnXlsx, disciplinesXlsx, modelTypesXlsx, largeProjectsXlsx) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var numberOfChecks, splashPageTab, sheetsTab, sourceModelsTab, navisModelsTab, submittalResults, splashPage, sheets, sourcModels, navisModels, validLargeProjects, validSupplierCodes, validDisciplines, deliverableIndexResults, splashPageResults, sheetsResults, navisResults, sourcModelsResults, mpaResults, submittalPassed, passingChecks, warnings, results, sheetArray, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 7, , 8]);\r\n numberOfChecks = 2;\r\n splashPageTab = submittal.workbook.Sheets['SplashPage'];\r\n sheetsTab = submittal.workbook.Sheets['Sheets'];\r\n sourceModelsTab = submittal.workbook.Sheets['Source-Models'];\r\n navisModelsTab = submittal.workbook.Sheets['Navis-Models'];\r\n submittalResults = undefined;\r\n if (!(splashPageTab && sheetsTab && sourceModelsTab && navisModelsTab)) return [3 /*break*/, 5];\r\n splashPage = new splashPage_1.SplashPage(splashPageTab);\r\n sheets = new sheets_1.Sheets(sheetsTab);\r\n sourcModels = new sourceModels_1.SourceModels(sourceModelsTab);\r\n navisModels = new navisModels_1.NavisModels(navisModelsTab);\r\n return [4 /*yield*/, ApiCalls_1.ApiCalls.GetLargeProjectsDb()];\r\n case 1:\r\n validLargeProjects = _a.sent();\r\n return [4 /*yield*/, ApiCalls_1.ApiCalls.GetSupplierCodesDb()];\r\n case 2:\r\n validSupplierCodes = _a.sent();\r\n 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 deliverableIndexResults = this.validateDeliverableIndex(splashPage);\r\n splashPageResults = this.validateSplashPage(splashPage, sheets, navisModels, sourcModels, validSupplierCodes, validLargeProjects);\r\n sheetsResults = this.validateSheets(splashPage, sheets, validDisciplines);\r\n navisResults = this.validateNavisModels(splashPage, navisModels, validDisciplines);\r\n sourcModelsResults = this.validateSourcModels(splashPage, sourcModels, validDisciplines);\r\n mpaResults = undefined;\r\n submittalPassed = 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 if (!submittalPassed) return [3 /*break*/, 4];\r\n return [4 /*yield*/, ApiCalls_1.ApiCalls.ValidateMpaResults({\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 case 3:\r\n mpaResults = _a.sent();\r\n mpaResults.sheetsResults.failedChecks.forEach(function (f) { return sheetsResults.failedChecks.push(f); });\r\n sheetsResults.passingChecks += mpaResults.sheetsResults.passingChecks;\r\n mpaResults.sourcModelsResults.failedChecks.forEach(function (f) { return sourcModelsResults.failedChecks.push(f); });\r\n sourcModelsResults.passingChecks += mpaResults.sourcModelsResults.passingChecks;\r\n mpaResults.navisResults.failedChecks.forEach(function (f) { return navisResults.failedChecks.push(f); });\r\n navisResults.passingChecks += mpaResults.navisResults.passingChecks;\r\n _a.label = 4;\r\n case 4:\r\n passingChecks = deliverableIndexResults.passingChecks +\r\n splashPageResults.passingChecks +\r\n sheetsResults.passingChecks +\r\n navisResults.passingChecks +\r\n sourcModelsResults.passingChecks;\r\n warnings = deliverableIndexResults.warningChecks.length;\r\n //mpaResults.revitModelResults.warningChecks.length;\r\n //splashpageResults.passingChecks +\r\n //sheetsResults.passingChecks +\r\n //sourcModelsResults.warningChecks.Length;\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 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 if (passingChecks > 0) {\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 results.baseReport.data.push({\r\n name: \"Warnings\",\r\n y: 100 * warnings / numberOfChecks,\r\n drilldown: \"warnings\"\r\n });\r\n }\r\n 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 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 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 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 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 if (warnings > 0) {\r\n sheetArray.push(JSON.stringify(results.drilldownData.warnings));\r\n }\r\n submittalResults = {\r\n submittalPassed: mpaResults != undefined,\r\n validationResults: results,\r\n sheetArray: sheetArray\r\n };\r\n return [3 /*break*/, 6];\r\n case 5:\r\n alert(\"Index not recognizable. Check template\");\r\n throw new DOMException(\"Index not reconizable. Check template\", \"Failed Index\");\r\n case 6: return [2 /*return*/, submittalResults];\r\n case 7:\r\n e_1 = _a.sent();\r\n throw e_1;\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n SubmittalReporting.validateDeliverableIndex = function (splashPage) {\r\n var passingChecks = 0;\r\n var warningChecks = [];\r\n var failedChecks = [];\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 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 SubmittalReporting.validateSplashPage = function (splashPage, sheets, navisModels, sourceModels, validSupplierCodes, validLargeProjects) {\r\n var passingChecks = 0;\r\n var failedChecks = [];\r\n // Valid Supplier Code Check\r\n if (validSupplierCodes.filter(function (e) { return e.code === splashPage.supplierCode; })) {\r\n passingChecks++;\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Supplier Code Invalid\",\r\n value: splashPage.supplierCode\r\n });\r\n }\r\n if (validLargeProjects.filter(function (e) { return e.description === splashPage.projectName; })) {\r\n passingChecks++;\r\n }\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 // 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 // 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 // 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 failedChecks.push({\r\n description: \"Packages being closed out\",\r\n value: splashPage.closedOutByRecord\r\n });\r\n }\r\n // Validate Package Layer Modifier is not blank\r\n if (splashPage.packageLayerModifier) {\r\n if ((sourceModels.containsDwg || sheets.containsDwg)\r\n && splashPage.packageLayerModifier\r\n && splashPage.packageLayerModifier.toString().toUpperCase() !== \"N/A\"\r\n || sourceModels.containsDwg === false\r\n && sheets.containsDwg === false\r\n && (splashPage.packageLayerModifier === undefined || splashPage.packageLayerModifier.toString().toUpperCase() === \"N/A\")\r\n || splashPage.issuedFor.toLowerCase() === \"audit\"\r\n && 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 //INT_SSID required if package is not on large projects list and Revit in package\r\n var intSsidRequired = function () {\r\n if (splashPage.projectName) {\r\n if (validLargeProjects.filter(function (e) { return e.description && e.description.toLowerCase() === splashPage.projectName.toLowerCase(); })) {\r\n return sourceModels.containsRevit;\r\n }\r\n }\r\n else {\r\n return sourceModels.containsRevit;\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 // Validate INT_PKG_Name\r\n if (splashPage.issuedFor.toLowerCase() !== \"audit\") {\r\n if (splashPage.int_pkg_name) {\r\n if (sourceModels.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 // 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 failedChecks.push({\r\n description: \"Issue for (construction or record)\",\r\n value: splashPage.issuedFor\r\n });\r\n }\r\n // Issue Date is a valid date\r\n var 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 failedChecks.push({\r\n description: \"Issue Date\",\r\n value: splashPage.issuedDate\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 passingChecks++;\r\n }\r\n else {\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 // 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 passingChecks++;\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Navisworks deliverable required\",\r\n value: splashPage.navisRequired\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 // Source-Models Deliverable Required\r\n if (splashPage.modelsRequired != undefined) {\r\n if (splashPage.modelsRequired.toLowerCase() === 'y' && sourceModels.data.length > 0 ||\r\n splashPage.modelsRequired.toLowerCase() !== 'y' && sourceModels.data.length === 0) {\r\n passingChecks++;\r\n }\r\n else {\r\n failedChecks.push({\r\n description: \"Models deliverable required\",\r\n value: splashPage.modelsRequired\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 return {\r\n name: 'Failed Splash Page',\r\n failedChecks: failedChecks,\r\n passingChecks: passingChecks\r\n };\r\n };\r\n SubmittalReporting.validateSheets = function (splashPage, sheets, disciplineCodes) {\r\n var 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 var 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 var failedChecks = [];\r\n var passingChecks = 0;\r\n var pkgnoValid = true;\r\n var sheetsInvalidPkgno = [];\r\n var sheetDisciplinesValid = true;\r\n var sheetsMissingDiscipline = [];\r\n var sheetRevNosValid = true;\r\n var filesInvalidRevNo = [];\r\n var sheetRevDatesValid = true;\r\n var filesInvalidRevDates = [];\r\n var sheetPdfValid = true;\r\n var sheetPdfsInvalid = [];\r\n var validFileNames = true;\r\n var invalidFileNames = [];\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 // 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 if (sheetRow.discipline) {\r\n if (disciplineCodes.filter(function (x) { return 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 var num = Number(sheetRow.revno);\r\n var isInteger = Number.isInteger(num);\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 }\r\n else if (sheetRow.revno.toString() == \"NaN\") {\r\n sheetRevNosValid = true;\r\n }\r\n else if ((/[a-zA-Z]/).test(sheetRow.revno.toString()) && sheetRow.revno.toString().length === 1) {\r\n sheetRevNosValid = true;\r\n }\r\n else if (num >= 0 && isInteger) {\r\n sheetRevNosValid = true;\r\n }\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 // 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 // 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 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 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 // Validate CAD and Revit sheets are provided... This may need to be checked against the database on backenend...\r\n return {\r\n name: 'Failed Sheets Tabs',\r\n failedChecks: failedChecks,\r\n passingChecks: passingChecks\r\n };\r\n };\r\n SubmittalReporting.validateNavisModels = function (splashPage, navisModels, disciplineCodes) {\r\n var passingChecks = 0;\r\n var failedChecks = [];\r\n // Validate Package Number is consistent if Issued for Construction\r\n var pkgnoValid = true;\r\n var modelsInvalidPkgno = [];\r\n // Validate Source Models all have Discipline\r\n var modelsDisciplinesValid = true;\r\n var modelsMissingDiscipline = [];\r\n var issuedDatesValid = true;\r\n var navisInvalidIssuedDates = [];\r\n var validFileNames = true;\r\n var invalidFilenames = [];\r\n var 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 var 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 for (var j = 0; j < navisModels.data.length; j++) {\r\n var navisRow = navisModels.data[j];\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 // Validate Source Models all have Discipline\r\n if (navisRow.discipline) {\r\n if (disciplineCodes.filter(function (x) { return 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 // 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 // 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 // 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 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 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 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 return {\r\n name: 'Failed Navis Models Checks',\r\n failedChecks: failedChecks,\r\n passingChecks: passingChecks\r\n };\r\n };\r\n SubmittalReporting.validateSourcModels = function (splashPage, sourceModels, disciplineCodes) {\r\n var passingChecks = 0;\r\n var failedChecks = [];\r\n //var warningChecks = [];\r\n // Validate Package Number is consistent if Issued for Construction\r\n var pkgnoValid = true;\r\n var modelsInvalidPkgno = [];\r\n var disciplineValid = true;\r\n var invalidDiscipline = [];\r\n var validFileNames = true;\r\n var invalidFilenames = [];\r\n var 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 if (splashPage.issuedFor && splashPage.issuedFor.toLowerCase() === 'construction') {\r\n for (var j = 0; j < sourceModels.data.length; j++) {\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 if (sourceModels.data[j].discipline) {\r\n if (disciplineCodes.filter(function (x) { return 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 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 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 return {\r\n name: 'Failed Source-Models Tab',\r\n failedChecks: failedChecks,\r\n passingChecks: passingChecks\r\n };\r\n };\r\n return SubmittalReporting;\r\n}());\r\nexports.SubmittalReporting = SubmittalReporting;\r\n//# sourceMappingURL=SubmittalReporting.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","\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","\"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","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","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","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Excel = void 0;\r\nvar XLSX = require(\"xlsx/xlsx\");\r\nvar Excel = /** @class */ (function () {\r\n function Excel() {\r\n }\r\n Excel.readFile = function (file) {\r\n return new Promise(function (resolve) {\r\n var reader = new FileReader();\r\n reader.onload = (function (e) {\r\n var _a;\r\n var workbook = XLSX.read((_a = e.target) === null || _a === void 0 ? void 0 : _a.result, { type: 'array' });\r\n resolve(workbook);\r\n });\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n Excel.streamFile = function (stream) {\r\n return new Promise(function (resolve) {\r\n var workbook = XLSX.read(stream, { type: 'array' });\r\n resolve(workbook);\r\n });\r\n };\r\n return Excel;\r\n}());\r\nexports.Excel = Excel;\r\n//# sourceMappingURL=excel.js.map"],"sourceRoot":""}