{"version":3,"file":"vendor.openbim-components-faed64af.5da6c8fd4da80caa.bundle.js","mappings":"4KAKO,MAAM,UAAoB,IACzBA,gBACA,OAAOC,KAAKC,UAChB,CACIF,cAAUG,GACVF,KAAKC,WAAaC,CACtB,CACIC,cACA,OAAOH,KAAKI,QAChB,CACID,YAAQD,GACRF,KAAKI,SAAWF,EACZF,KAAKK,WAAWC,YAChBN,KAAKO,UAAUC,IAAI,QAAQC,OAASP,EACpCF,KAAKO,UAAUC,IAAI,gBAAgBE,QAAUR,GAEjDF,KAAKW,SAASR,QAAUD,CAC5B,CACAU,YAAYP,GACRQ,MAAMR,GACNL,KAAKc,KAAO,cAEZd,KAAKe,WAAa,IAAI,IACtBf,KAAKO,UAAY,IAAI,IACrBP,KAAKgB,aAAe,CAAC,EACrBhB,KAAKiB,SAAW,CAAC,EACjBjB,KAAKI,UAAW,EAChBJ,KAAKC,YAAa,EAClBI,EAAWa,MAAMC,IAAI,EAAYC,KAAMpB,MACvCA,KAAKW,SAAW,IAAIU,EAAA,EAAkBhB,GAClCA,EAAWC,WACXN,KAAKsB,QAETtB,KAAKG,SAAU,CACnB,CACAoB,gBACIvB,KAAKO,UAAUiB,gBACTxB,KAAKW,SAASa,UACpB,IAAK,MAAMV,KAAQd,KAAKiB,SACpBjB,KAAKiB,SAASH,GAAMW,SAExBzB,KAAKiB,SAAW,CAAC,EACjBjB,KAAKK,WAAa,WACZL,KAAKe,WAAWW,QAAQ,EAAYN,MAC1CpB,KAAKe,WAAWY,OACpB,CACAC,YAAYd,GACR,MAAMe,EAAiB7B,KAAKiB,SAASH,GACrCe,SAAgEA,EAAeC,WAAWC,SAASC,GAAUH,EAAeI,YAAYD,KACxI,MAAME,EAAUlC,KAAKW,SAASwB,aACxBC,EAAQP,QAAuDA,EAAiBQ,SAASC,gBAAgB,6BAA8B,KAK7I,OAJAF,EAAMG,GAAKzB,EACXsB,EAAMI,UAAUN,GAChBlC,KAAKW,SAASH,MAAMgC,OAAOJ,GAC3BpC,KAAKiB,SAASH,GAAQsB,EACfA,CACX,CACAK,eAAe3B,EAAM4B,GAEjB,IADqB1C,KAAKgB,aAAaF,GACpB,CACf,GAAId,KAAKK,WAAWC,UAAW,CAC3B,MAAMqC,EAAOD,EAAKnC,UAAUC,IAAI,QAChCR,KAAKO,UAAUC,IAAI,gBAAgBoC,SAASD,EAChD,CACAD,EAAKG,YAAc7C,KAAKW,SAASH,MACjCR,KAAKgB,aAAaF,GAAQ4B,CAC9B,CACJ,CACAI,aAAaJ,GACT,MAAMxB,EAAQ6B,OAAOC,OAAOhD,KAAKgB,cAEjC,GADqBE,EAAM+B,MAAMC,GAAMA,IAAMR,IAC7C,CAIA,IAAK,MAAMQ,KAAKhC,EACZgC,EAAE/C,SAAU,EAEhBuC,EAAKvC,SAAU,CAJf,MAFIgD,QAAQC,KAAK,4EAOrB,CACIC,iBAEA,OADqBN,OAAOC,OAAOhD,KAAKgB,cACpBiC,MAAMP,IAA0B,IAAjBA,EAAKvC,SAC5C,CACAmB,QACI,MAAMgC,EAAkBtD,KAAKW,SAASJ,UAAUC,IAAI,WAC9CQ,EAAe,IAAI,IAAQhB,KAAKK,WAAY,CAAEkD,SAAU,QAC9DC,YAAW,KACPxC,EAAaN,SAAU,EACvB4C,EAAgB5C,SAAU,CAAK,GAChC,MACHV,KAAKK,WAAWoD,GAAGC,WAAW1C,GAC9BhB,KAAKK,WAAWoD,GAAGC,WAAWJ,GAC9B,MAAMX,EAAO,IAAI,IAAO3C,KAAKK,YAC7BsC,EAAKgB,aAAe,UACpBhB,EAAKiB,QAAQzC,KAAI,IAAOnB,KAAKG,SAAWH,KAAKG,UAC7CH,KAAKO,UAAUsD,IAAI,CAAE7C,eAAc2B,QACvC,CACAnC,MACI,OAAO,IACX,EAEJ,EAAYY,KAAO,sC","sources":["webpack://client-app/./node_modules/openbim-components/src/annotation/DrawManager/index.js"],"sourcesContent":["import { UIElement, Event, } from \"../../base-types\";\r\nimport { Component } from \"../../base-types/component\";\r\nimport { SimpleSVGViewport } from \"../../core/SimpleSVGViewport\";\r\nimport { Button } from \"../../ui/ButtonComponent\";\r\nimport { Toolbar } from \"../../ui/ToolbarComponent\";\r\nexport class DrawManager extends Component {\r\n get isDrawing() {\r\n return this._isDrawing;\r\n }\r\n set isDrawing(value) {\r\n this._isDrawing = value;\r\n }\r\n get enabled() {\r\n return this._enabled;\r\n }\r\n set enabled(value) {\r\n this._enabled = value;\r\n if (this.components.uiEnabled) {\r\n this.uiElement.get(\"main\").active = value;\r\n this.uiElement.get(\"drawingTools\").visible = value;\r\n }\r\n this.viewport.enabled = value;\r\n }\r\n constructor(components) {\r\n super(components);\r\n this.name = \"DrawManager\";\r\n /** {@link Disposable.onDisposed} */\r\n this.onDisposed = new Event();\r\n this.uiElement = new UIElement();\r\n this.drawingTools = {};\r\n this.drawings = {};\r\n this._enabled = false;\r\n this._isDrawing = false;\r\n components.tools.add(DrawManager.uuid, this);\r\n this.viewport = new SimpleSVGViewport(components);\r\n if (components.uiEnabled) {\r\n this.setUI();\r\n }\r\n this.enabled = false;\r\n }\r\n async dispose() {\r\n this.uiElement.dispose();\r\n await this.viewport.dispose();\r\n for (const name in this.drawings) {\r\n this.drawings[name].remove();\r\n }\r\n this.drawings = {};\r\n this.components = null;\r\n await this.onDisposed.trigger(DrawManager.uuid);\r\n this.onDisposed.reset();\r\n }\r\n saveDrawing(name) {\r\n const currentDrawing = this.drawings[name];\r\n currentDrawing === null || currentDrawing === void 0 ? void 0 : currentDrawing.childNodes.forEach((child) => currentDrawing.removeChild(child));\r\n const drawing = this.viewport.getDrawing();\r\n const group = currentDrawing !== null && currentDrawing !== void 0 ? currentDrawing : document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\r\n group.id = name;\r\n group.append(...drawing);\r\n this.viewport.get().append(group);\r\n this.drawings[name] = group;\r\n return group;\r\n }\r\n addDrawingTool(name, tool) {\r\n const existingTool = this.drawingTools[name];\r\n if (!existingTool) {\r\n if (this.components.uiEnabled) {\r\n const main = tool.uiElement.get(\"main\");\r\n this.uiElement.get(\"drawingTools\").addChild(main);\r\n }\r\n tool.svgViewport = this.viewport.get();\r\n this.drawingTools[name] = tool;\r\n }\r\n }\r\n activateTool(tool) {\r\n const tools = Object.values(this.drawingTools);\r\n const existingTool = tools.find((t) => t === tool);\r\n if (!existingTool) {\r\n console.warn(\"DrawManager: Tried to activate a drawing tool that is not registered yet.\");\r\n return;\r\n }\r\n for (const t of tools) {\r\n t.enabled = false;\r\n }\r\n tool.enabled = true;\r\n }\r\n get activeTool() {\r\n const drawingTools = Object.values(this.drawingTools);\r\n return drawingTools.find((tool) => tool.enabled === true);\r\n }\r\n setUI() {\r\n const viewportToolbar = this.viewport.uiElement.get(\"toolbar\");\r\n const drawingTools = new Toolbar(this.components, { position: \"top\" });\r\n setTimeout(() => {\r\n drawingTools.visible = false;\r\n viewportToolbar.visible = false;\r\n }, 0.001);\r\n this.components.ui.addToolbar(drawingTools);\r\n this.components.ui.addToolbar(viewportToolbar);\r\n const main = new Button(this.components);\r\n main.materialIcon = \"gesture\";\r\n main.onClick.add(() => (this.enabled = !this.enabled));\r\n this.uiElement.set({ drawingTools, main });\r\n }\r\n get() {\r\n return null;\r\n }\r\n}\r\nDrawManager.uuid = \"4ab8b0f4-665d-4ea2-8f6e-66c98ed04392\";\r\n//# sourceMappingURL=index.js.map"],"names":["isDrawing","this","_isDrawing","value","enabled","_enabled","components","uiEnabled","uiElement","get","active","visible","viewport","constructor","super","name","onDisposed","drawingTools","drawings","tools","add","uuid","SimpleSVGViewport","setUI","async","dispose","remove","trigger","reset","saveDrawing","currentDrawing","childNodes","forEach","child","removeChild","drawing","getDrawing","group","document","createElementNS","id","append","addDrawingTool","tool","main","addChild","svgViewport","activateTool","Object","values","find","t","console","warn","activeTool","viewportToolbar","position","setTimeout","ui","addToolbar","materialIcon","onClick","set"],"sourceRoot":""}