{"version":3,"file":"app-856d7bcd.8cbc333248979aa0.bundle.js","mappings":"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","sources":["webpack://client-app/./src/app/project/work-area/viewer-menu/viewer-menu.scss","webpack://client-app/./src/app/project/work-area/viewer-menu/viewer-menu.html","webpack://client-app/./src/app/project/work-area/viewer-menu/viewer-menu-enums.ts","webpack://client-app/./src/app/project/work-area/viewer-menu/viewer-menu.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, \".viewer-menu{position:absolute;display:inline-block;left:50%;transform:translateX(-50%);bottom:0%;margin-bottom:5px;width:fit-content;height:fit-content;border-radius:5px;background-color:#fff;white-space:nowrap;z-index:1}.menu-btn-item{border:0;margin-left:2px;margin-right:2px;margin-top:5px;margin-bottom:5px;padding:6px}.menu-dropdown-item{display:inline-block}.dropdown-menu.show{min-width:inherit;display:inline-block}.crop-switch{margin:5px}.crop-switch label{display:inline-block}.menu-line{margin:0;padding:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/project/work-area/viewer-menu/viewer-menu.scss\"],\"names\":[],\"mappings\":\"AAAA,aACC,iBAAA,CACA,oBAAA,CACA,QAAA,CACA,0BAAA,CACA,SAAA,CACA,iBAAA,CACA,iBAAA,CACA,kBAAA,CACA,iBAAA,CACA,qBAAA,CACA,kBAAA,CACA,SAAA,CAGD,eACC,QAAA,CACA,eAAA,CACA,gBAAA,CACA,cAAA,CACA,iBAAA,CACA,WAAA,CAGD,oBACI,oBAAA,CAGJ,oBACI,iBAAA,CACA,oBAAA,CAGJ,aACI,UAAA,CACH,mBACC,oBAAA,CAIF,WACI,QAAA,CACA,SAAA\",\"sourcesContent\":[\".viewer-menu {\\r\\n\\tposition: absolute;\\r\\n\\tdisplay:inline-block;\\r\\n\\tleft: 50%;\\r\\n\\ttransform: translateX(-50%);\\r\\n\\tbottom: 0%;\\r\\n\\tmargin-bottom: 5px;\\r\\n\\twidth: fit-content;\\r\\n\\theight: fit-content;\\r\\n\\tborder-radius: 5px;\\r\\n\\tbackground-color: white;\\r\\n\\twhite-space: nowrap;\\r\\n\\tz-index: 1; \\r\\n}\\r\\n\\r\\n.menu-btn-item {\\r\\n\\tborder: 0;\\r\\n\\tmargin-left: 2px;\\r\\n\\tmargin-right: 2px;\\r\\n\\tmargin-top:5px;\\r\\n\\tmargin-bottom:5px;\\r\\n\\tpadding: 6px;\\r\\n}\\r\\n\\r\\n.menu-dropdown-item {\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.dropdown-menu.show {\\r\\n min-width: inherit;\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.crop-switch {\\r\\n margin: 5px;\\r\\n\\tlabel {\\r\\n\\t\\tdisplay: inline-block;\\r\\n\\t}\\r\\n}\\r\\n\\r\\n.menu-line {\\r\\n margin:0;\\r\\n padding:0;\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = \"\\r\\n\";","export enum ViewerMenuEnum {\r\n VISIBLE = 0,\r\n TRANSLUCENT = 1,\r\n HIDDEN = 2\r\n}\r\n","import {autoinject,bindable} from \"aurelia-framework\";\r\nimport {EventAggregator, Subscription} from \"aurelia-event-aggregator\";\r\nimport { ContextMenuService } from \"app/services/context-menu-service\";\r\nimport { ViewerMenuEnum } from \"./viewer-menu-enums\";\r\nimport { SwitchItem } from \"./switch-item\";\r\nimport { ModalService } from \"app/services/modal-service\";\r\nimport { BaseViewerCombined } from \"app/components/base-viewer-combined/base-viewer-combined\";\r\nimport {ToolEnum} from \"../../../services/BimViewerThreeDServiceIF\";\r\n\r\ndeclare let $: any;\r\n\r\n@autoinject\r\nexport class ViewerMenu {\r\n @bindable public isWorkArea:boolean = false;\r\n\r\n\t@bindable public parent:BaseViewerCombined|undefined;\r\n\r\n\t// public openbimMode:boolean = false; \r\n\r\n private isViewersLoading: boolean = false;\r\n public isSettingsVisible: boolean = false;\r\n public isModelsShowing: boolean = false;\r\n public subscriptions: Subscription[] = [];\r\n public cropAll: boolean = false;\r\n public cropItems: SwitchItem[] = [];\r\n public directionsToCrop: string[] = [];\r\n public selectedTool = \"fa-solid fa-arrow-pointer\";\r\n public viewState: number = ViewerMenuEnum.VISIBLE;\r\n private anyItemsSelected: boolean = false;\r\n\r\n /* Bemaerk, den kommunikerer naesten udelukkende gennem EVENTS den sender og modtager.\r\n\t*/\r\n\r\n constructor(public eventAggregator: EventAggregator, public subscription: Subscription, \r\n\t\t public contextMenu: ContextMenuService, public modal: ModalService) \r\n\t{\r\n\t\tconsole.log('viewerMenu.ctor');\r\n }\r\n\r\n\tactivate() { console.log('viewerMenu.activate');}\r\n bind(): void {\r\n\t\tconsole.log('viewerMenu.bind');\r\n let self = this;\r\n this.subscriptions = [\r\n this.eventAggregator.subscribe('ViewerMenu:ChangeIsSettingsVisible', async () => {self.viewerSettingsClicked()}),\r\n this.eventAggregator.subscribe('ViewerMenu:ChangeModelToVisible', async (isVisible: boolean) => {self.changeModelsMenuVisibility(isVisible) }),\r\n this.eventAggregator.subscribe('ViewerMenu:viewers-finished-loading', async () => { this.isViewersLoading = false}),\r\n this.eventAggregator.subscribe('ViewerMenu:elements-selected', async (isElementSelected: boolean) => {this.anyItemsSelected = isElementSelected})\r\n ]\r\n this.cropItems = [\r\n {name: 'top',on: false},\r\n {name: 'bottom',on: false},\r\n {name: 'left',on: false},\r\n {name: 'right',on: false},\r\n {name: 'front',on: false},\r\n {name: 'back',on: false},\r\n ]\r\n }\r\n\tattached() { \r\n\t\tconsole.log('viewerMenu.attached', this.parent);\r\n }\r\n \r\n detached(): void {\r\n this.subscriptions.forEach((subscription: Subscription) => subscription.dispose());\r\n }\r\n\r\n openBimCheckboxClicked(event:any) {\r\n\t\tconst enabled:boolean = this.parent!.BVC_openBimMode;\r\n\t\tconsole.log('openBimCheckboxClicked, nowEnabled?',enabled);\r\n this.eventAggregator.publish('base-viewer-combined:openBimModeToggled', enabled);\r\n\t}\r\n\r\n\tpublic useFragments = false;\r\n\tuseFragmentsCheckbox(event:any) {\r\n\t\t//this.useFragments = !this.useFragments;\r\n\t\tconsole.log('useFragmentsCheckbox', this.useFragments);\r\n\t\tthis.eventAggregator.publish('debug:useFragments', this.useFragments);\r\n\t}\r\n\r\n async viewerSettingsClicked(): Promise {\r\n this.eventAggregator.publish('WorkAreaContainer:ViewerSettingsPressed');\r\n this.isSettingsVisible = !this.isSettingsVisible; \r\n }\r\n \r\n async modelsMenuClicked(): Promise {\r\n this.eventAggregator.publish('ModelRevision:ModelsPressed');\r\n }\r\n\r\n async changeModelsMenuVisibility(isVisible: boolean): Promise {\r\n this.isModelsShowing = isVisible;\r\n }\r\n\r\n async changeViewState(): Promise {\r\n if (this.viewState == ViewerMenuEnum.VISIBLE) {\r\n this.viewState = ViewerMenuEnum.TRANSLUCENT;\r\n this.eventAggregator.publish('3dViewer:TransluteAll');\r\n return;\r\n \r\n }\r\n if (this.viewState == ViewerMenuEnum.TRANSLUCENT) {\r\n this.viewState = ViewerMenuEnum.HIDDEN;\r\n this.eventAggregator.publish('3dViewer:HideAll');\r\n return;\r\n }\r\n if (this.viewState == ViewerMenuEnum.HIDDEN) {\r\n this.viewState = ViewerMenuEnum.VISIBLE;\r\n this.eventAggregator.publish('3dViewer:ShowAll');\r\n return;\r\n\r\n }\r\n }\r\n\r\n cropAllClicked(): boolean {\r\n if (this.isAnyElementSelected() == false && this.cropAll == false) {\r\n this.modal.OpenMessage(\"No elements Selected\", \"You must have elements selected to crop the model.\")\r\n return false;\r\n }\r\n this.cropAll = !this.cropAll\r\n this.cropItems.forEach((item: SwitchItem) => {\r\n item.on = this.cropAll;\r\n });\r\n this.sendCropPublish();\r\n return true;\r\n }\r\n\r\n cropClicked(clickedItem: SwitchItem): boolean {\r\n if (this.isAnyElementSelected() == false && clickedItem.on == false) {\r\n this.modal.OpenMessage(\"No elements Selected\", \"You must have elements selected to crop the model.\")\r\n return false;\r\n }\r\n if (clickedItem != undefined || clickedItem != null) {\r\n clickedItem.on = !clickedItem.on;\r\n }\r\n this.sendCropPublish()\r\n return true;\r\n }\r\n\r\n private isAnyElementSelected(): boolean {\r\n let result: boolean = false;\r\n $('#viewerContainer3d').viewer('eachSelected', function(id: number) {\r\n result = true;\r\n });\r\n return result;\r\n }\r\n\r\n sendCropPublish(): void {\r\n this.directionsToCrop = [];\r\n this.cropItems.forEach((item: SwitchItem) => {\r\n if (item.on) {\r\n this.directionsToCrop.push(item.name);\r\n }\r\n });\r\n this.cropAll = this.directionsToCrop.length == 6; //All are checked\r\n this.eventAggregator.publish('3dViewer:crop', this.directionsToCrop);\r\n }\r\n \r\n async newToolSelected(tool: ToolEnum, icon: string): Promise {\r\n this.selectedTool = icon;\r\n this.eventAggregator.publish('3dViewer:ChangeTool', tool);\r\n }\r\n}\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","ViewerMenuEnum","ViewerMenu","constructor","eventAggregator","subscription","contextMenu","modal","isWorkArea","isViewersLoading","isSettingsVisible","isModelsShowing","subscriptions","cropAll","cropItems","directionsToCrop","selectedTool","viewState","VISIBLE","anyItemsSelected","useFragments","console","log","activate","bind","self","this","subscribe","async","viewerSettingsClicked","isVisible","changeModelsMenuVisibility","isElementSelected","name","on","attached","parent","detached","forEach","dispose","openBimCheckboxClicked","event","enabled","BVC_openBimMode","publish","useFragmentsCheckbox","TRANSLUCENT","HIDDEN","cropAllClicked","isAnyElementSelected","OpenMessage","item","sendCropPublish","cropClicked","clickedItem","undefined","result","$","viewer","length","tool","icon","bindable","autoinject"],"sourceRoot":""}