{"version":3,"file":"vendor.openbim-components-af411e88.fb723809bd85843e.bundle.js","mappings":"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","sources":["webpack://client-app/./node_modules/openbim-components/src/ui/ButtonComponent/index.js","webpack://client-app/./node_modules/openbim-components/src/ui/Canvas/index.js","webpack://client-app/./node_modules/openbim-components/src/ui/CheckboxInput/index.js","webpack://client-app/./node_modules/openbim-components/src/ui/ColorInput/index.js","webpack://client-app/./node_modules/openbim-components/src/ui/CommandsMenu/index.js","webpack://client-app/./node_modules/openbim-components/src/ui/Drawer/index.js","webpack://client-app/./node_modules/openbim-components/src/ui/Dropdown/index.js","webpack://client-app/./node_modules/openbim-components/src/ui/FloatingWindow/index.js","webpack://client-app/./node_modules/openbim-components/src/ui/Modal/index.js"],"sourcesContent":["import { createPopper,\r\n// @ts-ignore\r\n } from \"@popperjs/core/dist/esm\";\r\nimport { Event } from \"../../base-types\";\r\nimport { Toolbar } from \"../ToolbarComponent\";\r\nimport { SimpleUIComponent } from \"../SimpleUIComponent\";\r\nexport class Button extends SimpleUIComponent {\r\n set tooltip(value) {\r\n const element = this.innerElements.tooltip;\r\n element.textContent = value;\r\n if (value) {\r\n element.classList.remove(\"hidden\");\r\n }\r\n else {\r\n element.classList.add(\"hidden\");\r\n }\r\n }\r\n get tooltip() {\r\n return this.innerElements.tooltip.textContent;\r\n }\r\n set label(value) {\r\n const element = this.innerElements.label;\r\n element.textContent = value;\r\n if (value) {\r\n element.classList.remove(\"hidden\");\r\n }\r\n else {\r\n element.classList.add(\"hidden\");\r\n }\r\n }\r\n get label() {\r\n return this.innerElements.label.textContent;\r\n }\r\n set parent(toolbar) {\r\n this._parent = toolbar;\r\n if (toolbar) {\r\n this.menu.position = toolbar.position;\r\n this.updateMenuPlacement();\r\n }\r\n }\r\n get parent() {\r\n return this._parent;\r\n }\r\n set alignment(value) {\r\n this.domElement.classList.remove(\"justify-start\", \"justify-center\", \"justify-end\");\r\n this.domElement.classList.add(`justify-${value}`);\r\n }\r\n set materialIcon(name) {\r\n const icon = this.innerElements.icon;\r\n icon.textContent = name;\r\n if (name) {\r\n icon.style.display = \"unset\";\r\n }\r\n else {\r\n icon.style.display = \"none\";\r\n }\r\n }\r\n get materialIcon() {\r\n return this.innerElements.icon.textContent;\r\n }\r\n get customIcon() {\r\n return this.innerElements.customIcon.innerHTML;\r\n }\r\n constructor(components, options) {\r\n var _a, _b, _c;\r\n const template = `\r\n \r\n `;\r\n super(components, template);\r\n this.name = \"TooeenButton\";\r\n this.onClick = new Event();\r\n this._parent = null;\r\n this._closeOnClick = true;\r\n this.innerElements = {\r\n customIcon: this.getInnerElement(\"custom-icon\"),\r\n icon: this.getInnerElement(\"icon\"),\r\n label: this.getInnerElement(\"label\"),\r\n tooltip: this.getInnerElement(\"tooltip\"),\r\n };\r\n this.materialIcon = (_a = options === null || options === void 0 ? void 0 : options.materialIconName) !== null && _a !== void 0 ? _a : null;\r\n this.label = (_b = options === null || options === void 0 ? void 0 : options.name) !== null && _b !== void 0 ? _b : null;\r\n this.tooltip = (_c = options === null || options === void 0 ? void 0 : options.tooltip) !== null && _c !== void 0 ? _c : null;\r\n this.alignment = \"start\";\r\n if ((options === null || options === void 0 ? void 0 : options.closeOnClick) !== undefined) {\r\n this._closeOnClick = options.closeOnClick;\r\n }\r\n this.domElement.onclick = async (e) => {\r\n e.stopImmediatePropagation();\r\n await this.onClick.trigger(e);\r\n if (this.menu.children.length) {\r\n this.menu.visible = true;\r\n this._popper.update();\r\n }\r\n else if (this._closeOnClick) {\r\n this._components.ui.closeMenus();\r\n this._components.ui.contextMenu.visible = false;\r\n if (this.parent) {\r\n if (!this.parent.parent) {\r\n this._components.ui.closeMenus();\r\n }\r\n if (this.parent.closeMenus) {\r\n this.parent.closeMenus();\r\n }\r\n }\r\n }\r\n };\r\n this.domElement.addEventListener(\"mouseover\", ({ target }) => {\r\n if (this.isButton(target)) {\r\n if (this._components.ui.tooltipsEnabled) {\r\n this.innerElements.tooltip.classList.remove(\"opacity-0\");\r\n }\r\n }\r\n });\r\n this.domElement.addEventListener(\"mouseleave\", ({ target }) => {\r\n if (this.isButton(target)) {\r\n this.innerElements.tooltip.classList.add(\"opacity-0\");\r\n }\r\n });\r\n // #region Extensible menu\r\n this.menu = new Toolbar(components);\r\n this.menu.visible = false;\r\n this.menu.parent = this;\r\n this.menu.setDirection(\"vertical\");\r\n this.domElement.append(this.menu.domElement);\r\n this._popper = createPopper(this.domElement, this.menu.domElement, {\r\n modifiers: [\r\n {\r\n name: \"offset\",\r\n options: { offset: [0, 15] },\r\n },\r\n {\r\n name: \"preventOverflow\",\r\n options: { boundary: this._components.ui.viewerContainer },\r\n },\r\n ],\r\n });\r\n // #endregion\r\n this.onEnabled.add(() => (this.domElement.disabled = false));\r\n this.onDisabled.add(() => (this.domElement.disabled = true));\r\n }\r\n async dispose(onlyChildren = false) {\r\n await super.dispose(onlyChildren);\r\n await this.menu.dispose();\r\n if (!onlyChildren) {\r\n this.domElement.remove();\r\n }\r\n this.onClick.reset();\r\n this._popper.destroy();\r\n }\r\n addChild(...button) {\r\n this.menu.addChild(...button);\r\n }\r\n closeMenus() {\r\n this.menu.closeMenus();\r\n this.menu.visible = false;\r\n }\r\n async setCustomIcon(url) {\r\n const { customIcon } = this.innerElements;\r\n if (url) {\r\n const response = await fetch(url);\r\n customIcon.innerHTML = await response.text();\r\n customIcon.style.display = \"unset\";\r\n }\r\n else {\r\n customIcon.style.display = \"none\";\r\n }\r\n }\r\n updateMenuPlacement() {\r\n var _a, _b, _c, _d, _e, _f;\r\n let placement = \"bottom\";\r\n if (((_a = this.parent) === null || _a === void 0 ? void 0 : _a.position) === \"bottom\") {\r\n placement = ((_b = this.parent) === null || _b === void 0 ? void 0 : _b.parent) ? \"right\" : \"top\";\r\n }\r\n if (((_c = this.parent) === null || _c === void 0 ? void 0 : _c.position) === \"top\") {\r\n placement = ((_d = this.parent) === null || _d === void 0 ? void 0 : _d.parent) ? \"right\" : \"bottom\";\r\n }\r\n if (((_e = this.parent) === null || _e === void 0 ? void 0 : _e.position) === \"left\") {\r\n placement = \"right\";\r\n }\r\n if (((_f = this.parent) === null || _f === void 0 ? void 0 : _f.position) === \"right\") {\r\n placement = \"left\";\r\n }\r\n this._popper.setOptions({ placement });\r\n }\r\n isButton(element) {\r\n return (element === this.get() ||\r\n element === this.innerElements.icon ||\r\n element === this.innerElements.label);\r\n }\r\n}\r\nButton.Class = {\r\n Base: `\r\n relative flex gap-x-2 items-center bg-transparent text-white rounded-[10px] \r\n max-h-8 p-2 hover:cursor-pointer hover:bg-ifcjs-200 hover:text-black\r\n data-[active=true]:cursor-pointer data-[active=true]:bg-ifcjs-200 data-[active=true]:text-black\r\n disabled:cursor-default disabled:bg-gray-600 disabled:text-gray-400 pointer-events-auto\r\n transition-all fill-white hover:fill-black\r\n `,\r\n Label: \"text-sm tracking-[1.25px] whitespace-nowrap\",\r\n Tooltip: `\r\n transition-opacity bg-ifcjs-100 text-sm text-gray-100 rounded-md \r\n absolute left-1/2 -translate-x-1/2 -translate-y-12 opacity-0 mx-auto p-4 w-max h-4 flex items-center\r\n pointer-events-none\r\n `,\r\n};\r\n//# sourceMappingURL=index.js.map","import * as THREE from \"three\";\r\nimport { SimpleUIComponent } from \"../SimpleUIComponent\";\r\nimport { Event } from \"../../base-types\";\r\nexport class Canvas extends SimpleUIComponent {\r\n constructor(components) {\r\n const template = `\r\n \r\n `;\r\n super(components, template);\r\n this.name = \"Canvas\";\r\n this.onResize = new Event();\r\n this._size = new THREE.Vector2(320, 160);\r\n }\r\n getSize() {\r\n return this._size;\r\n }\r\n resize(size) {\r\n if (size) {\r\n this._size = size;\r\n this.domElement.style.width = `${size.x}px`;\r\n this.domElement.style.height = `${size.y}px`;\r\n this.onResize.trigger(size);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=index.js.map","import { Event } from \"../../base-types\";\r\nimport { SimpleUIComponent } from \"../SimpleUIComponent\";\r\nimport { UIManager } from \"../UIManager\";\r\nexport class CheckboxInput extends SimpleUIComponent {\r\n set value(value) {\r\n this.innerElements.input.checked = value;\r\n this.onChange.trigger(this.value);\r\n }\r\n get value() {\r\n return this.innerElements.input.checked;\r\n }\r\n set label(value) {\r\n this.innerElements.label.textContent = value;\r\n if (value) {\r\n this.innerElements.label.classList.remove(\"hidden\");\r\n }\r\n else {\r\n this.innerElements.label.classList.add(\"hidden\");\r\n }\r\n }\r\n get label() {\r\n return this.innerElements.label.textContent;\r\n }\r\n constructor(components) {\r\n const template = `\r\n
\r\n \r\n \r\n
\r\n `;\r\n super(components, template);\r\n this.name = \"TooeenCheckboxInput\";\r\n this.onChange = new Event();\r\n this.innerElements = {\r\n label: this.getInnerElement(\"label\"),\r\n input: this.getInnerElement(\"input\"),\r\n };\r\n this.innerElements.input.addEventListener(\"change\", () => {\r\n this.onChange.trigger(this.value);\r\n });\r\n this.label = \"Tooeen Checkbox\";\r\n }\r\n async dispose(onlyChildren = false) {\r\n await super.dispose(onlyChildren);\r\n this.onChange.reset();\r\n }\r\n}\r\n//# sourceMappingURL=index.js.map","import { Event } from \"../../base-types\";\r\nimport { SimpleUIComponent } from \"../SimpleUIComponent\";\r\nimport { UIManager } from \"../UIManager\";\r\nexport class ColorInput extends SimpleUIComponent {\r\n set value(value) {\r\n this.innerElements.input.value = value;\r\n this.onChange.trigger(this.value);\r\n }\r\n get value() {\r\n return this.innerElements.input.value;\r\n }\r\n set label(value) {\r\n this.innerElements.label.textContent = value;\r\n if (value) {\r\n this.innerElements.label.classList.remove(\"hidden\");\r\n }\r\n else {\r\n this.innerElements.label.classList.add(\"hidden\");\r\n }\r\n }\r\n get label() {\r\n return this.innerElements.label.textContent;\r\n }\r\n // @ts-ignore\r\n constructor(components) {\r\n const template = `\r\n
\r\n \r\n \r\n
\r\n `;\r\n super(components, template);\r\n this.name = \"TooeenColorInput\";\r\n this.onChange = new Event();\r\n this.innerElements = {\r\n label: this.getInnerElement(\"label\"),\r\n input: this.getInnerElement(\"input\"),\r\n };\r\n this.label = \"Tooeen Color\";\r\n this.value = \"#BCF124\";\r\n this.innerElements.input.oninput = () => {\r\n this.onChange.trigger(this.value);\r\n };\r\n }\r\n async dispose(onlyChildren = false) {\r\n await super.dispose(onlyChildren);\r\n this.onChange.reset();\r\n }\r\n}\r\n//# sourceMappingURL=index.js.map","import * as THREE from \"three\";\r\nimport { Button } from \"../ButtonComponent\";\r\nimport { SimpleUIComponent } from \"../SimpleUIComponent\";\r\nexport class CommandsMenu extends SimpleUIComponent {\r\n get hasCommands() {\r\n return Object.keys(this.commands).length !== 0;\r\n }\r\n constructor(components) {\r\n const template = `
`;\r\n super(components, template);\r\n this.name = \"CommandsMenu\";\r\n this.offset = new THREE.Vector2(20, -10);\r\n this.commands = {};\r\n this.hideCommandsMenu = () => {\r\n this.visible = false;\r\n };\r\n this.innerElements = {\r\n window: this.getInnerElement(\"window\"),\r\n };\r\n this.setupEvents(true);\r\n }\r\n update() {\r\n this.dispose(true);\r\n for (const name in this.commands) {\r\n const command = this.commands[name];\r\n const button = new Button(this._components, { name });\r\n button.name = name;\r\n this.addChild(button);\r\n button.onClick.add(() => command(this.commandData));\r\n }\r\n }\r\n popup(x, y) {\r\n this.domElement.style.left = `${x + this.offset.x}px`;\r\n this.domElement.style.top = `${y + this.offset.y}px`;\r\n this.visible = true;\r\n }\r\n async dispose(onlyChildren = false) {\r\n await super.dispose(onlyChildren);\r\n if (!onlyChildren) {\r\n this.setupEvents(false);\r\n this.commands = {};\r\n this.commandData = null;\r\n }\r\n }\r\n setupEvents(active) {\r\n if (active) {\r\n window.addEventListener(\"click\", this.hideCommandsMenu);\r\n }\r\n else {\r\n window.removeEventListener(\"click\", this.hideCommandsMenu);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=index.js.map","import { SimpleUIComponent } from \"../SimpleUIComponent\";\r\nimport { Event } from \"../../base-types\";\r\n// TODO: Fix tooltips for buttons in drawers\r\nexport class Drawer extends SimpleUIComponent {\r\n get visible() {\r\n return this._visible;\r\n }\r\n set visible(value) {\r\n const classes = this.domElement.classList;\r\n const isHorizontal = this._type === \"top\" || this._type === \"bottom\";\r\n if (isHorizontal) {\r\n const sign = this._type === \"top\" ? \"-\" : \"\";\r\n if (value) {\r\n classes.remove(`${sign}translate-y-full`);\r\n }\r\n else {\r\n classes.add(`${sign}translate-y-full`);\r\n }\r\n }\r\n else {\r\n const sign = this._type === \"left\" ? \"-\" : \"\";\r\n if (value) {\r\n classes.remove(`${sign}translate-x-full`);\r\n }\r\n else {\r\n classes.add(`${sign}translate-x-full`);\r\n }\r\n }\r\n this._visible = value;\r\n }\r\n get size() {\r\n return this._size;\r\n }\r\n set size(value) {\r\n this._size = value;\r\n const horizontal = this._type === \"top\" || this._type === \"bottom\";\r\n const height = horizontal ? this._size : \"inherit\";\r\n const width = horizontal ? \"inherit\" : this._size;\r\n this.domElement.style.height = height;\r\n this.domElement.style.width = width;\r\n }\r\n set alignment(value) {\r\n const classes = this.domElement.classList;\r\n this._type = value;\r\n classes.remove(\"h-full\");\r\n classes.remove(\"w-full\");\r\n classes.remove(\"top-0\");\r\n classes.remove(\"bottom-0\");\r\n classes.remove(\"left-0\");\r\n classes.remove(\"right-0\");\r\n classes.remove(\"-translate-x-full\");\r\n classes.remove(\"-translate-y-full\");\r\n classes.remove(\"translate-x-full\");\r\n classes.remove(\"translate-y-full\");\r\n if (value === \"top\" || value === \"bottom\") {\r\n classes.add(\"w-full\");\r\n classes.add(\"left-0\");\r\n classes.add(`${value}-0`);\r\n }\r\n else {\r\n classes.add(\"h-full\");\r\n classes.add(\"top-0\");\r\n classes.add(`${value}-0`);\r\n }\r\n this.size = this._size;\r\n this.visible = this._visible;\r\n }\r\n constructor(components) {\r\n const template = `\r\n
\r\n
\r\n
\r\n `;\r\n super(components, template);\r\n this.onResized = new Event();\r\n this._size = \"10rem\";\r\n this._visible = true;\r\n this._type = \"left\";\r\n this.domElement.style.width = this._size;\r\n this.slots = {\r\n content: new SimpleUIComponent(components, `
`),\r\n };\r\n this.setSlots();\r\n const observer = new ResizeObserver(() => this.onResized.trigger());\r\n observer.observe(this.get());\r\n }\r\n addChild(...items) {\r\n const content = this.slots.content;\r\n content.addChild(...items);\r\n if (!content.visible)\r\n content.visible = true;\r\n }\r\n}\r\n//# sourceMappingURL=index.js.map","import { Event } from \"../../base-types\";\r\nimport { SimpleUIComponent } from \"../SimpleUIComponent\";\r\nimport { UIManager } from \"../UIManager\";\r\nexport class Dropdown extends SimpleUIComponent {\r\n set value(value) {\r\n var _a;\r\n const option = (_a = this.options.find((v) => v === value)) !== null && _a !== void 0 ? _a : this.options[0];\r\n this.innerElements.button.textContent = option !== null && option !== void 0 ? option : null;\r\n this.onChange.trigger(this.value);\r\n }\r\n get value() {\r\n return this.innerElements.button.textContent;\r\n }\r\n set allowSearch(value) {\r\n this._allowSearch = value;\r\n if (value) {\r\n this.innerElements.search.classList.remove(\"hidden\");\r\n }\r\n else {\r\n this.innerElements.search.classList.add(\"hidden\");\r\n }\r\n }\r\n get allowSearch() {\r\n return this._allowSearch;\r\n }\r\n set label(value) {\r\n this.innerElements.label.textContent = value;\r\n if (value) {\r\n this.innerElements.label.classList.remove(\"hidden\");\r\n }\r\n else {\r\n this.innerElements.label.classList.add(\"hidden\");\r\n }\r\n }\r\n get label() {\r\n return this.innerElements.label.textContent;\r\n }\r\n constructor(components, name = \"Tooeen Dropdown\") {\r\n const template = `\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n `;\r\n super(components, template);\r\n this.name = \"TooeenDropdown\";\r\n this.options = [];\r\n this.onChange = new Event();\r\n this._allowSearch = false;\r\n this.hide = (event) => {\r\n if (!this.get().contains(event.target)) {\r\n this.innerElements.dropdown.classList.add(\"hidden\");\r\n }\r\n };\r\n this.innerElements = {\r\n label: this.getInnerElement(\"label\"),\r\n button: this.getInnerElement(\"button\"),\r\n dropdown: this.getInnerElement(\"dropdown\"),\r\n search: this.getInnerElement(\"search\"),\r\n searchInput: this.getInnerElement(\"searchInput\"),\r\n dropdownList: this.getInnerElement(\"dropdownList\"),\r\n };\r\n this.setSearch();\r\n this.innerElements.button.onclick = () => this.toggle();\r\n this.setupEvents(true);\r\n this.label = name;\r\n }\r\n async dispose(onlyChildren = false) {\r\n super.dispose(onlyChildren);\r\n this.onChange.reset();\r\n this.setupEvents(false);\r\n }\r\n toggle() {\r\n if (this.innerElements.dropdown.classList.contains(\"hidden\")) {\r\n this.innerElements.dropdown.classList.remove(\"hidden\");\r\n }\r\n else {\r\n this.innerElements.dropdown.classList.add(\"hidden\");\r\n }\r\n }\r\n addOption(...value) {\r\n const options = value.filter((option) => !this.options.includes(option));\r\n for (const option of options) {\r\n this.options.push(option);\r\n const li = document.createElement(\"li\");\r\n li.id = `${option.replace(/\\s+/g, \"_\")}-${this.id}`;\r\n li.className =\r\n \"py-2 text-base cursor-pointer hover:text-ifcjs-200 m-0 p-0\";\r\n li.textContent = option;\r\n li.onclick = () => {\r\n this.value = option;\r\n this.innerElements.dropdown.classList.add(\"hidden\");\r\n };\r\n this.innerElements.dropdownList.appendChild(li);\r\n }\r\n return this;\r\n }\r\n removeOption(...value) {\r\n const optionsToDelete = value.filter((option) => this.options.includes(option));\r\n for (const name of optionsToDelete) {\r\n const option = this.get().querySelector(`#${name.replace(/\\s+/g, \"_\")}-${this.id}`);\r\n if (!option)\r\n continue;\r\n option.remove();\r\n }\r\n this.options = this.options.filter((option) => !value.includes(option));\r\n return this;\r\n }\r\n setSearch() {\r\n this.innerElements.searchInput.oninput = () => {\r\n var _a;\r\n const searchValue = this.innerElements.searchInput.value.toLowerCase();\r\n const list = this.innerElements.dropdownList.children;\r\n for (const child of list) {\r\n const childText = (_a = child.textContent) === null || _a === void 0 ? void 0 : _a.toLowerCase();\r\n if (!childText)\r\n continue;\r\n if (childText.includes(searchValue)) {\r\n child.classList.remove(\"hidden\");\r\n }\r\n else {\r\n child.classList.add(\"hidden\");\r\n }\r\n }\r\n };\r\n }\r\n setupEvents(active) {\r\n if (active) {\r\n document.addEventListener(\"click\", this.hide, true);\r\n }\r\n else {\r\n document.removeEventListener(\"click\", this.hide, true);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=index.js.map","import { Vector2 } from \"three\";\r\nimport { SimpleUIComponent } from \"../SimpleUIComponent\";\r\nimport { Event } from \"../../base-types\";\r\nexport class FloatingWindow extends SimpleUIComponent {\r\n get containerSize() {\r\n const baseHeight = this.domElement.clientHeight;\r\n const titleHeight = this.innerElements.titleContainer.clientHeight;\r\n const height = baseHeight - titleHeight;\r\n const width = this.domElement.clientWidth;\r\n return { height, width };\r\n }\r\n get viewerContainer() {\r\n return this._components.renderer.get().domElement\r\n .parentElement;\r\n }\r\n set description(value) {\r\n const element = this.innerElements.description;\r\n element.textContent = value;\r\n if (value) {\r\n element.classList.remove(\"hidden\");\r\n }\r\n else {\r\n element === null || element === void 0 ? void 0 : element.classList.add(\"hidden\");\r\n }\r\n }\r\n get description() {\r\n return this.innerElements.description.textContent;\r\n }\r\n set title(value) {\r\n const element = this.innerElements.title;\r\n element.textContent = value;\r\n if (value) {\r\n element.classList.remove(\"hidden\");\r\n }\r\n else {\r\n element.classList.add(\"hidden\");\r\n }\r\n }\r\n get title() {\r\n return this.innerElements.title.textContent;\r\n }\r\n set resizeable(value) {\r\n this._resizeable = value;\r\n if (value) {\r\n this.get().classList.add(\"resize\");\r\n }\r\n else {\r\n this.get().classList.remove(\"resize\");\r\n }\r\n }\r\n get resizeable() {\r\n return this._resizeable;\r\n }\r\n set movable(value) {\r\n this._movable = value;\r\n if (value) {\r\n this.innerElements.titleContainer.classList.add(\"cursor-move\");\r\n }\r\n else {\r\n this.innerElements.titleContainer.classList.remove(\"cursor-move\");\r\n }\r\n }\r\n get movable() {\r\n return this._movable;\r\n }\r\n constructor(components, id) {\r\n const template = `\r\n
\r\n
\r\n
\r\n

Tooeen Floating Window

\r\n

\r\n
\r\n close\r\n
\r\n
\r\n
\r\n `;\r\n super(components, template, id);\r\n this._resizeable = true;\r\n this._movable = true;\r\n this.onMoved = new Event();\r\n this.onResized = new Event();\r\n this._isMouseDown = false;\r\n this._offsetX = 0;\r\n this._offsetY = 0;\r\n this.onMOuseDown = (event) => {\r\n if (!this.movable)\r\n return;\r\n this._isMouseDown = true;\r\n const rect = this.domElement.getBoundingClientRect();\r\n this._offsetX = event.clientX - rect.left;\r\n this._offsetY = event.clientY - rect.top;\r\n };\r\n this.onMouseUp = () => {\r\n this._isMouseDown = false;\r\n };\r\n this.onMouseMove = (event) => {\r\n if (!(this._isMouseDown && this.movable))\r\n return;\r\n const { width, height } = this.domElement.getBoundingClientRect();\r\n const { x, y, width: containerWidth, height: containerHeight, } = this.viewerContainer.getBoundingClientRect();\r\n const maxLeft = containerWidth - width;\r\n const maxTop = containerHeight - height;\r\n const left = Math.max(0, Math.min(event.clientX - this._offsetX - x, maxLeft));\r\n const top = Math.max(0, Math.min(event.clientY - this._offsetY - y, maxTop));\r\n this.domElement.style.left = `${left}px`;\r\n this.domElement.style.top = `${top}px`;\r\n this.onMoved.trigger(this);\r\n };\r\n this.innerElements = {\r\n title: this.getInnerElement(\"title\"),\r\n description: this.getInnerElement(\"description\"),\r\n titleContainer: this.getInnerElement(\"title-container\"),\r\n closeBtn: this.getInnerElement(\"close\"),\r\n };\r\n this.slots = {\r\n content: new SimpleUIComponent(components, `
`),\r\n };\r\n this.setSlots();\r\n this.innerElements.closeBtn.onclick = () => (this.visible = false);\r\n this.setMovableListeners();\r\n const observer = new ResizeObserver(() => this.onResized.trigger());\r\n observer.observe(this.get());\r\n this.description = null;\r\n this.movable = true;\r\n this.resizeable = true;\r\n this.referencePoints = {\r\n topLeft: new Vector2(),\r\n top: new Vector2(),\r\n topRight: new Vector2(),\r\n left: new Vector2(),\r\n center: new Vector2(),\r\n right: new Vector2(),\r\n bottomLeft: new Vector2(),\r\n bottom: new Vector2(),\r\n bottomRight: new Vector2(),\r\n };\r\n this.domElement.style.width = \"400px\";\r\n this.domElement.style.height = \"250px\";\r\n }\r\n async dispose(onlyChildren = false) {\r\n await super.dispose(onlyChildren);\r\n this.setupEvents(false);\r\n this.onMoved.reset();\r\n this.onResized.reset();\r\n }\r\n setMovableListeners() {\r\n // For node.js\r\n try {\r\n // eslint-disable-next-line no-unused-expressions\r\n this._components.renderer;\r\n }\r\n catch (_e) {\r\n return;\r\n }\r\n this.setupEvents(true);\r\n }\r\n addChild(...items) {\r\n const content = this.slots.content;\r\n content.addChild(...items);\r\n if (!content.visible)\r\n content.visible = true;\r\n }\r\n updateReferencePoints() {\r\n const uiElementRect = this.domElement.getBoundingClientRect();\r\n this.referencePoints.topLeft.set(uiElementRect.x, uiElementRect.y);\r\n this.referencePoints.top.set(uiElementRect.x + uiElementRect.width / 2, uiElementRect.y);\r\n this.referencePoints.topRight.set(uiElementRect.x + uiElementRect.width, uiElementRect.y);\r\n this.referencePoints.left.set(uiElementRect.x, uiElementRect.y + uiElementRect.height / 2);\r\n this.referencePoints.center.set(uiElementRect.x + uiElementRect.width / 2, uiElementRect.y + uiElementRect.height / 2);\r\n this.referencePoints.right.set(uiElementRect.x + uiElementRect.width, uiElementRect.y + uiElementRect.height / 2);\r\n this.referencePoints.bottomLeft.set(uiElementRect.x, uiElementRect.y + uiElementRect.height);\r\n this.referencePoints.bottom.set(uiElementRect.x + uiElementRect.width / 2, uiElementRect.y + uiElementRect.height);\r\n this.referencePoints.bottomRight.set(uiElementRect.x + uiElementRect.width, uiElementRect.y + uiElementRect.height);\r\n }\r\n setupEvents(active) {\r\n const title = this.innerElements.titleContainer;\r\n const container = this.viewerContainer;\r\n if (active) {\r\n if (title) {\r\n title.addEventListener(\"mousedown\", this.onMOuseDown);\r\n }\r\n container.addEventListener(\"mousemove\", this.onMouseMove);\r\n container.addEventListener(\"mouseup\", this.onMouseUp);\r\n }\r\n else {\r\n if (title) {\r\n title.removeEventListener(\"mousedown\", this.onMOuseDown);\r\n }\r\n container.removeEventListener(\"mousemove\", this.onMouseMove);\r\n container.removeEventListener(\"mouseup\", this.onMouseUp);\r\n }\r\n }\r\n}\r\nFloatingWindow.Class = {\r\n Base: \"absolute flex flex-col backdrop-blur-xl shadow-md overflow-auto top-5 resize z-50 left-5 min-h-[80px] min-w-[150px] w-fit h-fit text-white bg-ifcjs-100 rounded-md\",\r\n Description: \"text-base text-gray-400\",\r\n};\r\n//# sourceMappingURL=index.js.map","import { Event } from \"../../base-types\";\r\nimport { Button } from \"../ButtonComponent\";\r\nimport { SimpleUIComponent } from \"../SimpleUIComponent\";\r\nexport class Modal extends SimpleUIComponent {\r\n set description(value) {\r\n const element = this.innerElements.description;\r\n element.textContent = value;\r\n if (value) {\r\n element.classList.remove(\"hidden\");\r\n }\r\n else {\r\n element === null || element === void 0 ? void 0 : element.classList.add(\"hidden\");\r\n }\r\n }\r\n get description() {\r\n return this.innerElements.description.textContent;\r\n }\r\n set title(value) {\r\n const element = this.innerElements.title;\r\n element.textContent = value;\r\n if (value) {\r\n element.classList.remove(\"hidden\");\r\n }\r\n else {\r\n element.classList.add(\"hidden\");\r\n }\r\n }\r\n get title() {\r\n return this.innerElements.title.textContent;\r\n }\r\n set visible(value) {\r\n this._visible = value;\r\n if (value) {\r\n this.get().showModal();\r\n this.onVisible.trigger();\r\n }\r\n else {\r\n this.get().close();\r\n this.onHidden.trigger();\r\n }\r\n }\r\n get visible() {\r\n return this._visible;\r\n }\r\n constructor(components, title = \"Tooeen Modal\") {\r\n const template = `\r\n \r\n
\r\n
\r\n

${title}

\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n `;\r\n super(components, template);\r\n this.onAccept = new Event();\r\n this.onCancel = new Event();\r\n this.innerElements = {\r\n title: this.getInnerElement(\"title\"),\r\n description: this.getInnerElement(\"description\"),\r\n };\r\n this.slots = {\r\n content: new SimpleUIComponent(components),\r\n actionButtons: new SimpleUIComponent(components, `
`),\r\n };\r\n this.setSlots();\r\n const acceptBtn = new Button(this._components);\r\n acceptBtn.materialIcon = \"check\";\r\n acceptBtn.label = \"Accept\";\r\n acceptBtn.get().classList.remove(\"hover:bg-ifcjs-200\");\r\n acceptBtn.get().classList.add(\"hover:bg-success\");\r\n acceptBtn.onClick.add(() => this.onAccept.trigger());\r\n const cancelBtn = new Button(this._components);\r\n cancelBtn.materialIcon = \"close\";\r\n cancelBtn.label = \"Cancel\";\r\n cancelBtn.get().classList.remove(\"hover:bg-ifcjs-200\");\r\n cancelBtn.get().classList.add(\"hover:bg-error\");\r\n cancelBtn.onClick.add(() => this.onCancel.trigger());\r\n this.slots.actionButtons.addChild(cancelBtn, acceptBtn);\r\n }\r\n async dispose(onlyChildren = false) {\r\n await super.dispose(onlyChildren);\r\n this.onCancel.reset();\r\n this.onAccept.reset();\r\n }\r\n}\r\n//# sourceMappingURL=index.js.map"],"names":["Button","tooltip","value","element","this","innerElements","textContent","classList","remove","add","label","parent","toolbar","_parent","menu","position","updateMenuPlacement","alignment","domElement","materialIcon","name","icon","style","display","customIcon","innerHTML","constructor","components","options","_a","_b","_c","super","Class","Base","Tooltip","Label","onClick","_closeOnClick","getInnerElement","materialIconName","undefined","closeOnClick","onclick","async","e","stopImmediatePropagation","trigger","children","length","visible","_popper","update","_components","ui","closeMenus","contextMenu","addEventListener","target","isButton","tooltipsEnabled","setDirection","append","modifiers","offset","boundary","viewerContainer","onEnabled","disabled","onDisabled","onlyChildren","dispose","reset","destroy","addChild","button","url","response","fetch","text","_d","_e","_f","placement","setOptions","get","Canvas","onResize","_size","getSize","resize","size","width","x","height","y","CheckboxInput","input","checked","onChange","ColorInput","oninput","CommandsMenu","hasCommands","Object","keys","commands","hideCommandsMenu","window","setupEvents","command","commandData","popup","left","top","active","removeEventListener","Drawer","_visible","classes","_type","sign","horizontal","onResized","slots","content","setSlots","ResizeObserver","observe","items","Dropdown","option","find","v","allowSearch","_allowSearch","search","hide","event","contains","dropdown","searchInput","dropdownList","setSearch","toggle","addOption","filter","includes","push","li","document","createElement","id","replace","className","appendChild","removeOption","optionsToDelete","querySelector","searchValue","toLowerCase","list","child","childText","FloatingWindow","containerSize","clientHeight","titleContainer","clientWidth","renderer","parentElement","description","title","resizeable","_resizeable","movable","_movable","Description","onMoved","_isMouseDown","_offsetX","_offsetY","onMOuseDown","rect","getBoundingClientRect","clientX","clientY","onMouseUp","onMouseMove","containerWidth","containerHeight","maxLeft","maxTop","Math","max","min","closeBtn","setMovableListeners","referencePoints","topLeft","Vector2","topRight","center","right","bottomLeft","bottom","bottomRight","updateReferencePoints","uiElementRect","set","container","Modal","showModal","onVisible","close","onHidden","onAccept","onCancel","actionButtons","acceptBtn","cancelBtn"],"sourceRoot":""}