{"version":3,"file":"app-02610b14.455229d80ec1e9ee.bundle.js","mappings":"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","sources":["webpack://client-app/./src/app/project/work-area/work-area-container.scss","webpack://client-app/./src/app/project/work-area/work-area-container.html","webpack://client-app/./src/app/project/work-area/work-area-container.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, \".top-bar-work-area{border-bottom:1px #d3d3d3 solid}#property-button,#grid-button,#viewer-button,#color-button{box-shadow:none !important;color:#fff;width:30px}.property-button-enabled,.grid-button-enabled,.viewer-button-enabled,.color-button-enabled{background-color:#00b3c9;border-color:#00b3c9}.property-button-enabled:hover,.grid-button-enabled:hover,.viewer-button-enabled:hover,.color-button-enabled:hover{background-color:#009eb3;border-color:#009eb3}.property-button-enabled:active,.grid-button-enabled:active,.viewer-button-enabled:active,.color-button-enabled:active{background-color:#009eb3 !important;border-color:#009eb3 !important}.property-button-disabled,.grid-button-disabled,.viewer-button-disabled,.color-button-disabled{background-color:#343434;border-color:#343434}.property-button-disabled:hover,.grid-button-disabled:hover,.viewer-button-disabled:hover,.color-button-disabled:hover{background-color:#272727;border-color:#272727}.property-button-disabled:active,.grid-button-disabled:active,.viewer-button-disabled:active,.color-button-disabled:active{background-color:#272727 !important;border-color:#272727 !important}.work-area-title{display:inline;padding-left:10px}.menu-top{padding-right:10px;display:inline;float:right}.menu-top button{margin-left:2px;margin-right:2px}.panel-container{display:flex;height:calc(100vh - 50px);width:100%;max-width:100% !important;margin-top:10px;margin-bottom:10px;overflow:auto}.panel-left{overflow:hidden;border-radius:10px;position:relative;width:100%}.panel-right{width:350px;min-width:350px;border-top-left-radius:10px;border-bottom-left-radius:10px;margin-left:10px;margin-bottom:5px;overflow:auto;display:flex;flex-direction:column;position:relative}.panel-middle{position:relative;display:flex;flex-direction:column;overflow:hidden;width:100%;border-radius:10px}.top-middle-view{position:relative;z-index:1026}.tool-select{font-family:Arial,FontAwesome;margin:2px;padding:2px}.small-2d-view{position:absolute;visibility:hidden;width:30%;height:300px;right:0;bottom:0;margin-right:5px;margin-bottom:5px;z-index:0;border-radius:10px !important;overflow:hidden}.bottom-middle-view{position:relative;overflow:hidden;border-radius:10px;z-index:1000}.gutter{background-repeat:no-repeat;background-position:50%}.gutter.gutter-vertical::before{position:relative;display:flex;flex-direction:column;align-items:center;top:50%;transform:translateY(-50%);font-weight:900;font-size:30px !important;content:\\\"\\\";font:var(--fa-font-solid);z-index:0}.gutter.gutter-vertical{cursor:row-resize}.gutter.gutter.gutter-horizontal{cursor:col-resize}.gutter.gutter-horizontal::before{position:relative;display:flex;justify-content:center;top:50%;transform:translateY(-50%);font-weight:900;font-size:35px}.gutter-content::before{content:\\\"|\\\";font:var(--fa-font-solid)}.hide-box{display:none}.model-view{margin-right:0px;margin-left:2px;padding:10px;float:left;z-index:15000}#revision-container{margin-right:2px;margin-left:3px;padding:10px;float:left;width:0px}.model-revision-container{left:60%;top:30%;position:absolute;display:inline;min-width:350px;border:1px solid silver;border-radius:1%;overflow-x:hidden;visibility:hidden;z-index:1031;max-height:50%;scroll-behavior:smooth;scrollbar-width:thin}.model-button{position:absolute;top:20px;right:20px;z-index:1025;background-color:#fff}.close-button{position:absolute;text-align:center;line-height:1em;left:320px;top:3px;height:25px}.active:disabled{color:#fff;background-color:#000;opacity:.5;pointer-events:auto}.custom-button:disabled{opacity:.5;pointer-events:auto}.building-part-grid{min-width:420px;padding-top:8px}.alert-missing-model{bottom:0;width:99%;position:absolute;z-index:2000;animation:fadeIn .2s}.button-container{text-align:center;vertical-align:middle !important;padding:0px 10px;min-width:120px}.button-container .right{float:right}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.part-grid .table-container{height:calc(100vh - 130px)}.viewer-settings{background-color:#fff;position:absolute;height:99%;border-top-left-radius:10px;border-bottom-left-radius:10px;padding:10px 20px;overflow:auto;width:350px;right:0%;top:0%;z-index:1030}.property-legend-shared,.color-legend-shared,.color-legend-full,.property-legend-full{position:relative;overflow:hidden}.color-legend-full,.property-legend-full{height:100%}.property-legend-shared,.color-legend-shared{height:calc(50% - 5px)}.custom-margin{height:10px}.wrap{flex-direction:column-reverse}.wrap .move-button{transform:rotate(180deg)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/project/work-area/work-area-container.scss\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\".top-bar-work-area {\\r\\n\\tborder-bottom: 1px lightgray solid;\\r\\n}\\r\\n\\r\\n#property-button, #grid-button, #viewer-button, #color-button {\\r\\n\\tbox-shadow: none!important;\\r\\n\\tcolor: white;\\r\\n\\twidth: 30px;\\r\\n}\\r\\n\\r\\n.property-button-enabled, .grid-button-enabled, .viewer-button-enabled, .color-button-enabled {\\r\\n\\tbackground-color:#00b3c9;\\r\\n\\tborder-color:#00b3c9;\\r\\n\\t&:hover {\\r\\n\\t\\tbackground-color:#009eb3;\\r\\n\\t\\tborder-color:#009eb3;\\t\\r\\n\\t}\\r\\n\\t&:active {\\r\\n\\t\\tbackground-color:#009eb3!important;\\r\\n\\t\\tborder-color:#009eb3!important;\\r\\n\\t}\\r\\n}\\r\\n\\r\\n.property-button-disabled, .grid-button-disabled, .viewer-button-disabled, .color-button-disabled {\\r\\n\\tbackground-color:#343434;\\r\\n\\tborder-color:#343434;\\r\\n\\t&:hover {\\r\\n\\t\\tbackground-color:#272727;\\r\\n\\t\\tborder-color:#272727;\\t\\r\\n\\t}\\r\\n\\t&:active {\\r\\n\\t\\tbackground-color:#272727!important;\\r\\n\\t\\tborder-color:#272727!important;\\t\\r\\n\\t}\\r\\n}\\r\\n\\r\\n.work-area-title {\\r\\n\\tdisplay: inline;\\r\\n\\tpadding-left:10px;\\r\\n}\\r\\n\\r\\n.menu-top {\\r\\n\\tpadding-right: 10px;\\r\\n\\tdisplay:inline;\\r\\n\\tfloat:right;\\r\\n\\r\\n\\tbutton {\\r\\n\\t\\tmargin-left: 2px;\\r\\n\\t\\tmargin-right: 2px;\\r\\n\\t}\\r\\n}\\r\\n\\r\\n.panel-container {\\r\\n\\tdisplay: flex;\\r\\n\\theight: calc(100vh - 50px);\\r\\n\\twidth: calc(100%);\\r\\n\\tmax-width: calc(100%) !important;\\r\\n\\tmargin-top: 10px;\\r\\n\\tmargin-bottom: 10px;\\r\\n\\toverflow: auto;\\r\\n}\\r\\n\\r\\n.panel-left {\\r\\n\\toverflow: hidden;\\r\\n\\tborder-radius: 10px;\\r\\n\\tposition: relative;\\r\\n\\twidth:100%;\\r\\n\\r\\n}\\r\\n.panel-right {\\r\\n\\twidth: 350px;\\r\\n\\tmin-width: 350px;\\r\\n\\tborder-top-left-radius: 10px;\\r\\n\\tborder-bottom-left-radius: 10px;\\r\\n\\tmargin-left: 10px;\\r\\n\\tmargin-bottom: 5px;\\r\\n\\toverflow: auto;\\r\\n\\tdisplay:flex;\\r\\n\\tflex-direction:column;\\r\\n\\tposition: relative;\\r\\n}\\r\\n\\r\\n.panel-middle {\\r\\n\\tposition: relative;\\r\\n\\tdisplay: flex;\\r\\n\\tflex-direction: column;\\r\\n\\toverflow: hidden;\\r\\n\\twidth:100%;\\r\\n\\tborder-radius: 10px;\\r\\n}\\r\\n\\r\\n.top-middle-view {\\r\\n\\tposition: relative;\\r\\n\\tz-index: 1026;\\r\\n}\\r\\n\\r\\n.tool-select {\\r\\n\\tfont-family: Arial, FontAwesome;\\r\\n\\tmargin: 2px;\\r\\n\\tpadding:2px;\\r\\n}\\r\\n\\r\\n\\r\\n.small-2d-view {\\r\\n\\tposition:absolute;\\r\\n\\tvisibility: hidden;\\r\\n\\twidth: 30%;\\r\\n\\theight: 300px;\\r\\n\\tright: 0;\\r\\n\\tbottom: 0;\\r\\n\\tmargin-right: 5px;\\r\\n\\tmargin-bottom: 5px;\\r\\n\\tz-index: 0;\\r\\n\\tborder-radius: 10px!important;\\r\\n\\toverflow: hidden;\\r\\n}\\r\\n\\r\\n.bottom-middle-view {\\r\\n\\tposition: relative;\\r\\n\\toverflow: hidden;\\r\\n\\tborder-radius: 10px;\\r\\n\\tz-index: 1000;\\r\\n}\\r\\n\\r\\n.gutter {\\r\\n\\tbackground-repeat: no-repeat;\\r\\n\\tbackground-position: 50%;\\r\\n}\\r\\n \\r\\n.gutter.gutter-vertical::before {\\r\\n\\tposition: relative;\\r\\n\\tdisplay: flex;\\r\\n\\tflex-direction: column;\\r\\n\\talign-items: center;\\r\\n\\ttop:50%;\\r\\n\\ttransform: translateY(-50%);\\r\\n\\tfont-weight: 900;\\r\\n\\tfont-size: 30px!important; //Needs to stay.\\r\\n\\tcontent: \\\"\\\\f86c\\\";\\r\\n\\tfont: var(--fa-font-solid);\\r\\n\\tz-index: 0;\\r\\n}\\r\\n\\r\\n.gutter.gutter-vertical {\\r\\n\\tcursor: row-resize;\\r\\n}\\r\\n\\r\\n.gutter.gutter.gutter-horizontal {\\r\\n\\tcursor: col-resize;\\r\\n}\\r\\n\\r\\n.gutter.gutter-horizontal::before {\\r\\n\\tposition: relative;\\r\\n\\tdisplay: flex;\\r\\n\\tjustify-content: center;\\r\\n\\ttop:50%;\\r\\n\\ttransform: translateY(-50%);\\r\\n\\tfont-weight: 900;\\r\\n\\tfont-size: 35px; //Needs to stay.\\r\\n}\\r\\n\\r\\n.gutter-content::before {\\r\\n\\tcontent: \\\"\\\\7c\\\";\\r\\n\\tfont: var(--fa-font-solid);\\r\\n}\\r\\n\\r\\n.hide-box {\\r\\n\\tdisplay: none;\\r\\n}\\r\\n\\r\\n.model-view {\\r\\n\\tmargin-right: 0px;\\r\\n\\tmargin-left: 2px;\\r\\n\\tpadding: 10px;\\r\\n\\tfloat: left;\\r\\n\\tz-index: 15000;\\r\\n}\\r\\n\\r\\n#revision-container {\\r\\n\\tmargin-right: 2px;\\r\\n\\tmargin-left: 3px;\\r\\n\\tpadding: 10px;\\r\\n\\tfloat: left;\\r\\n\\twidth: 0px;\\r\\n}\\r\\n\\r\\n.model-revision-container {\\r\\n\\tleft: 60%;\\r\\n\\ttop: 30%;\\r\\n\\tposition: absolute;\\r\\n\\tdisplay: inline;\\r\\n\\tmin-width: 350px;\\r\\n\\tborder: 1px solid silver;\\r\\n\\tborder-radius: 1%;\\r\\n\\toverflow-x: hidden;\\r\\n\\tvisibility: hidden;\\r\\n\\tz-index: 1031;\\r\\n\\tmax-height: 50%;\\r\\n\\tscroll-behavior: smooth;\\r\\n\\tscrollbar-width: thin;\\r\\n}\\r\\n\\r\\n.model-button {\\r\\n\\tposition: absolute;\\r\\n\\ttop: 20px;\\r\\n\\tright: 20px;\\r\\n\\tz-index: 1025;\\r\\n\\tbackground-color: white;\\r\\n}\\r\\n\\r\\n.close-button {\\r\\n\\tposition: absolute;\\t\\r\\n\\ttext-align: center;\\r\\n\\tline-height: 1em;\\r\\n\\tleft: 320px;\\r\\n\\ttop:3px;\\r\\n\\theight: 25px;\\r\\n}\\r\\n\\r\\n.active:disabled {\\r\\n color: white;\\r\\n background-color: black;\\r\\n opacity: 0.5;\\r\\n pointer-events: auto;\\r\\n} \\r\\n\\r\\n\\r\\n.custom-button:disabled {\\r\\n opacity: 0.5;\\r\\n pointer-events: auto;\\r\\n} \\r\\n\\r\\n.building-part-grid {\\r\\n\\tmin-width: 420px;\\r\\n\\tpadding-top:8px;\\r\\n}\\r\\n\\r\\n.alert-missing-model {\\r\\n\\tbottom: 0;\\r\\n\\twidth: 99%;\\r\\n\\tposition: absolute;\\r\\n\\tz-index: 2000;\\r\\n\\tanimation: fadeIn 0.2s;\\r\\n}\\r\\n\\r\\n.button-container {\\r\\n text-align: center; \\r\\n vertical-align: middle!important;\\r\\n\\tpadding: 0px 10px;\\r\\n min-width: 120px;\\r\\n\\t.right {\\r\\n\\t\\tfloat: right;\\r\\n\\t}\\r\\n}\\r\\n\\r\\n@keyframes fadeIn {\\r\\n\\t0% {opacity:0;}\\r\\n\\t100% {opacity:1;}\\r\\n }\\r\\n\\r\\n .part-grid .table-container {\\r\\n\\t height: calc(100vh - 130px);\\r\\n }\\r\\n\\r\\n .viewer-settings {\\r\\n\\tbackground-color: white;\\r\\n\\tposition: absolute;\\r\\n\\theight: 99%;\\r\\n\\tborder-top-left-radius: 10px;\\r\\n\\tborder-bottom-left-radius: 10px;\\r\\n\\tpadding: 10px 20px;\\r\\n\\toverflow: auto;\\r\\n\\twidth: 350px;\\r\\n\\tright:0%;\\r\\n\\ttop: 0%;\\r\\n\\tz-index: 1030;\\r\\n}\\r\\n\\r\\n.property-legend-shared, .color-legend-shared, .color-legend-full, .property-legend-full {\\r\\n\\tposition: relative;\\r\\n\\toverflow: hidden;\\r\\n}\\r\\n\\r\\n.color-legend-full, .property-legend-full {\\r\\n\\theight: 100%;\\r\\n}\\r\\n\\r\\n.property-legend-shared, .color-legend-shared {\\r\\n\\theight: calc(50% - 5px);\\r\\n}\\r\\n\\r\\n.custom-margin {\\r\\n\\theight: 10px;\\r\\n}\\r\\n\\r\\n.wrap {\\r\\n\\tflex-direction:column-reverse;\\r\\n\\t.move-button {\\r\\n\\t\\ttransform: rotate(180deg);\\r\\n\\t}\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = \"\\r\\n\";","import { BimViewerFileFromModelRevision, BimViewerRevisionFromModelRevision } from \"app/models/viewer-dtos/Dtos/bimviewer-dtos\";\r\nimport { ApiClient } from \"app/services/api-client\";\r\nimport { AppContextService } from \"app/services/app-context-service\";\r\nimport { autoinject } from 'aurelia-framework';\r\nimport $ from 'jquery'; //Declaring the var instead of this import makes draggable method call fail.\r\nimport 'jquery-ui/ui/widgets/draggable';\r\nimport {EventAggregator, Subscription} from 'aurelia-event-aggregator';\r\nimport { UserService } from \"app/services/user-service\";\r\nimport { SplitViewerResizeService } from \"app/services/split-viewer-resize-service\";\r\nimport { ModalService } from \"app/services/modal-service\";\r\nimport { ProjectDto } from \"app/models/project-dto\";\r\n\r\n@autoinject\r\nexport class WorkAreaContainer {\r\n\t/* JG: Does WorkAreaContainer win,\r\n\tbecause it relates to the single .html file in the work-area folder?\r\n\t*/\r\n\tpublic projectId : string = \"I'm the default value\"; // JG: Does anyone (html views?) reference this? Shouldn't appContext.projectId suffice? (Anyway, I see it bind-referenced in work-area-container.html)\r\n\tcurProject:ProjectDto | undefined; // for displaying project name title.\r\n\t\r\n public modelToInit: BimViewerFileFromModelRevision | undefined;\r\n public revisionToInit: BimViewerRevisionFromModelRevision | undefined;\r\n public max2dDockWidth: number = 600;\r\n public middlePanelWidth: number = -1;\r\n\r\n public isSettingsVisible: boolean = false;\r\n \r\n\tprivate IsCatendaEnabled:boolean = ApiClient.IsCatendaEnabled_Global;\r\n private isPropertiesVisible: boolean = false;\r\n private isBuildingPartsLoaded: boolean = false;\r\n private isBuildingPartsVisible: boolean = false;\r\n private isViewerLoaded: boolean = false;\r\n private isViewerVisible: boolean = false;\r\n private isColorPickerVisible: boolean = false;\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n\t\tprivate events: EventAggregator, \r\n\t\tpublic apiClient: ApiClient, \r\n\t\tpublic appContext:AppContextService, \r\n\t\tpublic userService: UserService, \r\n\t\tpublic splitViewerResizeService: SplitViewerResizeService, \r\n\t\tpublic modalService: ModalService\r\n\t) {\r\n\t\tconsole.log('WorkAreaContainer ctor');\r\n\t} \r\n\r\n async attached(): Promise {\r\n let self = this;\r\n this.events.subscribe(\"nav-collapsed\", (payload: any) => {\r\n setTimeout(() => { //setTimeout used to ensure resizing has been done before resize-event is fired.\r\n window.dispatchEvent(new Event('resize'));\r\n }, 0);\r\n });\r\n\r\n this.isBuildingPartsLoaded = this.modelToInit == undefined && this.revisionToInit == undefined;\r\n if (this.isBuildingPartsLoaded) {\r\n this.isBuildingPartsVisible = true;\r\n }\r\n this.isViewerLoaded = !this.isBuildingPartsLoaded;\r\n if (this.isViewerLoaded) {\r\n this.isViewerVisible = true;\r\n }\r\n \r\n this.subscriptions = [\r\n\t\t\tthis.events.subscribe('WorkAreaContainer:ViewerSettingsPressed', () => { self.isSettingsVisible = !self.isSettingsVisible}),\r\n this.events.subscribe('WorkAreaContainer:Move2d', (isTooSmall: boolean) => { if (isTooSmall == true) { self.handleDocked2dTooSmall()} else {self.move2dView()}}),\r\n this.events.subscribe('WorkAreaContainer:viewers-ready-to-load', async () => { await self.handleLoadedModels()}),\r\n this.events.subscribe('WorkAreaContainer:Show2dViewer', (shouldShow: boolean) => {self.showOrHide2dViewer(shouldShow)}),\r\n this.events.subscribe('WorkAreaContainer:SetupViewer', () => {\r\n self.splitViewerResizeService.setupViewerSplitter();\r\n self.splitViewerResizeService.setupMainSplitter(self.isBuildingPartsVisible && self.isViewerVisible);\r\n }),\r\n this.events.subscribe('WorkAreaContainer:BPLoaded', () => {self.splitViewerResizeService.setupMainSplitter(self.isBuildingPartsVisible && self.isViewerVisible)}),\r\n this.events.subscribe('object-properties:show', () => {self.isPropertiesVisible = true}),\r\n this.events.subscribe('WorkAreaContainer:SwitchPropertyAndColor', () => {self.switchPropertyAndColor()}),\r\n this.events.subscribe('work-area-container:set-split-view-size', (size: {top: number, bot: number}) => { \r\n this.splitViewerResizeService.setViewerSplitSize(size.top,size.bot) \r\n })\r\n\t\t];\r\n $('.model-revision-container').draggable();\r\n }\r\n\r\n async unbind(): Promise {\r\n this.splitViewerResizeService.isSettingsVisible = false;\r\n this.splitViewerResizeService.destroySplitters();\r\n }\r\n \r\n async detached(): Promise {\r\n this.subscriptions.forEach((subscription: Subscription) => subscription.dispose());\r\n }\r\n\r\n async handleLoadedModels(): Promise {\r\n if(this.modelToInit != undefined) {\r\n if(this.modelToInit.id != undefined && this.modelToInit.is2d != undefined) {\r\n this.modelToInit.id.forEach( (modelId: string) => {\r\n this.events.publish('ModelRevision:LoadModelById', {id: modelId, is2d: this.modelToInit?.is2d});\r\n });\r\n }\r\n }\r\n if(this.revisionToInit != undefined) {\r\n if(this.revisionToInit.revisionId != undefined && this.revisionToInit.is2d != undefined && this.revisionToInit.modelId != undefined) {\r\n this.events.publish('ModelRevision:LoadRevisionById', {revisionId: this.revisionToInit.revisionId, modelId: this.revisionToInit.modelId, is2d: this.revisionToInit.is2d});\r\n }\r\n }\r\n }\r\n \r\n\tasync activate(params: any): Promise {\r\n this.projectId = params.projectId;\r\n if (params.revisionId == undefined && params.modelId != undefined) {\r\n\t\t\tconsole.log('WAC.activate noticed params had modelId, so we set modelToInit');\r\n this.modelToInit = new BimViewerFileFromModelRevision(params.modelId, params.is2d == 'true');\r\n }\r\n\r\n if (params.revisionId != undefined) {\r\n\t\t\tconsole.log('WAC.activate noticed params had revisionId, so we set revisionToInit');\r\n this.revisionToInit = new BimViewerRevisionFromModelRevision(params.revisionId, params.modelId[0], params.is2d == 'true');\r\n }\r\n\r\n if (params.projectId) { \r\n\t\t\tthis.appContext.setProject(params.projectId); // in activate.\r\n\t\t\tthis.loadProject();\r\n\t\t}\r\n await this.reloadIfNecessary();\r\n\t}\r\n\r\n\tloadProject() { this.curProject = this.appContext.getSelectedProject(); }\r\n\r\n\t// JG: what is the relation between 'reloadIfNecessary' and 'hide2dView'?? It doesn't read as immediately obvious?\r\n async reloadIfNecessary(): Promise { this.splitViewerResizeService.hide2dView(); }\r\n\r\n async showOrHide2dViewer(shouldShow2dViewer: boolean): Promise { // reacts to event\r\n if (shouldShow2dViewer) {\r\n this.splitViewerResizeService.show2dViewOnModelLoaded();\r\n } else {\r\n this.splitViewerResizeService.hide2dViewOnModelUnLoaded();\r\n }\r\n }\r\n\r\n async buildingPartsClicked(): Promise {\r\n if (!this.isBuildingPartsLoaded) {\r\n this.isBuildingPartsLoaded = true\r\n }\r\n this.isBuildingPartsVisible = !this.isBuildingPartsVisible;\r\n if (!this.isBuildingPartsVisible) {\r\n this.isViewerLoaded = true;\r\n this.isViewerVisible = true;\r\n }\r\n\r\n await this.handleBPandViewerVisible();\r\n\r\n setTimeout(() => {\r\n window.dispatchEvent(new Event('resize')); //It is needed to set a timeout for the bimviewer to register the resize\r\n }, 0); \r\n }\r\n \r\n async displayViewer(): Promise {\r\n if (!this.isViewerLoaded) {\r\n this.isViewerLoaded = true;\r\n }\r\n this.isViewerVisible = !this.isViewerVisible;\r\n if (!this.isViewerVisible) {\r\n this.isBuildingPartsLoaded = true;\r\n this.isBuildingPartsVisible = true;\r\n }\r\n await this.handleBPandViewerVisible();\r\n setTimeout(() => {\r\n window.dispatchEvent(new Event('resize')); //It is needed to set a timeout for the bimviewer to register the resize\r\n }, 0); \r\n }\r\n\r\n async handleBPandViewerVisible(): Promise {\r\n if (this.isBuildingPartsVisible && this.isViewerVisible) {\r\n await this.splitViewerResizeService.showMainSplitter();\r\n } else {\r\n await this.splitViewerResizeService.hideMainSplitter();\r\n }\r\n this.handleBPAndViewerPanels();\r\n }\r\n\r\n handleBPAndViewerPanels(): void {\r\n let panelLeft: HTMLElement | null = document.getElementById('panel-left');\r\n let panelMiddle: HTMLElement | null = document.getElementById('panel-middle');\r\n if (panelLeft && panelMiddle) {\r\n if (this.isBuildingPartsVisible && !this.isViewerVisible) {\r\n panelLeft.style.width = \"100%\";\r\n if (document.getElementById('model-revision-container')?.style.visibility == \"visible\") {\r\n this.events.publish(\"ModelRevision:CloseModelRevision\")\r\n }\r\n } else if (!this.isBuildingPartsVisible && this.isViewerVisible) {\r\n panelMiddle.style.width = \"100%\";\r\n } else {\r\n panelLeft.style.width = \"50%\";\r\n panelMiddle.style.width = \"50%\";\r\n }\r\n }\r\n }\r\n\r\n displayColorPicker(): void {\r\n this.isColorPickerVisible = !this.isColorPickerVisible;\r\n setTimeout(() => {\r\n window.dispatchEvent(new Event('resize')); //It is needed to set a timeout for the bimviewer to register the resize\r\n this.events.publish('object-properties:setIsSwitchAvailable', this.isPropertiesVisible && this.isColorPickerVisible);\r\n }, 0); \r\n }\r\n\r\n propertyClicked(): void {\r\n this.isPropertiesVisible = !this.isPropertiesVisible;\r\n setTimeout(() => {\r\n window.dispatchEvent(new Event('resize')); //It is needed to set a timeout for the bimviewer to register the resize\r\n this.events.publish('object-properties:setIsSwitchAvailable', this.isPropertiesVisible && this.isColorPickerVisible);\r\n }, 0);\r\n }\r\n\r\n move2dView(): void {\r\n let viewer: HTMLElement | null = document.getElementById('viewer2d');\r\n let smalldiv: HTMLElement | null = document.getElementById('small-2d-view');\r\n let bigDiv: HTMLElement | null = document.getElementById('bim-viewer-2d-holder');\r\n if (smalldiv && viewer && bigDiv) {\r\n if(!smalldiv?.contains(viewer)) {\r\n smalldiv.style.visibility = \"visible\";\r\n smalldiv.appendChild(viewer);\r\n this.splitViewerResizeService.hide2dView();\r\n } else {\r\n this.handleDockToBigDiv(bigDiv,viewer,smalldiv);\r\n }\r\n }\r\n window.dispatchEvent(new Event('resize'));\r\n }\r\n\r\n handleDocked2dTooSmall(): void {\r\n let viewer: HTMLElement | null = document.getElementById('viewer2d');\r\n let smalldiv: HTMLElement | null = document.getElementById('small-2d-view');\r\n let bigDiv: HTMLElement | null = document.getElementById('bim-viewer-2d-holder');\r\n if (this.isViewerVisible) {\r\n if (smalldiv) {\r\n if(smalldiv.contains(viewer) && bigDiv && viewer) {\r\n this.handleDockToBigDiv(bigDiv,viewer,smalldiv);\r\n window.dispatchEvent(new Event('resize'));\r\n }\r\n }\r\n }\r\n }\r\n \r\n handleDockToSmallDiv(viewer: HTMLElement, smalldiv: HTMLElement): void {\r\n smalldiv.style.visibility = \"visible\";\r\n smalldiv.appendChild(viewer);\r\n this.splitViewerResizeService.hide2dView();\r\n }\r\n \r\n handleDockToBigDiv(bigDiv: HTMLElement, viewer: HTMLElement, smalldiv: HTMLElement): void {\r\n bigDiv.appendChild(viewer);\r\n smalldiv.style.visibility = \"hidden\";\r\n this.splitViewerResizeService.show2dView();\r\n }\r\n\r\n switchPropertyAndColor(): void {\r\n let panel: HTMLElement | null = document.getElementById('panel-right');\r\n if (panel) {\r\n if (panel.classList.contains('wrap')) {\r\n panel.classList.remove('wrap');\r\n } else {\r\n panel.classList.add('wrap');\r\n }\r\n }\r\n }\r\n}\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","WorkAreaContainer","constructor","events","apiClient","appContext","userService","splitViewerResizeService","modalService","projectId","max2dDockWidth","middlePanelWidth","isSettingsVisible","IsCatendaEnabled","isPropertiesVisible","isBuildingPartsLoaded","isBuildingPartsVisible","isViewerLoaded","isViewerVisible","isColorPickerVisible","subscriptions","console","log","async","self","this","subscribe","payload","setTimeout","window","dispatchEvent","Event","undefined","modelToInit","revisionToInit","isTooSmall","handleDocked2dTooSmall","move2dView","handleLoadedModels","shouldShow","showOrHide2dViewer","setupViewerSplitter","setupMainSplitter","switchPropertyAndColor","size","setViewerSplitSize","top","bot","draggable","destroySplitters","forEach","subscription","dispose","is2d","modelId","publish","revisionId","params","setProject","loadProject","reloadIfNecessary","curProject","getSelectedProject","hide2dView","shouldShow2dViewer","show2dViewOnModelLoaded","hide2dViewOnModelUnLoaded","handleBPandViewerVisible","showMainSplitter","hideMainSplitter","handleBPAndViewerPanels","panelLeft","document","getElementById","panelMiddle","style","width","visibility","displayColorPicker","propertyClicked","viewer","smalldiv","bigDiv","contains","handleDockToBigDiv","appendChild","handleDockToSmallDiv","show2dView","panel","classList","remove","add","autoinject"],"sourceRoot":""}