{"version":3,"file":"app-7c72585b.af4ca2eef7fe4f67.bundle.js","mappings":"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","sources":["webpack://client-app/./src/app/project/model-revision/create-model/create-model.scss","webpack://client-app/./src/app/project/model-revision/model-revision.scss","webpack://client-app/./src/app/project/model-revision/model/models.scss","webpack://client-app/./src/app/project/model-revision/create-model/create-model.html","webpack://client-app/./src/app/project/model-revision/model-revision.html","webpack://client-app/./src/app/project/model-revision/model/models.html","webpack://client-app/./src/app/project/model-revision/create-model/create-model.ts","webpack://client-app/./src/app/project/model-revision/model-revision.ts","webpack://client-app/./src/app/project/model-revision/model/models.ts"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".create-model-title,.create-model-inner{margin-bottom:20px}.create-model-title .ok-btn,.create-model-title .cancel-btn,.create-model-inner .ok-btn,.create-model-inner .cancel-btn{display:inline;float:right}.create-model-title .cancel-btn,.create-model-inner .cancel-btn{margin-right:10px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/project/model-revision/create-model/create-model.scss\"],\"names\":[],\"mappings\":\"AAAA,wCACI,kBAAA,CACA,wHACI,cAAA,CACA,WAAA,CAEJ,gEACI,iBAAA\",\"sourcesContent\":[\".create-model-title, .create-model-inner {\\r\\n margin-bottom: 20px;\\r\\n .ok-btn, .cancel-btn {\\r\\n display: inline; \\r\\n float: right;\\r\\n }\\r\\n .cancel-btn {\\r\\n margin-right: 10px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".model-revision-top-bar{border-bottom:1px silver solid}.all-model-revision-content{width:100%;height:calc(100vh - (4em + 10px));margin-top:10px;overflow-y:auto;overflow-x:hidden}.all-model-revision-content .content-div-model{width:150%}.all-model-revision-content .content-div-revision{width:100%;animation:down-scale .18s}.all-model-revision-content .model-content{display:block;float:left;margin-left:10px;margin-top:10px;width:66%;min-width:450px}.all-model-revision-content .create-model-content,.all-model-revision-content .revision-content{float:left;margin-left:5px;margin-top:10px;width:calc(34% - 20px);min-width:220px;overflow:hidden}.all-model-revision-content .scale-up{animation:up-scale .2s}.all-model-revision-content .scale-down{animation:down-scale .18}@keyframes down-scale{to{width:100%}from{width:150%}}@keyframes up-scale{to{width:150%}from{width:100%}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/project/model-revision/model-revision.scss\"],\"names\":[],\"mappings\":\"AAEA,wBACI,8BAAA,CAEJ,4BACI,UAAA,CACA,iCAAA,CACA,eAAA,CACA,eAAA,CACA,iBAAA,CAEA,+CACI,UAAA,CAGJ,kDACI,UAAA,CACA,yBAAA,CAGJ,2CACI,aAAA,CACA,UAAA,CACA,gBAAA,CACA,eAAA,CACA,SAAA,CACA,eAAA,CAIJ,gGACI,UAAA,CACA,eAAA,CACA,eAAA,CACA,sBAAA,CACA,eAAA,CACA,eAAA,CAKJ,sCACI,sBAAA,CAGJ,wCACI,wBAAA,CAIR,sBACI,GACI,UAAA,CAEJ,KACI,UAAA,CAAA,CAIR,oBACI,GACI,UAAA,CAEJ,KACI,UAAA,CAAA\",\"sourcesContent\":[\"@import \\\"src/resources/customized-styles/variables\\\";\\r\\n\\r\\n.model-revision-top-bar {\\r\\n border-bottom: 1px silver solid;\\r\\n}\\r\\n.all-model-revision-content {\\r\\n width: 100%; \\r\\n height: calc(100vh - ($top-bar-height + 10px)); //top-bar-height + 10px margin\\r\\n margin-top: 10px;\\r\\n overflow-y: auto; \\r\\n overflow-x: hidden;\\r\\n \\r\\n .content-div-model {\\r\\n width: 150%;\\r\\n }\\r\\n\\r\\n .content-div-revision {\\r\\n width: 100%;\\r\\n animation: down-scale 0.18s;\\r\\n }\\r\\n\\r\\n .model-content {\\r\\n display: block;\\r\\n float:left;\\r\\n margin-left: 10px;\\r\\n margin-top: 10px;\\r\\n width: calc(66%); // who does this hit?, should now be more apparent.\\r\\n min-width: 450px;\\r\\n \\r\\n }\\r\\n\\r\\n .create-model-content, .revision-content {\\r\\n float:left;\\r\\n margin-left: 5px;\\r\\n margin-top: 10px;\\r\\n width: calc(100% - 66% - 20px);\\r\\n min-width: 220px;\\r\\n overflow: hidden;\\r\\n }\\r\\n \\r\\n \\r\\n\\r\\n .scale-up {\\r\\n animation: up-scale 0.2s;\\r\\n }\\r\\n\\r\\n .scale-down {\\r\\n animation: down-scale 0.18;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes down-scale {\\r\\n to {\\r\\n width: 100%;\\r\\n }\\r\\n from {\\r\\n width: 150%;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes up-scale {\\r\\n to {\\r\\n width: 150%;\\r\\n }\\r\\n from {\\r\\n width: 100%;\\r\\n }\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".header-area-model{height:60px}.header-area-model .model-type-headline{display:inline;float:left;margin-left:5px}.header-area-model .models-selected{margin-top:10px;margin-right:10px;float:right}.header-area-model .open3d-models-button{margin-right:10px;margin-bottom:10px;float:right}.header-area-model .newModelBtn{display:inline;float:right}.search-form{font-family:Arial,FontAwesome;margin-bottom:10px;width:40%}table.fixed-size-model-table{table-layout:fixed;min-width:430px}table.fixed-size-model-table tr .small-table-data{width:30px}table.fixed-size-model-table tr .model-info-td div{display:flex}table.fixed-size-model-table tr .model-info-td div span:first-child{overflow:hidden;text-overflow:ellipsis}table.fixed-size-model-table tr .model-info-td div span{white-space:nowrap}table.fixed-size-model-table tr .fixed-td{overflow:hidden;width:100px}.rightAlignedContent{text-align:right}.uploaded-models-content{margin-top:10px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/project/model-revision/model/models.scss\"],\"names\":[],\"mappings\":\"AAAA,mBACI,WAAA,CACA,wCACI,cAAA,CACA,UAAA,CACA,eAAA,CAEJ,oCACI,eAAA,CACA,iBAAA,CACA,WAAA,CAEJ,yCACI,iBAAA,CACA,kBAAA,CACA,WAAA,CAEJ,gCACI,cAAA,CACA,WAAA,CAIR,aACI,6BAAA,CACA,kBAAA,CACA,SAAA,CAGJ,6BACI,kBAAA,CACA,eAAA,CAEI,kDACI,UAAA,CAGA,mDACI,YAAA,CACA,oEACI,eAAA,CACA,sBAAA,CAEJ,wDACI,kBAAA,CAIZ,0CACI,eAAA,CACA,WAAA,CAMZ,qBACI,gBAAA,CAGJ,yBACI,eAAA\",\"sourcesContent\":[\".header-area-model {\\r\\n height: 60px;\\r\\n .model-type-headline {\\r\\n display: inline; \\r\\n float: left; \\r\\n margin-left: 5px;\\r\\n }\\r\\n .models-selected {\\r\\n margin-top: 10px;\\r\\n margin-right: 10px;\\r\\n float: right;\\r\\n }\\r\\n .open3d-models-button {\\r\\n margin-right: 10px;\\r\\n margin-bottom: 10px;\\r\\n float: right;\\r\\n }\\r\\n .newModelBtn {\\r\\n display: inline; \\r\\n float: right;\\r\\n }\\r\\n}\\r\\n\\r\\n.search-form {\\r\\n font-family:Arial, FontAwesome;\\r\\n margin-bottom: 10px;\\r\\n width: 40%;\\r\\n}\\r\\n\\r\\ntable.fixed-size-model-table {\\r\\n table-layout: fixed;\\r\\n min-width: 430px;\\r\\n tr {\\r\\n .small-table-data {\\r\\n width: 30px;\\r\\n }\\r\\n .model-info-td {\\r\\n div {\\r\\n display: flex;\\r\\n span:first-child {\\r\\n overflow: hidden;\\r\\n text-overflow:ellipsis;\\r\\n }\\r\\n span {\\r\\n white-space: nowrap;\\r\\n }\\r\\n }\\r\\n }\\r\\n .fixed-td {\\r\\n overflow: hidden;\\r\\n width:100px;\\r\\n }\\r\\n }\\r\\n\\r\\n}\\r\\n\\r\\n.rightAlignedContent {\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.uploaded-models-content {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = \"\\r\\n\";","module.exports = \"\";","module.exports = \"\\r\\n\";","import { ApiClient, RequestMethod } from \"app/services/api-client\";\r\nimport { AppContextService } from \"app/services/app-context-service\";\r\nimport { autoinject } from 'aurelia-framework';\r\nimport { Router } from 'aurelia-router';\r\nimport { ModalService } from 'app/services/modal-service';\r\nimport { BimViewerService } from \"app/services/bim-viewer-service\";\r\nimport {BimViewerFileDto, BimViewerRevisionDto} from \"../../../models/viewer-dtos/Dtos/bimviewer-dtos\";\r\nimport { ModelRevision } from \"../model-revision\";\r\nimport { UserService } from \"app/services/user-service\";\r\nimport { DateTimeFormatter } from \"app/services/date-time-formatter\";\r\n\r\n@autoinject\r\nexport class CreateModel {\r\n private newModelName: string = \"\";\r\n private modelFiles: File[] = []\r\n private selectedModelFileName = \"Upload model\"\r\n private chosenFileToUpload?: File;\r\n private bimViewerService: BimViewerService;\r\n private parentComponent?: ModelRevision;\r\n private fileInputElement?: HTMLInputElement;\r\n\r\n\r\n constructor(public apiClient: ApiClient, public appContext:AppContextService, public router: Router, public element: Element, \r\n public modal: ModalService, public userService: UserService) {\r\n this.bimViewerService = new BimViewerService(apiClient,appContext);\r\n }\r\n\r\n bind(params: ModelRevision): void {\r\n this.parentComponent = params;\r\n console.log('create-model, params:', params);\r\n }\r\n\r\n attached(): void {\r\n this.fileInputElement = document.getElementById('modelFileInput');\r\n }\r\n \r\n cancel(): void {\r\n this.resetInputs();\r\n this.parentComponent?.cancel();\r\n }\r\n\r\n fileSelected(): void {\r\n if (this.modelFiles.length > 0) {\r\n this.chosenFileToUpload = this.modelFiles[0];\r\n this.selectedModelFileName = this.chosenFileToUpload.name;\r\n if (this.newModelName.length == 0) {\r\n this.newModelName = this.chosenFileToUpload.name.replace(/\\.[^/.]+$/, \"\");\r\n }\r\n } else {\r\n this.selectedModelFileName = \"Upload model\";\r\n }\r\n }\r\n\r\n async saveNewModel(event:PointerEvent): Promise {\r\n\t\tconst altUpload = event.shiftKey;\r\n\t\tconsole.log('saveNewModel, altUpload?', altUpload);\r\n\r\n let modelName:string = this.newModelName;\r\n if (modelName.length < 1) { \r\n this.modal.OpenMessage(\"No Model Name\", \"You must write a model name to create a model.\");\r\n return;\r\n }\r\n\r\n let fileDto: BimViewerFileDto | void = await this.bimViewerService.createModel(modelName, altUpload, this.chosenFileToUpload);\r\n if (fileDto) {\r\n let username: string | undefined = await this.userService.getUsername(fileDto.createdByUser_Id,'saveNewModel');\r\n fileDto.username = username ? username : \"Unknown\"; \r\n fileDto.created = DateTimeFormatter.formatDate(fileDto.created);\r\n this.parentComponent?.handleSavedModel(fileDto);\r\n }\r\n }\r\n\r\n resetInputs(): void {\r\n this.newModelName = \"\";\r\n this.selectedModelFileName = \"Upload model\";\r\n this.chosenFileToUpload = undefined;\r\n if (this.fileInputElement) {\r\n this.fileInputElement.value = \"\";\r\n }\r\n }\r\n}\r\n","import { ApiClient, RequestMethod } from \"app/services/api-client\";\r\nimport { AppContextService } from \"app/services/app-context-service\";\r\nimport { autoinject } from 'aurelia-framework';\r\nimport { Router } from 'aurelia-router';\r\nimport { ModalService } from 'app/services/modal-service';\r\nimport { BimViewerService } from \"app/services/bim-viewer-service\";\r\nimport {BimViewerFileDto, BimViewerRevisionDto} from \"../../models/viewer-dtos/Dtos/bimviewer-dtos\";\r\nimport { Models } from \"./model/models\";\r\nimport { CreateModel } from \"./create-model/create-model\";\r\nimport { Revisions } from \"./revision/revisions\";\r\nimport { HttpResponseMessage } from \"aurelia-http-client\";\r\n\r\n\r\n@autoinject\r\nexport class ModelRevision {\r\n public showCreateModel: boolean = false;\r\n public modelList: BimViewerFileDto[] = [];\r\n public createModelView?: CreateModel;\r\n private revisionViewModel?: Revisions;\r\n private bimViewerService: BimViewerService\r\n private modelView?: Models;\r\n private selectedModel?: BimViewerFileDto;\r\n\r\n constructor(public apiClient: ApiClient, public appContext:AppContextService, public router: Router, public element: Element, public modal: ModalService) {\r\n this.bimViewerService = new BimViewerService(apiClient,appContext);\r\n }\r\n\r\n\tasync activate(params: any): Promise {\r\n console.log('model-revision-activate, params:', params);\r\n\t\tif (params.projectId) { this.appContext.setProject(params.projectId); }//in-activate.\r\n await this.initModels();\r\n }\r\n\r\n async initModels(): Promise { \r\n let prj: string = this.appContext.projectId;\r\n console.log('prj:', prj);\r\n let api: RequestMethod = this.apiClient.project(prj);\r\n\r\n // do we risk a cache-effect by using get instead of post?\r\n this.modelList = await api.get('BimViewer/GetFilesForProject').jsonResult(); \r\n\t\tconsole.log('model-revision,initModels, this.modelList:', this.modelList);\r\n\r\n if (this.modelView != undefined) { //Used for reloading view on project change.\r\n this.modelView.setupModels(this.modelList)\r\n } \r\n }\r\n\r\n async getNewestRevision(model: BimViewerFileDto): Promise {\r\n let prj: string = this.appContext.projectId;\r\n let api: RequestMethod = this.apiClient.project(prj);\r\n\r\n\t\tconsole.log('MR-getNewestRevision, this.appContext.projectId?', this.appContext.projectId);\r\n let revisions: BimViewerRevisionDto[] = await api.get(`BimViewer/GetRevisionsForFile?fileId=${model.id}`).jsonResult(); //Har du en anden version af denne?\r\n\t\tconsole.log('model-revision.getNewestRevision, BimViewer/GetRevisionsForFile, revisions:', revisions);\r\n\r\n if (revisions.length > 0) {\r\n revisions.sort((element1, element2) => {\r\n return Number(element2.revision) - Number(element1.revision);\r\n });\r\n return revisions[0].id;\r\n }\r\n return \"\";\r\n }\r\n\r\n public makeSpaceForRightPanel(): void {\r\n let contentElement: HTMLElement | null = this.element.querySelector('.content-div-model');\r\n if(contentElement != null) {\r\n contentElement.classList.add('content-div-revision');\r\n contentElement.classList.remove('content-div-model');\r\n }\r\n }\r\n\r\n async getRevision(currentlySelectedModel: BimViewerFileDto): Promise {\r\n let prj: string = this.appContext.projectId;\r\n let api: RequestMethod = this.apiClient.project(prj);\r\n if (api == undefined) { return false; }\r\n\r\n\t\tconsole.log('MR-getRevision, this.appContext.projectId?', this.appContext.projectId);\r\n\t\t// The 'dto' that GetRevisionsForFile() returns, is actually the raw db entity, not a DTO.\r\n let listOfRevisions: BimViewerRevisionDto[] = await api.get(`BimViewer/GetRevisionsForFile?fileId=${currentlySelectedModel.id}`).jsonResult(); //Samme kald som ovenstående\r\n\t\tconsole.log('model-revision.getRevision, BimViewer/GetRevisionsForFile, listOfRevisions:', listOfRevisions);\r\n\r\n if (listOfRevisions == undefined) {\r\n return false;\r\n }\r\n this.selectedModel = currentlySelectedModel;\r\n listOfRevisions.sort((element1: BimViewerRevisionDto, element2: BimViewerRevisionDto) => {\r\n return Number(element2.revision) - Number(element1.revision);\r\n });\r\n if(currentlySelectedModel.isSynced == false) {\r\n listOfRevisions[0].isSynced = false;\r\n }\r\n await this.revisionViewModel?.fillList(listOfRevisions);\r\n this.revisionViewModel?.setIsRevitPlugin((currentlySelectedModel.pluginUpload)); //TODO - See if you can fix this, for some reason the pluginUpload is being treated like a string.\r\n return true;\r\n }\r\n\r\n async open3DViewerRevision(revision: BimViewerRevisionDto) {\r\n await this.bimViewerService.openBimViewerWithRevisionId(revision.id);\r\n }\r\n\r\n showCreateNewModelView(): void {\r\n console.log(\"Creating new model\");\r\n this.showCreateModel = true;\r\n \r\n let contentElement = this.element.querySelector('.content-div-model');\r\n if(contentElement != null) {\r\n setTimeout(() => {\r\n let inputField = this.element.querySelector('#myInput'); \r\n inputField.focus();\r\n } , 200)\r\n contentElement.classList.add('content-div-revision');\r\n contentElement.classList.remove('content-div-model');\r\n }\r\n this.selectedModel = undefined;\r\n }\r\n\r\n cancel(): void {\r\n let divElement: HTMLElement | null = this.element.querySelector('.content-div-revision');\r\n if(divElement != null) {\r\n divElement.classList.add('scale-up');\r\n setTimeout(() => {\r\n divElement?.classList.remove('scale-up');\r\n divElement?.classList.add('content-div-model');\r\n this.showCreateModel = false;\r\n this.selectedModel = undefined;\r\n }, 150 );\r\n divElement.classList.remove('content-div-revision');\r\n }\r\n this.revisionViewModel?.resetInputs();\r\n }\r\n\r\n handleSavedModel(fileDto: BimViewerFileDto): void {\r\n this.modelView?.insertNewModel(fileDto);\r\n this.createModelView?.resetInputs();\r\n }\r\n \r\n async deleteModel(): Promise {\r\n if (this.selectedModel) {\r\n let response: HttpResponseMessage = await this.bimViewerService.deleteModel(this.selectedModel.id);\r\n if (response.statusCode == 200) {\r\n this.modelView?.handleDeletedModel(this.selectedModel);\r\n this.selectedModel = undefined;\r\n this.cancel();\r\n }\r\n }\r\n }\r\n\r\n getSelectedModel(): BimViewerFileDto | undefined {\r\n return this.selectedModel;\r\n }\r\n \r\n setSelectedModelSynced(value: boolean): void {\r\n if (this.selectedModel) {\r\n this.selectedModel.isSynced = value;\r\n }\r\n }\r\n\r\n updateRevisionNumber(revision:number, created: string): void {\r\n this.modelView?.updateRevisionNumber(revision, created);\r\n }\r\n}\r\n","import { ApiClient } from \"app/services/api-client\";\r\nimport { AppContextService } from \"app/services/app-context-service\";\r\nimport { autoinject } from 'aurelia-framework';\r\nimport { Router } from 'aurelia-router';\r\nimport {RouteRecognizer} from 'aurelia-route-recognizer';\r\nimport {observable} from 'aurelia-framework';\r\nimport { ModalService } from 'app/services/modal-service';\r\nimport { BimViewerFileDto } from \"../../../models/viewer-dtos/Dtos/bimviewer-dtos\";\r\nimport { ModelRevision } from \"../model-revision\";\r\nimport { UserService } from \"app/services/user-service\";\r\nimport { EventAggregator } from 'aurelia-event-aggregator';\r\nimport { DateTimeFormatter } from \"app/services/date-time-formatter\";\r\nimport { Model } from \"app/project/work-area/model-revision/model/model\";\r\n\r\n\r\n\r\n@autoinject\r\nexport class Models {\r\n @observable private filteredInputModel: string = \"\";\r\n @observable private checkedModels: number = 0;\r\n private connectedModelName?: string = \"Could not find name\";\r\n private filteredModels: BimViewerFileDto[] = [];\r\n private isModelButtonsClicked: boolean = false;\r\n private currentSelectedModel: number = -1;\r\n modelList: BimViewerFileDto[] = [];\r\n private parentComponent?: ModelRevision;\r\n private keybuttonHandling: (this: Window, ev: KeyboardEvent) => any;\r\n\r\n constructor(public apiClient: ApiClient, public appContext:AppContextService, public router: Router, public element: Element, \r\n public modal: ModalService, public _recognizer: RouteRecognizer, public userService: UserService, public events: EventAggregator) {\r\n this.keybuttonHandling = (event: KeyboardEvent) => {\r\n if (event.key == \"Escape\") {\r\n this.parentComponent?.cancel();\r\n if (this.currentSelectedModel != -1) {\r\n this.filteredModels[this.currentSelectedModel].isOpen = false;\r\n }\r\n this.parentComponent?.createModelView?.resetInputs();\r\n } \r\n };\r\n }\r\n\r\n\tbind(params: ModelRevision): void {\r\n this.parentComponent = params;\r\n console.log('model-activate, params:', params);\r\n window.addEventListener('keyup', this.keybuttonHandling, false);\r\n this.setupModels(params.modelList);\r\n }\r\n\r\n unbind(): void {\r\n window.removeEventListener('keyup', this.keybuttonHandling, false);\r\n }\r\n\r\n toggle(isChecked: boolean): boolean {\r\n if (!isChecked) {\r\n this.checkedModels += 1;\r\n } else {\r\n this.checkedModels -= 1;\r\n }\r\n return true;\r\n }\r\n\r\n async setupModels(modelList: BimViewerFileDto[]): Promise { \r\n\t\tconsole.log('setupModels', modelList);\r\n this.connectedModelName = this.parentComponent?.appContext?.getSelectedProject()?.name;\r\n this.modelList = modelList;\r\n this.sortModels_ABC2();\r\n this.modelList = await this.userService.fillUsernames(this.modelList,'models.setupModels');\r\n this.setupConnectedModel();\r\n this.filteredModels = this.modelList;\r\n this.formatDateTime();\r\n //console.log(this.modelList);//setupModels\r\n }\r\n\r\n setupConnectedModel(): void { //If no connected model exists, a fake one is created to tell the user.\r\n if (this.connectedModelExist()) {\r\n return;\r\n } else {\r\n let name: string | undefined = this.appContext.getSelectedProject()?.name;\r\n let fakeModel: BimViewerFileDto = {\r\n id:'00000000-0000-0000-0000-000000000000',\r\n name: name ? name : '',\r\n createdByUser_Id: '00000000-0000-0000-0000-000000000000', //TODO - find user id.\r\n username: '',\r\n created: this.appContext.getSelectedProject()?.created_UTC + \"\",\r\n projectId: this.appContext.projectId,\r\n currentRevision: 0,\r\n isChecked: false,\r\n isOpen: false,\r\n pluginUpload: true,\r\n isSynced: true,\r\n newestRevisionDate: this.appContext.getSelectedProject()?.created_UTC + \"\",\r\n\t\t\t\t\t\t\t\t\t\taltUpload: '?-setupConnectedModel'\r\n }\r\n this.modelList.push(fakeModel);\r\n }\r\n }\r\n connectedModelExist(): boolean {\r\n return this.modelList.filter(model => (model.pluginUpload)).length > 0;\r\n }\r\n \r\n sortModels_ABC2(): void {\r\n\t\tif (!Model.sortABC) {\r\n\t\t\tconsole.log('(not sorting)');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n this.modelList.sort((element1: BimViewerFileDto, element2: BimViewerFileDto) => {\r\n if (!element1.name || !element2.name) {\r\n return 0;\r\n }\r\n if (element1.name.toLocaleLowerCase() < element2.name.toLocaleLowerCase()) {\r\n return -1;\r\n }\r\n if (element1.name.toLocaleLowerCase() > element2.name.toLocaleLowerCase()) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n this.filteredModels.sort((element1: BimViewerFileDto, element2: BimViewerFileDto) => {\r\n if (!element1.name || !element2.name) {\r\n return 0;\r\n }\r\n if (element1.name.toLocaleLowerCase() < element2.name.toLocaleLowerCase()) {\r\n return -1;\r\n }\r\n if (element1.name.toLocaleLowerCase() > element2.name.toLocaleLowerCase()) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n }\r\n\r\n formatDateTime(): void {\r\n this.filteredModels.forEach((model: BimViewerFileDto) => {\r\n model.created = DateTimeFormatter.formatDate(model.created);\r\n if (model.newestRevisionDate) {\r\n model.newestRevisionDate = DateTimeFormatter.formatDate(model.newestRevisionDate);\r\n }\r\n });\r\n }\r\n\r\n //Search filter handling\r\n filteredInputModelChanged(): void {\r\n console.log(\"this.currentSelectedModel \" , this.currentSelectedModel)\r\n console.log(\"this.filteredModels\" , this.filteredModels)\r\n if (this.currentSelectedModel || this.filteredInputModel) {\r\n let priorChosenModel: BimViewerFileDto | undefined = this.filteredModels[this.currentSelectedModel];\r\n let ispriorChosenModelOpen: boolean = false;\r\n if (priorChosenModel != undefined) {\r\n ispriorChosenModelOpen = priorChosenModel.isOpen;\r\n this.filteredModels[this.currentSelectedModel].isOpen = false;\r\n }\r\n this.filteredModels = this.modelList;\r\n this.filteredModels = this.modelList.filter((model: BimViewerFileDto) => {\r\n return model.name?.toLocaleLowerCase().includes(this.filteredInputModel.toLocaleLowerCase())\r\n });\r\n let index: number = this.filteredModels.indexOf(priorChosenModel);\r\n if (index != -1) {\r\n if (ispriorChosenModelOpen) {\r\n this.filteredModels[index].isOpen = true;\r\n }\r\n this.currentSelectedModel = index;\r\n } else {\r\n this.currentSelectedModel = -1;\r\n this.parentComponent?.cancel();\r\n }\r\n console.log(this.filteredModels)\r\n }\r\n }\r\n\r\n open2DViewerModel(model: BimViewerFileDto): void {\r\n this.isModelButtonsClicked = true;\r\n let modelId: string[] = [model.id];\r\n this.router.navigateToRoute('project/work-area', {projectId: this.appContext.getSelectedProject()?.id, modelId, is2d: true}, {replace: true});\r\n }\r\n\r\n open3DViewerModel(model: BimViewerFileDto): void { // in models.ts\r\n\t\tconsole.log('models.ts, open3DViewerModel');\r\n this.isModelButtonsClicked = true;\r\n let modelId: string[] = [model.id];\r\n this.router.navigateToRoute('project/work-area', {projectId: this.appContext.getSelectedProject()?.id, modelId, is2d: false}, {replace: true});\r\n }\r\n \r\n openMultipleModels(): void {\r\n let modelId: string[] = [];\r\n this.modelList.forEach((model: BimViewerFileDto) => {\r\n if (model.isChecked) {\r\n modelId.push(model.id);\r\n }\r\n });\r\n this.router.navigateToRoute('project/work-area', {projectId: this.appContext.getSelectedProject()?.id, modelId, is2d: false}, {replace: true});\r\n }\r\n\r\n async openModel(model: number): Promise {\r\n if (this.isModelButtonsClicked == true) {\r\n this.isModelButtonsClicked = false;\r\n return;\r\n }\r\n let success: boolean = true;\r\n if (this.filteredModels[model].isOpen != true) {\r\n success = await this.parentComponent?.getRevision(this.filteredModels[model]) ? true : false;\r\n }\r\n if (success != true) {\r\n return;\r\n }\r\n if (this.currentSelectedModel != -1 && this.currentSelectedModel != model && this.filteredModels[this.currentSelectedModel] != undefined) { //Resets prior selected model\r\n this.filteredModels[this.currentSelectedModel].isOpen = false;\r\n }\r\n this.currentSelectedModel = model;\r\n this.handleSelectedModel();\r\n }\r\n\r\n handleSelectedModel(): void {\r\n if (this.parentComponent) {\r\n this.parentComponent.showCreateModel = false;\r\n if (this.filteredModels[this.currentSelectedModel].isOpen) {\r\n this.parentComponent?.cancel();\r\n this.filteredModels[this.currentSelectedModel].isOpen = false;\r\n } else {\r\n this.filteredModels[this.currentSelectedModel].isOpen = !this.filteredModels[this.currentSelectedModel].isOpen;\r\n }\r\n this.parentComponent?.makeSpaceForRightPanel();\r\n }\r\n }\r\n\r\n showCreateNewModelView(): void {\r\n if (this.filteredModels[this.currentSelectedModel] != null) {\r\n this.filteredModels[this.currentSelectedModel].isOpen = false;\r\n }\r\n this.parentComponent?.showCreateNewModelView();\r\n }\r\n \r\n insertNewModel(fileDto: BimViewerFileDto): void {\r\n //this.filteredModels.push(fileDto);\r\n this.filteredModels.unshift(fileDto); // insert at front.\r\n this.modelList = this.filteredModels;\r\n this.sortModels_ABC2();//insertNewModel\r\n }\r\n\r\n updateRevisionNumber(revisionNumber: number, created: string): void {\r\n this.filteredModels[this.currentSelectedModel].currentRevision = revisionNumber;\r\n this.filteredModels[this.currentSelectedModel].newestRevisionDate = created;\r\n this.sortModels_ABC2();//updateRevisionNumber\r\n }\r\n\r\n handleDeletedModel(deletedModel: BimViewerFileDto): void {\r\n this.filteredModels = this.filteredModels.filter((model: BimViewerFileDto) => {\r\n return model != deletedModel;\r\n });\r\n this.modelList = this.modelList.filter((model: BimViewerFileDto) => {\r\n return model != deletedModel;\r\n });\r\n }\r\n}\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","CreateModel","constructor","apiClient","appContext","router","element","modal","userService","newModelName","modelFiles","selectedModelFileName","this","bimViewerService","bind","params","parentComponent","console","log","attached","fileInputElement","document","getElementById","cancel","resetInputs","fileSelected","length","chosenFileToUpload","name","replace","async","event","altUpload","shiftKey","modelName","OpenMessage","fileDto","createModel","username","getUsername","createdByUser_Id","created","handleSavedModel","undefined","value","autoinject","Element","ModelRevision","showCreateModel","modelList","projectId","setProject","initModels","prj","api","project","get","jsonResult","modelView","setupModels","model","revisions","sort","element1","element2","Number","revision","makeSpaceForRightPanel","contentElement","querySelector","classList","add","remove","currentlySelectedModel","listOfRevisions","selectedModel","isSynced","revisionViewModel","fillList","setIsRevitPlugin","pluginUpload","openBimViewerWithRevisionId","showCreateNewModelView","setTimeout","focus","divElement","insertNewModel","createModelView","deleteModel","statusCode","handleDeletedModel","getSelectedModel","setSelectedModelSynced","updateRevisionNumber","Models","_recognizer","events","filteredInputModel","checkedModels","connectedModelName","filteredModels","isModelButtonsClicked","currentSelectedModel","keybuttonHandling","key","isOpen","window","addEventListener","unbind","removeEventListener","toggle","isChecked","getSelectedProject","sortModels_ABC2","fillUsernames","setupConnectedModel","formatDateTime","connectedModelExist","fakeModel","created_UTC","currentRevision","newestRevisionDate","filter","Model","toLocaleLowerCase","forEach","filteredInputModelChanged","priorChosenModel","ispriorChosenModelOpen","includes","index","indexOf","open2DViewerModel","modelId","navigateToRoute","is2d","open3DViewerModel","openMultipleModels","success","getRevision","handleSelectedModel","unshift","revisionNumber","deletedModel","observable"],"sourceRoot":""}