{"version":3,"file":"app-7c72585b.58c4a4ced98d9e15.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 } from \"app/services/api-client\";\r\nimport { RequestMethod } from 'app/services/RequestMethod';\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 } from \"app/services/api-client\";\r\nimport { RequestMethod } from 'app/services/RequestMethod';\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","saveNewModel","event","altUpload","shiftKey","modelName","OpenMessage","fileDto","createModel","username","getUsername","createdByUser_Id","created","formatDate","handleSavedModel","undefined","value","autoinject","Element","ModelRevision","showCreateModel","modelList","activate","projectId","setProject","initModels","prj","api","project","get","jsonResult","modelView","setupModels","getNewestRevision","model","revisions","sort","element1","element2","Number","revision","makeSpaceForRightPanel","contentElement","querySelector","classList","add","remove","getRevision","currentlySelectedModel","listOfRevisions","selectedModel","isSynced","revisionViewModel","fillList","setIsRevitPlugin","pluginUpload","open3DViewerRevision","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","sortABC","toLocaleLowerCase","forEach","filteredInputModelChanged","priorChosenModel","ispriorChosenModelOpen","includes","index","indexOf","open2DViewerModel","modelId","navigateToRoute","is2d","open3DViewerModel","openMultipleModels","openModel","success","handleSelectedModel","unshift","revisionNumber","deletedModel","observable","EventAggregator"],"sourceRoot":""}