{"version":3,"file":"vendor.openbim-components-c23b6428.4f1aedf2b7c8c032.bundle.js","mappings":"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","sources":["webpack://client-app/./node_modules/openbim-components/src/ui/SimpleUIComponent/index.js","webpack://client-app/./node_modules/openbim-components/src/ui/ToolbarComponent/index.js","webpack://client-app/./node_modules/openbim-components/src/ui/UIManager/index.js","webpack://client-app/./node_modules/openbim-components/src/ui/TreeView/index.js","webpack://client-app/./node_modules/openbim-components/src/ui/SimpleUICard/index.js","webpack://client-app/./node_modules/openbim-components/src/ui/TextInput/index.js","webpack://client-app/./node_modules/openbim-components/src/ui/RangeInput/index.js","webpack://client-app/./node_modules/openbim-components/src/ui/ToastNotification/index.js"],"sourcesContent":["import { Component, Event } from \"../../base-types\";\r\nimport { tooeenRandomId } from \"../../utils\";\r\nexport class SimpleUIComponent extends Component {\r\n get domElement() {\r\n if (!this._domElement) {\r\n throw new Error(\"Dom element not initialized!\");\r\n }\r\n return this._domElement;\r\n }\r\n set domElement(ele) {\r\n if (this._domElement) {\r\n this._domElement.remove();\r\n }\r\n this._domElement = ele;\r\n }\r\n set parent(value) {\r\n this._parent = value;\r\n }\r\n get parent() {\r\n return this._parent;\r\n }\r\n get active() {\r\n return this._active;\r\n }\r\n set active(active) {\r\n this.domElement.setAttribute(\"data-active\", String(active));\r\n this._active = active;\r\n }\r\n get visible() {\r\n return this._visible;\r\n }\r\n set visible(value) {\r\n this._visible = value;\r\n if (value) {\r\n this.domElement.classList.remove(\"hidden\");\r\n this.onVisible.trigger(this.get());\r\n }\r\n else {\r\n this.domElement.classList.add(\"hidden\");\r\n this.onHidden.trigger(this.get());\r\n }\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 (value) {\r\n this.onEnabled.trigger(this.get());\r\n }\r\n else {\r\n this.onDisabled.trigger(this.get());\r\n }\r\n // this.onVisibilityChanged.trigger(value);\r\n }\r\n get hasElements() {\r\n return this.children.length > 0;\r\n }\r\n set template(value) {\r\n const regex = /id=\"([^\"]+)\"/g;\r\n const temp = document.createElement(\"div\");\r\n temp.innerHTML = value.replace(regex, `id=\"$1-${this.id}\"`);\r\n const newElement = temp.firstElementChild;\r\n newElement.id = this.id;\r\n this.domElement = newElement;\r\n temp.remove();\r\n }\r\n constructor(components, template, id) {\r\n super(components);\r\n this.name = \"SimpleUIComponent\";\r\n /** {@link Disposable.onDisposed} */\r\n this.onDisposed = new Event();\r\n // TODO: Remove children and leave only slots?\r\n this.children = [];\r\n this.data = {};\r\n // Slots are other UIComponents that inherits all the logic from SimpleUIComponent\r\n this.slots = {};\r\n // InnerElements are those HTML Elements which doesn't come from an UIComponent.\r\n this.innerElements = {};\r\n this.onVisible = new Event();\r\n this.onHidden = new Event();\r\n this.onEnabled = new Event();\r\n this.onDisabled = new Event();\r\n this._parent = null;\r\n this._enabled = true;\r\n this._visible = true;\r\n this._active = false;\r\n this._components = components;\r\n this.id = id !== null && id !== void 0 ? id : tooeenRandomId();\r\n this.template = template !== null && template !== void 0 ? template : \"
\";\r\n }\r\n cleanData() {\r\n this.data = {};\r\n }\r\n get() {\r\n return this.domElement;\r\n }\r\n async dispose(onlyChildren = false) {\r\n for (const name in this.slots) {\r\n const slot = this.slots[name];\r\n if (!slot)\r\n continue;\r\n await slot.dispose();\r\n }\r\n for (const child of this.children) {\r\n await child.dispose();\r\n this.removeChild(child);\r\n }\r\n for (const name in this.innerElements) {\r\n const element = this.innerElements[name];\r\n if (element) {\r\n element.remove();\r\n }\r\n }\r\n if (!onlyChildren) {\r\n if (this._domElement) {\r\n this._domElement.remove();\r\n }\r\n this.onVisible.reset();\r\n this.onHidden.reset();\r\n this.onEnabled.reset();\r\n this.onDisabled.reset();\r\n this.innerElements = {};\r\n this.children = [];\r\n this.slots = {};\r\n this.parent = null;\r\n }\r\n await this.onDisposed.trigger();\r\n this.onDisposed.reset();\r\n }\r\n addChild(...items) {\r\n for (const item of items) {\r\n this.children.push(item);\r\n this.domElement.append(item.domElement);\r\n item.parent = this;\r\n }\r\n }\r\n removeChild(...items) {\r\n for (const item of items) {\r\n item.domElement.remove();\r\n item.parent = null;\r\n }\r\n const filtered = this.children.filter((child) => !items.includes(child));\r\n this.children = filtered;\r\n }\r\n removeFromParent() {\r\n if (!this.parent)\r\n return;\r\n this.get().removeAttribute(\"data-tooeen-slot\");\r\n this.parent.removeChild(this);\r\n }\r\n getInnerElement(id) {\r\n return this.get().querySelector(`#${id}-${this.id}`);\r\n }\r\n setSlot(name, uiComponent) {\r\n const slot = this.get().querySelector(`[data-tooeen-slot=\"${name}\"]`);\r\n if (!slot)\r\n throw new Error(`Slot ${name} not found. You need to declare it in the UIComponent template using data-tooeen-slot=\"${name}\"`);\r\n const existingSlot = this.slots[name];\r\n if (existingSlot)\r\n existingSlot.removeFromParent();\r\n this.slots[name] = uiComponent;\r\n uiComponent.get().setAttribute(\"data-tooeen-slot\", name);\r\n uiComponent.parent = this;\r\n slot.replaceWith(uiComponent.get());\r\n this.children.push(uiComponent);\r\n }\r\n setSlots() {\r\n for (const name in this.slots) {\r\n const component = this.slots[name];\r\n this.setSlot(name, component);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=index.js.map","import { SimpleUIComponent } from \"../SimpleUIComponent\";\r\n// export class Toolbar extends SimpleUIComponent {\r\nexport class Toolbar extends SimpleUIComponent {\r\n set visible(visible) {\r\n this._visible = visible && this.hasElements;\r\n if (visible && this.hasElements) {\r\n this.domElement.classList.remove(\"hidden\");\r\n this.onVisible.trigger(this.get());\r\n }\r\n else {\r\n this.domElement.classList.add(\"hidden\");\r\n this.onHidden.trigger(this.get());\r\n }\r\n }\r\n get visible() {\r\n return this._visible;\r\n }\r\n set enabled(enabled) {\r\n this.closeMenus();\r\n this.children.forEach((button) => {\r\n button.enabled = enabled;\r\n button.menu.enabled = enabled;\r\n });\r\n this._enabled = enabled;\r\n }\r\n set position(position) {\r\n this._position = position;\r\n this.updateElements();\r\n }\r\n get position() {\r\n return this._position;\r\n }\r\n constructor(components, options) {\r\n var _a, _b;\r\n const _options = {\r\n position: \"bottom\",\r\n ...options,\r\n };\r\n const template = `\r\n
\r\n `;\r\n super(components, template);\r\n this.children = [];\r\n this._parent = null;\r\n this.name = (_a = _options.name) !== null && _a !== void 0 ? _a : \"Toolbar\";\r\n this.position = (_b = _options.position) !== null && _b !== void 0 ? _b : \"bottom\";\r\n this.visible = true;\r\n }\r\n get hasElements() {\r\n return this.children.length > 0;\r\n }\r\n get() {\r\n return this.domElement;\r\n }\r\n addChild(...button) {\r\n button.forEach((btn) => {\r\n btn.parent = this;\r\n this.children.push(btn);\r\n this.domElement.append(btn.domElement);\r\n });\r\n this._components.ui.updateToolbars();\r\n }\r\n updateElements() {\r\n this.children.forEach((button) => (button.parent = this));\r\n }\r\n closeMenus() {\r\n this.children.forEach((button) => button.closeMenus());\r\n }\r\n setDirection(direction = \"horizontal\") {\r\n this.domElement.classList.remove(\"flex-col\");\r\n const directionClass = direction === \"horizontal\" ? [\"flex\"] : [\"flex-col\"];\r\n this.domElement.classList.add(...directionClass);\r\n }\r\n}\r\nToolbar.Class = {\r\n Base: `flex shadow-md w-fit h-fit gap-x-2 gap-y-2 p-2 text-white rounded pointer-events-auto backdrop-blur-xl \r\n bg-ifcjs-100 z-50`,\r\n};\r\n//# sourceMappingURL=index.js.map","// @ts-ignore\r\nimport { createPopper } from \"@popperjs/core/dist/esm\";\r\nimport { Component, Event } from \"../../base-types\";\r\nimport { Toolbar } from \"../ToolbarComponent\";\r\n/**\r\n * A component that handles all UI components.\r\n */\r\nexport class UIManager extends Component {\r\n get viewerContainer() {\r\n return this._components.renderer.get().domElement\r\n .parentElement;\r\n }\r\n constructor(components) {\r\n super(components);\r\n this.name = \"UIManager\";\r\n this.enabled = true;\r\n this.toolbars = [];\r\n this.tooltipsEnabled = true;\r\n this.children = [];\r\n /** {@link Disposable.onDisposed} */\r\n this.onDisposed = new Event();\r\n this._mouseMoved = false;\r\n this._mouseDown = false;\r\n this._containers = {\r\n top: document.createElement(\"div\"),\r\n right: document.createElement(\"div\"),\r\n bottom: document.createElement(\"div\"),\r\n left: document.createElement(\"div\"),\r\n };\r\n this.onMouseUp = () => {\r\n this._mouseDown = false;\r\n };\r\n this.onMouseMoved = () => {\r\n if (this._mouseDown) {\r\n this._mouseMoved = true;\r\n }\r\n };\r\n this.onMouseDown = (event) => {\r\n this._mouseDown = true;\r\n const canvas = this._components.renderer.get().domElement;\r\n if (event.target === canvas) {\r\n this.closeMenus();\r\n this.contextMenu.visible = false;\r\n }\r\n };\r\n this.onContextMenu = (event) => {\r\n if (this._mouseMoved) {\r\n this._mouseMoved = false;\r\n return;\r\n }\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n this.closeMenus();\r\n this._contextMenuContainer.style.left = `${event.offsetX}px`;\r\n this._contextMenuContainer.style.top = `${event.offsetY}px`;\r\n this.contextMenu.visible = true;\r\n this._popperInstance.update();\r\n };\r\n this._components = components;\r\n this.contextMenu = new Toolbar(components);\r\n this.contextMenu.setDirection(\"vertical\");\r\n this.contextMenu.position = \"left\";\r\n this._contextMenuContainer = document.createElement(\"div\");\r\n this._contextMenuContainer.style.position = \"absolute\";\r\n this._contextMenuContainer.append(this.contextMenu.domElement);\r\n this._popperInstance = createPopper(this._contextMenuContainer, this.contextMenu.domElement, {\r\n placement: \"bottom-start\",\r\n modifiers: [\r\n {\r\n name: \"preventOverflow\",\r\n options: {\r\n boundary: Object.values(this._containers),\r\n },\r\n },\r\n ],\r\n });\r\n const containerClasses = {\r\n top: [\"top-0\", \"pt-4\"],\r\n right: [\"top-0\", \"right-0\", \"pr-4\"],\r\n bottom: [\"bottom-0\", \"pb-4\"],\r\n left: [\"top-0\", \"left-0\", \"pl-4\"],\r\n };\r\n for (const id in this._containers) {\r\n const container = this._containers[id];\r\n container.className =\r\n \"absolute flex gap-y-3 gap-x-3 pointer-events-none p-4\";\r\n container.classList.add(...containerClasses[id]);\r\n container.id = `${id}-toolbar-container`;\r\n this.setContainerAlignment(id, \"center\");\r\n }\r\n const hContainerClass = [\"flex-row\", \"w-full\"];\r\n const vContainerClass = [\"flex-column\", \"h-full\"];\r\n this._containers.top.classList.add(...hContainerClass);\r\n this._containers.right.classList.add(...vContainerClass);\r\n this._containers.bottom.classList.add(...hContainerClass);\r\n this._containers.left.classList.add(...vContainerClass);\r\n }\r\n get() {\r\n return this.toolbars;\r\n }\r\n async dispose() {\r\n this.setupEvents(false);\r\n for (const name in this._containers) {\r\n const element = this._containers[name];\r\n element.remove();\r\n }\r\n for (const toolbar of this.toolbars) {\r\n await toolbar.dispose();\r\n }\r\n for (const child of this.children) {\r\n await child.dispose();\r\n }\r\n this._popperInstance.destroy();\r\n this.children = [];\r\n await this.contextMenu.dispose();\r\n this._containers = {};\r\n this._contextMenuContainer.remove();\r\n this._popperInstance = null;\r\n this._components = null;\r\n this.contextMenu = null;\r\n this._contextMenuContainer = null;\r\n await this.onDisposed.trigger();\r\n this.onDisposed.reset();\r\n }\r\n async init() {\r\n this.setupEvents(true);\r\n this.viewerContainer.append(this._containers.top, this._containers.right, this._containers.bottom, this._containers.left, this._contextMenuContainer);\r\n this.viewerContainer.style.position = \"relative\";\r\n this.viewerContainer.classList.add(\"obc-viewer\");\r\n // Get material icons\r\n const materialIconsLink = document.createElement(\"link\");\r\n materialIconsLink.rel = \"stylesheet\";\r\n materialIconsLink.href =\r\n \"https://fonts.googleapis.com/icon?family=Material+Icons\";\r\n // Get openbim-components styles\r\n const fetchResponse = await fetch(\"https://raw.githubusercontent.com/IFCjs/components/main/resources/styles.css\");\r\n const componentsCSS = await fetchResponse.text();\r\n const styleElement = document.createElement(\"style\");\r\n styleElement.id = \"openbim-components\";\r\n styleElement.textContent = componentsCSS;\r\n const firstLinkTag = document.head.querySelector(\"link\");\r\n if (firstLinkTag) {\r\n // Inserting the styles before any link tag makes sure the developer can override the library styles\r\n document.head.insertBefore(materialIconsLink, firstLinkTag);\r\n document.head.insertBefore(styleElement, firstLinkTag);\r\n }\r\n else {\r\n document.head.append(materialIconsLink, styleElement);\r\n }\r\n }\r\n add(...uiComponents) {\r\n for (const component of uiComponents) {\r\n this.children.push(component);\r\n this.viewerContainer.append(component.domElement);\r\n }\r\n }\r\n closeMenus() {\r\n this.toolbars.forEach((toolbar) => toolbar.closeMenus());\r\n this.contextMenu.closeMenus();\r\n }\r\n setContainerAlignment(container, alingment) {\r\n this._containers[container].style.justifyContent = alingment;\r\n this._containers[container].style.alignItems = alingment;\r\n }\r\n addToolbar(...toolbar) {\r\n toolbar.forEach((tlbr) => {\r\n const container = this._containers[tlbr.position];\r\n if (!container) {\r\n return;\r\n }\r\n container.append(tlbr.domElement);\r\n this.toolbars.push(tlbr);\r\n });\r\n this.updateToolbars();\r\n }\r\n updateToolbars() {\r\n this.toolbars.forEach((toolbar) => {\r\n toolbar.visible = true;\r\n toolbar.updateElements();\r\n if (toolbar.position === \"bottom\" || toolbar.position === \"top\") {\r\n toolbar.setDirection(\"horizontal\");\r\n }\r\n else {\r\n toolbar.setDirection(\"vertical\");\r\n }\r\n });\r\n }\r\n setupEvents(active) {\r\n if (active) {\r\n this.viewerContainer.addEventListener(\"mouseup\", this.onMouseUp);\r\n this.viewerContainer.addEventListener(\"mousedown\", this.onMouseDown);\r\n this.viewerContainer.addEventListener(\"mousemove\", this.onMouseMoved);\r\n this.viewerContainer.addEventListener(\"contextmenu\", this.onContextMenu);\r\n }\r\n else {\r\n this.viewerContainer.removeEventListener(\"mouseup\", this.onMouseUp);\r\n this.viewerContainer.removeEventListener(\"mousedown\", this.onMouseDown);\r\n this.viewerContainer.removeEventListener(\"mousemove\", this.onMouseMoved);\r\n this.viewerContainer.removeEventListener(\"contextmenu\", this.onContextMenu);\r\n }\r\n }\r\n}\r\n// TODO: Does this need to be here?\r\nUIManager.Class = {\r\n Label: \"block leading-6 text-gray-400 text-sm\",\r\n};\r\n//# sourceMappingURL=index.js.map","import { Event } from \"../../base-types/base-types\";\r\nimport { SimpleUIComponent } from \"../SimpleUIComponent\";\r\nexport class TreeView 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.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 this.innerElements.title.textContent = value;\r\n }\r\n get title() {\r\n return this.innerElements.title.textContent;\r\n }\r\n set materialIcon(name) {\r\n this.innerElements.expandBtn.textContent = name;\r\n }\r\n get expanded() {\r\n return this._expanded;\r\n }\r\n set expanded(expanded) {\r\n this._expanded = expanded;\r\n this.slots.content.visible = expanded;\r\n if (expanded) {\r\n this.onExpand.trigger();\r\n this.innerElements.titleContainer.classList.add(\"bg-ifcjs-120\");\r\n this.materialIcon = \"arrow_drop_down\";\r\n }\r\n else {\r\n this.onCollapse.trigger();\r\n this.innerElements.titleContainer.classList.remove(\"bg-ifcjs-120\");\r\n this.materialIcon = \"arrow_right\";\r\n }\r\n }\r\n set onmouseover(listener) {\r\n this.domElement.onmouseover = (e) => {\r\n e.stopImmediatePropagation();\r\n listener(e);\r\n };\r\n }\r\n constructor(components, title) {\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
\r\n
\r\n
\r\n `;\r\n super(components, template);\r\n this._expanded = true;\r\n this.onExpand = new Event();\r\n this.onCollapse = new Event();\r\n this.onClick = new Event();\r\n this.domElement.onclick = async (e) => {\r\n e.stopImmediatePropagation();\r\n await this.onClick.trigger(e);\r\n };\r\n this.innerElements = {\r\n titleContainer: this.getInnerElement(\"title-container\"),\r\n title: this.getInnerElement(\"title\"),\r\n description: this.getInnerElement(\"description\"),\r\n expandBtn: this.getInnerElement(\"expandBtn\"),\r\n };\r\n this.innerElements.expandBtn.onclick = () => this.toggle();\r\n this.slots = {\r\n content: new SimpleUIComponent(components, `
`),\r\n titleRight: new SimpleUIComponent(components),\r\n };\r\n this.setSlots();\r\n this.title = title !== null && title !== void 0 ? title : null;\r\n this.collapse();\r\n }\r\n async dispose(onlyChildren = false) {\r\n await super.dispose(onlyChildren);\r\n if (!onlyChildren) {\r\n this.onExpand.reset();\r\n this.onCollapse.reset();\r\n }\r\n }\r\n toggle(deep = false) {\r\n if (deep) {\r\n if (this.expanded) {\r\n this.collapse();\r\n }\r\n else {\r\n this.expand();\r\n }\r\n }\r\n else {\r\n this.expanded = !this.expanded;\r\n }\r\n }\r\n addChild(...items) {\r\n this.slots.content.addChild(...items);\r\n }\r\n collapse(deep = true) {\r\n if (!this.expanded)\r\n return;\r\n this.expanded = false;\r\n if (!deep)\r\n return;\r\n for (const child of this.children)\r\n if (child instanceof TreeView)\r\n child.collapse(deep);\r\n }\r\n expand(deep = true) {\r\n if (this.expanded)\r\n return;\r\n this.expanded = true;\r\n if (!deep)\r\n return;\r\n for (const child of this.children)\r\n if (child instanceof TreeView)\r\n child.expand(deep);\r\n }\r\n}\r\n//# sourceMappingURL=index.js.map","import { SimpleUIComponent } from \"../SimpleUIComponent\";\r\nexport class SimpleUICard extends SimpleUIComponent {\r\n set title(value) {\r\n this.innerElements.title.textContent = value;\r\n }\r\n get title() {\r\n return this.innerElements.title.textContent;\r\n }\r\n set description(value) {\r\n this.innerElements.description.textContent = value;\r\n }\r\n get description() {\r\n return this.innerElements.description.textContent;\r\n }\r\n constructor(components, id) {\r\n const template = `\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
\r\n `;\r\n super(components, template, id);\r\n this.name = \"SimpleUICard\";\r\n this.innerElements = {\r\n title: this.getInnerElement(\"title\"),\r\n description: this.getInnerElement(\"description\"),\r\n };\r\n this.slots = {\r\n rightContainer: new SimpleUIComponent(components, `
`),\r\n };\r\n this.setSlots();\r\n }\r\n addChild(...items) {\r\n items.forEach((item) => {\r\n this.slots.rightContainer.addChild(item);\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 TextInput 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 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 = \"TooeenTextInput\";\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 Text\";\r\n this.innerElements.label.setAttribute(\"for\", `input-${this.id}`);\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 { UIManager } from \"../UIManager\";\r\nimport { Event } from \"../../base-types\";\r\nimport { SimpleUIComponent } from \"../SimpleUIComponent\";\r\nexport class RangeInput extends SimpleUIComponent {\r\n set value(value) {\r\n this.innerElements.input.value = String(value);\r\n this.onChange.trigger(this.value);\r\n }\r\n get value() {\r\n return Number(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 set min(value) {\r\n this.innerElements.input.min = String(value);\r\n }\r\n get min() {\r\n return Number(this.innerElements.input.min);\r\n }\r\n set max(value) {\r\n this.innerElements.input.max = String(value);\r\n }\r\n get max() {\r\n return Number(this.innerElements.input.max);\r\n }\r\n set step(value) {\r\n this.innerElements.input.step = String(value);\r\n }\r\n get step() {\r\n return Number(this.innerElements.input.step);\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 = \"TooeenRangeInput\";\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 Range\";\r\n this.innerElements.input.oninput = () => {\r\n this.onChange.trigger(this.value);\r\n };\r\n }\r\n}\r\n//# sourceMappingURL=index.js.map","import { SimpleUIComponent } from \"../SimpleUIComponent\";\r\nexport class ToastNotification extends SimpleUIComponent {\r\n set materialIcon(name) {\r\n this.innerElements.icon.textContent = name;\r\n if (name) {\r\n this.innerElements.icon.classList.remove(\"hidden\");\r\n }\r\n else {\r\n this.innerElements.icon.classList.add(\"hidden\");\r\n }\r\n }\r\n constructor(components, config) {\r\n var _a;\r\n // TODO: Extract icon ui component and reuse it\r\n const template = `\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 = \"ToastNotification\";\r\n this.duration = 3000;\r\n this.innerElements = {\r\n icon: this.getInnerElement(\"icon\"),\r\n message: this.getInnerElement(\"message\"),\r\n };\r\n this.domElement.style.zIndex = \"9999\";\r\n this.materialIcon = (_a = config.materialIconName) !== null && _a !== void 0 ? _a : \"done\";\r\n this.message = config.message;\r\n }\r\n get message() {\r\n return this.innerElements.message.textContent;\r\n }\r\n set message(value) {\r\n this.innerElements.message.textContent = value;\r\n }\r\n set visible(active) {\r\n const delay = 200;\r\n if (active) {\r\n super.visible = active;\r\n setTimeout(() => {\r\n this.domElement.style.transform = \"translateY(0)\";\r\n this.hideAutomatically();\r\n }, delay);\r\n }\r\n else {\r\n this.domElement.style.transform = \"translateY(10rem)\";\r\n setTimeout(() => (super.visible = active), delay);\r\n }\r\n }\r\n hideAutomatically() {\r\n setTimeout(() => {\r\n this.visible = false;\r\n }, this.duration);\r\n }\r\n}\r\n//# sourceMappingURL=index.js.map"],"names":["SimpleUIComponent","domElement","this","_domElement","Error","ele","remove","parent","value","_parent","active","_active","setAttribute","String","visible","_visible","classList","onVisible","trigger","get","add","onHidden","enabled","_enabled","onEnabled","onDisabled","hasElements","children","length","template","temp","document","createElement","innerHTML","replace","id","newElement","firstElementChild","constructor","components","super","name","onDisposed","data","slots","innerElements","_components","cleanData","async","onlyChildren","slot","dispose","child","removeChild","element","reset","addChild","items","item","push","append","filtered","filter","includes","removeFromParent","removeAttribute","getInnerElement","querySelector","setSlot","uiComponent","existingSlot","replaceWith","setSlots","component","Toolbar","closeMenus","forEach","button","menu","position","_position","updateElements","options","_a","_b","_options","Class","Base","btn","ui","updateToolbars","setDirection","direction","directionClass","UIManager","viewerContainer","renderer","parentElement","toolbars","tooltipsEnabled","_mouseMoved","_mouseDown","_containers","top","right","bottom","left","onMouseUp","onMouseMoved","onMouseDown","event","canvas","target","contextMenu","onContextMenu","preventDefault","stopImmediatePropagation","_contextMenuContainer","style","offsetX","offsetY","_popperInstance","update","placement","modifiers","boundary","Object","values","containerClasses","container","className","setContainerAlignment","hContainerClass","vContainerClass","setupEvents","toolbar","destroy","materialIconsLink","rel","href","fetchResponse","fetch","componentsCSS","text","styleElement","textContent","firstLinkTag","head","insertBefore","uiComponents","alingment","justifyContent","alignItems","addToolbar","tlbr","addEventListener","removeEventListener","Label","TreeView","description","title","materialIcon","expandBtn","expanded","_expanded","content","onExpand","titleContainer","onCollapse","onmouseover","listener","e","onClick","onclick","toggle","titleRight","collapse","deep","expand","SimpleUICard","rightContainer","TextInput","input","onChange","label","RangeInput","Number","min","max","step","oninput","ToastNotification","icon","config","duration","message","zIndex","materialIconName","setTimeout","transform","hideAutomatically"],"sourceRoot":""}