{"version":3,"file":"deepkit-desktop-ui.mjs","sources":["../../src/core/utils.ts","../../src/components/app/utils.ts","../../src/components/window/window-menu.ts","../../src/components/app/menu.component.ts","../../src/components/app/dui-view.directive.ts","../../src/components/app/cd-counter.component.ts","../../src/components/app/dui-responsive.directive.ts","../../src/components/window/window-state.ts","../../src/components/app/token.ts","../../src/components/app/pipes.ts","../../src/components/app/reactivate-change-detection.ts","../../src/components/app/state.ts","../../src/components/app/index.ts","../../src/components/form/form.component.ts","../../src/core/form.ts","../../src/browser-text.ts","../../src/components/icon/icon.component.ts","../../src/components/checkbox/checkbox.component.ts","../../src/components/icon/index.ts","../../src/components/checkbox/index.ts","../../src/components/splitter/splitter.component.ts","../../src/components/window/window-content.component.ts","../../src/components/window/window-header.component.ts","../../src/components/window/window.component.ts","../../src/components/button/button.component.ts","../../src/components/button/dropdown.component.ts","../../src/components/button/tab-button.component.ts","../../src/components/button/index.ts","../../src/components/input/input.component.ts","../../src/components/input/index.ts","../../src/components/form/index.ts","../../src/components/radiobox/radiobox.component.ts","../../src/components/radiobox/index.ts","../../src/components/select/selectbox.component.ts","../../src/components/select/index.ts","../../src/components/window/window-footer.component.ts","../../src/components/window/window-sidebar.component.ts","../../src/components/splitter/index.ts","../../src/components/core/render-component.directive.ts","../../src/components/dialog/dialog.component.ts","../../src/components/dialog/progress-dialog.component.ts","../../src/components/dialog/dialog.ts","../../src/components/window/external-window.component.ts","../../src/components/window/external-window.ts","../../src/components/core/index.ts","../../src/components/window/index.ts","../../src/components/list/list.component.ts","../../src/components/list/index.ts","../../src/components/table/table.component.ts","../../src/components/table/index.ts","../../src/components/dialog/index.ts","../../src/components/slider/slider.component.ts","../../src/components/slider/index.ts","../../src/components/indicator/indicator.component.ts","../../src/components/indicator/index.ts","../../src/components/tabs/tab.component.ts","../../src/components/tabs/tabs.component.ts","../../src/components/tabs/index.ts","../../src/components/layout/label.component.ts","../../src/components/layout/section-header.component.ts","../../src/components/layout/index.ts","../../src/index.ts","../../src/deepkit-desktop-ui.ts"],"sourcesContent":["/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\n/**\n * @reflection never\n */\nimport { Subscription } from 'rxjs';\nimport { ChangeDetectorRef, EventEmitter } from '@angular/core';\nimport { ActivatedRoute, Router, UrlTree } from '@angular/router';\nimport { nextTick } from '@deepkit/core';\nimport type Hammer from 'hammerjs';\n\nconst electron = 'undefined' === typeof window ? undefined : (window as any).electron || ((window as any).require ? (window as any).require('electron') : undefined);\n\nexport async function getHammer(): Promise<typeof Hammer | undefined> {\n    if ('undefined' === typeof window) return;\n    //@ts-ignore\n    const hammer = await import('hammerjs');\n    return hammer.default;\n}\n\nexport class Electron {\n    public static getRemote(): any {\n        if (!electron) {\n            throw new Error('No Electron available.');\n        }\n\n        return electron.remote;\n    }\n\n    public static getIpc(): any {\n        if (!electron) {\n            throw new Error('No Electron available.');\n        }\n\n        return electron.ipcRenderer;\n    }\n\n    public static isAvailable(): any {\n        return !!electron;\n    }\n\n    public static getRemoteOrUndefined(): any {\n        return electron ? electron.remote : undefined;\n    }\n\n    public static getProcess() {\n        return Electron.getRemote().process;\n    }\n}\n\nexport class AsyncEventEmitter<T> extends EventEmitter<T> {\n    emit(value?: T): void {\n        super.emit(value);\n    }\n\n    subscribe(generatorOrNext?: any, error?: any, complete?: any): Subscription {\n        return super.subscribe(generatorOrNext, error, complete);\n    }\n}\n\n\nexport class ExecutionState {\n    public running = false;\n    public error: string = '';\n\n    constructor(\n        protected readonly cd: ChangeDetectorRef,\n        protected readonly func: (...args: any[]) => Promise<any> | any,\n    ) {\n    }\n\n    public async execute(...args: any[]) {\n        if (this.running) {\n            throw new Error('Executor still running');\n        }\n\n        this.running = true;\n        this.error = '';\n        this.cd.detectChanges();\n\n        try {\n            return await this.func(...args);\n        } catch (error: any) {\n            this.error = error.message || error.toString();\n            throw error;\n        } finally {\n            this.running = false;\n            this.cd.detectChanges();\n        }\n\n    }\n}\n\n/**\n * Checks if `target` is children of `parent` or if `target` is `parent`.\n */\nexport function isTargetChildOf(target: HTMLElement | EventTarget | null, parent: HTMLElement): boolean {\n    if (!target) return false;\n\n    if (target === parent) return true;\n\n    return parent.contains(target as Node);\n}\n\nexport function isMacOs() {\n    if ('undefined' === typeof navigator) return false;\n    return navigator.platform.indexOf('Mac') > -1;\n}\n\nexport function isWindows() {\n    if ('undefined' === typeof navigator) return false;\n    return navigator.platform.indexOf('Win') > -1;\n}\n\n/**\n * Checks if `target` is children of `parent` or if `target` is `parent`.\n */\nexport function findParentWithClass(start: HTMLElement, className: string): HTMLElement | undefined {\n    let current: HTMLElement | null = start;\n    do {\n        if (current.classList.contains(className)) return current;\n        current = current.parentElement;\n    } while (current);\n\n    return undefined;\n}\n\nexport function triggerResize() {\n    if ('undefined' === typeof window) return;\n    nextTick(() => {\n        window.dispatchEvent(new Event('resize'));\n    });\n}\n\ntype FocusWatcherUnsubscribe = () => void;\n\n/**\n * Observes focus changes on target elements and emits when focus is lost.\n *\n * This is used to track multi-element focus changes, such as when a user clicks from a dropdown toggle into the dropdown menu.\n */\nexport function focusWatcher(\n    target: HTMLElement, allowedFocuses: HTMLElement[] = [],\n    onBlur: () => void,\n    customChecker?: (currentlyFocused: HTMLElement | null) => boolean,\n): FocusWatcherUnsubscribe {\n    const doc = target.ownerDocument;\n    if (doc.body.tabIndex === -1) doc.body.tabIndex = 1;\n\n    let currentlyFocused: HTMLElement | null = target;\n\n    let subscribed = true;\n\n    function isFocusAllowed() {\n        if (!currentlyFocused) {\n            return false;\n        }\n\n        if (currentlyFocused === target || target.contains(currentlyFocused)) {\n            return true;\n        }\n\n        for (const focus of allowedFocuses) {\n            if (focus && currentlyFocused === focus || focus.contains(currentlyFocused)) {\n                return true;\n            }\n        }\n\n        return customChecker ? customChecker(currentlyFocused) : false;\n    }\n\n    function emitBlurIfNeeded() {\n        if (!currentlyFocused) {\n            // Shouldn't be possible to have no element at all with focus.\n            // This means usually that the item that had previously focus was deleted.\n            currentlyFocused = target;\n        }\n        if (subscribed && !isFocusAllowed()) {\n            onBlur();\n            unsubscribe();\n            return true;\n        }\n        return false;\n    }\n\n    function onFocusOut() {\n        currentlyFocused = null;\n        emitBlurIfNeeded();\n    }\n\n    function onFocusIn(event: FocusEvent) {\n        currentlyFocused = event.target as any;\n        emitBlurIfNeeded();\n    }\n\n    function onMouseDown(event: FocusEvent) {\n        currentlyFocused = event.target as any;\n        if (emitBlurIfNeeded()) {\n            event.stopImmediatePropagation();\n            event.preventDefault();\n        }\n    }\n\n    doc.addEventListener('mousedown', onMouseDown, true);\n    doc.addEventListener('focusin', onFocusIn);\n    doc.addEventListener('focusout', onFocusOut);\n\n    function unsubscribe() {\n        if (!subscribed) return;\n        subscribed = false;\n        doc.removeEventListener('mousedown', onMouseDown, true);\n        doc.removeEventListener('focusin', onFocusIn);\n        doc.removeEventListener('focusout', onFocusOut);\n    }\n\n    return unsubscribe;\n}\n\ninterface RouteLike {\n    routerLink?: string | UrlTree | any[];\n    routerLinkExact?: boolean;\n    router?: Router,\n    activatedRoute?: ActivatedRoute;\n    queryParams?: { [name: string]: any };\n}\n\nexport function isRouteActive(route: RouteLike): boolean {\n    if (!route.router) return false;\n\n    if ('string' === typeof route.routerLink) {\n        return route.router.isActive(route.routerLink, route.routerLinkExact === true);\n    } else if (Array.isArray(route.routerLink)) {\n        return route.router.isActive(route.router.createUrlTree(route.routerLink, {\n            queryParams: route.queryParams,\n            relativeTo: route.activatedRoute,\n        }), route.routerLinkExact === true);\n    } else {\n        return route.router.isActive(route.routerLink!, route.routerLinkExact === true);\n    }\n}\n\nexport function redirectScrollableParentsToWindowResize(node: Element, passive = true) {\n    const parents = getScrollableParents(node);\n\n    function redirect() {\n        window.dispatchEvent(new Event('resize'));\n    }\n\n    for (const parent of parents) {\n        parent.addEventListener('scroll', redirect, { passive });\n    }\n\n    return () => {\n        for (const parent of parents) {\n            parent.removeEventListener('scroll', redirect);\n        }\n    };\n}\n\nexport function getScrollableParents(node: Element): Element[] {\n    const scrollableParents: Element[] = [];\n    let parent = node.parentNode;\n\n    while (parent) {\n        if (!(parent instanceof Element)) {\n            parent = parent.parentNode;\n            continue;\n        }\n        const computedStyle = window.getComputedStyle(parent);\n        const overflow = computedStyle.getPropertyValue('overflow');\n        if (overflow === 'overlay' || overflow === 'scroll' || overflow === 'auto') {\n            scrollableParents.push(parent);\n        }\n\n        parent = parent.parentNode;\n    }\n\n    return scrollableParents;\n}\n\nexport function trackByIndex(index: number) {\n    return index;\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    ApplicationRef,\n    ChangeDetectorRef,\n    Directive,\n    ElementRef,\n    HostListener,\n    Input,\n    OnChanges,\n} from '@angular/core';\nimport { nextTick } from '@deepkit/core';\nimport { Electron } from '../../core/utils';\n\n\n@Directive({\n    selector: '[openExternal], a[href]',\n    standalone: false,\n})\nexport class OpenExternalDirective implements OnChanges {\n    @Input('openExternal') openExternal: string = '';\n    @Input('href') href: string = '';\n\n    constructor(private element: ElementRef) {\n        // this.element.nativeElement.href = '#';\n    }\n\n    ngOnChanges(): void {\n        // this.element.nativeElement.href = this.getLink();\n        if (this.element.nativeElement instanceof HTMLAnchorElement) {\n            this.element.nativeElement.setAttribute('href', this.getLink());\n        }\n    }\n\n    getLink() {\n        return this.openExternal || this.href;\n    }\n\n    @HostListener('click', ['$event'])\n    onClick(event: Event) {\n        event.stopPropagation();\n        event.preventDefault();\n\n        if (Electron.isAvailable()) {\n            event.preventDefault();\n            Electron.getRemote().shell.openExternal(this.getLink());\n        } else {\n            window.open(this.getLink(), '_blank');\n        }\n    }\n}\n\nlet lastScheduleResize: any;\n\nexport function scheduleWindowResizeEvent() {\n    if (lastScheduleResize) cancelAnimationFrame(lastScheduleResize);\n    lastScheduleResize = nextTick(() => {\n        window.dispatchEvent(new Event('resize'));\n        lastScheduleResize = undefined;\n    });\n}\n\n\nlet lastFrameRequest: any;\nlet lastFrameRequestStack = new Set<ChangeDetectorRef>();\nlet lastFrameRequestStackDoneCb: (() => void)[] = [];\n\nexport class ZonelessChangeDetector {\n    static app: ApplicationRef | undefined = undefined;\n\n    static getApp() {\n        if (!ZonelessChangeDetector.app) {\n            throw new Error('ZonelessChangeDetector.app not set yet');\n        }\n\n        return ZonelessChangeDetector.app;\n    }\n}\n\n/**\n * This handy function makes sure that in the next animation frame the given ChangeDetectorRef is called.\n * It makes automatically sure that it is only called once per frame.\n */\nexport function detectChangesNextFrame(cd?: ChangeDetectorRef, done?: () => any) {\n    if (cd) {\n        if (lastFrameRequestStack.has(cd)) return;\n        lastFrameRequestStack.add(cd);\n        if (done) lastFrameRequestStackDoneCb.push(done);\n    }\n\n    if (lastFrameRequest) {\n        return;\n    }\n\n    lastFrameRequest = nextTick(() => {\n        lastFrameRequest = undefined;\n        for (const i of lastFrameRequestStack) {\n            i.detectChanges();\n        }\n        for (const i of lastFrameRequestStackDoneCb) {\n            i();\n        }\n        //since ivy we have to use tick() and can not use i.detectChanges().\n        lastFrameRequestStackDoneCb = [];\n        lastFrameRequestStack.clear();\n        ZonelessChangeDetector.getApp().tick();\n    });\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { MenuDirective } from '../app/menu.component';\nimport { arrayRemoveItem, nextTick } from '@deepkit/core';\nimport { Subscription } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { Electron } from '../../core/utils';\n\n@Injectable()\nexport class WindowMenuState {\n    menus: MenuDirective[] = [];\n    focused = true;\n\n    subscriptions = new Map<MenuDirective, Subscription>();\n\n    addMenu(menu: MenuDirective) {\n        this.menus.push(menu);\n        this.subscriptions.set(menu, menu.change.subscribe(() => {\n            this.build();\n        }));\n\n        this.build();\n    }\n\n    removeMenu(menu: MenuDirective) {\n        this.subscriptions.get(menu)!.unsubscribe();\n        this.subscriptions.delete(menu);\n        arrayRemoveItem(this.menus, menu);\n        this.build();\n    }\n\n    build() {\n        nextTick(() => {\n            this._build();\n        })\n    }\n\n    protected _build() {\n        const template: any[] = [];\n\n        //todo, merge menus with same id(), id falls back to role+label\n        // then we can use fileMenu in sub views and add sub menu items as we want\n        for (const menu of this.menus) {\n            if (menu.validOs()) {\n                template.push(menu.buildTemplate());\n            }\n        }\n\n        if (!template.length) {\n            template.push(...[\n                { role: 'appMenu' },\n                { role: 'fileMenu' },\n                { role: 'editMenu' },\n                { role: 'viewMenu' },\n                { role: 'windowMenu' },\n            ]);\n        }\n\n        if (Electron.isAvailable()) {\n            const remote: any = Electron.getRemote();\n            if (remote) {\n                try {\n                    const menu = remote.Menu.buildFromTemplate(template);\n                    remote.Menu.setApplicationMenu(menu);\n                } catch (error) {\n                    console.error('Could not buildFromTemplate', template);\n                    console.error(error);\n                }\n            } else {\n                console.warn('Not in electron environment');\n            }\n        }\n    }\n\n    focus() {\n        //set our electron menu\n        //Menu.setApplicationMenu()\n        this.build();\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    AfterViewInit,\n    ContentChildren,\n    Directive,\n    EventEmitter,\n    forwardRef,\n    Input,\n    OnDestroy,\n    Output,\n    QueryList,\n} from '@angular/core';\nimport { WindowMenuState } from '../window/window-menu';\nimport { arrayHasItem } from '@deepkit/core';\nimport { Subscription } from 'rxjs';\nimport { Electron } from '../../core/utils';\n\n@Directive()\nexport class MenuBase implements AfterViewInit {\n    @Input() label?: string;\n    @Input() sublabel?: string;\n    @Input() icon?: string;\n    @Input() enabled: boolean = true;\n    @Input() accelerator?: string;\n    @Input() role?: string;\n\n    @Input() visible: boolean = true;\n\n    @Input() onlyMacOs: boolean | '' = false;\n    @Input() noMacOs: boolean | '' = false;\n\n    @Input() id?: string;\n    @Input() before?: string;\n    @Input() after?: string;\n    @Input() beforeGroupContaining?: string;\n    @Input() afterGroupContaining?: string;\n\n    @Output() click = new EventEmitter();\n\n    @Output() change = new EventEmitter;\n\n    public type = '';\n\n    protected registered = new Set<MenuBase>();\n    protected subscriptions = new Map<MenuBase, Subscription>();\n\n    @ContentChildren(MenuBase) public child?: QueryList<MenuBase>;\n\n    constructor() {\n\n    }\n\n    buildTemplate() {\n        const submenu: any[] = [];\n        if (this.child) {\n            for (const item of this.child.toArray()) {\n                if (item === this) continue;\n                if (!item.validOs()) {\n                    continue;\n                }\n                submenu.push(item.buildTemplate());\n            }\n        }\n\n        const result: { [name: string]: any } = {\n            click: () => {\n                this.click.emit()\n            },\n        };\n\n        if (this.label) result['label'] = this.label;\n        if (this.sublabel) result['sublabel'] = this.sublabel;\n\n        if (!this.enabled) result['enabled'] = false;\n        if (this.type) result['type'] = this.type;\n\n        if (this.accelerator) result['accelerator'] = this.accelerator;\n        if (this.role) result['role'] = this.role;\n        if (this.type) result['type'] = this.type;\n        if (this.accelerator) result['accelerator'] = this.accelerator;\n        if (submenu.length) result['submenu'] = submenu;\n\n        return result;\n    }\n\n    public validOs(): boolean {\n        if (Electron.isAvailable()) {\n            if (this.onlyMacOs !== false && Electron.getProcess().platform !== 'darwin') {\n                return false;\n            }\n\n            if (this.noMacOs !== false && Electron.getProcess().platform === 'darwin') {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    ngAfterViewInit() {\n        if (this.child) {\n            this.child!.changes.subscribe((items: MenuBase[]) => {\n                for (const item of items) {\n                    if (!this.registered.has(item)) {\n                        this.registered.add(item);\n                        this.subscriptions.set(item, item.change.subscribe(() => {\n                            this.change.emit();\n                        }));\n                    }\n                }\n\n                for (const item of this.registered) {\n                    if (!arrayHasItem(items, item)) {\n                        //got removed\n                        this.registered.delete(item);\n                        this.subscriptions.get(item)!.unsubscribe();\n                        this.subscriptions.delete(item);\n                    }\n                }\n\n                this.change.emit();\n            });\n        }\n    }\n}\n\n@Directive({\n    selector: 'dui-menu-item',\n    standalone: false,\n    providers: [{ provide: MenuBase, useExisting: forwardRef(() => MenuItemDirective) }]\n})\nexport class MenuItemDirective extends MenuBase {\n}\n\n@Directive({\n    selector: 'dui-menu-checkbox',\n    standalone: false,\n    providers: [{ provide: MenuBase, useExisting: forwardRef(() => MenuCheckboxDirective) }]\n})\nexport class MenuCheckboxDirective extends MenuBase {\n    @Input() checked: boolean = false;\n\n    type = 'checkbox';\n\n    buildTemplate() {\n        return { ...super.buildTemplate(), checked: this.checked };\n    }\n}\n\n@Directive({\n    selector: 'dui-menu-radio',\n    standalone: false,\n    providers: [{ provide: MenuBase, useExisting: forwardRef(() => MenuRadioDirective) }]\n})\nexport class MenuRadioDirective extends MenuBase {\n    @Input() checked: boolean = false;\n\n    type = 'radio';\n\n    buildTemplate() {\n        return { ...super.buildTemplate(), checked: this.checked };\n    }\n}\n\n@Directive({\n    selector: 'dui-menu-separator',\n    standalone: false,\n    providers: [{ provide: MenuBase, useExisting: forwardRef(() => MenuSeparatorDirective) }]\n})\nexport class MenuSeparatorDirective extends MenuBase {\n    type = 'separator';\n}\n\n@Directive({\n    selector: 'dui-menu',\n    standalone: false,\n})\nexport class MenuDirective extends MenuBase implements OnDestroy, AfterViewInit {\n    @Input() position: number = 0;\n\n    constructor(protected windowMenuState: WindowMenuState) {\n        super();\n    }\n\n    ngAfterViewInit() {\n        super.ngAfterViewInit();\n        this.windowMenuState.addMenu(this);\n    }\n\n    ngOnDestroy() {\n        this.windowMenuState.removeMenu(this);\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { Directive, EmbeddedViewRef, Injectable, Input, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { detectChangesNextFrame, scheduleWindowResizeEvent } from './utils';\n\nlet i = 0;\n\nlet currentViewDirective: ViewDirective | undefined;\n\n@Injectable()\nexport class ViewState {\n    public id = i++;\n\n    public viewDirective?: ViewDirective = currentViewDirective;\n\n    get attached() {\n        return this.viewDirective ? this.viewDirective.isVisible() : true;\n    }\n}\n\n@Directive({\n    selector: '[duiView]',\n    standalone: false,\n    providers: [{ provide: ViewState, useClass: ViewState }]\n})\nexport class ViewDirective implements OnDestroy {\n    protected view?: EmbeddedViewRef<any>;\n\n    protected visible = false;\n\n    public readonly parentViewDirective: ViewDirective | undefined;\n\n    constructor(\n        protected template: TemplateRef<any>,\n        protected viewContainer: ViewContainerRef,\n    ) {\n        this.parentViewDirective = currentViewDirective;\n    }\n\n    public isVisible() {\n        if (this.view) {\n            for (const node of this.view.rootNodes) {\n                if (node.style && node.offsetParent !== null) {\n                    return true;\n                }\n            }\n\n            return false;\n        }\n\n        return this.visible;\n    }\n\n    @Input()\n    set duiView(v: boolean) {\n        if (this.visible === v) return;\n\n        this.visible = v;\n\n        if (this.visible) {\n            if (this.view) {\n                this.view.rootNodes.map(element => {\n                    if (element.style) {\n                        element.style.display = '';\n                    }\n                });\n                this.view!.reattach();\n                this.view.markForCheck();\n                scheduleWindowResizeEvent();\n                return;\n            }\n\n            const old = currentViewDirective;\n            currentViewDirective = this;\n            this.view = this.viewContainer.createEmbeddedView(this.template);\n            currentViewDirective = old;\n        } else {\n            if (this.view) {\n                this.view!.rootNodes.map(element => {\n                    if (element.style) {\n                        element.style.display = 'none';\n                    }\n                });\n                //let the last change detection run so ViewState have correct state\n                this.view!.detectChanges();\n                this.view!.detach();\n                this.view.markForCheck();\n                detectChangesNextFrame(this.view);\n            }\n        }\n    }\n\n    ngOnDestroy() {\n        if (this.view) {\n            this.view.destroy();\n        }\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { Component, Input } from '@angular/core';\n\n@Component({\n    selector: 'dui-cd-counter',\n    standalone: false,\n    template: `{{counter}}`\n})\nexport class CdCounterComponent {\n    private i = 0;\n\n    @Input() name?: string;\n\n    get counter() {\n        this.i++;\n        return this.i;\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { Directive, ElementRef, HostListener, Input, OnInit } from '@angular/core';\nimport { nextTick } from '@deepkit/core';\n\n@Directive({\n    selector: '[duiClassMin]',\n    standalone: false,\n})\nexport class DuiResponsiveDirective implements OnInit {\n    clazz: { [className: string]: boolean } = {};\n    protected lastRequest: any;\n\n    @Input() duiClassMin: { [className: string]: number } = {};\n\n    constructor(\n        private element: ElementRef,\n    ) { }\n\n    ngOnInit() {\n        this.onResize();\n    }\n\n    @HostListener('window:resize')\n    onResize() {\n        if (this.lastRequest) {\n            cancelAnimationFrame(this.lastRequest);\n        }\n\n        this.lastRequest = nextTick(() => {\n            const element: HTMLElement = this.element.nativeElement;\n            for (const [name, number] of Object.entries(this.duiClassMin)) {\n                const valid = element.offsetWidth > number;\n                if (this.clazz[name] !== valid) {\n                    this.clazz[name] = valid;\n                    if (valid) {\n                        element.classList.add(name);\n                    } else {\n                        element.classList.remove(name);\n                    }\n                }\n            }\n        });\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { ChangeDetectorRef, Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { arrayRemoveItem } from '@deepkit/core';\nimport { WindowMenuState } from './window-menu';\nimport { BehaviorSubject } from 'rxjs';\nimport { detectChangesNextFrame } from '../app/utils';\n\ninterface WinHeader {\n    getBottomPosition(): number;\n}\n\ninterface Win {\n    id: number;\n    electronWindow?: any;\n    getClosestNonDialogWindow(): Win | undefined;\n    header?: WinHeader;\n    viewContainerRef: ViewContainerRef;\n}\n\n@Injectable()\nexport class WindowRegistry {\n    id = 0;\n\n    registry = new Map<Win, {\n        state: WindowState,\n        menu: WindowMenuState,\n        cd: ChangeDetectorRef,\n        viewContainerRef: ViewContainerRef\n    }>();\n\n    windowHistory: Win[] = [];\n    activeWindow?: Win;\n\n    /**\n     * When BrowserWindow of electron is focused.\n     */\n    public focused = new BehaviorSubject(false);\n\n    constructor() {\n        this.focused.subscribe((v) => {\n            for (const win of this.registry.values()) {\n                win.state.focus.next(v);\n            }\n            detectChangesNextFrame();\n        });\n    }\n\n    getAllElectronWindows(): any[] {\n        return [...this.registry.keys()].filter(v => !!v.electronWindow).map(v => v.electronWindow);\n    }\n\n    register(win: Win, cd: ChangeDetectorRef, state: WindowState, menu: WindowMenuState, viewContainerRef: ViewContainerRef) {\n        this.id++;\n        win.id = this.id;\n\n        this.registry.set(win, {\n            state, menu, cd, viewContainerRef,\n        });\n    }\n\n    /**\n     * Finds the activeWindow and returns its most outer parent.\n     */\n    getOuterActiveWindow(): Win | undefined {\n        if (this.activeWindow) return this.activeWindow.getClosestNonDialogWindow();\n    }\n\n    getCurrentViewContainerRef(): ViewContainerRef {\n        if (this.activeWindow) {\n            return this.activeWindow.viewContainerRef;\n            // const reg = this.registry.get(this.activeWindow);\n            // if (reg) {\n            //     return reg.viewContainerRef;\n            // }\n        }\n\n        throw new Error('No active window');\n    }\n\n    focus(win: Win) {\n        if (this.activeWindow === win) return;\n\n        const reg = this.registry.get(win);\n        if (!reg) throw new Error('Window not registered');\n\n        this.activeWindow = win;\n\n        arrayRemoveItem(this.windowHistory, win);\n        this.windowHistory.push(win);\n\n        reg.state.focus.next(true);\n        reg.menu.focus();\n        detectChangesNextFrame();\n    }\n\n    blur(win: Win) {\n        const reg = this.registry.get(win);\n        if (reg) {\n            reg.state.focus.next(false);\n        }\n        if (this.activeWindow === win) {\n            delete this.activeWindow;\n        }\n\n        detectChangesNextFrame();\n    }\n\n    unregister(win: Win) {\n        const reg = this.registry.get(win);\n        if (reg) {\n            reg.state.focus.next(false);\n        }\n\n        this.registry.delete(win);\n        arrayRemoveItem(this.windowHistory, win);\n\n        if (this.windowHistory.length) {\n            this.focus(this.windowHistory[this.windowHistory.length - 1]);\n        }\n        detectChangesNextFrame();\n    }\n}\n\ninterface AlignedButtonGroup {\n    sidebarMoved: () => void;\n    activateOneTimeAnimation: () => void;\n}\n\n@Injectable()\nexport class WindowState {\n    public buttonGroupAlignedToSidebar?: AlignedButtonGroup;\n    public focus = new BehaviorSubject<boolean>(false);\n    public disableInputs = new BehaviorSubject<boolean>(false);\n\n    public toolbars: { [name: string]: TemplateRef<any>[] } = {};\n    public toolbarContainers: { [name: string]: { toolbarsUpdated: () => void } } = {};\n\n    closable = true;\n    maximizable = true;\n    minimizable = true;\n\n    constructor() {\n    }\n\n    public addToolbarContainer(forName: string, template: TemplateRef<any>) {\n        if (!this.toolbars[forName]) {\n            this.toolbars[forName] = [];\n        }\n\n        this.toolbars[forName].push(template);\n\n        if (this.toolbarContainers[forName]) {\n            this.toolbarContainers[forName].toolbarsUpdated();\n        }\n    }\n\n    public removeToolbarContainer(forName: string, template: TemplateRef<any>) {\n        arrayRemoveItem(this.toolbars[forName], template);\n        if (this.toolbarContainers[forName]) {\n            this.toolbarContainers[forName].toolbarsUpdated();\n        }\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { InjectionToken } from '@angular/core';\n\nexport const ELECTRON_WINDOW = new InjectionToken('Electron window');\n\nexport const IN_DIALOG = new InjectionToken('In dialog');\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { ChangeDetectorRef, OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { detectChangesNextFrame } from './utils';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport { humanBytes } from '@deepkit/core';\n\n/**\n * Almost the same as |async pipe, but renders directly (detectChanges() instead of marking it only(markForCheck())\n * on ChangeDetectorRef.\n */\n@Pipe({ name: 'asyncRender', standalone: false, pure: false })\nexport class AsyncRenderPipe implements OnDestroy, PipeTransform {\n    protected subscription?: Subscription;\n    protected lastValue?: any;\n    protected lastReturnedValue?: any;\n\n    constructor(\n        protected cd: ChangeDetectorRef) {\n    }\n\n    ngOnDestroy(): void {\n        if (this.subscription) this.subscription.unsubscribe();\n    }\n\n    transform<T>(value?: Observable<T> | Promise<T>): T | undefined {\n        if (this.lastValue !== value) {\n            if (this.subscription) this.subscription.unsubscribe();\n            this.lastReturnedValue = undefined;\n            this.lastValue = value;\n\n            if (value instanceof Promise) {\n                value.then((v) => {\n                    this.lastReturnedValue = v;\n                    detectChangesNextFrame(this.cd);\n                });\n            } else if (value) {\n                this.subscription = value.subscribe((next) => {\n                    this.lastReturnedValue = next;\n                    detectChangesNextFrame(this.cd);\n                });\n            }\n        }\n\n        return this.lastReturnedValue;\n    }\n}\n\n@Pipe({name: 'objectURL', standalone: false})\nexport class ObjectURLPipe implements PipeTransform, OnDestroy {\n    protected lastUrl?: string;\n\n    constructor(private sanitizer: DomSanitizer) {\n    }\n\n    ngOnDestroy(): void {\n        if (this.lastUrl) URL.revokeObjectURL(this.lastUrl);\n    }\n\n    transform(buffer?: ArrayBuffer | ArrayBufferView, mimeType?: string): SafeUrl | undefined {\n        if (buffer) {\n            if (this.lastUrl) URL.revokeObjectURL(this.lastUrl);\n            this.lastUrl = URL.createObjectURL(new Blob([buffer], {type: mimeType}));\n            return this.sanitizer.bypassSecurityTrustResourceUrl(this.lastUrl);\n        }\n    }\n}\n\n@Pipe({name: 'fileSize', standalone: false})\nexport class HumanFileSizePipe implements PipeTransform {\n    transform(bytes: number, si: boolean = false): string {\n        return humanBytes(bytes, si);\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    AfterViewInit,\n    ApplicationRef,\n    inject,\n    NgModule,\n    OnDestroy,\n    Type,\n    ɵComponentDef as ComponentDef,\n    ɵNG_COMP_DEF as NG_COMP_DEF,\n} from '@angular/core';\nimport { getClassName, nextTick, throttleTime } from '@deepkit/core';\nimport { EventDispatcher, EventToken } from '@deepkit/event';\nimport { Subscription } from 'rxjs';\n\nexport function observeAction() {\n    return function (target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<any>): TypedPropertyDescriptor<any> | void {\n        const originalMethod = descriptor.value;\n\n        descriptor.value = function (...args: any[]) {\n            const result = originalMethod.apply(this, args);\n\n            if (result && result.then) {\n                result.then(() => {\n                    ReactiveChangeDetectionModule.tick();\n                }, () => {\n                    ReactiveChangeDetectionModule.tick();\n                });\n            } else {\n                ReactiveChangeDetectionModule.tick();\n            }\n\n            return result;\n        };\n\n        return descriptor;\n    };\n}\n\nconst lazyValuesStore = new WeakMap<any, object>();\nconst lazyValuesSubscriptions = new WeakMap<any, object>();\nconst lazyValuesDestroyed = new WeakMap<any, object>();\n\nfunction lazyInitialize(target: any, map: WeakMap<any, object> = lazyValuesStore): any {\n    let object = map.get(target);\n    if (object) return object;\n    object = {};\n    map.set(target, object);\n    return object;\n}\n\nfunction getRealMethodHookName(value: string): string {\n    return 'ng' + value.substr(0, 1).toUpperCase() + value.substr(1);\n}\n\nfunction addComponentHook<T>(target: T, hookName: 'onDestroy' | 'onChanges' | 'onInit' | 'afterViewInit', fn: (this: T) => void) {\n    const cdef: ComponentDef<any> = ((target as any).constructor as any)[NG_COMP_DEF];\n    if (cdef) {\n        //prod build\n        const ori = (cdef as any)[hookName];\n        ((cdef as any)['onDestroy'] as any) = function (this: any, ...args: any[]) {\n            fn.call(this);\n            ori && (ori as any).apply(this, args);\n        };\n    } else {\n        const ori = (target as any).constructor.prototype[getRealMethodHookName(hookName)];\n        (target as any).constructor.prototype[getRealMethodHookName(hookName)] = function (this: any, ...args: any[]) {\n            fn.call(this);\n            ori && (ori as any).apply(this, args);\n        };\n    }\n}\n\n/**\n * Automatically unsubscribe the value (calling unsubscribe() on the current value)\n * when ngOnDestroy is called or a new value has been set.\n * When the component is already destroyed, newly set values will be unscubribed immediately.\n * This makes sure when a component is destroyed too fast before a async operation is completed\n * that the result is unsubscribed, otherwise it would be a memory leak.\n */\nexport function unsubscribe<T extends OnDestroy>() {\n    return function (target: T, propertyKey: string | symbol) {\n\n        function unsub(value: any) {\n            if (value && value.unsubscribe) {\n                try {\n                    value.unsubscribe();\n                } catch (error) {\n                    console.log('Subscription was already unsubscribed.', getClassName(target), propertyKey);\n                }\n            }\n        }\n\n        Object.defineProperty(target, propertyKey, {\n            enumerable: true,\n            configurable: false, //even with true the prop cant be deleted using `delete this.name`\n            get() {\n                const store = lazyInitialize(this);\n                return store[propertyKey];\n            },\n\n            set(value) {\n                const destroyed = lazyInitialize(this, lazyValuesDestroyed);\n                const store = lazyInitialize(this);\n                unsub(store[propertyKey]);\n                if (destroyed['destroyed']) {\n                    unsub(value);\n                }\n                store[propertyKey] = value;\n            }\n        });\n\n        addComponentHook(target, 'onDestroy', function () {\n            const destroyed = lazyInitialize(this, lazyValuesDestroyed);\n            destroyed['destroyed'] = true;\n            const store = lazyInitialize(this);\n            if (store[propertyKey]) {\n                unsub(store[propertyKey]);\n            }\n        });\n    };\n}\n\n/**\n * Listens on the given event token and calls the method when the event is triggered.\n *\n * @example\n * ```typescript\n *\n * const MyEvent = new EventToken('my-event');\n *\n * @Component({\n *     //..\n * });\n * class MyComponent {\n *     @EventListener(MyEvent)\n *     onMyEvent(event: MyEvent) {\n *         console.log('event triggered', event);\n *     }\n * }\n * ```\n */\nexport function EventListener(eventToken: EventToken) {\n    return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n        const originalConstructor = target.constructor;\n\n        const newConstructor: any = function (...args: any[]) {\n            const instance = new originalConstructor(...args);\n            const store = lazyInitialize(instance);\n            const eventDispatcher = inject(EventDispatcher);\n            console.log('listen', eventToken, propertyKey);\n            store['Ωlistener_' + propertyKey] = eventDispatcher.listen(eventToken, (event) => {\n                instance[propertyKey](event);\n            });\n            return instance;\n        };\n        newConstructor.prototype = originalConstructor.prototype;\n        target.constructor = newConstructor;\n        addComponentHook(newConstructor, 'onDestroy', function () {\n            const store = lazyInitialize(this);\n            const unsubscribe = store['Ωlistener_' + propertyKey];\n            if (unsubscribe) unsubscribe();\n        });\n    };\n}\n\n/**\n * Important for components that use material design, which need Tick in AfterViewInit.\n */\nexport function reactiveComponent<T extends AfterViewInit>() {\n    return function (target: Type<T>) {\n        addComponentHook(target.prototype, 'afterViewInit', function () {\n            ReactiveChangeDetectionModule.tick();\n        });\n    };\n}\n\n/**\n * Automatically subscribes on the value (when set) to trigger application ticks automatically.\n * When value is changed, the old subscription is cancelled and a new on the new value is created.\n *\n * Optionally @observe({unsubscribe: true}) unsubscribes the whole value as well (calling unsubscribe() on current value) on NgOnDestroy or when net property value is set.\n */\nexport function observe<T extends {}>(options: { unsubscribe?: true } = {}) {\n    return function (target: T, propertyKey: string | symbol) {\n\n        function unsub(value: any) {\n            if (value && value.unsubscribe) {\n                try {\n                    value.unsubscribe();\n                } catch (error) {\n                    console.log('Subscription was already unsubscribed.', getClassName(target), propertyKey);\n                }\n            }\n        }\n\n        Object.defineProperty(target, propertyKey, {\n            enumerable: true,\n            configurable: false, //even with true the prop cant be deleted using `delete this.name`\n            get() {\n                const store = lazyInitialize(this);\n                return store[propertyKey];\n            },\n\n            set(value) {\n                const destroyed = lazyInitialize(this, lazyValuesDestroyed);\n                const store = lazyInitialize(this);\n                const subscriptions = lazyInitialize(this, lazyValuesSubscriptions);\n\n                if (subscriptions[propertyKey]) {\n                    unsub(subscriptions[propertyKey] as Subscription);\n                    delete subscriptions[propertyKey];\n                }\n\n                if (options.unsubscribe && store[propertyKey] && store[propertyKey].unsubscribe) {\n                    unsub(store[propertyKey]);\n                }\n\n                if (!destroyed['destroyed'] && value && value.subscribe) {\n                    subscriptions[propertyKey] = value.subscribe(() => {\n                        ReactiveChangeDetectionModule.tick();\n                    });\n                }\n                if (destroyed['destroyed'] && options.unsubscribe) {\n                    unsub(value);\n                }\n\n                ReactiveChangeDetectionModule.tick();\n\n                store[propertyKey] = value;\n            }\n        });\n\n        addComponentHook(target, 'onDestroy', function () {\n            const destroyed = lazyInitialize(this, lazyValuesDestroyed);\n            destroyed['destroyed'] = true;\n            const store = lazyInitialize(this);\n            const subscriptions = lazyInitialize(this, lazyValuesSubscriptions);\n\n            if (subscriptions[propertyKey]) {\n                unsub(subscriptions[propertyKey]);\n                delete subscriptions[propertyKey];\n            }\n\n            if (options.unsubscribe) {\n                unsub(store[propertyKey]);\n            }\n        });\n    };\n}\n\n@NgModule({})\nexport class ReactiveChangeDetectionModule {\n    private static a: ApplicationRef;\n    // private static lastAnimationFrame?: number;\n    private static throttled: Function;\n\n    constructor(a: ApplicationRef) {\n        ReactiveChangeDetectionModule.a = a;\n\n        ReactiveChangeDetectionModule.throttled = throttleTime(() => {\n            ReactiveChangeDetectionModule.a.tick();\n        }, 1000 / 25);\n    }\n\n    public static tick() {\n        nextTick(() => {\n            ReactiveChangeDetectionModule.throttled();\n        });\n    }\n}\n","import {\n    deserialize,\n    Excluded,\n    ReflectionClass,\n    ReflectionKind,\n    resolveTypeMembers,\n    serialize,\n    Serializer,\n    Type,\n    typeAnnotation,\n    TypeClass,\n} from '@deepkit/type';\nimport {\n    ClassType,\n    getClassTypeFromInstance,\n    getPathValue,\n    setPathValue,\n    throttleTime,\n    TypeAnnotation,\n} from '@deepkit/core';\nimport { EventToken } from '@deepkit/event';\nimport { ApplicationRef, Injector } from '@angular/core';\nimport { NavigationEnd, ResolveEnd, Router } from '@angular/router';\nimport onChange from 'on-change';\n\n/**\n * If this type decorator is used then the property is not persisted in localStorage,\n * but in the URL instead and recovered from the URL when reloaded.\n *\n * @example\n * ```typescript\n * class State extends EfficientState {\n *    shop: number & PartOfUrl = 0;\n * }\n * ```\n */\nexport type PartOfUrl = TypeAnnotation<'partOfUrl'>;\n\nexport type FilterActions<T> = { [name in keyof T]: T[name] extends (a: infer A extends [...a: any[]], ...args: any[]) => infer R ? (...args: A) => R : never };\n\n/**\n * EfficientState is a base class for all states that are used in the frontend.\n *\n * @example\n * ```typescript\n * //state that won't be persisted is used as `VolatileState & Excluded`\n * class VolatileState {\n *     shops: Shop[] = [];\n *\n *     user?: User;\n * }\n *\n * export class State extends EfficientState {\n *     shop: number & PartOfUrl = 0;\n *     sidebarVisible: boolean = true;\n *     searchQuery: string = '';\n *\n *     volatile: VolatileState & Excluded = new VolatileState();\n *\n *     //normal methods are supported\n *     getShop(): Shop | undefined {\n *         return this.volatile.getShop(this.shop);\n *     }\n *\n *     //actions have access to Angular's DI container\n *     async authenticated([user]: [FrontendUser], client: ControllerClient) {\n *         this.volatile.shops = await client.shop.getShops();\n *         this.volatile.user = user;\n *     }\n * }\n * ```\n */\nexport class EfficientState {\n    call: FilterActions<this> & Excluded;\n\n    constructor(injector?: Injector) {\n        this.call = {} as any;\n        if (!injector) return;\n        const app = injector.get(ApplicationRef);\n\n        for (const method of ReflectionClass.from(this.constructor as any).getMethods()) {\n            if (method.name === 'constructor') continue;\n            const params = method.getParameters().slice(1).map(v => v.type).filter(v => v.kind === ReflectionKind.class) as TypeClass[];\n            (this.call as any)[method.name] = (...args: any[]) => {\n                const deps: any = params.map(v => injector.get(v.classType));\n                const res = (this as any)[method.name](args, ...deps);\n                if (res instanceof Promise) {\n                    return res.finally(() => app.tick());\n                }\n                return res;\n            };\n        }\n    }\n}\n\nexport function findPartsOfUrl(stateClass: ClassType) {\n    const paths: string[] = [];\n    const schema = ReflectionClass.from(stateClass);\n    findPartsOfUrlForType(schema.type, paths);\n    return paths;\n}\n\nexport function getQueryObject(state: EfficientState) {\n    const query: any = {};\n    const paths = findPartsOfUrl(getClassTypeFromInstance(state));\n    for (const path of paths) {\n        const value = getPathValue(state, path);\n        if (value !== undefined) query[path] = value;\n    }\n    return query;\n}\n\nexport function findPartsOfUrlForType(type: Type, paths: string[] = [], prefix: string = '', state: any[] = []) {\n    if (state.includes(type)) return;\n    state.push(type);\n    if (type.kind === ReflectionKind.class || type.kind === ReflectionKind.objectLiteral) {\n        for (const property of resolveTypeMembers(type)) {\n            if (property.kind !== ReflectionKind.property && property.kind !== ReflectionKind.propertySignature) continue;\n            if (property.type.kind === ReflectionKind.class || property.type.kind === ReflectionKind.objectLiteral) {\n                findPartsOfUrlForType(property.type, paths, (prefix ? prefix + '.' : '') + String(property.name), state);\n            } else {\n                const meta = typeAnnotation.getType(property.type, 'partOfUrl');\n                if (meta) {\n                    paths.push((prefix ? prefix + '.' : '') + String(property.name));\n                }\n            }\n        }\n    }\n}\n\nconst stateSerializer: Serializer = new class extends Serializer {\n    protected registerSerializers() {\n        super.registerSerializers();\n\n        this.serializeRegistry.registerClass(EventToken, (type, state) => {\n            state.template = ''; //don't serialize EventToken\n        });\n\n        this.deserializeRegistry.registerClass(EventToken, (type, state) => {\n            state.template = ''; //don't serialize EventToken\n        });\n    }\n};\n\n/**\n * Angular provider factory for the state class.\n *\n * @example\n * ```typescript\n *\n * @Injectable()\n * export class State extends EfficientState {\n *    //events\n *    fileAdded = new EventToken('file.added');\n *\n *    //persisted state\n *    shop: number = 0;\n *    sidebarVisible: boolean = true;\n * }\n *\n * @NgModule({\n *     providers: [\n *         provideState(State),\n *     ]\n * })\n * class AppModule {}\n * ```\n */\nexport function provideState(stateClass: ClassType, localStorageKey: string = 'appState') {\n    const stateType = ReflectionClass.from(stateClass).type;\n\n    return {\n        provide: stateClass, deps: [Router, Injector], useFactory: (router: Router, injector: Injector) => {\n            let state = new stateClass(injector);\n            try {\n                const nextState: any = deserialize(JSON.parse(localStorage.getItem(localStorageKey) || ''), undefined, stateSerializer, undefined, stateType);\n                if (nextState) {\n                    delete nextState.call;\n                    Object.assign(state, nextState);\n                }\n            } catch (error) {\n            }\n\n            function loadFromRoute(query: object) {\n                // console.log('loadFromRoute', query);\n                for (const [path, value] of Object.entries(query)) {\n                    setPathValue(state, path, value);\n                }\n            }\n\n            function updateQueries() {\n                const queryParams = getQueryObject(state);\n                const current = router.routerState.snapshot.root.queryParams;\n                //check if different\n                let different = false;\n                for (const [key, value] of Object.entries(queryParams)) {\n                    if (current[key] !== value) {\n                        different = true;\n                        break;\n                    }\n                }\n                if (different) {\n                    router.navigate([], { queryParams: queryParams, queryParamsHandling: 'merge', replaceUrl: true });\n                }\n            }\n\n            const updateStorage = throttleTime(() => {\n                localStorage.setItem(localStorageKey, JSON.stringify(serialize(state, undefined, stateSerializer, undefined, stateType)));\n                updateQueries();\n            });\n\n            router.events.subscribe((event) => {\n                // console.log('event', event);\n                if (event instanceof ResolveEnd) {\n                    loadFromRoute(event.state.root.queryParams);\n                }\n                if (event instanceof NavigationEnd) {\n                    updateQueries();\n                }\n            });\n\n            return onChange(state, (path: any, value: any, previousValue: any) => {\n                // console.log('State changed', path, value, previousValue);\n                if (value === previousValue) return;\n                updateStorage();\n            }, {\n                ignoreKeys: ['call', 'volatile']\n            });\n        }\n    };\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    ApplicationRef,\n    Component,\n    Directive,\n    HostBinding,\n    Inject,\n    Injectable,\n    Input,\n    ModuleWithProviders,\n    NgModule,\n    Optional,\n    Renderer2,\n    RendererFactory2,\n} from '@angular/core';\nimport { MenuCheckboxDirective, MenuDirective, MenuItemDirective, MenuRadioDirective, MenuSeparatorDirective } from './menu.component';\nimport { detectChangesNextFrame, OpenExternalDirective, ZonelessChangeDetector } from './utils';\nimport { ViewDirective } from './dui-view.directive';\nimport { CdCounterComponent } from './cd-counter.component';\nimport { DuiResponsiveDirective } from './dui-responsive.directive';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport { Electron } from '../../core/utils';\nimport { ActivationEnd, NavigationEnd, Router } from '@angular/router';\nimport { WindowRegistry } from '../window/window-state';\nimport { ELECTRON_WINDOW, IN_DIALOG } from './token';\nimport { AsyncRenderPipe, HumanFileSizePipe, ObjectURLPipe } from './pipes';\nimport { ReactiveChangeDetectionModule } from './reactivate-change-detection';\nimport { arrayRemoveItem } from '@deepkit/core';\nimport { EventDispatcher } from '@deepkit/event';\n\nexport * from './reactivate-change-detection';\nexport * from './cd-counter.component';\nexport * from './dui-view.directive';\nexport * from './dui-responsive.directive';\nexport * from './utils';\nexport * from './menu.component';\nexport * from './pipes';\nexport * from './state';\n\nif ('undefined' !== typeof window && 'undefined' === typeof (window as any)['global']) {\n    (window as any).global = window;\n}\n\n@Directive()\nexport class BaseComponent {\n    @Input() disabled?: boolean;\n\n    @HostBinding('class.disabled')\n    get isDisabled() {\n        return this.disabled === true;\n    }\n}\n\n@Component({\n    selector: 'ui-component',\n    standalone: false,\n    template: `\n        {{name}} disabled={{isDisabled}}\n    `,\n    styles: [`\n        :host {\n            display: inline-block;\n        }\n\n        :host.disabled {\n            border: 1px solid red;\n        }\n    `],\n    host: {\n        '[class.is-textarea]': 'name === \"textarea\"',\n    }\n})\nexport class UiComponentComponent extends BaseComponent {\n    @Input() name: string = '';\n}\n\nexport class OverlayStackItem {\n    constructor(public host: HTMLElement, protected stack: OverlayStackItem[], public release: () => void) {\n    }\n\n    getAllAfter(): OverlayStackItem[] {\n        const result: OverlayStackItem[] = [];\n\n        let flip = false;\n        for (let i = 0; i < this.stack.length; i++) {\n            if (flip) result.push(this.stack[i]);\n            if (this.stack[i] === this) flip = true;\n        }\n        return result;\n    }\n\n    getPrevious(): OverlayStackItem | undefined {\n        const before = this.getAllBefore();\n        return before.length ? before[before.length - 1] : undefined;\n    }\n\n    isLast(): boolean {\n        return this.getAllAfter().length === 0;\n    }\n\n    getAllBefore(): OverlayStackItem[] {\n        const result: OverlayStackItem[] = [];\n\n        for (let i = 0; i < this.stack.length; i++) {\n            if (this.stack[i] === this) return result;\n            result.push(this.stack[i]);\n        }\n        return result;\n    }\n}\n\nexport class OverlayStack {\n    public stack: OverlayStackItem[] = [];\n\n    public register(host: HTMLElement): OverlayStackItem {\n        const item = new OverlayStackItem(host, this.stack, () => {\n            const before = item.getPrevious();\n            if (before) before.host.focus();\n            arrayRemoveItem(this.stack, item);\n        });\n        this.stack.push(item);\n        return item;\n    }\n}\n\n@Injectable()\nexport class Storage {\n    getItem(key: string): any {\n        return 'undefined' === typeof localStorage ? undefined : localStorage.getItem(key);\n    }\n\n    setItem(key: string, value: any): void {\n        if ('undefined' === typeof localStorage) return;\n        localStorage.setItem(key, value);\n    }\n\n    removeItem(key: string): void {\n        if ('undefined' === typeof localStorage) return;\n        localStorage.removeItem(key);\n    }\n}\n\n@Injectable()\nexport class DuiApp {\n    protected darkMode?: boolean = false;\n    protected platform: 'web' | 'darwin' | 'linux' | 'win32' = 'darwin';\n    public themeDetection: boolean = true;\n\n    render: Renderer2;\n\n    constructor(\n        protected app: ApplicationRef,\n        @Inject(DOCUMENT) protected document: Document,\n        rendererFactory: RendererFactory2,\n        protected storage: Storage,\n        @Optional() protected windowRegistry?: WindowRegistry,\n        @Optional() protected router?: Router\n    ) {\n        this.render = rendererFactory.createRenderer(null, null);\n        ZonelessChangeDetector.app = app;\n        if ('undefined' !== typeof window) {\n            (window as any)['DuiApp'] = this;\n        }\n    }\n\n    start() {\n        if (Electron.isAvailable()) {\n            this.render.addClass(this.document.body, 'electron');\n\n            const remote = Electron.getRemote();\n\n            this.setPlatform(remote.process.platform);\n        } else {\n            this.setPlatform('web');\n        }\n\n        if (this.themeDetection) {\n            let overwrittenDarkMode = this.storage.getItem('duiApp/darkMode');\n            if (overwrittenDarkMode) {\n                this.setDarkMode(JSON.parse(overwrittenDarkMode));\n            } else {\n                this.setDarkMode();\n            }\n\n            if ('undefined' !== typeof window) {\n                const mm = window.matchMedia('(prefers-color-scheme: dark)');\n                const setTheme = () => {\n                    if (!this.themeDetection) return;\n                    if (this.storage.getItem('duiApp/darkMode') === null) {\n                        this.setAutoDarkMode();\n                        this.app.tick();\n                    }\n                };\n                if (mm.addEventListener) {\n                    mm.addEventListener('change', setTheme);\n                } else {\n                    //ios\n                    mm.addListener(setTheme);\n                }\n            }\n        }\n\n        if ('undefined' !== typeof document) {\n            document.addEventListener('click', () => detectChangesNextFrame());\n            document.addEventListener('focus', () => detectChangesNextFrame());\n            document.addEventListener('blur', () => detectChangesNextFrame());\n            document.addEventListener('keydown', () => detectChangesNextFrame());\n            document.addEventListener('keyup', () => detectChangesNextFrame());\n            document.addEventListener('keypress', () => detectChangesNextFrame());\n            document.addEventListener('mousedown', () => detectChangesNextFrame());\n        }\n\n        //necessary to render all router-outlet once the router changes\n        if (this.router) {\n            this.router.events.subscribe((event) => {\n                if (event instanceof NavigationEnd || event instanceof ActivationEnd) {\n                    detectChangesNextFrame();\n                }\n            }, () => undefined);\n        }\n    }\n\n    setPlatform(platform: 'web' | 'darwin' | 'linux' | 'win32') {\n        this.platform = platform;\n        //deprecate these\n        this.render.removeClass(this.document.body, 'platform-linux');\n        this.render.removeClass(this.document.body, 'platform-darwin');\n        this.render.removeClass(this.document.body, 'platform-win32');\n        this.render.removeClass(this.document.body, 'platform-native');\n        this.render.removeClass(this.document.body, 'platform-web');\n\n        this.render.removeClass(this.document.body, 'dui-platform-linux');\n        this.render.removeClass(this.document.body, 'dui-platform-darwin');\n        this.render.removeClass(this.document.body, 'dui-platform-win32');\n        this.render.removeClass(this.document.body, 'dui-platform-native');\n        this.render.removeClass(this.document.body, 'dui-platform-web');\n\n        if (this.platform !== 'web') {\n            this.render.addClass(this.document.body, 'platform-native'); //todo: deprecate\n            this.render.addClass(this.document.body, 'dui-platform-native');\n\n        }\n        this.render.addClass(this.document.body, 'platform-' + platform);//todo: deprecate\n        this.render.addClass(this.document.body, 'dui-platform-' + platform);\n    }\n\n    getPlatform(): string {\n        return this.platform;\n    }\n\n    isDarkMode(): boolean {\n        return this.darkMode === true;\n    }\n\n    setAutoDarkMode(): void {\n        this.setDarkMode();\n    }\n\n    get theme(): 'auto' | 'light' | 'dark' {\n        if (this.isDarkModeOverwritten()) {\n            return this.isDarkMode() ? 'dark' : 'light';\n        }\n\n        return 'auto';\n    }\n\n    set theme(theme: 'auto' | 'light' | 'dark') {\n        if (theme === 'auto') {\n            this.setAutoDarkMode();\n            return;\n        }\n\n        this.setDarkMode(theme === 'dark');\n    }\n\n    isDarkModeOverwritten(): boolean {\n        return this.storage.getItem('duiApp/darkMode') !== null;\n    }\n\n    setGlobalDarkMode(darkMode: boolean): void {\n        if (Electron.isAvailable()) {\n            const remote = Electron.getRemote();\n            for (const win of remote.BrowserWindow.getAllWindows()) {\n                win.webContents.executeJavaScript(`DuiApp.setDarkMode(${darkMode})`);\n            }\n        }\n    }\n\n    getVibrancy(): 'ultra-dark' | 'light' {\n        return this.darkMode ? 'ultra-dark' : 'light';\n    }\n\n    disableThemeDetection() {\n        this.render.removeClass(this.document.body, 'dui-theme-dark');\n        this.render.removeClass(this.document.body, 'dui-theme-light');\n        this.themeDetection = false;\n    }\n\n    setDarkMode(darkMode?: boolean) {\n        if (darkMode === undefined) {\n            this.darkMode = this.isPreferDarkColorSchema();\n            this.storage.removeItem('duiApp/darkMode');\n        } else {\n            this.storage.setItem('duiApp/darkMode', JSON.stringify(darkMode));\n            this.darkMode = darkMode;\n        }\n\n        if (this.windowRegistry) {\n            for (const win of this.windowRegistry.getAllElectronWindows()) {\n                win.setVibrancy(this.getVibrancy());\n            }\n        }\n\n        this.render.removeClass(this.document.body, 'dui-theme-dark');\n        this.render.removeClass(this.document.body, 'dui-theme-light');\n        this.render.addClass(this.document.body, this.darkMode ? 'dui-theme-dark' : 'dui-theme-light');\n\n        if ('undefined' !== typeof window) window.dispatchEvent(new Event('theme-changed'));\n    }\n\n    protected isPreferDarkColorSchema() {\n        if ('undefined' === typeof window) return true;\n        return window.matchMedia('(prefers-color-scheme: dark)').matches;\n    }\n}\n\n@NgModule({\n    declarations: [\n        UiComponentComponent,\n        MenuDirective,\n        MenuSeparatorDirective,\n        MenuRadioDirective,\n        MenuCheckboxDirective,\n        MenuItemDirective,\n        OpenExternalDirective,\n        ViewDirective,\n        CdCounterComponent,\n        DuiResponsiveDirective,\n        AsyncRenderPipe,\n        ObjectURLPipe,\n        HumanFileSizePipe,\n    ],\n    exports: [\n        UiComponentComponent,\n        MenuDirective,\n        MenuSeparatorDirective,\n        MenuRadioDirective,\n        MenuCheckboxDirective,\n        MenuItemDirective,\n        OpenExternalDirective,\n        ViewDirective,\n        CdCounterComponent,\n        DuiResponsiveDirective,\n        AsyncRenderPipe,\n        ObjectURLPipe,\n        HumanFileSizePipe,\n    ],\n    providers: [\n        OverlayStack,\n    ],\n    imports: [\n        CommonModule,\n        ReactiveChangeDetectionModule,\n    ]\n})\nexport class DuiAppModule {\n    constructor(app: DuiApp, @Inject(DOCUMENT) @Optional() document: Document) {\n        app.start();\n        if (document && Electron.isAvailable()) {\n            document.addEventListener('click', (event: MouseEvent) => {\n                if (event.target) {\n                    const target = event.target as HTMLElement;\n                    if (target.tagName.toLowerCase() === 'a') {\n                        event.preventDefault();\n                        event.stopPropagation();\n                        Electron.getRemote().shell.openExternal((target as any).href);\n                    }\n                }\n            });\n        }\n    }\n\n    static forRoot(): ModuleWithProviders<DuiAppModule> {\n        return {\n            ngModule: DuiAppModule,\n            providers: [\n                DuiApp,\n                Storage,\n                { provide: EventDispatcher, useValue: new EventDispatcher },\n                { provide: IN_DIALOG, useValue: false },\n                {\n                    provide: ELECTRON_WINDOW,\n                    useValue: Electron.isAvailable() ? Electron.getRemote().BrowserWindow.getAllWindows()[0] : undefined\n                },\n            ]\n        };\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    ChangeDetectorRef,\n    Component,\n    ContentChild,\n    EventEmitter,\n    HostListener,\n    Input,\n    OnChanges,\n    Output,\n    SimpleChanges,\n    SkipSelf,\n} from '@angular/core';\nimport { FormGroup, NgControl } from '@angular/forms';\nimport { detectChangesNextFrame } from '../app';\n\n@Component({\n    selector: 'dui-form-row',\n    standalone: false,\n    template: `\n        <div class=\"label\" [style.width.px]=\"labelWidth\">{{label}}<div class=\"description\" *ngIf=\"description\">{{description}}</div></div>\n        <div class=\"field\">\n            <ng-content></ng-content>\n\n            <div class=\"error\" *ngIf=\"ngControl && ngControl.errors && ngControl.touched\">\n                <div *ngFor=\"let kv of ngControl.errors|keyvalue\">\n                    {{isString(kv.value) ? '' : kv.key}}{{isString(kv.value) ? kv.value : ''}}\n                </div>\n            </div>\n        </div>`,\n    host: {\n        '[class.left-aligned]': 'left !== false'\n    },\n    styleUrls: ['./form-row.component.scss']\n})\nexport class FormRowComponent {\n    @Input() label: string = '';\n    @Input() description: string = '';\n\n    @Input() labelWidth?: number;\n    @Input() left: boolean | '' = false;\n\n    @ContentChild(NgControl, {static: false}) ngControl?: NgControl;\n\n    isString(v: any) {\n        return 'string' === typeof v;\n    }\n}\n\n@Component({\n    selector: 'dui-form',\n    standalone: false,\n    template: `\n        <form [formGroup]=\"formGroup\" (submit)=\"$event.preventDefault();submitForm()\">\n            <ng-content></ng-content>\n            <div *ngIf=\"errorText\" class=\"error\">{{errorText}}</div>\n        </form>\n    `,\n    styleUrls: ['./form.component.scss']\n})\nexport class FormComponent implements OnChanges {\n    @Input() formGroup: FormGroup = new FormGroup({});\n\n    @Input() disabled: boolean = false;\n\n    @Input() submit?: () => Promise<any> | any;\n\n    @Output() success = new EventEmitter();\n    @Output() error = new EventEmitter();\n\n    @Output() disableChange = new EventEmitter();\n\n    public errorText = '';\n    public submitting = false;\n\n    constructor(\n        protected cd: ChangeDetectorRef,\n        @SkipSelf() protected cdParent: ChangeDetectorRef,\n    ) {\n    }\n\n    @HostListener('keyup', ['$event'])\n    onEnter(event: KeyboardEvent) {\n        if (this.submit && event.key.toLowerCase() === 'enter'\n            && event.target && (event.target as HTMLElement).tagName.toLowerCase() === 'input') {\n            this.submitForm();\n        }\n    }\n\n    ngOnChanges(changes: SimpleChanges) {\n        if (changes.disabled) {\n            this.disableChange.emit(this.disabled);\n        }\n    }\n\n    get invalid() {\n        return this.formGroup.invalid;\n    }\n\n    async submitForm() {\n        if (this.disabled) return;\n        if (this.submitting) return;\n        if (this.formGroup.invalid) return;\n        this.errorText = '';\n\n        this.submitting = true;\n        detectChangesNextFrame(this.cd);\n\n        try {\n            if (this.submit) {\n                try {\n                    await this.submit();\n                    this.success.emit();\n                } catch (error: any) {\n                    this.error.emit(error);\n\n                    if (error.errors && error.errors[0]) {\n                        //we got a validation-like error object\n                        for (const item of error.errors) {\n                            const control = this.formGroup.get(item.path);\n                            if (control) {\n                                control.setErrors({\n                                    ...control.errors,\n                                    [item.code]: item.message,\n                                });\n                            }\n                        }\n                    } else {\n                        this.errorText = error.message || error;\n                    }\n                    console.log('form error', error);\n                }\n            }\n        } finally {\n            this.submitting = false;\n            detectChangesNextFrame(this.cd);\n        }\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    ChangeDetectorRef,\n    Directive,\n    EventEmitter,\n    forwardRef,\n    HostBinding,\n    Inject,\n    Injector,\n    Input,\n    OnDestroy,\n    Output,\n    SkipSelf,\n    Type\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { detectChangesNextFrame } from '../components/app/utils';\nimport { FormComponent } from '../components/form/form.component';\n\nexport function ngValueAccessor<T>(clazz: Type<T>) {\n    return {\n        provide: NG_VALUE_ACCESSOR,\n        useExisting: forwardRef(() => clazz),\n        multi: true\n    };\n}\n\n/**\n * If you sub class this class and have own constructor or property initialization you need\n * to provide the dependencies of this class manually.\n *\n *\n constructor(\n protected injector: Injector,\n protected cd: ChangeDetectorRef,\n @SkipSelf() protected cdParent: ChangeDetectorRef,\n ) {\n        super(injector, cd, cdParent);\n    }\n *\n */\n@Directive()\nexport class ValueAccessorBase<T> implements ControlValueAccessor, OnDestroy {\n    /**\n     * @hidden\n     */\n    private _innerValue: T | undefined;\n\n    /**\n     * @hidden\n     */\n    public readonly _changedCallback: ((value: T | undefined) => void)[] = [];\n\n    /**\n     * @hidden\n     */\n    public readonly _touchedCallback: (() => void)[] = [];\n\n    private _ngControl?: NgControl;\n    private _ngControlFetched = false;\n\n    @Input() disabled?: boolean | '';\n\n    @HostBinding('class.disabled')\n    get isDisabled(): boolean {\n        if (this.formComponent && this.formComponent.disabled) return true;\n\n        if (undefined === this.disabled && this.ngControl) {\n            return !!this.ngControl.disabled;\n        }\n\n        return this.disabled !== false && this.disabled !== undefined;\n    }\n\n    @Input() valid?: boolean;\n\n    @HostBinding('class.valid')\n    get isValid() {\n        return this.valid === true;\n    }\n\n    @Input() error?: boolean;\n\n    @HostBinding('class.error')\n    get isError() {\n        if (undefined === this.error && this.ngControl) {\n            return (this.ngControl.dirty || this.ngControl.touched) && this.ngControl.invalid;\n        }\n\n        return this.error;\n    }\n\n    @HostBinding('class.required')\n    @Input()\n    required: boolean | '' = false;\n\n    @Output()\n    public readonly change = new EventEmitter<T>();\n\n    protected formComponent?: FormComponent;\n\n    constructor(\n        @Inject(Injector) protected readonly injector: Injector,\n        @Inject(ChangeDetectorRef) public readonly cd: ChangeDetectorRef,\n        @Inject(ChangeDetectorRef) @SkipSelf() public readonly cdParent: ChangeDetectorRef,\n    ) {\n        try {\n            this.formComponent = injector.get(FormComponent, undefined);\n        } catch (e) {\n        }\n\n    }\n\n    get ngControl(): NgControl | undefined {\n        if (!this._ngControlFetched) {\n            try {\n                this._ngControl = this.injector.get(NgControl);\n            } catch (e) {\n            }\n            this._ngControlFetched = true;\n        }\n\n        return this._ngControl;\n    }\n\n    /**\n     * @hidden\n     */\n    setDisabledState(isDisabled: boolean): void {\n        this.disabled = isDisabled;\n    }\n\n    /**\n     * @hidden\n     */\n    ngOnDestroy(): void {\n    }\n\n    /**\n     * @hidden\n     */\n    get innerValue(): T | undefined {\n        return this._innerValue;\n    }\n\n    /**\n     * Sets the internal value and signals Angular's form and other users (that subscribed via registerOnChange())\n     * that a change happened.\n     *\n     * @hidden\n     */\n    set innerValue(value: T | undefined) {\n        if (this._innerValue !== value) {\n            this._innerValue = value;\n            for (const callback of this._changedCallback) {\n                callback(value);\n            }\n            this.onInnerValueChange().then(() => {\n                detectChangesNextFrame(this.cd);\n            });\n            this.change.emit(value);\n            detectChangesNextFrame(this.cd);\n        }\n    }\n\n    /**\n     * Internal note: This method is called from outside. Either from Angular's form or other users.\n     *\n     * @hidden\n     */\n    writeValue(value?: T) {\n        if (this._innerValue !== value) {\n            this._innerValue = value;\n        }\n        detectChangesNextFrame(this.cd);\n    }\n\n    /**\n     * This method can be overwritten to get easily notified when innerValue has been changed, either\n     * by outside or inside.\n     *\n     * @hidden\n     */\n    async onInnerValueChange() {\n\n    }\n\n    /**\n     * Call this method to signal Angular's form or other users that this widget has been touched.\n     * @hidden\n     */\n    touch() {\n        for (const callback of this._touchedCallback) {\n            callback();\n        }\n    }\n\n    /**\n     * @hidden\n     */\n    registerOnChange(fn: (value: T | undefined) => void) {\n        this._changedCallback.push(fn);\n    }\n\n    /**\n     * @hidden\n     */\n    registerOnTouched(fn: () => void) {\n        this._touchedCallback.push(fn);\n    }\n}\n","\nexport class BrowserText {\n    protected canvas = document.createElement('canvas');\n\n    protected context = this.canvas.getContext('2d')!;\n\n    constructor(public fontSize: number = 11, public fontFamily: string = getComputedStyle(document.querySelector('.dui-body') || document.body).fontFamily) {\n        document.body.appendChild(this.canvas);\n        this.canvas.style.display = 'none';\n    }\n\n    destroy() {\n        document.body.removeChild(this.canvas);\n    }\n\n    getDimensions(text: string) {\n        this.context.font = this.fontSize + 'px ' + this.fontFamily;\n        const m = this.context.measureText(text);\n        return {\n            width: m.width,\n            height: m.actualBoundingBoxAscent + m.actualBoundingBoxDescent\n        };\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { Component, HostBinding, Input, OnChanges, OnInit } from '@angular/core';\n\n@Component({\n    selector: 'dui-icon',\n    standalone: false,\n    template: `{{name}}`,\n    host: {\n        '[class.ui-icon]': 'true',\n        '[style.fontSize.px]': 'usedSize',\n        '[style.height.px]': 'usedSize',\n        '[style.width.px]': 'usedSize',\n        '[style.color]': 'color',\n    },\n    styleUrls: ['./icon.component.scss']\n})\nexport class IconComponent implements OnInit, OnChanges {\n    /**\n     * The icon for this button. Either a icon name same as for dui-icon, or an image path.\n     */\n    @Input() name?: string;\n\n    /**\n     * Change in the icon size. Should not be necessary usually.\n     */\n    @Input() size?: number;\n\n    @Input() clickable: boolean | '' = false;\n\n    @Input() color?: string;\n\n    public usedSize = 17;\n\n    @HostBinding('class.clickable')\n    get isClickable() {\n        return false !== this.clickable;\n    }\n\n    @Input() disabled: boolean = false;\n    @HostBinding('class.disabled')\n    get isDisabled() {\n        return false !== this.disabled;\n    }\n\n    constructor() {\n    }\n\n    ngOnChanges(): void {\n        if (this.size) {\n            this.usedSize = this.size;\n        }\n\n        if (!this.size && this.name) {\n            const pos = this.name.indexOf('_');\n            if (pos !== -1) {\n                const potentialNumber = parseInt(this.name.slice(0, pos), 10);\n                if (potentialNumber) {\n                    this.usedSize = potentialNumber;\n                }\n            }\n        }\n    }\n\n    ngOnInit() {\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    HostBinding,\n    HostListener,\n    Injector,\n    SkipSelf,\n} from '@angular/core';\nimport { ngValueAccessor, ValueAccessorBase } from '../../core/form';\n\n@Component({\n    selector: 'dui-checkbox',\n    standalone: false,\n    template: `\n        <span class=\"box\">\n            <dui-icon [size]=\"12\" name=\"check\"></dui-icon>\n        </span>\n        <ng-content></ng-content>\n    `,\n    styleUrls: ['./checkbox.component.scss'],\n    providers: [ngValueAccessor(CheckboxComponent)],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent extends ValueAccessorBase<any>  {\n    @HostBinding('tabindex')\n    get tabIndex() {\n        return 1;\n    }\n\n    @HostBinding('class.checked')\n    get isChecked() {\n        return true === this.innerValue;\n    }\n\n    @HostListener('click')\n    public onClick() {\n        if (this.isDisabled) return;\n\n        this.touch();\n        this.innerValue = !this.innerValue;\n    }\n\n    constructor(\n        protected injector: Injector,\n        public readonly cd: ChangeDetectorRef,\n        @SkipSelf() public readonly cdParent: ChangeDetectorRef,\n    ) {\n        super(injector, cd, cdParent);\n    }\n\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { IconComponent } from './icon.component';\n\nexport * from './icon.component';\n\n@NgModule({\n    imports: [],\n    exports: [IconComponent],\n    declarations: [IconComponent],\n    providers: [],\n})\nexport class DuiIconModule {\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { NgModule } from '@angular/core';\nimport { CheckboxComponent } from './checkbox.component';\nimport { DuiIconModule } from '../icon';\n\nexport * from './checkbox.component'\n\n@NgModule({\n    declarations: [\n        CheckboxComponent\n    ],\n    exports: [\n        CheckboxComponent\n    ],\n    imports: [\n        DuiIconModule,\n    ]\n})\nexport class DuiCheckboxModule {\n\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { AfterViewInit, Component, ElementRef, EventEmitter, Input, NgZone, Output } from '@angular/core';\nimport { clearTick, nextTick } from '@deepkit/core';\nimport { getHammer } from '../../core/utils';\n\n@Component({\n    selector: 'dui-splitter',\n    standalone: false,\n    template: '',\n    styleUrls: ['./splitter.component.scss'],\n    host: {\n        '[class.splitter-right]': 'position === \"right\"',\n        '[class.splitter-left]': 'position === \"left\"',\n        '[class.splitter-top]': 'position === \"top\"',\n        '[class.splitter-bottom]': 'position === \"bottom\"',\n        '[class.splitter-with-indicator]': 'indicator !== false',\n    }\n})\nexport class SplitterComponent implements AfterViewInit {\n    @Output() modelChange = new EventEmitter<number>();\n\n    @Input() indicator: boolean | '' = false;\n\n    @Input() position: 'right' | 'left' | 'top' | 'bottom' = 'right';\n\n    @Input() element?: HTMLElement;\n\n    constructor(\n        private host: ElementRef,\n        private zone: NgZone,\n    ) {\n    }\n\n    onMousedown(event: MouseEvent) {\n        event.stopPropagation();\n        event.preventDefault();\n    }\n\n    ngAfterViewInit() {\n        this.initHammer();\n    }\n\n    protected async initHammer() {\n        const Hammer = await getHammer();\n        if (!Hammer) return;\n\n        this.zone.runOutsideAngular(() => {\n            const mc = new Hammer(this.host.nativeElement);\n            mc.add(new Hammer.Pan({ direction: Hammer.DIRECTION_ALL, threshold: 0 }));\n\n            let start: number = 0;\n\n            this.host.nativeElement.addEventListener('pointerdown', (e: MouseEvent) => {\n                e.stopPropagation();\n                e.preventDefault();\n            });\n\n            this.host.nativeElement.addEventListener('pointermove', (e: MouseEvent) => {\n                e.stopPropagation();\n                e.preventDefault();\n            });\n\n            mc.on('panstart', (event: HammerInput) => {\n                if (this.position === 'right' || this.position === 'left') {\n                    start = (this.element ? this.element.clientWidth : this.host.nativeElement!.parentElement.clientWidth);\n                } else {\n                    start = (this.element ? this.element.clientHeight : this.host.nativeElement!.parentElement.clientHeight);\n                }\n            });\n\n            let lastAnimationFrame: any;\n            mc.on('pan', (event: HammerInput) => {\n                if (lastAnimationFrame) clearTick(lastAnimationFrame);\n\n                lastAnimationFrame = nextTick(() => {\n                    if (this.element) {\n                        this.element.style.width = (start + event.deltaX) + 'px';\n                    }\n\n                    if (this.position === 'right') {\n                        this.modelChange.emit(start + event.deltaX);\n                        this.triggerWindowResize();\n                    } else if (this.position === 'left') {\n                        this.modelChange.emit(start - event.deltaX);\n                        this.triggerWindowResize();\n                    } else if (this.position === 'top') {\n                        this.modelChange.emit(start - event.deltaY);\n                        this.triggerWindowResize();\n                    } else if (this.position === 'bottom') {\n                        this.modelChange.emit(start + event.deltaY);\n                        this.triggerWindowResize();\n                    }\n                });\n            });\n        });\n    }\n\n    protected triggerWindowResize() {\n        setTimeout(() => {\n            window.dispatchEvent(new Event('resize'));\n        });\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    AfterViewInit,\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    EventEmitter,\n    Input,\n    OnChanges,\n    Output,\n    SimpleChanges,\n    TemplateRef,\n    ViewChild,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { WindowState } from './window-state';\nimport { triggerResize } from '../../core/utils';\n\ninterface WinSidebar {\n    template: TemplateRef<any>;\n}\n\n@Component({\n    selector: 'dui-window-content',\n    standalone: false,\n    template: `\n        <div class=\"top-line\"></div>\n\n        <div class=\"content {{class}}\" #content>\n            <ng-content></ng-content>\n        </div>\n\n        <div class=\"sidebar\"\n             (transitionend)=\"transitionEnded()\"\n             #sidebar *ngIf=\"toolbar\" [class.hidden]=\"!sidebarVisible \" [class.with-animation]=\"withAnimation\"\n             [style.width.px]=\"getSidebarWidth()\">\n            <div class=\"hider\">\n                <div class=\"sidebar-container overlay-scrollbar-small\"\n                     [style.width.px]=\"getSidebarWidth()\"\n                     [style.maxWidth.px]=\"getSidebarWidth()\"\n                     #sidebarContainer>\n                    <ng-container [ngTemplateOutlet]=\"toolbar!.template\"\n                                  [ngTemplateOutletContext]=\"{}\"></ng-container>\n                </div>\n            </div>\n            <dui-splitter position=\"right\" (modelChange)=\"sidebarWidth = $event; sidebarMoved()\"></dui-splitter>\n        </div>\n    `,\n    host: {\n        '[class.transparent]': 'transparent !== false',\n    },\n    styleUrls: ['./window-content.component.scss'],\n})\nexport class WindowContentComponent implements OnChanges, AfterViewInit {\n    @Input() transparent: boolean | '' = false;\n\n    @Input() sidebarVisible: boolean = true;\n\n    @Input() class: string = '';\n\n    @Input() sidebarWidth = 250;\n    @Input() sidebarMaxWidth = 550;\n    @Input() sidebarMinWidth = 100;\n\n    @Output() sidebarWidthChange = new EventEmitter<number>();\n\n    toolbar?: WinSidebar;\n\n    @ViewChild('sidebar', { static: false }) public sidebar?: ElementRef<HTMLElement>;\n    @ViewChild('sidebarContainer', { static: false }) public sidebarContainer?: ElementRef<HTMLElement>;\n    @ViewChild('content', { static: true }) public content?: ElementRef<HTMLElement>;\n\n    withAnimation: boolean = false;\n    public readonly sidebarVisibleChanged = new Subject();\n\n    constructor(\n        private windowState: WindowState,\n        public cd: ChangeDetectorRef,\n    ) {\n    }\n\n    getSidebarWidth(): number {\n        return Math.min(this.sidebarMaxWidth, Math.max(this.sidebarMinWidth, this.sidebarWidth));\n    }\n\n    transitionEnded() {\n        if (this.withAnimation) {\n            this.withAnimation = false;\n            triggerResize();\n            this.cd.detectChanges();\n        }\n    }\n\n    unregisterSidebar(sidebar: WinSidebar) {\n        if (this.toolbar === sidebar) {\n            this.toolbar = undefined;\n            setTimeout(() => this.sidebarMoved(), 0);\n        }\n    }\n\n    registerSidebar(sidebar: WinSidebar) {\n        this.toolbar = sidebar;\n        setTimeout(() => this.sidebarMoved(), 0);\n    }\n\n    sidebarMoved() {\n        if (this.windowState.buttonGroupAlignedToSidebar) {\n            this.windowState.buttonGroupAlignedToSidebar.sidebarMoved();\n        }\n        this.sidebarWidthChange.next(this.sidebarWidth);\n        triggerResize();\n        this.cd.detectChanges();\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        if (this.sidebar && this.sidebarContainer) {\n            if (changes.sidebarVisible) {\n                this.handleSidebarVisibility(true);\n                this.sidebarVisibleChanged.next(this.sidebarVisible);\n            }\n        }\n    }\n\n    ngAfterViewInit(): void {\n        this.handleSidebarVisibility();\n    }\n\n    protected handleSidebarVisibility(withAnimation = false) {\n        if (withAnimation && this.windowState.buttonGroupAlignedToSidebar) {\n            this.withAnimation = true;\n            this.windowState.buttonGroupAlignedToSidebar.activateOneTimeAnimation();\n            this.windowState.buttonGroupAlignedToSidebar.sidebarMoved();\n        }\n\n        // if (this.content) {\n        //     if (this.sidebarVisible) {\n        //         this.content.nativeElement.style.marginLeft = '0px';\n        //     } else {\n        //         this.content.nativeElement.style.marginLeft = (-this.sidebarWidth) + 'px';\n        //     }\n        // }\n    }\n\n    public isSidebarVisible(): boolean {\n        return undefined !== this.sidebar && this.sidebarVisible;\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    HostBinding,\n    Input,\n    OnDestroy,\n    OnInit,\n    SkipSelf,\n    TemplateRef,\n    ViewChild,\n} from '@angular/core';\nimport { WindowState } from './window-state';\nimport { Electron } from '../../core/utils';\n\n@Component({\n    selector: 'dui-window-header',\n    standalone: false,\n    template: `\n        <div class=\"title\">\n            <ng-content></ng-content>\n            <div class=\"closer\">\n                <div (click)=\"minimize()\">\n                    <dui-icon [size]=\"18\" name=\"gnome_minimize\"></dui-icon>\n                </div>\n                <div (click)=\"maximize()\">\n                    <dui-icon [size]=\"18\" name=\"gnome_maximize\"></dui-icon>\n                </div>\n                <div (click)=\"close()\" class=\"highlight\">\n                    <dui-icon [size]=\"18\" name=\"gnome_close\"></dui-icon>\n                </div>\n            </div>\n        </div>\n        <div class=\"toolbar\" *ngIf=\"windowState.toolbars['default']\">\n            <dui-window-toolbar-container></dui-window-toolbar-container>\n        </div>\n    `,\n    host: {\n        '[class.inactive]': '!windowState.focus.value',\n        '[class.size-default]': `size === 'default'`,\n        '[class.size-small]': `size === 'small'`,\n    },\n    styleUrls: ['./window-header.component.scss']\n})\nexport class WindowHeaderComponent implements OnDestroy {\n    @Input() public size: 'small' | 'default' = 'default';\n\n    @HostBinding('class.with-toolbar')\n    get withToolbar() {\n        return this.windowState.toolbars['default'] && this.windowState.toolbars['default'].length;\n    }\n\n    protected focusSub: any = this.windowState.focus.subscribe((v) => {\n        this.cdParent.markForCheck();\n    });\n\n    constructor(\n        public windowState: WindowState,\n        @SkipSelf() protected cdParent: ChangeDetectorRef,\n        protected element: ElementRef,\n    ) {\n        this.windowState = windowState;\n    }\n\n    ngOnDestroy() {\n        this.focusSub.unsubscribe();\n    }\n\n    public getBottomPosition(): number {\n        const rect = this.element.nativeElement.getBoundingClientRect();\n        return rect.y + rect.height;\n    }\n\n    maximize() {\n        const win = Electron.getRemote().BrowserWindow.getFocusedWindow();\n        if (!win.isMaximized()) {\n            Electron.getRemote().BrowserWindow.getFocusedWindow().maximize();\n        } else {\n            Electron.getRemote().BrowserWindow.getFocusedWindow().unmaximize();\n        }\n    }\n\n    minimize() {\n        Electron.getRemote().BrowserWindow.getFocusedWindow().minimize();\n    }\n\n    close() {\n        Electron.getRemote().BrowserWindow.getFocusedWindow().close();\n    }\n}\n\n@Component({\n    selector: 'dui-window-toolbar',\n    standalone: false,\n    template: `\n        <ng-template #templateRef>\n            <ng-content></ng-content>\n        </ng-template>\n    `\n})\nexport class WindowToolbarComponent implements OnDestroy, OnInit {\n    @Input() for: string = 'default';\n    @ViewChild('templateRef', { static: true }) template!: TemplateRef<any>;\n\n    constructor(protected windowState: WindowState) {\n    }\n\n    ngOnInit() {\n        this.windowState.addToolbarContainer(this.for, this.template);\n    }\n\n    ngOnDestroy(): void {\n        this.windowState.removeToolbarContainer(this.for, this.template);\n    }\n}\n\n@Component({\n    selector: 'dui-window-toolbar-container',\n    standalone: false,\n    template: `\n        <ng-container *ngIf=\"windowState.toolbars[name]\">\n            <ng-container *ngFor=\"let template of windowState.toolbars[name]\">\n                <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{}\"></ng-container>\n            </ng-container>\n        </ng-container>\n    `,\n    styles: [`\n        :host {\n            display: flex;\n        }\n    `],\n})\nexport class WindowToolbarContainerComponent implements OnInit, OnDestroy {\n    @Input() name: string = 'default';\n\n    constructor(\n        public windowState: WindowState,\n        protected cd: ChangeDetectorRef,\n    ) {\n    }\n\n    ngOnInit() {\n        if (this.windowState.toolbarContainers[this.name] && this.name === 'default') {\n            console.warn(`You have multiple <dui-window-toolbar-container> with no name. This is not allowed.`);\n        }\n        this.windowState.toolbarContainers[this.name] = this;\n    }\n\n    public toolbarsUpdated() {\n        this.cd.detectChanges();\n    }\n\n    ngOnDestroy(): void {\n        delete this.windowState.toolbarContainers[this.name];\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChild,\n    Inject,\n    Input,\n    OnChanges,\n    OnDestroy,\n    Optional,\n    SimpleChanges,\n    SkipSelf,\n    ViewContainerRef,\n} from '@angular/core';\nimport { WindowContentComponent } from './window-content.component';\nimport { WindowRegistry, WindowState } from './window-state';\nimport { DOCUMENT } from '@angular/common';\nimport { WindowMenuState } from './window-menu';\nimport { WindowHeaderComponent } from './window-header.component';\nimport { ELECTRON_WINDOW, IN_DIALOG } from '../app/token';\nimport { DuiApp } from '../app';\n\n/**\n * This is only for documentation purposes.\n */\n@Component({\n    selector: 'dui-window-frame',\n    standalone: false,\n    template: '<ng-content></ng-content>',\n    styleUrls: ['./window-frame.component.scss'],\n    host: {\n        '[style.height]': `height ? height + 'px' : 'auto'`\n    }\n})\nexport class WindowFrameComponent {\n    @Input() height: number = 350;\n}\n\n@Component({\n    selector: 'dui-window',\n    standalone: false,\n    template: '<ng-content></ng-content><div *ngIf=\"windowState.disableInputs|async\" (mousedown)=\"$event.preventDefault();\" class=\"disable-inputs\"></div>',\n    styleUrls: ['./window.component.scss'],\n    host: {\n        '[class.in-dialog]': 'isInDialog()',\n        '[class.dui-theme-light]': '!app.themeDetection',\n        '[class.dui-body]': 'true',\n    },\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        WindowState,\n        WindowMenuState,\n    ]\n})\nexport class WindowComponent implements OnChanges, OnDestroy {\n    public id = 0;\n\n    @ContentChild(WindowContentComponent, { static: false }) public content?: WindowContentComponent;\n    @ContentChild(WindowHeaderComponent, { static: false }) public header?: WindowHeaderComponent;\n\n    @Input() closable = true;\n    @Input() maximizable = true;\n    @Input() minimizable = true;\n\n    protected onBlur = () => {\n        this.registry.blur(this);\n    };\n\n    protected onFocus = () => {\n        this.registry.focus(this);\n    };\n\n    constructor(\n        @Inject(DOCUMENT) document: Document,\n        protected registry: WindowRegistry,\n        public windowState: WindowState,\n        cd: ChangeDetectorRef,\n        public app: DuiApp,\n        windowMenuState: WindowMenuState,\n        public viewContainerRef: ViewContainerRef,\n        @Inject(IN_DIALOG) protected inDialog: boolean,\n        @SkipSelf() @Optional() protected parentWindow?: WindowComponent,\n        @Inject(ELECTRON_WINDOW) public electronWindow?: any\n    ) {\n        registry.register(this, cd, windowState, windowMenuState, viewContainerRef);\n\n        if (this.electronWindow && !this.isInDialog()) {\n            this.electronWindow.addListener('blur', this.onBlur);\n            this.electronWindow.addListener('focus', this.onFocus);\n            this.electronWindow.setVibrancy(app.getVibrancy());\n        }\n\n        this.registry.focus(this);\n    }\n\n    ngOnDestroy() {\n        if (this.electronWindow && !this.isInDialog()) {\n            this.electronWindow.removeListener('blur', this.onBlur);\n            this.electronWindow.removeListener('focus', this.onFocus);\n        }\n        this.registry.unregister(this);\n    }\n\n    public isInDialog(): boolean {\n        return this.inDialog;\n    }\n\n    public getClosestNonDialogWindow(): WindowComponent | undefined {\n        if (!this.isInDialog()) {\n            return this;\n        }\n\n        if (this.parentWindow) {\n            if (this.parentWindow.isInDialog()) {\n                return this.parentWindow.getClosestNonDialogWindow();\n            }\n            return this.parentWindow;\n        }\n    }\n\n    ngOnChanges(changes: SimpleChanges) {\n        this.windowState.closable = this.closable;\n        this.windowState.minimizable = this.minimizable;\n        this.windowState.maximizable = this.maximizable;\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    AfterViewInit,\n    ApplicationRef,\n    ChangeDetectorRef,\n    Component,\n    Directive,\n    ElementRef,\n    EventEmitter,\n    HostBinding,\n    HostListener,\n    Injector,\n    Input,\n    OnChanges,\n    OnDestroy,\n    OnInit,\n    Optional,\n    Output,\n    SkipSelf,\n} from '@angular/core';\nimport { WindowComponent } from '../window/window.component';\nimport { WindowState } from '../window/window-state';\nimport { FormComponent } from '../form/form.component';\nimport { ngValueAccessor, ValueAccessorBase } from '../../core/form';\nimport { ActivatedRoute, Router, UrlTree } from '@angular/router';\nimport { isMacOs, isRouteActive } from '../../core/utils';\n\n/**\n * hotkey has format of \"ctrl+shift+alt+key\", e.g \"ctrl+s\" or \"shift+o\"\n * and supports more than one, e.g. \"ctrl+s,ctrl+o\"\n */\nexport type HotKey = string;\n\nfunction hotKeySize(hotkey: HotKey) {\n    const hotkeys = hotkey.split(',');\n    let size = hotkeys.length - 1;\n    const isMac = isMacOs(); //mac uses one char per key, windows uses '⊞ WIN' for meta key, 'CTRL' for ctrl key, 'ALT' for alt key\n    for (const hotkey of hotkeys) {\n        const keys = hotkey.split('+');\n        for (const key of keys) {\n            if (key === 'ctrl') size += isMac ? 1 : 4;\n            if (key === 'meta') size += isMac ? 1 : 4;\n            if (key === 'shift') size += 1;\n            if (key === 'alt') size += isMac ? 1 : 3;\n            if (key !== 'ctrl' && key !== 'meta' && key !== 'alt' && key !== 'shift') size += key.length;\n        }\n    }\n\n    return size;\n}\n\nfunction isHotKeyActive(hotkey: HotKey, event: KeyboardEvent) {\n    const eventKey = event.key.toLowerCase();\n\n    const hotkeys = hotkey.split(',');\n    for (const hotkey of hotkeys) {\n        const keys = hotkey.split('+');\n        let match = true;\n        for (const key of keys) {\n            if (key === 'ctrl' && !event.ctrlKey) {\n                match = false;\n                break;\n            }\n            if (key === 'meta' && (!event.ctrlKey && !event.metaKey)) {\n                match = false;\n                break;\n            }\n            if (key === 'shift' && !event.shiftKey) {\n                match = false;\n                break;\n            }\n            if (key === 'alt' && !event.altKey) {\n                match = false;\n                break;\n            }\n            if (key !== 'ctrl' && key !== 'meta' && key !== 'alt' && key !== 'shift' && key !== eventKey) {\n                match = false;\n                break;\n            }\n        }\n        if (match) return true;\n    }\n\n    return false;\n}\n\n\n@Component({\n    selector: 'dui-button-hotkey',\n    standalone: false,\n    styles: [`\n        :host {\n            display: inline-flex;\n            flex-direction: row;\n        }\n\n        span {\n            text-transform: uppercase;\n            color: var(--text-grey);\n            margin-left: 3px;\n            font-size: 11px;\n        }\n    `],\n    template: `\n        <span *ngIf=\"metaKey\">{{isMac ? '⌘' : 'WIN'}}</span>\n        <span *ngIf=\"ctrlKey\">{{isMac ? '⌃' : 'CTRL'}}</span>\n        <span *ngIf=\"altKey\">{{isMac ? '⌥' : 'ALT'}}</span>\n        <span *ngIf=\"shiftKey\">⇧</span>\n        <span *ngIf=\"key\">{{key}}</span>\n    `\n})\nexport class ButtonHotkeyComponent implements OnChanges, OnInit {\n    @Input() hotkey?: HotKey;\n\n    isMac = isMacOs();\n\n    metaKey = false;\n    ctrlKey = false;\n    shiftKey = false;\n    altKey = false;\n    key = '';\n\n    ngOnInit() {\n        this.parse();\n    }\n\n    ngOnChanges() {\n        this.parse();\n    }\n\n    parse() {\n        //reset all\n        this.metaKey = false;\n        this.ctrlKey = false;\n        this.shiftKey = false;\n        this.altKey = false;\n        this.key = '';\n\n        if (!this.hotkey) return;\n\n        const hotkeys = this.hotkey.split(',');\n        for (const hotkey of hotkeys) {\n            const keys = hotkey.split('+');\n            for (const key of keys) {\n                if (key === 'ctrl') this.ctrlKey = true;\n                if (key === 'meta') this.metaKey = true;\n                if (key === 'shift') this.shiftKey = true;\n                if (key === 'alt') this.altKey = true;\n                if (key !== 'ctrl' && key !== 'shift' && key !== 'alt' && key !== 'meta') this.key = key;\n            }\n        }\n    }\n}\n\n@Component({\n    selector: 'dui-button',\n    standalone: false,\n    template: `\n        <dui-icon *ngIf=\"icon && iconRight === false\" [color]=\"iconColor\" [name]=\"icon\" [size]=\"iconSize\"></dui-icon>\n        <ng-content></ng-content>\n        <dui-icon *ngIf=\"icon && iconRight !== false\" [color]=\"iconColor\" [name]=\"icon\" [size]=\"iconSize\"></dui-icon>\n        <div *ngIf=\"showHotkey\" class=\"show-hotkey\" [style.width.px]=\"hotKeySize(showHotkey) * 6\"></div>\n        <dui-button-hotkey *ngIf=\"showHotkey\" style=\"position: absolute; right: 6px; top: 0;\" [hotkey]=\"showHotkey\"></dui-button-hotkey>\n    `,\n    host: {\n        '[attr.tabindex]': '1',\n        '[class.icon]': '!!icon',\n        '[class.small]': 'small !== false',\n        '[class.tight]': 'tight !== false',\n        '[class.active]': 'isActive()',\n        '[class.highlighted]': 'highlighted !== false',\n        '[class.primary]': 'primary !== false',\n        '[class.icon-left]': 'iconRight === false',\n        '[class.icon-right]': 'iconRight !== false',\n        '[class.with-text]': 'hasText()',\n    },\n    styleUrls: ['./button.component.scss'],\n})\nexport class ButtonComponent implements OnInit, AfterViewInit {\n    hotKeySize = hotKeySize;\n\n    /**\n     * The icon for this button. Either a icon name same as for dui-icon, or an image path.\n     */\n    @Input() icon?: string;\n\n    /**\n     * Change in the icon size. Should not be necessary usually.\n     */\n    @Input() iconSize?: number;\n\n    @Input() iconRight?: boolean | '' = false;\n\n    @Input() iconColor?: string;\n\n    @Input() showHotkey?: HotKey;\n\n    /**\n     * Whether the button is active (pressed)\n     */\n    @Input() active: boolean | '' = false;\n    @Input() routerLink?: string | UrlTree | any[];\n    @Input() routerLinkExact?: boolean;\n\n    /**\n     * Whether the button has no padding and smaller font size\n     */\n    @Input() small: boolean | '' = false;\n\n    /**\n     * Whether the button has smaller padding. Better for button with icons.\n     */\n    @Input() tight: boolean | '' = false;\n\n    /**\n     * Whether the button is highlighted.\n     */\n    @Input() highlighted: boolean | '' = false;\n\n    /**\n     * Whether the button is primary.\n     */\n    @Input() primary: boolean | '' = false;\n\n    /**\n     * Whether the button is focused on initial loading.\n     */\n    @Input() focused: boolean | '' = false;\n\n    /**\n     * Whether the button is focused on initial loading.\n     */\n    @Input() submitForm?: FormComponent;\n\n    /**\n     * Auto-detected but could be set manually as well.\n     * Necessary for correct icon placement.\n     */\n    withText?: boolean;\n    protected detectedText: boolean = false;\n\n    constructor(\n        public element: ElementRef,\n        @SkipSelf() public cdParent: ChangeDetectorRef,\n        @Optional() public formComponent: FormComponent,\n        @Optional() public router?: Router,\n        @Optional() public activatedRoute?: ActivatedRoute,\n    ) {\n        this.element.nativeElement.removeAttribute('tabindex');\n    }\n\n    hasText() {\n        return this.withText === undefined ? this.detectedText : this.withText;\n    }\n\n    @Input() disabled: boolean | '' = false;\n\n    @HostBinding('class.disabled')\n    get isDisabled() {\n        if (this.formComponent && this.formComponent.disabled) return true;\n        if (this.submitForm && (this.submitForm.invalid || this.submitForm.disabled || this.submitForm.submitting)) {\n            return true;\n        }\n\n        return false !== this.disabled;\n    }\n\n    @Input() square: boolean | '' = false;\n\n    @HostBinding('class.square')\n    get isRound() {\n        return false !== this.square;\n    }\n\n    @Input() textured: boolean | '' = false;\n\n    @HostBinding('class.textured')\n    get isTextured() {\n        return false !== this.textured;\n    }\n\n    ngOnInit() {\n        if (this.focused !== false) {\n            setTimeout(() => {\n                this.element.nativeElement.focus();\n            }, 10);\n        }\n    }\n\n    isActive() {\n        if (this.routerLink && this.router) return isRouteActive(this);\n        return false !== this.active;\n    }\n\n    ngAfterViewInit() {\n        if (this.icon) {\n            const content = this.element.nativeElement.innerText.trim();\n            const hasText = content !== this.icon && content.length > 0;\n            if (hasText) {\n                this.detectedText = true;\n                this.cdParent.detectChanges();\n            }\n        }\n    }\n\n    @HostListener('click')\n    async onClick() {\n        if (this.isDisabled) return;\n\n        if (this.submitForm) {\n            this.submitForm.submitForm();\n        }\n    }\n}\n\n@Directive({\n    selector: '[hotkey]',\n    standalone: false,\n})\nexport class HotkeyDirective {\n    @Input() hotkey!: HotKey;\n    protected oldButtonActive?: boolean | '';\n\n    protected active = false;\n\n    constructor(\n        private elementRef: ElementRef,\n        private app: ApplicationRef,\n        @Optional() private button?: ButtonComponent,\n    ) {\n    }\n\n    @HostListener('document:keydown', ['$event'])\n    onKeyDown(event: KeyboardEvent) {\n        //if only alt is pressed (not other keys, we display the hotkey)\n        if (event.key.toLowerCase() === 'alt') {\n            if (this.button) {\n                this.button.showHotkey = this.hotkey;\n                return;\n            }\n        }\n\n        const active = isHotKeyActive(this.hotkey, event);\n        // console.log('keydown', event.key, this.hotkey, isHotKeyActive(this.hotkey, event));\n        if (!active) return;\n        event.preventDefault();\n\n        if (this.active) return;\n        this.active = true;\n        this.elementRef.nativeElement.click();\n\n        if (this.button) {\n            this.oldButtonActive = this.button.active;\n            this.button.active = true;\n\n            setTimeout(() => {\n                if (this.button && this.oldButtonActive !== undefined) {\n                    this.button.active = this.oldButtonActive;\n                    this.oldButtonActive = undefined;\n                    this.button.cdParent.detectChanges();\n                    this.active = false;\n                    this.app.tick();\n                }\n            }, 40);\n        }\n    }\n\n    @HostListener('document:keyup', ['$event'])\n    onKeyUp(event: KeyboardEvent) {\n        //if only alt is pressed (not other keys, we display the hotkey)\n        if (event.key.toLowerCase() === 'alt') {\n            if (this.button) {\n                this.button.showHotkey = undefined;\n                return;\n            }\n        }\n\n        // console.log('keyup', event.key, this.hotkey, isHotKeyActive(this.hotkey, event));\n        // if (!isHotKeyActive(this.hotkey, event)) return;\n        // event.preventDefault();\n        // this.elementRef.nativeElement.click();\n        // if (this.button && this.oldButtonActive !== undefined) {\n        //     this.button.active = this.oldButtonActive;\n        // }\n    }\n}\n\n/**\n * Used to group buttons together.\n */\n@Component({\n    selector: 'dui-button-group',\n    standalone: false,\n    template: '<ng-content></ng-content>',\n    host: {\n        '[class.float-right]': 'float===\\'right\\'',\n        '(transitionend)': 'transitionEnded()'\n    },\n    styleUrls: ['./button-group.component.scss']\n})\nexport class ButtonGroupComponent implements AfterViewInit, OnDestroy {\n    /**\n     * How the button should behave.\n     * `sidebar` means it aligns with the sidebar. Is the sidebar open, this button-group has a left margin.\n     * Is it closed, the margin is gone.\n     */\n    @Input() float: 'static' | 'sidebar' | 'float' | 'right' = 'static';\n\n    @Input() padding: 'normal' | 'none' = 'normal';\n\n    @HostBinding('class.padding-none')\n    get isPaddingNone() {\n        return this.padding === 'none';\n    }\n\n    // @HostBinding('class.ready')\n    // protected init = false;\n\n    constructor(\n        private element: ElementRef<HTMLElement>,\n        @SkipSelf() protected cd: ChangeDetectorRef,\n        @Optional() private windowState?: WindowState,\n        @Optional() private windowComponent?: WindowComponent,\n    ) {\n    }\n\n    public activateOneTimeAnimation() {\n        (this.element.nativeElement as HTMLElement).classList.add('with-animation');\n    }\n\n    public sidebarMoved() {\n        this.updatePaddingLeft();\n    }\n\n    ngOnDestroy(): void {\n    }\n\n    transitionEnded() {\n        (this.element.nativeElement as HTMLElement).classList.remove('with-animation');\n    }\n\n    ngAfterViewInit(): void {\n        if (this.float === 'sidebar' && this.windowState) {\n            this.windowState.buttonGroupAlignedToSidebar = this;\n        }\n        this.updatePaddingLeft();\n    }\n\n    updatePaddingLeft() {\n        if (this.float === 'sidebar' && this.windowComponent) {\n            if (this.windowComponent.content) {\n                if (this.windowComponent.content!.isSidebarVisible()) {\n                    const newLeft = Math.max(0, this.windowComponent.content!.getSidebarWidth() - this.element.nativeElement.offsetLeft) + 'px';\n                    if (this.element.nativeElement.style.paddingLeft == newLeft) {\n                        //no transition change, doesn't trigger transitionEnd\n                        (this.element.nativeElement as HTMLElement).classList.remove('with-animation');\n                        return;\n                    }\n                    this.element.nativeElement.style.paddingLeft = newLeft;\n                    return;\n                }\n            }\n        }\n        this.element.nativeElement.style.paddingLeft = '0px';\n    }\n}\n\n\n@Component({\n    selector: 'dui-button-groups',\n    standalone: false,\n    template: `\n        <ng-content></ng-content>\n    `,\n    host: {\n        '[class.align-left]': `align === 'left'`,\n        '[class.align-center]': `align === 'center'`,\n        '[class.align-right]': `align === 'right'`,\n    },\n    styleUrls: ['./button-groups.component.scss'],\n})\nexport class ButtonGroupsComponent {\n    @Input() align: 'left' | 'center' | 'right' = 'left';\n}\n\n@Directive({\n    selector: '[duiFileChooser]',\n    standalone: false,\n    providers: [ngValueAccessor(FileChooserDirective)]\n})\nexport class FileChooserDirective extends ValueAccessorBase<any> implements OnDestroy, OnChanges {\n    @Input() duiFileMultiple?: boolean | '' = false;\n    @Input() duiFileDirectory?: boolean | '' = false;\n\n    // @Input() duiFileChooser?: string | string[];\n    @Output() duiFileChooserChange = new EventEmitter<string | string[]>();\n\n    protected input: HTMLInputElement;\n\n    constructor(\n        protected injector: Injector,\n        public readonly cd: ChangeDetectorRef,\n        @SkipSelf() public readonly cdParent: ChangeDetectorRef,\n        private app: ApplicationRef,\n    ) {\n        super(injector, cd, cdParent);\n        const input = document.createElement('input');\n        input.setAttribute('type', 'file');\n        this.input = input;\n        this.input.addEventListener('change', (event: any) => {\n            const files = event.target.files as FileList;\n            if (files.length) {\n                if (this.duiFileMultiple !== false) {\n                    const paths: string[] = [];\n                    for (let i = 0; i < files.length; i++) {\n                        const file = files.item(i) as any as { path: string, name: string };\n                        paths.push(file.path);\n                    }\n                    this.innerValue = paths;\n                } else {\n                    const file = files.item(0) as any as { path: string, name: string };\n                    this.innerValue = file.path;\n                }\n                this.duiFileChooserChange.emit(this.innerValue);\n                this.app.tick();\n            }\n        });\n    }\n\n    ngOnDestroy() {\n    }\n\n    ngOnChanges(): void {\n        (this.input as any).webkitdirectory = this.duiFileDirectory !== false;\n        this.input.multiple = this.duiFileMultiple !== false;\n    }\n\n    @HostListener('click')\n    onClick() {\n        this.input.click();\n    }\n}\n\nexport interface FilePickerItem {\n    data: Uint8Array;\n    name: string;\n}\n\nfunction readFile(file: File): Promise<Uint8Array | undefined> {\n    return new Promise((resolve, reject) => {\n        const reader = new FileReader();\n        reader.onload = () => {\n            if (reader.result) {\n                if (reader.result instanceof ArrayBuffer) {\n                    resolve(new Uint8Array(reader.result));\n                } else {\n                    resolve(undefined);\n                }\n            }\n        };\n        reader.onerror = (error) => {\n            console.log('Error: ', error);\n            reject();\n        };\n\n        reader.readAsArrayBuffer(file);\n    });\n}\n\n@Directive({\n    selector: '[duiFilePicker]',\n    standalone: false,\n    providers: [ngValueAccessor(FileChooserDirective)]\n})\nexport class FilePickerDirective extends ValueAccessorBase<any> implements OnDestroy, AfterViewInit {\n    @Input() duiFileMultiple?: boolean | '' = false;\n    @Input() duiFileAutoOpen: boolean = false;\n\n    @Output() duiFilePickerChange = new EventEmitter<FilePickerItem | FilePickerItem[]>();\n\n    protected input: HTMLInputElement;\n\n    constructor(\n        protected injector: Injector,\n        public readonly cd: ChangeDetectorRef,\n        @SkipSelf() public readonly cdParent: ChangeDetectorRef,\n        private app: ApplicationRef,\n    ) {\n        super(injector, cd, cdParent);\n        const input = document.createElement('input');\n        input.setAttribute('type', 'file');\n        this.input = input;\n\n        this.input.addEventListener('change', async (event: any) => {\n            const files = event.target.files as FileList;\n            if (files.length) {\n                if (this.duiFileMultiple !== false) {\n                    const res: FilePickerItem[] = [];\n                    for (let i = 0; i < files.length; i++) {\n                        const file = files.item(i);\n                        if (file) {\n                            const uint8Array = await readFile(file);\n                            if (uint8Array) {\n                                res.push({ data: uint8Array, name: file.name });\n                            }\n                        }\n                    }\n                    this.innerValue = res;\n                } else {\n                    const file = files.item(0);\n                    if (file) {\n                        this.innerValue = { data: await readFile(file), name: file.name };\n                    }\n                }\n                this.duiFilePickerChange.emit(this.innerValue);\n                this.app.tick();\n            }\n        });\n    }\n\n    ngOnDestroy() {\n    }\n\n    ngAfterViewInit() {\n        if (this.duiFileAutoOpen) this.onClick();\n    }\n\n    @HostListener('click')\n    onClick() {\n        this.input.multiple = this.duiFileMultiple !== false;\n        this.input.click();\n    }\n}\n\n@Directive({\n    selector: '[duiFileDrop]',\n    standalone: false,\n    host: {\n        '[class.file-drop-hover]': 'i > 0',\n    },\n    providers: [ngValueAccessor(FileChooserDirective)]\n})\nexport class FileDropDirective extends ValueAccessorBase<any> implements OnDestroy {\n    @Input() duiFileDropMultiple?: boolean | '' = false;\n\n    @Output() duiFileDropChange = new EventEmitter<FilePickerItem | FilePickerItem[]>();\n\n    // hover = false;\n    i: number = 0;\n\n    constructor(\n        protected injector: Injector,\n        public readonly cd: ChangeDetectorRef,\n        @SkipSelf() public readonly cdParent: ChangeDetectorRef,\n        private app: ApplicationRef,\n    ) {\n        super(injector, cd, cdParent);\n    }\n\n    @HostListener('dragenter', ['$event'])\n    onDragEnter(ev: any) {\n        // Prevent default behavior (Prevent file from being opened)\n        ev.preventDefault();\n        this.i++;\n        this.cdParent.detectChanges();\n    }\n\n    @HostListener('dragover', ['$event'])\n    onDragOver(ev: any) {\n        // Prevent default behavior (Prevent file from being opened)\n        ev.preventDefault();\n    }\n\n    @HostListener('dragleave', ['$event'])\n    onDragLeave(ev: any) {\n        // Prevent default behavior (Prevent file from being opened)\n        ev.preventDefault();\n        this.i--;\n        this.cdParent.detectChanges();\n    }\n\n    @HostListener('drop', ['$event'])\n    async onDrop(ev: any) {\n        // Prevent default behavior (Prevent file from being opened)\n        ev.preventDefault();\n\n        const res: FilePickerItem[] = [];\n        if (ev.dataTransfer.items) {\n            // Use DataTransferItemList interface to access the file(s)\n            for (let i = 0; i < ev.dataTransfer.items.length; i++) {\n                // If dropped items aren't files, reject them\n                if (ev.dataTransfer.items[i].kind === 'file') {\n                    const file = ev.dataTransfer.items[i].getAsFile();\n                    if (file) {\n                        const uint8Array = await readFile(file);\n                        if (uint8Array) {\n                            res.push({ data: uint8Array, name: file.name });\n                        }\n                    }\n                }\n            }\n        } else {\n            // Use DataTransfer interface to access the file(s)\n            for (let i = 0; i < ev.dataTransfer.files.length; i++) {\n                const file = ev.dataTransfer.files.item(i);\n                if (file) {\n                    const uint8Array = await readFile(file);\n                    if (uint8Array) {\n                        res.push({ data: uint8Array, name: file.name });\n                    }\n                }\n            }\n        }\n        if (this.duiFileDropMultiple !== false) {\n            this.innerValue = res;\n        } else {\n            if (res.length) {\n                this.innerValue = res[0];\n            } else {\n                this.innerValue = undefined;\n            }\n        }\n        this.duiFileDropChange.emit(this.innerValue);\n        this.i = 0;\n        this.cdParent.detectChanges();\n    }\n\n    ngOnDestroy() {\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    Component,\n    Directive,\n    ElementRef,\n    EmbeddedViewRef,\n    EventEmitter,\n    HostListener,\n    Injector,\n    Input,\n    OnChanges,\n    OnDestroy,\n    Optional,\n    Output,\n    SimpleChanges,\n    TemplateRef,\n    ViewChild,\n    ViewContainerRef,\n} from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { ConnectedPosition, Overlay, OverlayConfig, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { Subscription } from 'rxjs';\nimport { WindowRegistry } from '../window/window-state';\nimport { focusWatcher } from '../../core/utils';\nimport { isArray } from '@deepkit/core';\nimport { OverlayStack, OverlayStackItem, unsubscribe } from '../app';\nimport { ButtonComponent } from './button.component';\n\n\n@Component({\n    selector: 'dui-dropdown',\n    standalone: false,\n    template: `\n      <ng-template #dropdownTemplate>\n        <div class=\"dui-body dui-dropdown\" tabindex=\"1\" #dropdown>\n          <!--                <div *ngIf=\"overlay !== false\" class=\"dui-dropdown-arrow\"></div>-->\n          <div class=\"content\" [class.overlay-scrollbar-small]=\"scrollbars\">\n            <ng-container *ngIf=\"!container\">\n              <ng-content></ng-content>\n            </ng-container>\n            <ng-container *ngIf=\"container\" [ngTemplateOutlet]=\"container\"></ng-container>\n          </div>\n        </div>\n      </ng-template>\n    `,\n    host: {\n        '[class.overlay]': 'overlay !== false',\n    },\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    styleUrls: ['./dropdown.component.scss'],\n})\nexport class DropdownComponent implements OnChanges, OnDestroy, AfterViewInit {\n    public isOpen = false;\n    public overlayRef?: OverlayRef;\n    public portalViewRef?: EmbeddedViewRef<any>;\n    protected lastFocusWatcher?: ReturnType<typeof focusWatcher>;\n\n    @Input() host?: HTMLElement | ElementRef;\n\n    @Input() allowedFocus: (HTMLElement | ElementRef)[] | (HTMLElement | ElementRef) = [];\n\n    /**\n     * For debugging purposes.\n     */\n    @Input() keepOpen?: boolean;\n\n    @Input() height?: number | string;\n\n    @Input() width?: number | string;\n\n    @Input() minWidth?: number | string;\n\n    @Input() minHeight?: number | string;\n\n    @Input() maxWidth?: number | string;\n\n    @Input() maxHeight?: number | string;\n\n    @Input() scrollbars: boolean = true;\n\n    /**\n     * Whether the dropdown aligns to the horizontal center.\n     */\n    @Input() center: boolean = false;\n\n    /**\n     * Whether is styled as overlay\n     */\n    @Input() overlay: boolean | '' = false;\n\n    @Input() show?: boolean;\n    @Input() connectedPositions: ConnectedPosition[] = [];\n\n    @Output() showChange = new EventEmitter<boolean>();\n\n    @Output() shown = new EventEmitter();\n\n    @Output() hidden = new EventEmitter();\n\n    @ViewChild('dropdownTemplate', {\n        static: false,\n        read: TemplateRef,\n    }) dropdownTemplate?: TemplateRef<any>;\n    @ViewChild('dropdown', { static: false, read: ElementRef }) dropdown?: ElementRef<HTMLElement>;\n\n    container?: TemplateRef<any> | undefined;\n\n    relativeToInitiator?: HTMLElement;\n\n    protected lastOverlayStackItem?: OverlayStackItem;\n    protected positionStrategy?: PositionStrategy;\n    protected templatePortal?: TemplatePortal;\n\n    constructor(\n        protected overlayService: Overlay,\n        protected injector: Injector,\n        protected overlayStack: OverlayStack,\n        protected viewContainerRef: ViewContainerRef,\n        @Optional() protected registry?: WindowRegistry,\n    ) {\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        if (changes.show && this.dropdownTemplate) {\n            if (this.show === true) this.open();\n            if (this.show === false) this.close();\n        }\n    }\n\n    ngAfterViewInit() {\n        if (!this.dropdownTemplate) return;\n        this.templatePortal = new TemplatePortal(this.dropdownTemplate, this.viewContainerRef);\n        if (this.show === true) this.open();\n        if (this.show === false) this.close();\n    }\n\n    ngOnDestroy(): void {\n        this.close();\n        this.lastFocusWatcher?.();\n    }\n\n    @HostListener('window:keyup', ['$event'])\n    public key(event: KeyboardEvent) {\n        if (!this.keepOpen && this.isOpen && event.key.toLowerCase() === 'escape' && this.lastOverlayStackItem && this.lastOverlayStackItem.isLast()) {\n            this.close();\n        }\n    }\n\n    public toggle(target?: HTMLElement | ElementRef | MouseEvent) {\n        if (this.isOpen) {\n            this.close();\n        } else {\n            this.open(target);\n        }\n    }\n\n    public setContainer(container: TemplateRef<any> | undefined) {\n        this.container = container;\n    }\n\n    public open(target?: HTMLElement | ElementRef | MouseEvent | 'center', initiator?: HTMLElement | ElementRef | {\n        x: number,\n        y: number,\n        width: number,\n        height: number\n    }) {\n        if (this.isOpen) return;\n        this.lastFocusWatcher?.();\n        if (this.positionStrategy) {\n            this.positionStrategy.dispose();\n        }\n        if (!this.templatePortal) return;\n\n        if (!target) {\n            target = this.host;\n        }\n\n        target = target instanceof ElementRef ? target.nativeElement : target;\n\n        if (!target) {\n            throw new Error('No target or host specified for dropdown');\n        }\n\n        //this is necessary for multi-window environments, but doesn't work yet.\n        // const document = this.registry.getCurrentViewContainerRef().element.nativeElement.ownerDocument;\n        // const overlayContainer = new OverlayContainer(document);\n        // const overlayContainer = new OverlayContainer(document);\n        // const overlay = new Overlay(\n        //     this.injector.get(ScrollStrategyOptions),\n        //     overlayContainer,\n        //     this.injector.get(ComponentFactoryResolver),\n        //     new OverlayPositionBuilder(this.injector.get(ViewportRuler), document, this.injector.get(Platform), overlayContainer),\n        //     this.injector.get(OverlayKeyboardDispatcher),\n        //     this.injector,\n        //     this.injector.get(NgZone),\n        //     document,\n        //     this.injector.get(Directionality),\n        // );\n        if (target instanceof MouseEvent) {\n            const mousePosition = { x: target.pageX, y: target.pageY };\n            this.positionStrategy = this.overlayService\n                .position()\n                .flexibleConnectedTo(mousePosition)\n                .withFlexibleDimensions(false)\n                .withViewportMargin(12)\n                .withPush(true)\n                .withDefaultOffsetY(this.overlay !== false ? 15 : 0)\n                .withPositions([\n                    ...this.connectedPositions,\n                    {\n                        originX: 'start',\n                        originY: 'bottom',\n                        overlayX: 'start',\n                        overlayY: 'top',\n                    },\n                    {\n                        originX: 'end',\n                        originY: 'bottom',\n                        overlayX: 'end',\n                        overlayY: 'top',\n                    },\n                    {\n                        originX: 'start',\n                        originY: 'top',\n                        overlayX: 'start',\n                        overlayY: 'bottom',\n                    },\n                    {\n                        originX: 'end',\n                        originY: 'top',\n                        overlayX: 'end',\n                        overlayY: 'bottom',\n                    },\n                ]);\n        } else if (target === 'center') {\n            this.positionStrategy = this.overlayService\n                .position()\n                .global().centerHorizontally().centerVertically();\n        } else {\n            this.positionStrategy = this.overlayService\n                .position()\n                .flexibleConnectedTo(target)\n                .withFlexibleDimensions(false)\n                .withViewportMargin(12)\n                .withPush(true)\n                .withDefaultOffsetY(this.overlay !== false ? 15 : 0)\n                .withPositions([\n                    ...this.connectedPositions,\n                    {\n                        originX: this.center ? 'center' : 'start',\n                        originY: 'bottom',\n                        overlayX: this.center ? 'center' : 'start',\n                        overlayY: 'top',\n                    },\n                    {\n                        originX: 'start',\n                        originY: 'bottom',\n                        overlayX: 'start',\n                        overlayY: 'top',\n                    },\n                    {\n                        originX: 'end',\n                        originY: 'bottom',\n                        overlayX: 'end',\n                        overlayY: 'top',\n                    },\n                ]);\n        }\n\n        if (this.overlayRef) {\n            this.overlayRef.updatePositionStrategy(this.positionStrategy);\n            this.overlayRef.updatePosition();\n        } else {\n            this.isOpen = true;\n            const options: OverlayConfig = {\n                minWidth: 50,\n                maxWidth: 450,\n                maxHeight: '90%',\n                hasBackdrop: false,\n                scrollStrategy: this.overlayService.scrollStrategies.reposition(),\n                positionStrategy: this.positionStrategy,\n            };\n\n            if (this.width) options.width = this.width;\n            if (this.height) options.height = this.height;\n            if (this.minWidth) options.minWidth = this.minWidth;\n            if (this.minHeight) options.minHeight = this.minHeight;\n            if (this.maxWidth) options.maxWidth = this.maxWidth;\n            if (this.maxHeight) options.maxHeight = this.maxHeight;\n\n            this.overlayRef = this.overlayService.create(options);\n\n            if (this.portalViewRef) this.portalViewRef.destroy();\n            this.portalViewRef = this.overlayRef.attach(this.templatePortal);\n\n            this.overlayRef.updatePosition();\n            this.shown.emit();\n            this.showChange.emit(true);\n            // console.log('this.overlayRef', initiator, this.overlayRef.overlayElement);\n            this.setInitiator(initiator);\n            if (this.relativeToInitiator) {\n                const overlayElement = this.overlayRef.overlayElement;\n                const rect = this.getInitiatorRelativeRect();\n                overlayElement.style.transformOrigin = '0 0';\n                overlayElement.style.transform = `translate(${rect.x}px, ${rect.y}px) scale(${rect.width}, ${rect.height})`;\n\n                setTimeout(() => {\n                    overlayElement.style.transition = `transform 0.1s ease-in`;\n                    overlayElement.style.transform = `translate(0, 0) scale(1, 1)`;\n                }, 1);\n            }\n\n            setTimeout(() => {\n                if (this.overlayRef) this.overlayRef.updatePosition();\n            }, 0);\n\n            setTimeout(() => {\n                if (this.overlayRef) this.overlayRef.updatePosition();\n            }, 50);\n\n            if (this.lastOverlayStackItem) this.lastOverlayStackItem.release();\n            this.lastOverlayStackItem = this.overlayStack.register(this.overlayRef.hostElement);\n        }\n\n        const normalizedAllowedFocus = isArray(this.allowedFocus) ? this.allowedFocus : (this.allowedFocus ? [this.allowedFocus] : []);\n        const allowedFocus = normalizedAllowedFocus.map(v => v instanceof ElementRef ? v.nativeElement : v) as HTMLElement[];\n        allowedFocus.push(this.overlayRef.hostElement);\n\n        if (this.show === undefined) {\n            this.overlayRef.hostElement.focus();\n            this.lastFocusWatcher = focusWatcher(\n                this.overlayRef.overlayElement,\n                [...allowedFocus, target as HTMLElement],\n                () => {\n                    if (!this.keepOpen) {\n                        this.close();\n                    }\n                },\n                (element) => {\n                    // If the element is a dialog as well, we don't close\n                    if (!element) return false;\n\n                    if (this.lastOverlayStackItem) {\n                        // When there's an overlay above ours we keep it open\n                        if (!this.lastOverlayStackItem.isLast()) return true;\n                    }\n\n                    return false;\n                });\n        }\n    }\n\n    public setInitiator(initiator?: HTMLElement | ElementRef | { x: number, y: number, width: number, height: number }) {\n        if (!this.overlayRef) return;\n\n        initiator = initiator instanceof ElementRef ? initiator.nativeElement : initiator;\n        initiator = initiator instanceof HTMLElement ? initiator : undefined;\n        this.relativeToInitiator = initiator;\n    }\n\n    protected getInitiatorRelativeRect() {\n        const initiator = this.relativeToInitiator?.getBoundingClientRect();\n        if (!this.overlayRef || !initiator) return { x: 0, y: 0, width: 1, height: 1 };\n        const overlayElement = this.overlayRef.overlayElement;\n        const overlayRect = overlayElement.getBoundingClientRect();\n        return {\n            x: initiator.x - overlayRect.x,\n            y: initiator.y - overlayRect.y,\n            width: initiator.width / overlayRect.width,\n            height: initiator.height / overlayRect.height,\n        };\n    }\n\n    public focus() {\n        if (!this.dropdown) return;\n        this.dropdown.nativeElement.focus();\n    }\n\n    public close() {\n        this.lastFocusWatcher?.();\n        if (!this.isOpen) return;\n        if (this.lastOverlayStackItem) {\n            this.lastOverlayStackItem.release();\n            this.lastOverlayStackItem = undefined;\n        }\n        this.isOpen = false;\n\n        if (this.relativeToInitiator && this.overlayRef) {\n            const overlayElement = this.overlayRef.overlayElement;\n            const rect = this.getInitiatorRelativeRect();\n            overlayElement.style.transition = `transform 0.1s ease-out`;\n            overlayElement.style.transform = `translate(${rect.x}px, ${rect.y}px) scale(${rect.width}, ${rect.height})`;\n            this.relativeToInitiator = undefined;\n\n            const transitionEnd = () => {\n                this.hidden.emit();\n                this.showChange.emit(false);\n                if (this.overlayRef) {\n                    this.portalViewRef?.detach();\n                    this.portalViewRef?.destroy();\n                    this.overlayRef.detach();\n                    this.overlayRef.dispose();\n                    this.overlayRef = undefined;\n                }\n                if (this.positionStrategy) this.positionStrategy.dispose();\n                overlayElement.removeEventListener('transitionend', transitionEnd);\n            };\n\n            overlayElement.addEventListener('transitionend', transitionEnd, { once: true });\n        } else {\n            this.hidden.emit();\n            this.showChange.emit(false);\n            if (this.overlayRef) {\n                this.portalViewRef?.detach();\n                this.portalViewRef?.destroy();\n                this.overlayRef.detach();\n                this.overlayRef.dispose();\n                this.overlayRef = undefined;\n            }\n            if (this.positionStrategy) this.positionStrategy.dispose();\n        }\n    }\n}\n\n/**\n * A directive to open the given dropdown on regular left click.\n */\n@Directive({\n    'selector': '[openDropdown]',\n    standalone: false,\n})\nexport class OpenDropdownDirective implements AfterViewInit, OnDestroy {\n    @Input() openDropdown?: DropdownComponent;\n\n    @unsubscribe()\n    openSub?: Subscription;\n\n    @unsubscribe()\n    hiddenSub?: Subscription;\n\n    constructor(\n        protected elementRef: ElementRef,\n        @Optional() protected button?: ButtonComponent,\n    ) {\n    }\n\n    ngOnDestroy() {\n    }\n\n    ngAfterViewInit() {\n        if (this.button && this.openDropdown) {\n            this.openSub = this.openDropdown.shown.subscribe(() => {\n                if (this.button) this.button.active = true;\n            });\n            this.hiddenSub = this.openDropdown.hidden.subscribe(() => {\n                if (this.button) this.button.active = false;\n            });\n        }\n    }\n\n    @HostListener('click')\n    onClick() {\n        if (this.openDropdown) {\n            this.openDropdown.toggle(this.elementRef);\n        }\n    }\n}\n\n/**\n * A directive to open the given dropdown on mouseenter, and closes automatically on mouseleave.\n * Dropdown keeps open when mouse enters the dropdown\n */\n@Directive({\n    'selector': '[openDropdownHover]',\n    standalone: false,\n})\nexport class OpenDropdownHoverDirective implements OnDestroy {\n    @Input() openDropdownHover?: DropdownComponent;\n\n    /**\n     * In milliseconds.\n     */\n    @Input() openDropdownHoverCloseTimeout: number = 80;\n\n    protected hiddenSub?: Subscription;\n    protected lastHide?: ReturnType<typeof setTimeout>;\n    protected enter = () => this.onHover();\n    protected leave = () => this.onLeave();\n\n    constructor(\n        protected elementRef: ElementRef,\n    ) {\n    }\n\n    ngOnDestroy() {\n        this.cleanup();\n    }\n\n    protected cleanup() {\n        clearTimeout(this.lastHide);\n        this.lastHide = undefined;\n        this.hiddenSub?.unsubscribe();\n    }\n\n    @HostListener('mouseenter')\n    onHover() {\n        this.cleanup();\n\n        if (this.openDropdownHover && !this.openDropdownHover.isOpen) {\n            this.openDropdownHover.open(this.elementRef);\n            const overlayRef = this.openDropdownHover.overlayRef;\n            if (overlayRef) {\n                overlayRef.hostElement.addEventListener('mouseenter', this.enter);\n                overlayRef.hostElement.addEventListener('mouseleave', this.leave);\n                this.hiddenSub = this.openDropdownHover.hidden.subscribe(() => {\n                    overlayRef.hostElement.removeEventListener('mouseenter', this.enter);\n                    overlayRef.hostElement.removeEventListener('mouseleave', this.leave);\n                });\n            }\n        }\n    }\n\n    @HostListener('mouseleave')\n    onLeave() {\n        this.cleanup();\n        this.lastHide = setTimeout(() => {\n            if (this.openDropdownHover && this.lastHide) this.openDropdownHover.close();\n            this.cleanup();\n        }, this.openDropdownHoverCloseTimeout);\n    }\n}\n\n/**\n * A directive to open the given dropdown upon right click / context menu.\n */\n@Directive({\n    'selector': '[contextDropdown]',\n    standalone: false,\n})\nexport class ContextDropdownDirective {\n    @Input() contextDropdown?: DropdownComponent;\n\n    @HostListener('contextmenu', ['$event'])\n    onClick($event: MouseEvent) {\n        if (this.contextDropdown && $event.button === 2) {\n            this.contextDropdown.close();\n            $event.preventDefault();\n            $event.stopPropagation();\n            this.contextDropdown.open($event);\n        }\n    }\n}\n\n@Component({\n    selector: 'dui-dropdown-splitter,dui-dropdown-separator',\n    standalone: false,\n    template: `\n      <div></div>\n    `,\n    styles: [`\n        :host {\n            display: block;\n            padding: 4px 0;\n        }\n\n        div {\n            border-top: 1px solid var(--line-color-light);\n        }\n    `],\n})\nexport class DropdownSplitterComponent {\n}\n\n/**\n * This directive is necessary if you want to load and render the dialog content\n * only when opening the dialog. Without it, it is immediately rendered, which can cause\n * performance and injection issues.\n *\n * ```typescript\n * <dui-dropdown>\n *     <ng-container *dropdownContainer>\n *         Dynamically created upon dropdown instantiation.\n *     </ng-container>\n * </dui-dropdown>\n *\n * ```\n */\n@Directive({\n    'selector': '[dropdownContainer]',\n    standalone: false,\n})\nexport class DropdownContainerDirective {\n    constructor(protected dropdown: DropdownComponent, public template: TemplateRef<any>) {\n        this.dropdown.setContainer(this.template);\n    }\n}\n\n@Component({\n    selector: 'dui-dropdown-item',\n    standalone: false,\n    template: `\n      <dui-icon [size]=\"14\" class=\"selected\" *ngIf=\"selected\" name=\"check\"></dui-icon>\n      <ng-content></ng-content>\n    `,\n    host: {\n        '[class.selected]': 'selected !== false',\n        '[class.disabled]': 'disabled !== false',\n    },\n    styleUrls: ['./dropdown-item.component.scss'],\n})\nexport class DropdownItemComponent {\n    @Input() selected = false;\n\n    @Input() disabled: boolean | '' = false;\n\n    @Input() closeOnClick: boolean = true;\n\n    constructor(protected dropdown: DropdownComponent) {\n    }\n\n    @HostListener('click')\n    onClick() {\n        if (this.closeOnClick) {\n            this.dropdown.close();\n        }\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { Component, HostListener, Input } from '@angular/core';\nimport { ngValueAccessor, ValueAccessorBase } from '../../core/form';\n\n@Component({\n    selector: 'dui-tab-button',\n    standalone: false,\n    template: `\n        <ng-content></ng-content>\n    `,\n    host: {\n        '[attr.tabindex]': '1',\n        '[class.active]': 'isActive()',\n    },\n    styleUrls: ['./tab-button.component.scss'],\n    providers: [ngValueAccessor(TabButtonComponent)]\n})\nexport class TabButtonComponent extends ValueAccessorBase<any> {\n    /**\n     * Whether the button is active (pressed).\n     *\n     * Use alternatively form API, e.g. <dui-tab-button [(ngModel)]=\"chosen\" value=\"overview\"></dui-tab-button>\n     */\n    @Input() active: boolean | '' = false;\n\n    @Input() value?: any;\n\n    @HostListener('click')\n    onClick() {\n        if (this.value === undefined) return;\n        this.innerValue = this.value;\n    }\n\n    isActive(): boolean {\n        if (this.value !== undefined) return this.value === this.innerValue;\n        return this.active !== false\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { NgModule } from '@angular/core';\nimport {\n    ButtonComponent,\n    ButtonGroupComponent,\n    ButtonGroupsComponent,\n    ButtonHotkeyComponent,\n    FileChooserDirective,\n    FileDropDirective,\n    FilePickerDirective,\n    HotkeyDirective\n} from './button.component';\nimport { CommonModule } from '@angular/common';\nimport { DuiIconModule } from '../icon';\nimport {\n    ContextDropdownDirective,\n    DropdownComponent,\n    DropdownContainerDirective,\n    DropdownItemComponent,\n    DropdownSplitterComponent,\n    OpenDropdownDirective,\n    OpenDropdownHoverDirective,\n} from './dropdown.component';\nimport { FormsModule } from '@angular/forms';\nimport { TabButtonComponent } from './tab-button.component';\n\nexport * from \"./dropdown.component\";\nexport * from './button.component'\nexport * from './tab-button.component'\n\n@NgModule({\n    declarations: [\n        ButtonComponent,\n        ButtonGroupComponent,\n        ButtonGroupsComponent,\n        DropdownComponent,\n        DropdownItemComponent,\n        DropdownSplitterComponent,\n        DropdownContainerDirective,\n        OpenDropdownDirective,\n        OpenDropdownHoverDirective,\n        ContextDropdownDirective,\n        FileChooserDirective,\n        TabButtonComponent,\n        FilePickerDirective,\n        FileDropDirective,\n        HotkeyDirective,\n        ButtonHotkeyComponent,\n    ],\n    exports: [\n        ButtonComponent,\n        ButtonGroupComponent,\n        ButtonGroupsComponent,\n        DropdownComponent,\n        DropdownItemComponent,\n        DropdownSplitterComponent,\n        DropdownContainerDirective,\n        OpenDropdownDirective,\n        OpenDropdownHoverDirective,\n        ContextDropdownDirective,\n        FileChooserDirective,\n        TabButtonComponent,\n        FilePickerDirective,\n        FileDropDirective,\n        HotkeyDirective,\n        ButtonHotkeyComponent,\n    ],\n    imports: [\n        CommonModule,\n        FormsModule,\n        DuiIconModule,\n    ]\n})\nexport class DuiButtonModule {\n\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    AfterViewInit,\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    EventEmitter,\n    HostBinding,\n    Injector,\n    Input,\n    Output,\n    SkipSelf,\n    ViewChild,\n} from '@angular/core';\nimport { ngValueAccessor, ValueAccessorBase } from '../../core/form';\nimport { detectChangesNextFrame } from '../app';\nimport { DatePipe } from '@angular/common';\n\nconst dateTimeTypes: string[] = ['time', 'date', 'datetime', 'datetime-local'];\n\n@Component({\n    selector: 'dui-input',\n    standalone: false,\n    template: `\n        <dui-icon *ngIf=\"icon\" class=\"icon\" [size]=\"iconSize\" [name]=\"icon\"></dui-icon>\n        <input\n                *ngIf=\"type !== 'textarea'\"\n                #input\n                [step]=\"step\"\n                [readOnly]=\"readonly !== false\"\n                [attr.min]=\"min\"\n                [attr.max]=\"max\"\n                [attr.minLength]=\"minLength\"\n                [attr.maxLength]=\"maxLength\"\n                [type]=\"type\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"\n                (change)=\"handleFileInput($event)\"\n                [placeholder]=\"placeholder\" (keyup)=\"onKeyUp($event)\" (keydown)=\"onKeyDown($event)\"\n                [disabled]=\"isDisabled\"\n                [ngModel]=\"type === 'file' ? undefined : innerValue\"\n                (ngModelChange)=\"setInnerValue($event)\"\n        />\n        <textarea\n                #input\n                [readOnly]=\"readonly !== false\"\n                *ngIf=\"type === 'textarea'\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"\n                [placeholder]=\"placeholder\" (keyup)=\"onKeyUp($event)\" (keydown)=\"onKeyDown($event)\"\n                [disabled]=\"isDisabled\"\n                [(ngModel)]=\"innerValue\"></textarea>\n        <dui-icon *ngIf=\"hasClearer\" class=\"clearer\" name=\"clear\" (click)=\"clear()\"></dui-icon>\n    `,\n    styleUrls: ['./input.component.scss'],\n    host: {\n        '[class.is-textarea]': 'type === \"textarea\"',\n        '[class.light-focus]': 'lightFocus !== false',\n        '[class.semi-transparent]': 'semiTransparent !== false',\n        '[class.no-controls]': 'noControls !== false',\n    },\n    providers: [ngValueAccessor(InputComponent)]\n})\nexport class InputComponent extends ValueAccessorBase<any> implements AfterViewInit {\n    @Input() type: string = 'text';\n\n    @Input() step: number = 1;\n\n    @Input() placeholder: string = '';\n\n    @Input() icon: string = '';\n\n    @Input() min?: number;\n    @Input() max?: number;\n    @Input() maxLength?: number;\n    @Input() minLength?: number;\n\n    @Input() iconSize: number = 17;\n\n    /**\n     * Focuses this element once created (AfterViewInit).\n     */\n    @Input() focus: boolean | '' = false;\n\n    /**\n     * Uses a more decent focus border.\n     */\n    @Input() lightFocus: boolean | '' = false;\n\n    /**\n     * Disables input controls (like for type=number the arrow buttons)\n     */\n    @Input() noControls: boolean | '' = false;\n\n    /**\n     * Appears a little bit transparent. Perfect for blurry background.\n     */\n    @Input() semiTransparent: boolean | '' = false;\n\n    @Output() esc = new EventEmitter<KeyboardEvent>();\n    @Output() enter = new EventEmitter<KeyboardEvent>();\n    @Output() keyDown = new EventEmitter<KeyboardEvent>();\n    @Output() keyUp = new EventEmitter<KeyboardEvent>();\n\n    @ViewChild('input', { static: false }) input?: ElementRef<HTMLInputElement | HTMLTextAreaElement>;\n\n    @Input() textured: boolean | '' = false;\n\n    @Input() readonly: boolean | '' = false;\n\n    @Output() focusChange = new EventEmitter<boolean>();\n\n    @HostBinding('class.textured')\n    get isTextured() {\n        return false !== this.textured;\n    }\n\n    @HostBinding('class.focused')\n    get isFocused() {\n        if ('undefined' === typeof document) return false;\n        return this.input ? document.activeElement === this.input!.nativeElement : false;\n    }\n\n    @HostBinding('class.filled')\n    get isFilled() {\n        return !!this.innerValue;\n    }\n\n    @Input() round: boolean | '' = false;\n\n    @HostBinding('class.round')\n    get isRound() {\n        return false !== this.round;\n    }\n\n    @Input() clearer: boolean | '' = false;\n\n    @HostBinding('class.has-clearer')\n    get hasClearer() {\n        return false !== this.clearer;\n    }\n\n    @HostBinding('class.has-icon')\n    get hasIcon() {\n        return !!this.icon;\n    }\n\n    constructor(\n        protected injector: Injector,\n        public readonly cd: ChangeDetectorRef,\n        @SkipSelf() public readonly cdParent: ChangeDetectorRef,\n        private datePipe : DatePipe,\n    ) {\n        super(injector, cd, cdParent);\n    }\n\n    onBlur() {\n        this.cdParent.detectChanges();\n        this.focusChange.next(false);\n    }\n\n    onFocus() {\n        this.cdParent.detectChanges();\n        this.focusChange.next(true);\n    }\n\n    public async clear() {\n        this.innerValue = '';\n    }\n\n    /**\n     * From <input>\n     */\n    setInnerValue(value: any) {\n        if (this.type === 'file') return;\n\n        this.innerValue = value;\n    }\n\n    get innerValue(): any {\n        if (this.type === 'text') {\n\n        } else if (this.type === 'number') {\n        } else if (dateTimeTypes.includes(this.type)) {\n            if (super.innerValue instanceof Date) {\n                if (this.type === 'date') return this.datePipe.transform(super.innerValue, `yyyy-MM-dd`);\n                return this.datePipe.transform(super.innerValue, 'yyyy-MM-ddThh:mm:ss.SSS');\n            } else if ('string' === typeof super.innerValue) {\n                return this.datePipe.transform(new Date(super.innerValue), 'yyyy-MM-ddThh:mm:ss.SSS');\n            }\n        }\n\n        return super.innerValue;\n    }\n\n    set innerValue(value: any | undefined) {\n        if (this.type === 'text') {\n\n        } else if (this.type === 'number') {\n            if (value && 'number' !== typeof value) {\n                value = parseFloat(value);\n            }\n        } else if (dateTimeTypes.includes(this.type)) {\n            if ('string' === typeof value) {\n                value = new Date(value);\n            }\n        }\n        super.innerValue = value;\n    }\n\n    writeValue(value?: any) {\n        if (this.type === 'file' && !value && this.input) {\n            //we need to manually reset the field, since writing to it via ngModel is not supported.\n            this.input!.nativeElement.value = '';\n        }\n\n        super.writeValue(value);\n    }\n\n    onKeyDown(event: KeyboardEvent) {\n        this.touch();\n        this.keyDown.emit(event);\n    }\n\n    onKeyUp(event: KeyboardEvent) {\n        if (event.key.toLowerCase() === 'enter' && this.type !== 'textarea') {\n            this.enter.emit(event);\n        }\n\n        if (event.key.toLowerCase() === 'esc' || event.key.toLowerCase() === 'escape') {\n            this.esc.emit(event);\n        }\n\n        this.keyUp.emit(event);\n    }\n\n    focusInput() {\n        setTimeout(() => {\n            this.input!.nativeElement.focus();\n        });\n    }\n\n    ngAfterViewInit() {\n        if (this.focus !== false && this.input) {\n            setTimeout(() => {\n                this.input!.nativeElement.focus();\n                detectChangesNextFrame(this.cd);\n            });\n        }\n    }\n\n    public async handleFileInput(event: any) {\n        const files = event.target.files;\n        this.touch();\n\n        const readFile = (file: File): Promise<ArrayBuffer | undefined> => {\n            return new Promise((resolve, reject) => {\n                const reader = new FileReader();\n                reader.onload = () => {\n                    if (reader.result) {\n                        if (reader.result instanceof ArrayBuffer) {\n                            resolve(reader.result);\n                        } else {\n                            resolve(undefined);\n                        }\n                    }\n                };\n                reader.onerror = (error) => {\n                    console.log('Error: ', error);\n                    reject();\n                };\n\n                reader.readAsArrayBuffer(file);\n            });\n        };\n\n        if (files) {\n            if (files.length > 1) {\n                const value: any[] = [];\n                for (let i = 0; i < files.length; i++) {\n                    const file = files.item(i);\n                    if (file) {\n                        value.push(await readFile(file));\n                    }\n                }\n                this.innerValue = value;\n            } else if (files.length === 1) {\n                this.innerValue = await readFile(files.item(0));\n            }\n        }\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { NgModule } from '@angular/core';\nimport { InputComponent } from './input.component';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { DuiIconModule } from '../icon';\n\nexport * from './input.component';\n\n@NgModule({\n    declarations: [\n        InputComponent,\n    ],\n    exports: [\n        InputComponent,\n    ],\n    providers: [\n        DatePipe\n    ],\n    imports: [\n        CommonModule,\n        FormsModule,\n        DuiIconModule,\n    ]\n})\nexport class DuiInputModule {\n\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { NgModule } from '@angular/core';\nimport { FormComponent, FormRowComponent } from './form.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nexport * from \"./form.component\";\n\n@NgModule({\n    declarations: [\n        FormComponent,\n        FormRowComponent,\n    ],\n    exports: [\n        FormComponent,\n        FormRowComponent,\n    ],\n    imports: [\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n    ]\n})\nexport class DuiFormComponent {\n\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { ChangeDetectorRef, Component, HostBinding, HostListener, Injector, Input, SkipSelf } from '@angular/core';\nimport { ngValueAccessor, ValueAccessorBase } from '../../core/form';\n\n@Component({\n    selector: 'dui-radiobox',\n    standalone: false,\n    template: `\n        <span class=\"box\"><div class=\"circle\"></div></span>\n        <ng-content></ng-content>\n    `,\n    styleUrls: ['./radiobox.component.scss'],\n    providers: [ngValueAccessor(RadioboxComponent)]\n})\nexport class RadioboxComponent<T> extends ValueAccessorBase<T> {\n    @Input() value?: T;\n\n    @HostBinding('tabindex')\n    get tabIndex() {\n        return 1;\n    }\n\n    @HostBinding('class.checked')\n    get isChecked() {\n        return this.value === this.innerValue;\n    }\n\n    constructor(\n        protected injector: Injector,\n        public readonly cd: ChangeDetectorRef,\n        @SkipSelf() public readonly cdParent: ChangeDetectorRef,\n    ) {\n        super(injector, cd, cdParent);\n    }\n\n    @HostListener('click')\n    public onClick() {\n        if (this.isDisabled) return;\n\n        this.innerValue = this.value;\n        this.touch();\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { NgModule } from '@angular/core';\nimport { RadioboxComponent } from './radiobox.component';\n\nexport * from './radiobox.component';\n\n@NgModule({\n    declarations: [\n        RadioboxComponent\n    ],\n    exports: [\n        RadioboxComponent\n    ]\n})\nexport class DuiRadioboxModule {\n\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    AfterViewInit,\n    ChangeDetectorRef,\n    Component,\n    ContentChild,\n    ContentChildren,\n    Directive,\n    ElementRef,\n    HostBinding,\n    HostListener,\n    Injector,\n    Input,\n    OnChanges,\n    OnDestroy,\n    QueryList,\n    SimpleChanges,\n    SkipSelf,\n    TemplateRef,\n    ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ngValueAccessor, ValueAccessorBase } from '../../core/form';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { DropdownComponent } from '../button/dropdown.component';\nimport { ButtonComponent } from '../button/button.component';\n\n/**\n * Necessary directive to get a dynamic rendered option.\n *\n * ```html\n * <dui-option>\n *     <ng-container *dynamicOption>\n *          {{item.fieldName | date}}\n *     </ng-container>\n * </dui-option>\n * ```\n */\n@Directive({\n    selector: '[dynamicOption]',\n    standalone: false,\n})\nexport class DynamicOptionDirective {\n    constructor(\n        public template: TemplateRef<any>\n    ) {\n    }\n}\n\n@Component({\n    selector: 'dui-option',\n    standalone: false,\n    template: `\n        <ng-content></ng-content>`\n})\nexport class OptionDirective {\n    @Input() value: any;\n\n    @Input() disabled: boolean = false;\n\n    @ContentChild(DynamicOptionDirective, { static: false }) dynamic?: DynamicOptionDirective;\n\n    constructor(public readonly element: ElementRef) {\n    }\n}\n\n@Directive({\n    selector: 'dui-option-separator',\n    standalone: false,\n    providers: [{ provide: OptionDirective, useExisting: OptionSeparatorDirective }],\n})\nexport class OptionSeparatorDirective {\n    constructor() {\n    }\n}\n\nclass NotSelected {\n}\n\n@Component({\n    selector: 'dui-select',\n    standalone: false,\n    template: `\n        <ng-container *ngIf=\"button\">\n            <dui-button-group padding=\"none\">\n                <ng-content select=\"dui-button\"></ng-content>\n                <dui-button class=\"split-knob\"\n                            style=\"padding: 0 2px;\"\n                            [openDropdown]=\"dropdown\" tight textured icon=\"arrow_down\"></dui-button>\n            </dui-button-group>\n        </ng-container>\n\n        <ng-container *ngIf=\"!button\">\n            <div class=\"placeholder\" *ngIf=\"!isSelected\">{{placeholder}}</div>\n            <div class=\"value\">\n                <ng-container *ngIf=\"innerValue !== undefined && optionsValueMap.get(innerValue) as option\">\n                    <ng-container *ngIf=\"option.dynamic\" [ngTemplateOutlet]=\"option.dynamic.template\"></ng-container>\n                    <div *ngIf=\"!option.dynamic\">\n                        <div [innerHTML]=\"option.element.nativeElement.innerHTML\"></div>\n                    </div>\n                </ng-container>\n            </div>\n\n            <div class=\"knob\">\n                <dui-icon [size]=\"12\" name=\"arrows\"></dui-icon>\n            </div>\n        </ng-container>\n\n        <dui-dropdown #dropdown [host]=\"element.nativeElement\">\n            <ng-container *ngIf=\"options\">\n                <ng-container *ngFor=\"let option of options.toArray()\">\n                    <dui-dropdown-separator *ngIf=\"isSeparator(option)\"></dui-dropdown-separator>\n                    <dui-dropdown-item\n                        *ngIf=\"!isSeparator(option)\"\n                        (click)=\"select(option.value)\"\n                        [selected]=\"innerValue === option.value\"\n                    >\n                        <ng-container *ngIf=\"option.dynamic\" [ngTemplateOutlet]=\"option.dynamic.template\"></ng-container>\n                        <div *ngIf=\"!option.dynamic\">\n                            <div [innerHTML]=\"option.element.nativeElement.innerHTML\"></div>\n                        </div>\n                    </dui-dropdown-item>\n                </ng-container>\n            </ng-container>\n        </dui-dropdown>\n    `,\n    styleUrls: ['./selectbox.component.scss'],\n    host: {\n        '[attr.tabIndex]': '1',\n        '[class.split]': '!!button',\n        '[class.textured]': 'textured !== false',\n        '[class.small]': 'small !== false',\n    },\n    providers: [ngValueAccessor(SelectboxComponent)]\n})\nexport class SelectboxComponent<T> extends ValueAccessorBase<T | NotSelected> implements AfterViewInit, OnDestroy, OnChanges {\n    @Input() placeholder: string = '';\n\n    /**\n     * Different textured styled.\n     */\n    @Input() textured: boolean | '' = false;\n\n    /**\n     * Smaller text and height.\n     */\n    @Input() small: boolean | '' = false;\n\n    @ContentChild(ButtonComponent, { static: false }) button?: ButtonComponent;\n\n    @ContentChildren(OptionDirective, { descendants: true }) options?: QueryList<OptionDirective>;\n    @ViewChild('dropdown', { static: false }) dropdown!: DropdownComponent;\n\n    public label: string = '';\n    public optionsValueMap = new Map<T | NotSelected, OptionDirective>();\n\n    protected changeSubscription?: Subscription;\n\n    constructor(\n        protected overlay: Overlay,\n        protected injector: Injector,\n        public element: ElementRef,\n        public readonly cd: ChangeDetectorRef,\n        @SkipSelf() public readonly cdParent: ChangeDetectorRef,\n    ) {\n        super(injector, cd, cdParent);\n        this.innerValue = new NotSelected;\n    }\n\n    isSeparator(item: any): boolean {\n        return item instanceof OptionSeparatorDirective;\n    }\n\n    ngAfterViewInit(): void {\n        if (this.options) {\n            this.changeSubscription = this.options.changes.subscribe(() => this.updateMap());\n\n            setTimeout(() => {\n                this.updateMap();\n            });\n        }\n    }\n\n    public select(value: T) {\n        this.innerValue = value;\n        this.touch();\n        this.dropdown.close();\n    }\n\n    @HostListener('mousedown')\n    public onClick() {\n        if (this.disabled) return;\n        if (this.button) return;\n\n        this.dropdown.toggle();\n    }\n\n    ngOnChanges(changes: SimpleChanges) {\n    }\n\n    open() {\n        if (this.dropdown) this.dropdown.open();\n    }\n\n    writeValue(value?: T | NotSelected): void {\n        super.writeValue(value);\n    }\n\n    @HostBinding('class.selected')\n    get isSelected(): boolean {\n        return !(this.innerValue instanceof NotSelected);\n    }\n\n    protected updateMap() {\n        this.optionsValueMap.clear();\n        if (!this.options) return;\n\n        for (const option of this.options.toArray()) {\n            this.optionsValueMap.set(option.value, option);\n        }\n\n        this.cd.detectChanges();\n    }\n\n    ngOnDestroy(): void {\n        if (this.changeSubscription) {\n            this.changeSubscription.unsubscribe();\n        }\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { NgModule } from '@angular/core';\nimport {\n    DynamicOptionDirective,\n    OptionDirective,\n    OptionSeparatorDirective,\n    SelectboxComponent\n} from './selectbox.component';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { DuiIconModule } from '../icon';\nimport { DuiButtonModule } from '../button';\n\nexport * from \"./selectbox.component\";\n\n@NgModule({\n    declarations: [\n        SelectboxComponent,\n        OptionDirective,\n        DynamicOptionDirective,\n        OptionSeparatorDirective,\n    ],\n    exports: [\n        SelectboxComponent,\n        OptionDirective,\n        DynamicOptionDirective,\n        OptionSeparatorDirective,\n    ],\n    imports: [\n        FormsModule,\n        CommonModule,\n        DuiIconModule,\n        DuiButtonModule,\n    ]\n})\nexport class DuiSelectModule {\n\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { Component } from '@angular/core';\n\n@Component({\n    selector: 'dui-window-footer',\n    standalone: false,\n    template: '<ng-content></ng-content>',\n    styleUrls: ['./window-footer.component.scss']\n})\nexport class WindowFooterComponent { }\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { Component, OnDestroy, TemplateRef, ViewChild } from '@angular/core';\nimport { WindowContentComponent } from './window-content.component';\n\n@Component({\n    selector: 'dui-window-sidebar',\n    standalone: false,\n    template: `\n        <ng-template #templateRef>\n            <ng-content></ng-content>\n        </ng-template>\n    `,\n    styleUrls: ['./window-sidebar.component.scss'],\n})\nexport class WindowSidebarComponent implements OnDestroy {\n    @ViewChild('templateRef', { static: true }) public template!: TemplateRef<any>;\n\n    constructor(private content: WindowContentComponent) {\n        content.registerSidebar(this);\n    }\n\n    ngOnDestroy() {\n        this.content.unregisterSidebar(this);\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { SplitterComponent } from './splitter.component';\n\nexport * from './splitter.component';\n\n@NgModule({\n    imports: [],\n    exports: [SplitterComponent],\n    declarations: [SplitterComponent],\n    providers: [],\n})\nexport class DuiSplitterModule {\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    AfterViewInit,\n    ApplicationRef,\n    ComponentFactoryResolver,\n    ComponentRef,\n    Directive,\n    Input,\n    OnDestroy,\n    ViewContainerRef,\n} from '@angular/core';\n\n@Directive({\n    selector: '[renderComponent]',\n    standalone: false,\n})\nexport class RenderComponentDirective implements AfterViewInit, OnDestroy {\n    @Input() renderComponent: any;\n    @Input() renderComponentInputs: { [name: string]: any } = {};\n\n    public component?: ComponentRef<any>;\n\n    constructor(\n        protected app: ApplicationRef,\n        protected resolver: ComponentFactoryResolver,\n        protected viewContainerRef: ViewContainerRef,\n    ) {\n    }\n\n    ngAfterViewInit(): void {\n        const factoryMain = this.resolver.resolveComponentFactory(this.renderComponent);\n        const original = (factoryMain.create as any).bind(factoryMain);\n        factoryMain.create = (...args: any[]) => {\n            const comp = original(...args);\n\n            for (const [i, v] of Object.entries(this.renderComponentInputs)) {\n                comp.instance[i] = v;\n            }\n\n            return comp;\n        };\n\n        this.component = this.viewContainerRef.createComponent(factoryMain, 0, this.viewContainerRef.injector);\n\n        this.app.tick();\n    }\n\n    ngOnDestroy(): void {\n        if (this.component) {\n            this.component.destroy();\n        }\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    AfterViewInit,\n    ApplicationRef,\n    ChangeDetectorRef,\n    Component,\n    ComponentRef,\n    Directive,\n    ElementRef,\n    EventEmitter,\n    HostListener,\n    Injector,\n    Input,\n    OnChanges,\n    OnDestroy,\n    Optional,\n    Output,\n    SimpleChanges,\n    SkipSelf,\n    TemplateRef,\n    Type,\n    ViewChild,\n    ViewContainerRef,\n} from '@angular/core';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { WindowRegistry } from '../window/window-state';\nimport { WindowComponent } from '../window/window.component';\nimport { RenderComponentDirective } from '../core/render-component.directive';\nimport { IN_DIALOG } from '../app/token';\nimport { OverlayStack, OverlayStackItem, ReactiveChangeDetectionModule, unsubscribe } from '../app';\nimport { Subscription } from 'rxjs';\nimport { ButtonComponent } from '../button';\n\n@Component({\n    standalone: false,\n    template: `\n        <dui-window>\n            <dui-window-content class=\"{{class}}\">\n                <ng-container *ngIf=\"component\"\n                              #renderComponentDirective\n                              [renderComponent]=\"component\" [renderComponentInputs]=\"componentInputs\">\n                </ng-container>\n\n                <ng-container *ngIf=\"content\" [ngTemplateOutlet]=\"content\"></ng-container>\n\n                <ng-container *ngIf=\"container\">\n                    <ng-container [ngTemplateOutlet]=\"container\"></ng-container>\n                </ng-container>\n\n                <ng-container *ngIf=\"!container\">\n                    <ng-content></ng-content>\n                </ng-container>\n            </dui-window-content>\n\n            <div class=\"dialog-actions\" *ngIf=\"actions\">\n                <ng-container [ngTemplateOutlet]=\"actions\"></ng-container>\n            </div>\n        </dui-window>\n    `,\n    host: {\n        '[attr.tabindex]': '1'\n    },\n    styleUrls: ['./dialog-wrapper.component.scss']\n})\nexport class DialogWrapperComponent {\n    @Input() component?: Type<any>;\n    @Input() componentInputs: { [name: string]: any } = {};\n\n    actions?: TemplateRef<any> | undefined;\n    container?: TemplateRef<any> | undefined;\n    content?: TemplateRef<any> | undefined;\n    class: string = '';\n\n    @ViewChild(RenderComponentDirective, { static: false }) renderComponentDirective?: RenderComponentDirective;\n\n    constructor(\n        protected cd: ChangeDetectorRef,\n    ) {\n    }\n\n    public setActions(actions: TemplateRef<any> | undefined) {\n        this.actions = actions;\n        this.cd.detectChanges();\n    }\n\n    public setDialogContainer(container: TemplateRef<any> | undefined) {\n        this.container = container;\n        this.cd.detectChanges();\n    }\n}\n\n@Component({\n    selector: 'dui-dialog',\n    standalone: false,\n    template: `\n        <ng-template #template>\n            <ng-content></ng-content>\n        </ng-template>`,\n    styles: [`:host {\n        display: none;\n    }`]\n})\nexport class DialogComponent implements AfterViewInit, OnDestroy, OnChanges {\n    @Input() title: string = '';\n\n    @Input() visible: boolean = false;\n    @Output() visibleChange = new EventEmitter<boolean>();\n\n    @Input() class: string = '';\n\n    @Input() noPadding: boolean | '' = false;\n\n    @Input() minWidth?: number | string;\n    @Input() minHeight?: number | string;\n\n    @Input() width?: number | string;\n    @Input() height?: number | string;\n\n    @Input() maxWidth?: number | string;\n    @Input() maxHeight?: number | string;\n\n    @Input() center: boolean = false;\n\n    @Input() backDropCloses: boolean = false;\n\n    @Input() component?: Type<any>;\n    @Input() componentInputs: { [name: string]: any } = {};\n\n    @Output() closed = new EventEmitter<any>();\n    @Output() open = new EventEmitter<any>();\n\n    @ViewChild('template', { static: true }) template?: TemplateRef<any>;\n\n    actions?: TemplateRef<any> | undefined;\n    container?: TemplateRef<any> | undefined;\n\n    public overlayRef?: OverlayRef;\n    public wrapperComponentRef?: ComponentRef<DialogWrapperComponent>;\n\n    protected lastOverlayStackItem?: OverlayStackItem;\n\n    constructor(\n        protected applicationRef: ApplicationRef,\n        protected overlayStack: OverlayStack,\n        protected viewContainerRef: ViewContainerRef,\n        protected cd: ChangeDetectorRef,\n        protected overlay: Overlay,\n        protected injector: Injector,\n        protected registry: WindowRegistry,\n        @Optional() @SkipSelf() protected cdParent?: ChangeDetectorRef,\n        @Optional() protected window?: WindowComponent,\n    ) {\n    }\n\n    public toPromise(): Promise<any> {\n        return new Promise((resolve) => {\n            this.closed.subscribe((v: any) => {\n                resolve(v);\n            });\n        });\n    }\n\n    public setDialogContainer(container: TemplateRef<any> | undefined) {\n        this.container = container;\n        if (this.wrapperComponentRef) {\n            this.wrapperComponentRef.instance.setDialogContainer(container);\n        }\n    }\n\n    public setActions(actions: TemplateRef<any> | undefined) {\n        this.actions = actions;\n        if (this.wrapperComponentRef) {\n            this.wrapperComponentRef.instance.setActions(actions);\n        }\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        if (this.visible) {\n            this.show();\n        } else {\n            this.close(undefined);\n        }\n    }\n\n    public show() {\n        if (this.overlayRef) {\n            return;\n        }\n\n        const window = this.window ? this.window.getClosestNonDialogWindow() : this.registry.getOuterActiveWindow();\n        const offsetTop = window && window.header ? window.header.getBottomPosition() : 0;\n\n        // const document = this.registry.getCurrentViewContainerRef().element.nativeElement.ownerDocument;\n\n        //this is necessary for multi-window environments, but doesn't work yet.\n        // const overlayContainer = new OverlayContainer(document);\n        //\n        // const overlay = new Overlay(\n        //     this.injector.get(ScrollStrategyOptions),\n        //     overlayContainer,\n        //     this.injector.get(ComponentFactoryResolver),\n        //     new OverlayPositionBuilder(this.injector.get(ViewportRuler), document, this.injector.get(Platform), overlayContainer),\n        //     this.injector.get(OverlayKeyboardDispatcher),\n        //     this.injector,\n        //     this.injector.get(NgZone),\n        //     document,\n        //     this.injector.get(Directionality),\n        // );\n        const overlay = this.overlay;\n\n        let positionStrategy = overlay\n            .position()\n            .global().centerHorizontally().top(offsetTop + 'px');\n\n        if (this.center) {\n            positionStrategy = overlay\n                .position()\n                .global().centerHorizontally().centerVertically();\n        }\n\n        this.overlayRef = overlay.create({\n            width: this.width || undefined,\n            height: this.height || undefined,\n            minWidth: this.minWidth || undefined,\n            minHeight: this.minHeight || undefined,\n            maxWidth: this.maxWidth || '90%',\n            maxHeight: this.maxHeight || '90%',\n            hasBackdrop: true,\n            panelClass: [this.class, (this.center ? 'dialog-overlay' : 'dialog-overlay-with-animation'), this.noPadding !== false ? 'dialog-overlay-no-padding' : ''],\n            scrollStrategy: overlay.scrollStrategies.reposition(),\n            positionStrategy: positionStrategy,\n        });\n\n        if (this.backDropCloses) {\n            this.overlayRef!.backdropClick().subscribe(() => {\n                this.close(undefined);\n            });\n        }\n\n        const injector = Injector.create({\n            parent: this.injector,\n            providers: [\n                { provide: DialogComponent, useValue: this },\n                { provide: WindowComponent, useValue: window },\n                { provide: IN_DIALOG, useValue: true },\n            ],\n        });\n\n        this.open.emit();\n        const portal = new ComponentPortal(DialogWrapperComponent, this.viewContainerRef, injector);\n\n        this.wrapperComponentRef = this.overlayRef!.attach(portal);\n        this.wrapperComponentRef.instance.component = this.component!;\n        this.wrapperComponentRef.instance.componentInputs = this.componentInputs;\n        this.wrapperComponentRef.instance.content = this.template!;\n        this.wrapperComponentRef.instance.class = this.class!;\n\n        if (this.lastOverlayStackItem) this.lastOverlayStackItem.release();\n        this.lastOverlayStackItem = this.overlayStack.register(this.overlayRef.hostElement);\n\n        if (this.actions) {\n            this.wrapperComponentRef!.instance.setActions(this.actions);\n        }\n\n        if (this.container) {\n            this.wrapperComponentRef!.instance.setDialogContainer(this.container);\n        }\n\n        this.overlayRef!.updatePosition();\n\n        this.visible = true;\n        this.visibleChange.emit(true);\n\n        this.wrapperComponentRef!.location.nativeElement.focus();\n        this.wrapperComponentRef!.changeDetectorRef.detectChanges();\n\n        this.cd.detectChanges();\n        if (this.cdParent) this.cdParent.detectChanges();\n    }\n\n    protected beforeUnload() {\n        if (this.lastOverlayStackItem) this.lastOverlayStackItem.release();\n\n        this.wrapperComponentRef?.destroy();\n\n        if (this.overlayRef) {\n            this.overlayRef.detach();\n            this.overlayRef.dispose();\n            this.overlayRef = undefined;\n        }\n    }\n\n    ngAfterViewInit() {\n    }\n\n    public close(v?: any) {\n        this.beforeUnload();\n        this.visible = false;\n        this.visibleChange.emit(false);\n\n        this.closed.emit(v);\n        ReactiveChangeDetectionModule.tick();\n    }\n\n    ngOnDestroy(): void {\n        this.beforeUnload();\n    }\n}\n\n/**\n * This directive is necessary if you want to load and render the dialog content\n * only when opening the dialog. Without it, it is immediately rendered, which can cause\n * performance and injection issues.\n */\n@Directive({\n    'selector': '[dialogContainer]',\n    standalone: false,\n})\nexport class DialogDirective {\n    constructor(protected dialog: DialogComponent, public template: TemplateRef<any>) {\n        this.dialog.setDialogContainer(this.template);\n    }\n}\n\n@Component({\n    selector: 'dui-dialog-actions',\n    standalone: false,\n    template: '<ng-template #template><ng-content></ng-content></ng-template>'\n})\nexport class DialogActionsComponent implements AfterViewInit, OnDestroy {\n    @ViewChild('template', { static: true }) template!: TemplateRef<any>;\n\n    constructor(protected dialog: DialogComponent) {\n    }\n\n    ngAfterViewInit(): void {\n        this.dialog.setActions(this.template);\n    }\n\n    ngOnDestroy(): void {\n        if (this.dialog.actions === this.template) {\n            this.dialog.setActions(undefined);\n        }\n    }\n}\n\n@Component({\n    selector: 'dui-dialog-error',\n    standalone: false,\n    template: '<ng-content></ng-content>',\n    styleUrls: ['./dialog-error.component.scss']\n})\nexport class DialogErrorComponent {\n}\n\n\n@Directive({\n    selector: '[closeDialog]',\n    standalone: false,\n})\nexport class CloseDialogDirective {\n    @Input() closeDialog: any;\n\n    constructor(protected dialog: DialogComponent) {\n    }\n\n    @HostListener('click')\n    onClick() {\n        this.dialog.close(this.closeDialog);\n    }\n}\n\n/**\n * A directive to open the given dialog on regular left click.\n */\n@Directive({\n    'selector': '[openDialog]',\n    standalone: false,\n})\nexport class OpenDialogDirective implements AfterViewInit, OnChanges, OnDestroy {\n    @Input() openDialog?: DialogComponent;\n\n    @unsubscribe()\n    openSub?: Subscription;\n\n    @unsubscribe()\n    hiddenSub?: Subscription;\n\n    constructor(\n        protected elementRef: ElementRef,\n        @Optional() protected button?: ButtonComponent,\n    ) {\n    }\n\n    ngOnDestroy() {\n    }\n\n    ngOnChanges() {\n        this.link();\n    }\n\n    ngAfterViewInit() {\n        this.link();\n    }\n\n    protected link() {\n        if (this.button && this.openDialog) {\n            this.openSub = this.openDialog.open.subscribe(() => {\n                if (this.button) this.button.active = true;\n            });\n            this.hiddenSub = this.openDialog.closed.subscribe(() => {\n                if (this.button) this.button.active = false;\n            });\n        }\n    }\n\n    @HostListener('click')\n    onClick() {\n        if (this.openDialog) this.openDialog.show();\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { BehaviorSubject } from 'rxjs';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { DialogComponent } from './dialog.component';\n\nclass State {\n    title: string = '';\n    step: number = 0;\n    steps: number = 1;\n}\n\nexport class ProgressDialogState extends BehaviorSubject<State | undefined> {\n    protected readonly state = new State;\n\n    public readonly closer = new BehaviorSubject<boolean>(false);\n\n    constructor() {\n        super(undefined);\n        this.next(this.state);\n    }\n\n    public cancel() {\n        this.closer.next(true);\n    }\n\n    public close() {\n        this.closer.next(true);\n    }\n\n    public async waitForClose(): Promise<boolean> {\n        return new Promise<boolean>((resolve, reject) => {\n            this.closer.subscribe((next) => {\n                if (next) {\n                    resolve(next);\n                }\n            });\n        });\n    }\n\n    set title(v: string) {\n        this.state.title = v;\n        this.next(this.state);\n    }\n\n    get title(): string {\n        return this.state.title;\n    }\n\n    set step(v: number) {\n        this.state.step = v;\n        this.next(this.state);\n    }\n\n    get step(): number {\n        return this.state.step;\n    }\n\n    set steps(v: number) {\n        this.state.steps = v;\n        this.next(this.state);\n    }\n\n    get steps(): number {\n        return this.state.steps;\n    }\n}\n\n@Component({\n    standalone: false,\n    template: `\n        <div *ngIf=\"state$|async as state\">\n            <h3>{{state.title}}</h3>\n            <div>\n                <div style=\"text-align: right; padding: 2px 0;\">\n                    {{state.step}} / {{state.steps}}\n                </div>\n                <!--                <mat-progress-bar mode=\"determinate\" [value]=\"state.step/state.steps * 100\"></mat-progress-bar>-->\n            </div>\n        </div>\n\n        <dui-dialog-actions>\n            <button mat-button (click)=\"onCancelClick()\">Cancel</button>\n        </dui-dialog-actions>\n    `\n})\nexport class DuiDialogProgress implements OnInit {\n    @Input() public state$!: ProgressDialogState;\n\n    constructor(protected dialog: DialogComponent) {\n    }\n\n    ngOnInit(): void {\n        this.state$.closer.subscribe((v) => {\n            if (v) {\n                this.dialog.close(v);\n            }\n        });\n    }\n\n    onCancelClick() {\n        this.state$.closer.next(true);\n        this.dialog.close(false);\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    ApplicationRef,\n    ChangeDetectorRef,\n    Component,\n    ComponentFactoryResolver,\n    ComponentRef,\n    Directive,\n    ElementRef,\n    Inject,\n    Injectable,\n    Injector,\n    Input,\n    OnDestroy,\n    Type,\n    ViewContainerRef,\n} from '@angular/core';\nimport { DialogComponent } from './dialog.component';\nimport { isTargetChildOf } from '../../core/utils';\nimport { DuiDialogProgress, ProgressDialogState } from './progress-dialog.component';\nimport { DOCUMENT } from '@angular/common';\nimport { WindowRegistry } from '../window/window-state';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\n\n@Component({\n    standalone: false,\n    template: `\n        <h3>{{title || 'No title'}}</h3>\n        <div *ngIf=\"content\">{{content}}</div>\n\n        <dui-dialog-actions>\n            <dui-button hotkey=\"escape\" [closeDialog]=\"false\">Cancel</dui-button>\n            <dui-button focus [closeDialog]=\"true\">OK</dui-button>\n        </dui-dialog-actions>\n    `\n})\nexport class DuiDialogConfirm {\n    @Input() title: string = 'Confirm';\n    @Input() content: string = '';\n\n    static dialogDefaults = {\n        maxWidth: '700px'\n    };\n}\n\n@Component({\n    standalone: false,\n    template: `\n        <h3>{{title || 'No title'}}</h3>\n        <div *ngIf=\"content\" class=\"text-selection\" style=\"white-space: pre-line;\">{{content}}</div>\n\n        <dui-dialog-actions>\n            <dui-button focus hotkey=\"escape\"  [closeDialog]=\"true\">OK</dui-button>\n        </dui-dialog-actions>\n    `\n})\nexport class DuiDialogAlert {\n    @Input() title: string = 'Alert';\n    @Input() content: string = '';\n\n    static dialogDefaults = {\n        maxWidth: '700px'\n    };\n}\n\n@Component({\n    standalone: false,\n    template: `\n        <h3>{{title || 'No title'}}</h3>\n        <div *ngIf=\"content\" class=\"text-selection\" style=\"white-space: pre-line;\">{{content}}</div>\n        <div style=\"padding-top: 5px;\">\n            <dui-input style=\"width: 100%\" (enter)=\"dialog.close(value)\" focus [(ngModel)]=\"value\"></dui-input>\n        </div>\n\n        <dui-dialog-actions>\n            <dui-button hotkey=\"escape\" [closeDialog]=\"false\">Cancel</dui-button>\n            <dui-button [closeDialog]=\"value\">OK</dui-button>\n        </dui-dialog-actions>\n    `\n})\nexport class DuiDialogPrompt {\n    @Input() title: string = 'Alert';\n    @Input() content: string = '';\n\n    @Input() value: string = '';\n\n    static dialogDefaults = {\n        maxWidth: '700px'\n    };\n\n    constructor(public dialog: DialogComponent) {\n    }\n}\n\n@Injectable()\nexport class DuiDialog {\n    constructor(\n        protected resolver: ComponentFactoryResolver,\n        protected app: ApplicationRef,\n        protected injector: Injector,\n        protected registry: WindowRegistry,\n        protected overlay: Overlay,\n    ) {\n    }\n\n    protected getComponentRef(viewContainerRef: ViewContainerRef | null = null): ComponentRef<DialogComponent> {\n        if (!viewContainerRef && !this.registry.activeWindow) {\n            //create portal\n            const overlayRef = this.overlay.create();\n            const portal = new ComponentPortal(DialogComponent);\n\n            const comp = overlayRef.attach(portal);\n            comp.instance.closed.subscribe((v) => {\n                comp.destroy();\n                overlayRef.dispose();\n            });\n\n            return comp;\n        }\n\n        if (!viewContainerRef) {\n            viewContainerRef = this.registry.getCurrentViewContainerRef();\n        }\n\n        const factory = this.resolver.resolveComponentFactory(DialogComponent);\n        return viewContainerRef.createComponent(factory);\n    }\n\n    public open<T>(\n        component: Type<T>,\n        inputs: { [name in keyof T]?: any } = {},\n        dialogInputs: Partial<DialogComponent> = {},\n        viewContainerRef: ViewContainerRef | null = null,\n    ): { dialog: DialogComponent, close: Promise<any>, component: T } {\n        const comp = this.getComponentRef(viewContainerRef);\n        comp.instance.visible = true;\n        comp.instance.component = component;\n        comp.instance.componentInputs = inputs;\n\n        if ((component as any).dialogDefaults) {\n            for (const [i, v] of Object.entries((component as any).dialogDefaults)) {\n                (comp.instance as any)[i] = v;\n            }\n        }\n\n        for (const [i, v] of Object.entries(dialogInputs)) {\n            (comp.instance as any)[i] = v;\n        }\n\n        comp.instance.show();\n        comp.changeDetectorRef.detectChanges();\n\n        const close = new Promise((resolve) => {\n            comp.instance.closed.subscribe((v) => {\n                comp.destroy();\n                resolve(v);\n            });\n        });\n\n        return {\n            dialog: comp.instance,\n            close,\n            component: comp.instance.wrapperComponentRef!.instance!.renderComponentDirective!.component!.instance,\n        };\n    }\n\n    public async alert(title: string, content?: string, dialodInputs: { [name: string]: any } = {}): Promise<boolean> {\n        const { dialog } = this.open(DuiDialogAlert, { title, content }, dialodInputs);\n        return dialog.toPromise();\n    }\n\n    public async confirm(title: string, content?: string, dialodInputs: { [name: string]: any } = {}): Promise<boolean> {\n        const { dialog } = this.open(DuiDialogConfirm, { title, content }, dialodInputs);\n        return dialog.toPromise();\n    }\n\n    public async prompt(title: string, value: string, content?: string, dialodInputs: { [name: string]: any } = {}): Promise<false | string> {\n        const { dialog } = this.open(DuiDialogPrompt, { title, value, content }, dialodInputs);\n        return dialog.toPromise();\n    }\n\n    public progress(): ProgressDialogState {\n        const state$ = new ProgressDialogState;\n        this.open(DuiDialogProgress, { state$ });\n        return state$;\n    }\n}\n\n@Directive({\n    standalone: false,\n    selector: '[confirm]',\n})\nexport class DuiDialogConfirmDirective implements OnDestroy {\n    @Input() confirm!: string;\n\n    ignoreNextClick = false;\n\n    callback = async (event: MouseEvent) => {\n        if (isTargetChildOf(event.target, this.element.nativeElement)) {\n            if (this.ignoreNextClick) {\n                this.ignoreNextClick = false;\n                return;\n            }\n\n            event.stopPropagation();\n            event.preventDefault();\n            const [title, text] = this.confirm.split('\\n');\n            const a = await this.dialog.confirm(title, text, {});\n            if (a) {\n                this.ignoreNextClick = true;\n                this.element.nativeElement.dispatchEvent(event);\n            }\n            this.cd.detectChanges();\n        }\n    };\n\n    constructor(\n        protected element: ElementRef<HTMLElement>,\n        protected dialog: DuiDialog,\n        protected cd: ChangeDetectorRef,\n        @Inject(DOCUMENT) protected document: any,\n    ) {\n        this.document.body!.addEventListener('click', this.callback, true);\n    }\n\n    ngOnDestroy() {\n        this.document.body!.removeEventListener('click', this.callback, true);\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    AfterViewInit,\n    ApplicationRef,\n    ChangeDetectorRef,\n    Component,\n    ComponentFactoryResolver,\n    ComponentRef,\n    Directive,\n    EventEmitter,\n    Inject,\n    Injector,\n    Input,\n    OnChanges,\n    OnDestroy,\n    Output,\n    SimpleChanges,\n    TemplateRef,\n    Type,\n    ViewChild,\n    ViewContainerRef,\n} from '@angular/core';\nimport { ComponentPortal, DomPortalHost, PortalHost } from '@angular/cdk/portal';\nimport { WindowComponent } from '../window/window.component';\nimport { WindowRegistry } from '../window/window-state';\nimport { RenderComponentDirective } from '../core/render-component.directive';\nimport { ELECTRON_WINDOW, IN_DIALOG } from '../app/token';\nimport { Subscription } from 'rxjs';\nimport { DOCUMENT } from '@angular/common';\nimport { DuiDialog } from '../dialog/dialog';\nimport { Electron } from '../../core/utils';\nimport { detectChangesNextFrame } from '../app';\nimport { nextTick } from '@deepkit/core';\n\nfunction PopupCenter(url: string, title: string, w: number, h: number): Window {\n    let top = window.screenTop + (window.outerHeight / 2) - w / 2;\n    top = top > 0 ? top : 0;\n\n    let left = window.screenLeft + (window.outerWidth / 2) - w / 2;\n    left = left > 0 ? left : 0;\n\n    const newWindow: Window = window.open(url, title, 'width=' + w + ', height=' + h + ', top=' + top + ', left=' + left)!;\n\n    return newWindow;\n}\n\n@Component({\n    standalone: false,\n    template: `\n        <ng-container *ngIf=\"component\"\n                      #renderComponentDirective\n                      [renderComponent]=\"component\" [renderComponentInputs]=\"componentInputs\"\n        >\n        </ng-container>\n\n        <ng-container *ngIf=\"content\" [ngTemplateOutlet]=\"content\"></ng-container>\n\n        <ng-container *ngIf=\"container\">\n            <ng-container [ngTemplateOutlet]=\"container\"></ng-container>\n        </ng-container>\n\n        <ng-container *ngIf=\"!container\">\n            <ng-content></ng-content>\n        </ng-container>\n    `,\n    host: {\n        '[attr.tabindex]': '1',\n    },\n})\nexport class ExternalDialogWrapperComponent {\n    @Input() component?: Type<any>;\n    @Input() componentInputs: { [name: string]: any } = {};\n\n    actions?: TemplateRef<any> | undefined;\n    container?: TemplateRef<any> | undefined;\n    content?: TemplateRef<any> | undefined;\n\n    @ViewChild(RenderComponentDirective, { static: false }) renderComponentDirective?: RenderComponentDirective;\n\n    constructor(\n        protected cd: ChangeDetectorRef,\n        public injector: Injector,\n        @Inject(ELECTRON_WINDOW) electron: any,\n    ) {\n    }\n\n    public setDialogContainer(container: TemplateRef<any> | undefined) {\n        this.container = container;\n        this.cd.detectChanges();\n    }\n}\n\n@Component({\n    selector: 'dui-external-dialog',\n    standalone: false,\n    template: `\n        <ng-template #template>\n            <ng-content></ng-content>\n        </ng-template>\n    `,\n})\nexport class ExternalWindowComponent implements AfterViewInit, OnDestroy, OnChanges {\n    private portalHost?: PortalHost;\n\n    @Input() alwaysRaised: boolean = false;\n\n    @Input() visible: boolean = true;\n    @Output() visibleChange = new EventEmitter<boolean>();\n\n    @Output() closed = new EventEmitter<void>();\n\n    @Input() component?: Type<any>;\n    @Input() componentInputs: { [name: string]: any } = {};\n\n    public wrapperComponentRef?: ComponentRef<ExternalDialogWrapperComponent>;\n\n    @ViewChild('template', { static: false }) template?: TemplateRef<any>;\n\n    externalWindow?: Window;\n    container?: TemplateRef<any> | undefined;\n\n    observerStyles?: MutationObserver;\n    observerClass?: MutationObserver;\n\n    parentFocusSub?: Subscription;\n    electronWindow?: any;\n    parentWindow?: WindowComponent;\n\n    constructor(\n        protected componentFactoryResolver: ComponentFactoryResolver,\n        protected applicationRef: ApplicationRef,\n        protected injector: Injector,\n        protected dialog: DuiDialog,\n        protected registry: WindowRegistry,\n        protected cd: ChangeDetectorRef,\n        protected viewContainerRef: ViewContainerRef,\n    ) {\n\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        if (this.visible) {\n            this.show();\n        } else {\n            this.close();\n        }\n    }\n\n    public setDialogContainer(container: TemplateRef<any> | undefined) {\n        this.container = container;\n        if (this.wrapperComponentRef) {\n            this.wrapperComponentRef.instance.setDialogContainer(container);\n        }\n    }\n\n    public show() {\n        if (this.externalWindow) {\n            this.electronWindow.focus();\n            return;\n        }\n\n        this.externalWindow = PopupCenter('', '', 300, 300);\n\n        if (!this.externalWindow) {\n            this.dialog.alert('Error', 'Could not open window.');\n            return;\n        }\n\n        this.externalWindow.onunload = () => {\n            this.close();\n        };\n\n        const cloned = new Map<Node, Node>();\n\n        for (let i = 0; i < window.document.styleSheets.length; i++) {\n            const style = window.document.styleSheets[i];\n            if (!style.ownerNode) continue;\n            const clone: Node = style.ownerNode.cloneNode(true);\n            cloned.set(style.ownerNode, clone);\n            this.externalWindow!.document.head!.appendChild(clone);\n        }\n\n        this.observerStyles = new MutationObserver((mutations: MutationRecord[]) => {\n            for (const mutation of mutations) {\n                for (let i = 0; i < mutation.addedNodes.length; i++) {\n                    const node = mutation.addedNodes[i];\n                    if (!cloned.has(node)) {\n                        const clone: Node = node.cloneNode(true);\n                        cloned.set(node, clone);\n                        this.externalWindow!.document.head!.appendChild(clone);\n                    }\n                }\n\n                for (let i = 0; i < mutation.removedNodes.length; i++) {\n                    const node = mutation.removedNodes[i];\n                    if (cloned.has(node)) {\n                        const clone = cloned.get(node)!;\n                        clone.parentNode!.removeChild(clone);\n                        cloned.delete(node);\n                    }\n                }\n            }\n        });\n\n        this.observerStyles.observe(window.document.head!, {\n            childList: true,\n        });\n\n        const copyBodyClass = () => {\n            if (this.externalWindow) {\n                this.externalWindow.document.body.className = window.document.body.className;\n            }\n        };\n\n\n        this.observerClass = new MutationObserver((mutations: MutationRecord[]) => {\n            copyBodyClass();\n        });\n\n        this.observerClass.observe(window.document.body, {\n            attributeFilter: ['class'],\n        });\n        const document = this.externalWindow!.document;\n\n        copyBodyClass();\n\n        this.electronWindow = Electron.isAvailable() ? Electron.getRemote().BrowserWindow.getAllWindows()[0] : undefined;\n        this.parentWindow = this.registry.getOuterActiveWindow() as WindowComponent;\n\n        if (this.parentWindow && this.alwaysRaised) {\n            this.parentWindow.windowState.disableInputs.next(true);\n            if (this.parentWindow.electronWindow) {\n                this.electronWindow.setParentWindow(this.parentWindow.electronWindow);\n            }\n        }\n\n        window.addEventListener('beforeunload', () => {\n            this.beforeUnload();\n        });\n\n        this.portalHost = new DomPortalHost(\n            document.body,\n            this.componentFactoryResolver,\n            this.applicationRef,\n            this.injector,\n        );\n\n        document.addEventListener('click', () => detectChangesNextFrame());\n        document.addEventListener('focus', () => detectChangesNextFrame());\n        document.addEventListener('blur', () => detectChangesNextFrame());\n        document.addEventListener('keydown', () => detectChangesNextFrame());\n        document.addEventListener('keyup', () => detectChangesNextFrame());\n        document.addEventListener('keypress', () => detectChangesNextFrame());\n        document.addEventListener('mousedown', () => detectChangesNextFrame());\n\n        //todo, add beforeclose event and call beforeUnload() to make sure all dialogs are closed when page is reloaded\n\n        const injector = Injector.create({\n            parent: this.injector,\n            providers: [\n                { provide: ExternalWindowComponent, useValue: this },\n                { provide: ELECTRON_WINDOW, useValue: this.electronWindow },\n                { provide: IN_DIALOG, useValue: false },\n                { provide: DOCUMENT, useValue: this.externalWindow!.document },\n            ],\n        });\n\n        const portal = new ComponentPortal(ExternalDialogWrapperComponent, this.viewContainerRef, injector);\n\n        this.wrapperComponentRef = this.portalHost.attach(portal);\n\n        this.wrapperComponentRef!.instance.component = this.component!;\n        this.wrapperComponentRef!.instance.componentInputs = this.componentInputs;\n        this.wrapperComponentRef!.instance.content = this.template!;\n\n        if (this.container) {\n            this.wrapperComponentRef!.instance.setDialogContainer(this.container);\n        }\n\n        this.visible = true;\n        this.visibleChange.emit(true);\n\n        this.wrapperComponentRef!.changeDetectorRef.detectChanges();\n        this.wrapperComponentRef!.location.nativeElement.focus();\n\n        this.cd.detectChanges();\n    }\n\n    beforeUnload() {\n        if (this.externalWindow) {\n            if (this.portalHost) {\n                this.portalHost.detach();\n                this.portalHost.dispose();\n                delete this.portalHost;\n            }\n            this.closed.emit();\n            if (this.parentFocusSub) this.parentFocusSub.unsubscribe();\n\n            if (this.parentWindow && this.alwaysRaised) {\n                this.parentWindow.windowState.disableInputs.next(false);\n            }\n            if (this.externalWindow) {\n                this.externalWindow!.close();\n            }\n\n            delete this.externalWindow;\n            this.observerStyles!.disconnect();\n            this.observerClass!.disconnect();\n        }\n    }\n\n    ngAfterViewInit() {\n    }\n\n    public close() {\n        this.visible = false;\n        this.visibleChange.emit(false);\n        this.beforeUnload();\n        nextTick(() => {\n            this.applicationRef.tick();\n        });\n    }\n\n    ngOnDestroy(): void {\n        this.beforeUnload();\n    }\n}\n\n\n/**\n * This directive is necessary if you want to load and render the dialog content\n * only when opening the dialog. Without it it is immediately render, which can cause\n * performance and injection issues.\n */\n@Directive({\n    'selector': '[externalDialogContainer]',\n    standalone: false,\n})\nexport class ExternalDialogDirective {\n    constructor(protected dialog: ExternalWindowComponent, public template: TemplateRef<any>) {\n        this.dialog.setDialogContainer(this.template);\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { ApplicationRef, ComponentFactoryResolver, Injectable, Injector, Type, ViewContainerRef } from '@angular/core';\nimport { ExternalWindowComponent } from './external-window.component';\nimport { ComponentPortal, DomPortalHost } from '@angular/cdk/portal';\n\n@Injectable()\nexport class DuiExternalWindow {\n    constructor(\n        protected resolver: ComponentFactoryResolver,\n        protected app: ApplicationRef,\n        protected injector: Injector,\n    ) {\n\n    }\n\n    public open<T>(\n        component: Type<T>,\n        inputs: { [name: string]: any } = {},\n        options: {\n            alwaysRaised?: boolean,\n        } = {},\n        viewContainerRef: ViewContainerRef | null = null,\n    ): { window: ExternalWindowComponent, instance: T } {\n        const portalHost = new DomPortalHost(\n            document.body,\n            this.resolver,\n            this.app,\n            this.injector\n        );\n\n        //todo, get viewContainerRef from WindowRegistry?\n        const portal = new ComponentPortal(ExternalWindowComponent, viewContainerRef, viewContainerRef ? viewContainerRef.injector : null);\n\n        const comp = portalHost.attach(portal);\n\n        if (options && options.alwaysRaised) {\n            comp.instance.alwaysRaised = true;\n        }\n        comp.instance.component = component;\n        comp.instance.componentInputs = inputs;\n\n        comp.instance.show();\n        comp.changeDetectorRef.detectChanges();\n\n        comp.instance.closed.subscribe(() => {\n            comp.destroy();\n        });\n\n        return {\n            window: comp.instance,\n            instance: comp.instance.wrapperComponentRef!.instance!.renderComponentDirective!.component!.instance,\n        };\n    }\n\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { NgModule } from '@angular/core';\nimport { RenderComponentDirective } from './render-component.directive';\n\nexport * from './render-component.directive'\n\n@NgModule({\n    declarations: [\n        RenderComponentDirective,\n    ],\n    exports: [\n        RenderComponentDirective,\n    ],\n    providers: [],\n    imports: [\n    ]\n})\nexport class DuiCoreModule {\n\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { WindowContentComponent } from './window-content.component';\nimport { WindowComponent, WindowFrameComponent } from './window.component';\nimport { WindowFooterComponent } from './window-footer.component';\nimport {\n    WindowHeaderComponent,\n    WindowToolbarComponent,\n    WindowToolbarContainerComponent\n} from './window-header.component';\nimport { CommonModule } from '@angular/common';\nimport { WindowSidebarComponent } from './window-sidebar.component';\nimport { DuiSplitterModule } from '../splitter';\nimport { DuiIconModule } from '../icon';\nimport { WindowRegistry } from './window-state';\n\nimport {\n    ExternalDialogDirective,\n    ExternalDialogWrapperComponent,\n    ExternalWindowComponent\n} from './external-window.component';\nimport { DuiExternalWindow } from './external-window';\nimport { DuiCoreModule } from '../core';\n\nexport * from \"./window.component\";\nexport * from \"./external-window\";\nexport * from \"./external-window.component\";\nexport * from \"./window-content.component\";\nexport * from \"./window-header.component\";\nexport * from \"./window-footer.component\";\nexport * from \"./window-menu\";\nexport * from \"./window-sidebar.component\";\n\n@NgModule({\n    declarations: [\n        WindowContentComponent,\n        WindowComponent,\n        WindowFrameComponent,\n        WindowFooterComponent,\n        WindowHeaderComponent,\n        WindowToolbarComponent,\n        WindowToolbarContainerComponent,\n        WindowSidebarComponent,\n        ExternalWindowComponent,\n        ExternalDialogWrapperComponent,\n        ExternalDialogDirective,\n    ],\n    exports: [\n        WindowContentComponent,\n        WindowComponent,\n        WindowFrameComponent,\n        WindowFooterComponent,\n        WindowHeaderComponent,\n        WindowToolbarComponent,\n        WindowToolbarContainerComponent,\n        WindowSidebarComponent,\n        ExternalWindowComponent,\n        ExternalDialogWrapperComponent,\n        ExternalDialogDirective,\n    ],\n    providers: [\n        DuiExternalWindow,\n    ],\n    imports: [\n        CommonModule,\n        DuiSplitterModule,\n        DuiIconModule,\n        DuiCoreModule,\n    ]\n})\nexport class DuiWindowModule {\n    static forRoot(): ModuleWithProviders<DuiWindowModule> {\n        return {\n            ngModule: DuiWindowModule,\n            providers: [WindowRegistry]\n        }\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    EventEmitter,\n    HostBinding,\n    HostListener,\n    Injectable,\n    Injector,\n    Input,\n    OnChanges,\n    OnDestroy,\n    Optional,\n    Output,\n    SimpleChanges,\n    SkipSelf,\n} from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router, UrlTree } from '@angular/router';\nimport { ngValueAccessor, ValueAccessorBase } from '../../core/form';\nimport { Subscription } from 'rxjs';\nimport { arrayRemoveItem } from '@deepkit/core';\nimport { isRouteActive } from '../../core/utils';\n\n@Component({\n    selector: 'dui-list-title',\n    standalone: false,\n    template: `\n        <ng-content></ng-content>`,\n    styleUrls: ['./list-title.component.scss'],\n})\nexport class ListTitleComponent {\n    constructor() {\n    }\n}\n\n@Component({\n    selector: 'dui-list',\n    standalone: false,\n    template: `\n        <ng-content></ng-content>\n    `,\n    styleUrls: ['./list.component.scss'],\n    host: {\n        '[class.white]': 'white !== false',\n        '[class.overlay-scrollbar-small]': 'true',\n        '[class.focusable]': 'focusable',\n        '[class.delimiter-line]': 'delimiterLine !== false',\n    },\n    providers: [ngValueAccessor(ListComponent)],\n})\n@Injectable()\nexport class ListComponent extends ValueAccessorBase<any> {\n    static ids: number = 0;\n\n    @Input() white: boolean | '' = false;\n\n    id = ++ListComponent.ids;\n\n    @Input() focusable: boolean = true;\n    @Input() delimiterLine: boolean | '' = false;\n\n    @HostBinding('tabindex') tabIndex: number = 1;\n\n    items: ListItemComponent[] = [];\n\n    protected itemMap = new Map<string, ListItemComponent>();\n\n    constructor(\n        protected injector: Injector,\n        public readonly cd: ChangeDetectorRef,\n        public host: ElementRef<HTMLElement>,\n        @SkipSelf() public readonly cdParent: ChangeDetectorRef,\n    ) {\n        super(injector, cd, cdParent);\n    }\n\n    public deregister(item: ListItemComponent) {\n        arrayRemoveItem(this.items, item);\n        this.itemMap.delete(item.id + '');\n    }\n\n    public register(item: ListItemComponent) {\n        this.items.push(item);\n        this.itemMap.set(item.id + '', item);\n    }\n\n    protected getSortedList(): ListItemComponent[] {\n        const list = Array.from(this.host.nativeElement.querySelectorAll(`dui-list-item[list-id=\"${this.id}\"]`));\n        return list.map(v => this.itemMap.get(v.getAttribute('list-item-id')!)!);\n    }\n\n    @HostListener('keydown', ['$event'])\n    public async onKeyDown(event: KeyboardEvent) {\n        if (event.key === 'ArrowDown') {\n            event.preventDefault();\n            const selectedItem = this.getSelectedItem();\n            if (selectedItem) {\n                const items = this.getSortedList();\n                const position = items.indexOf(selectedItem);\n\n                if (items[position + 1]) {\n                    await items[position + 1].select();\n                }\n            }\n        }\n\n        if (event.key === 'ArrowUp') {\n            event.preventDefault();\n            const selectedItem = this.getSelectedItem();\n            if (selectedItem) {\n                const items = this.getSortedList();\n                const position = items.indexOf(selectedItem);\n\n                if (items[position - 1]) {\n                    await items[position - 1].select();\n                }\n            }\n        }\n    }\n\n    public getSelectedItem(): ListItemComponent | undefined {\n        for (const item of this.items) {\n            if (item.isSelected()) {\n                return item;\n            }\n        }\n\n        return;\n    }\n}\n\n@Component({\n    selector: 'dui-list-item',\n    standalone: false,\n    template: `\n        <ng-content></ng-content>\n    `,\n    host: {\n        '[class.selected]': 'isSelected()',\n        '[attr.list-id]': 'list.id',\n        '[attr.list-item-id]': 'id',\n    },\n    styleUrls: ['./list-item.component.scss'],\n})\nexport class ListItemComponent implements OnChanges, OnDestroy {\n    static ids: number = 0;\n    id = ++ListItemComponent.ids;\n\n    @Input() value: any;\n    @Input() routerLink?: string | UrlTree | any[];\n    @Input() routerLinkExact?: boolean;\n    @Input() queryParams?: { [name: string]: any };\n    @Input() active?: boolean;\n\n    /**\n     * When position is dynamic, it might be handy to define the position\n     * explicitly to make arrow-up/arrow-down navigation possible.\n     */\n    @Input() position: number = 0;\n\n    @Output() onSelect = new EventEmitter<any>();\n\n    protected routerSub?: Subscription;\n\n    constructor(\n        public list: ListComponent,\n        public element: ElementRef,\n        @SkipSelf() public cd: ChangeDetectorRef,\n        @Optional() public router?: Router,\n        @Optional() activatedRoute?: ActivatedRoute,\n    ) {\n        this.element.nativeElement.removeAttribute('tabindex');\n        list.register(this);\n        this.list.registerOnChange(() => {\n            this.cd.detectChanges();\n        });\n        if (this.router) {\n            this.routerSub = this.router.events.subscribe((event) => {\n                if (event instanceof NavigationEnd) {\n                    this.cd.detectChanges();\n                }\n            });\n        }\n    }\n\n    ngOnDestroy(): void {\n        this.list.deregister(this);\n        if (this.routerSub) {\n            this.routerSub.unsubscribe();\n        }\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        this.cd.detectChanges();\n    }\n\n    public async select() {\n        if (this.routerLink && this.router) {\n            if ('string' === typeof this.routerLink) {\n                await this.router.navigateByUrl(this.routerLink);\n            } else if (Array.isArray(this.routerLink)) {\n                await this.router.navigate(this.routerLink, { queryParams: this.queryParams });\n            } else {\n                await this.router.navigateByUrl(this.router.serializeUrl(this.routerLink!));\n            }\n        } else {\n            this.list.innerValue = this.value;\n        }\n        this.onSelect.emit(this.value);\n    }\n\n    public isSelected(): boolean {\n        if (this.active !== undefined) return this.active;\n\n        if (this.value !== undefined) {\n            return this.list.innerValue === this.value;\n        }\n\n        if (this.routerLink && this.router) {\n            return isRouteActive(this);\n        }\n\n        return false;\n    }\n\n    @HostListener('mousedown')\n    public onClick() {\n        this.list.innerValue = this.value;\n        this.onSelect.emit(this.value);\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { NgModule } from '@angular/core';\nimport { ListComponent, ListItemComponent, ListTitleComponent } from './list.component';\n\nexport * from './list.component';\n\n@NgModule({\n    imports: [],\n    exports: [\n        ListComponent,\n        ListItemComponent,\n        ListTitleComponent,\n    ],\n    declarations: [\n        ListComponent,\n        ListItemComponent,\n        ListTitleComponent,\n    ],\n    providers: [],\n})\nexport class DuiListModule {\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    AfterViewInit,\n    ApplicationRef,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChild,\n    ContentChildren,\n    Directive,\n    ElementRef,\n    EventEmitter,\n    HostBinding,\n    HostListener,\n    inject,\n    Input,\n    NgZone,\n    OnChanges,\n    OnDestroy,\n    OnInit,\n    Output,\n    QueryList,\n    SimpleChanges,\n    SkipSelf,\n    TemplateRef,\n    ViewChild,\n    ViewChildren,\n} from '@angular/core';\nimport {\n    arrayClear,\n    arrayHasItem,\n    arrayRemoveItem,\n    eachPair,\n    empty,\n    first,\n    getPathValue,\n    indexOf,\n    isArray,\n    isNumber,\n    nextTick,\n} from '@deepkit/core';\nimport { isObservable, Observable } from 'rxjs';\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { DropdownComponent } from '../button';\nimport { detectChangesNextFrame } from '../app/utils';\nimport { findParentWithClass, getHammer } from '../../core/utils';\n\n/**\n * Directive to allow dynamic content in a cell.\n *\n * ```html\n * <dui-table-column>\n *     <ng-container *duiTableCell=\"let item\">\n *          {{item.fieldName | date}}\n *     </ng-container>\n * </dui-table-column>\n * ```\n */\n@Directive({\n    selector: '[duiTableCell]',\n    standalone: false,\n})\nexport class TableCellDirective {\n    constructor(public template: TemplateRef<any>) {\n    }\n}\n\n/**\n * Can be used to define own dropdown items once the user opens the header context menu.\n */\n@Directive({\n    selector: 'dui-dropdown[duiTableCustomHeaderContextMenu]',\n    standalone: false,\n})\nexport class TableCustomHeaderContextMenuDirective {\n    constructor(public readonly dropdown: DropdownComponent) {\n    }\n}\n\n\n/**\n * Can be used to define own dropdown items once the user opens the row context menu.\n */\n@Directive({\n    selector: 'dui-dropdown[duiTableCustomRowContextMenu]',\n    standalone: false,\n})\nexport class TableCustomRowContextMenuDirective {\n    constructor(public readonly dropdown: DropdownComponent) {\n    }\n}\n\n/**\n * Directive to allow dynamic content in a column header.\n *\n * ```html\n * <dui-table-column name=\"fieldName\">\n *     <ng-container *duiTableHead>\n *          <strong>Header</strong>\n *     </ng-container>\n * </dui-table-column>\n * ```\n */\n@Directive({\n    selector: '[duiTableHeader]',\n    standalone: false,\n})\nexport class TableHeaderDirective {\n    constructor(public template: TemplateRef<any>) {\n    }\n}\n\n/**\n * Defines a new column.\n */\n@Directive({\n    selector: 'dui-table-column',\n    standalone: false,\n})\nexport class TableColumnDirective {\n    /**\n     * The name of the column. Needs to be unique. If no renderer (*duiTableCell) is specified, this\n     * name is used to render the content T[name].\n     */\n    @Input('name') name: string = '';\n\n    /**\n     * A different header name. Use dui-table-header to render HTML there.\n     */\n    @Input('header') header?: string;\n\n    /**\n     * Default width.\n     */\n    @Input('width') width?: number | string = 100;\n\n    /**\n     * Adds additional class to the columns cells.\n     */\n    @Input('class') class: string = '';\n\n    /**\n     * Whether this column is start hidden. User can unhide it using the context menu on the header.\n     */\n    @Input('hidden') hidden: boolean | '' = false;\n\n    @Input('sortable') sortable: boolean = true;\n\n    @Input('hideable') hideable: boolean = true;\n\n    /**\n     * At which position this column will be placed.\n     */\n    @Input('position') position?: number;\n\n    /**\n     * This is the new position when the user moved it manually.\n     * @hidden\n     */\n    overwrittenPosition?: number;\n\n    @ContentChild(TableCellDirective, { static: false }) cell?: TableCellDirective;\n    @ContentChild(TableHeaderDirective, { static: false }) headerDirective?: TableHeaderDirective;\n\n    isHidden() {\n        return this.hidden !== false;\n    }\n\n    toggleHidden() {\n        this.hidden = !this.isHidden();\n    }\n\n    /**\n     * @hidden\n     */\n    getWidth(): string | undefined {\n        if (!this.width) return undefined;\n\n        if (isNumber(this.width)) {\n            return this.width + 'px';\n        }\n\n        return this.width;\n    }\n\n    /**\n     * @hidden\n     */\n    public getPosition() {\n        if (this.overwrittenPosition !== undefined) {\n            return this.overwrittenPosition;\n        }\n\n        return this.position;\n    }\n}\n\n@Component({\n    selector: 'dui-table',\n    standalone: false,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    template: `\n      <dui-dropdown #headerDropdown>\n        <dui-dropdown-item\n          *ngFor=\"let column of sortedColumnDefs; trackBy: trackByColumn\"\n          [selected]=\"!column.isHidden()\"\n          (mousedown)=\"column.toggleHidden(); storePreference(); sortColumnDefs(); headerDropdown.close()\"\n        >\n          <div *ngIf=\"column.hideable\">\n            <ng-container *ngIf=\"column.name !== undefined && !column.headerDirective\">\n              {{ column.header || column.name }}\n            </ng-container>\n            <ng-container\n              *ngIf=\"column.name !== undefined && column.headerDirective\"\n              [ngTemplateOutlet]=\"column.headerDirective.template\"\n              [ngTemplateOutletContext]=\"{$implicit: column}\"></ng-container>\n          </div>\n        </dui-dropdown-item>\n        <dui-dropdown-separator></dui-dropdown-separator>\n        <dui-dropdown-item (click)=\"resetAll()\">Reset all</dui-dropdown-item>\n      </dui-dropdown>\n\n      <div class=\"frame\" [style.minHeight.px]=\"itemHeight\">\n        <div class=\"header\" *ngIf=\"showHeader\" #header\n             [contextDropdown]=\"customHeaderDropdown ? customHeaderDropdown.dropdown : headerDropdown\">\n          <div class=\"th\"\n               *ngFor=\"let column of visibleColumns; trackBy: trackByColumn; let columnIndex = index;\"\n               [style.width]=\"column.getWidth()\"\n               (mouseup)=\"sortBy(column.name || '', $event)\"\n               [class.freeze]=\"columnIndex < freezeColumns\"\n               [style.left.px]=\"columnIndex < freezeColumns ? freezeLeft(visibleColumns, columnIndex) : undefined\"\n               [attr.name]=\"column.name\"\n               [style.top]=\"scrollTop + 'px'\"\n               #th>\n            <ng-container\n              *ngIf=\"column.headerDirective\"\n              [ngTemplateOutlet]=\"column.headerDirective.template\"\n              [ngTemplateOutletContext]=\"{$implicit: column}\"></ng-container>\n\n            <ng-container *ngIf=\"column.name !== undefined && !column.headerDirective\">\n              {{ column.header || column.name }}\n            </ng-container>\n\n            <ng-container *ngIf=\"sort[column.name]\">\n              <dui-icon *ngIf=\"sort[column.name] === 'desc'\" [size]=\"12\" name=\"arrow_down\"></dui-icon>\n              <dui-icon *ngIf=\"sort[column.name] === 'asc'\" [size]=\"12\" name=\"arrow_up\"></dui-icon>\n            </ng-container>\n\n            <dui-splitter (modelChange)=\"setColumnWidth(column, $event)\"\n                          indicator position=\"right\"></dui-splitter>\n          </div>\n        </div>\n\n        <div class=\"body\" [class.with-header]=\"showHeader\" (click)=\"clickCell($event)\" (dblclick)=\"dblClickCell($event)\">\n          <ng-container *ngIf=\"autoHeight\">\n            <div class=\"table-row {{rowClass ? rowClass(row) : ''}}\"\n                 *ngFor=\"let row of filterSorted(sorted); trackBy: trackByFn; let i = index; odd as isOdd\"\n                 [contextDropdown]=\"customRowDropdown ? customRowDropdown.dropdown : undefined\"\n                 [class.selected]=\"selectedMap.has(row)\"\n                 [class.odd]=\"isOdd\"\n                 (mousedown)=\"select(row, $event)\"\n                 (contextmenu)=\"select(row, $event)\"\n                 (dblclick)=\"dbclick.emit(row)\"\n            >\n              <div class=\"table-cell\"\n                   *ngFor=\"let column of visibleColumns; trackBy: trackByColumn; let columnIndex = index\"\n                   [class]=\"column.class + (cellClass ?  ' ' + cellClass(row, column.name) : '')\"\n                   [attr.row-column]=\"column.name\"\n                   [class.freeze]=\"columnIndex < freezeColumns\"\n                   [style.left.px]=\"columnIndex < freezeColumns ? freezeLeft(visibleColumns, columnIndex) : undefined\"\n                   [class.freeze-last]=\"columnIndex === freezeColumns - 1\"\n                   [attr.row-i]=\"i\"\n                   [style.width]=\"column.getWidth()\"\n              >\n                <ng-container *ngIf=\"column.cell\">\n                  <ng-container [ngTemplateOutlet]=\"column.cell!.template\"\n                                [ngTemplateOutletContext]=\"{ $implicit: row }\"></ng-container>\n                </ng-container>\n                <ng-container *ngIf=\"!column.cell\">\n                  {{ column.name ? valueFetcher(row, column.name) : '' }}\n                </ng-container>\n              </div>\n            </div>\n          </ng-container>\n\n          <cdk-virtual-scroll-viewport #viewportElement\n                                       class=\"overlay-scrollbar-small\"\n                                       [itemSize]=\"itemHeight\" *ngIf=\"!autoHeight\">\n            <ng-container\n              *cdkVirtualFor=\"let row of filterSorted(sorted); trackBy: trackByFn; let i = index; odd as isOdd\">\n              <div class=\"table-row {{rowClass ? rowClass(row) : ''}}\"\n                   [contextDropdown]=\"customRowDropdown ? customRowDropdown.dropdown : undefined\"\n                   [class.selected]=\"selectedMap.has(row)\"\n                   [class.odd]=\"isOdd\"\n                   [style.height.px]=\"itemHeight\"\n                   (mousedown)=\"select(row, $event)\"\n                   (contextmenu)=\"select(row, $event)\"\n                   (dblclick)=\"dbclick.emit(row)\"\n              >\n                <div class=\"table-cell\"\n                     *ngFor=\"let column of visibleColumns; trackBy: trackByColumn; let columnIndex = index\"\n                     [class]=\"column.class + (cellClass ?  ' ' + cellClass(row, column.name) : '')\"\n                     [attr.row-column]=\"column.name\"\n                     [class.freeze]=\"columnIndex < freezeColumns\"\n                     [style.left.px]=\"columnIndex < freezeColumns ? freezeLeft(visibleColumns, columnIndex) : undefined\"\n                     [class.freeze-last]=\"columnIndex === freezeColumns - 1\"\n                     [attr.row-i]=\"i\"\n                     [style.width]=\"column.getWidth()\"\n                >\n                  <ng-container *ngIf=\"column.cell\">\n                    <ng-container [ngTemplateOutlet]=\"column.cell!.template\"\n                                  [ngTemplateOutletContext]=\"{ $implicit: row }\"></ng-container>\n                  </ng-container>\n                  <ng-container *ngIf=\"!column.cell\">\n                    {{ column.name ? valueFetcher(row, column.name) : '' }}\n                  </ng-container>\n                </div>\n              </div>\n            </ng-container>\n          </cdk-virtual-scroll-viewport>\n        </div>\n      </div>\n    `,\n    styleUrls: ['./table.component.scss'],\n    host: {\n        '[class.no-focus-outline]': 'noFocusOutline !== false',\n        '[class.borderless]': 'borderless !== false',\n        '[class.overlay-scrollbar]': 'true',\n        '[class.with-hover]': 'hover !== false',\n        '[class.auto-height]': 'autoHeight !== false',\n    },\n})\nexport class TableComponent<T> implements AfterViewInit, OnInit, OnChanges, OnDestroy {\n    protected app = inject(ApplicationRef);\n\n    /**\n     * @hidden\n     */\n    @HostBinding() tabindex = 0;\n\n    @Input() borderless: boolean | '' = false;\n\n    /**\n     * Array of items that should be used for each row.\n     */\n    @Input() public items!: T[] | Observable<T[]>;\n\n    /**\n     * Since dui-table has virtual-scroll active per default, it's required to define the itemHeight to\n     * make scrolling actually workable correctly.\n     */\n    @Input() public itemHeight: number = 25;\n\n    /**\n     * Whether the table height just prints all rows, or if virtual scrolling is enabled.\n     * If true, the row height depends on the content.\n     */\n    @Input() public autoHeight: boolean = false;\n\n    /**\n     * Whether the table row should have a hover effect.\n     */\n    @Input() public hover: boolean | '' = false;\n\n    /**\n     * Current calculated height, used only when autoHeight is given.\n     */\n    public height: number = 23;\n\n    /**\n     * Whether the header should be shown.\n     */\n    @Input() public showHeader: boolean = true;\n\n    /**\n     * How many columns (from the left) are frozen (stay visible even if user scrolls horizontally).\n     */\n    @Input() public freezeColumns: number = 0;\n\n    /**\n     * Default field of T for sorting.\n     */\n    @Input() public defaultSort: string = '';\n\n    /**\n     * Default sorting order.\n     */\n    @Input() public defaultSortDirection: 'asc' | 'desc' = 'asc';\n\n    /**\n     * Whether rows are selectable.\n     */\n    @Input() public selectable: boolean | '' = false;\n\n    /**\n     * Whether multiple rows are selectable at the same time.\n     */\n    @Input() public multiSelect: boolean | '' = false;\n\n    /**\n     * TrackFn for ngFor to improve performance. Default is order by index.\n     */\n    @Input() public trackFn?: (index: number, item: T) => any;\n\n    /**\n     * Not used yet.\n     */\n    @Input() public displayInitial: number = 20;\n\n    /**\n     * Not used yet.\n     */\n    @Input() public increaseBy: number = 10;\n\n    /**\n     * Filter function.\n     */\n    @Input() public filter?: (item: T) => boolean;\n\n    @Input() public rowClass?: (item: T) => string | undefined;\n\n    @Input() public cellClass?: (item: T, column: string) => string | undefined;\n\n    /**\n     * When the user changes the order or width of the columns, the information is stored\n     * in localStorage using this key, prefixed with `@dui/table/`.\n     */\n    @Input() public preferenceKey: string = 'root';\n\n    /**\n     * Filter query.\n     */\n    @Input() public filterQuery?: string;\n\n    @Input() public columnState: { name: string, position: number, visible: boolean }[] = [];\n\n    /**\n     * Against which fields filterQuery should run.\n     */\n    @Input() public filterFields?: string[];\n\n    /**\n     * Alternate object value fetcher, important for sorting and filtering.\n     */\n    @Input() public valueFetcher = (object: any, path: string): any => {\n        return getPathValue(object, path);\n    };\n\n    /**\n     * A hook to provide custom sorting behavior for certain columns.\n     */\n    @Input() public sortFunction?: (sort: { [name: string]: 'asc' | 'desc' }) => (((a: T, b: T) => number) | undefined);\n\n    /**\n     * Whether sorting is enabled (clicking headers trigger sort).\n     */\n    @Input() public sorting: boolean = true;\n\n    @Input() noFocusOutline: boolean | '' = false;\n\n    @Input() public sort: { [column: string]: 'asc' | 'desc' } = {};\n\n    public rawItems: T[] = [];\n    public sorted: T[] = [];\n\n    public selectedMap = new Map<T, boolean>();\n\n    /**\n     * Elements that are selected, by reference.\n     */\n    @Input() public selected: T[] = [];\n\n    protected selectedHistory: T[] = [];\n\n    /**\n     * Elements that are selected, by reference.\n     */\n    @Output() public selectedChange: EventEmitter<T[]> = new EventEmitter();\n\n    @Output() public sortedChange: EventEmitter<T[]> = new EventEmitter();\n\n    @Output() public cellSelect: EventEmitter<{ item: T, cell: string } | undefined> = new EventEmitter();\n\n    /**\n     * When a row gets double clicked.\n     */\n    @Output() public dbclick: EventEmitter<T> = new EventEmitter();\n\n    @Output() public customSort: EventEmitter<{ [column: string]: 'asc' | 'desc' }> = new EventEmitter();\n\n    @Output() public cellDblClick: EventEmitter<{ item: T, column: string }> = new EventEmitter();\n    @Output() public cellClick: EventEmitter<{ item: T, column: string }> = new EventEmitter();\n\n    @ViewChild('header', { static: false }) header?: ElementRef;\n    @ViewChildren('th') ths?: QueryList<ElementRef<HTMLElement>>;\n\n    @ContentChildren(TableColumnDirective, { descendants: true }) columnDefs?: QueryList<TableColumnDirective>;\n\n    @ContentChild(TableCustomHeaderContextMenuDirective, { static: false }) customHeaderDropdown?: TableCustomHeaderContextMenuDirective;\n    @ContentChild(TableCustomRowContextMenuDirective, { static: false }) customRowDropdown?: TableCustomRowContextMenuDirective;\n\n    @ViewChild(CdkVirtualScrollViewport, { static: true }) viewport?: CdkVirtualScrollViewport;\n    @ViewChild('viewportElement', { static: true, read: ElementRef }) viewportElement?: ElementRef;\n\n    public sortedColumnDefs: TableColumnDirective[] = [];\n\n    visibleColumns: TableColumnDirective[] = [];\n\n    columnMap: { [name: string]: TableColumnDirective } = {};\n\n    public displayedColumns?: string[] = [];\n\n    protected ignoreThisSort = false;\n    public scrollTop = 0;\n\n    constructor(\n        protected element: ElementRef,\n        protected cd: ChangeDetectorRef,\n        @SkipSelf() protected parentCd: ChangeDetectorRef,\n        protected zone: NgZone,\n    ) {\n    }\n\n    public setColumnWidth(column: TableColumnDirective, width: number) {\n        column.width = width;\n        detectChangesNextFrame(this.cd, () => {\n            this.storePreference();\n        });\n    }\n\n    ngOnInit() {\n        if (this.defaultSort) {\n            this.sort[this.defaultSort] = this.defaultSortDirection;\n        }\n    }\n\n    ngOnDestroy(): void {\n\n    }\n\n    freezeLeft(columns: TableColumnDirective[], untilIndex: number): number {\n        let left = 0;\n        for (let i = 0; i < untilIndex; i++) {\n            const width = columns[i].width;\n            if (width === undefined) continue;\n            left += 'number' === typeof width ? width : parseInt(width);\n        }\n        return left;\n    }\n\n    @HostListener('window:resize')\n    onResize() {\n        nextTick(() => {\n            this.viewport?.checkViewportSize();\n        });\n    }\n\n    resetAll() {\n        localStorage.removeItem('@dui/table/preferences-' + this.preferenceKey);\n        if (!this.columnDefs) return;\n        for (const column of this.columnDefs.toArray()) {\n            column.width = 100;\n            column.hidden = false;\n            column.overwrittenPosition = undefined;\n        }\n        this.visibleColumns = this.getVisibleColumns(this.sortedColumnDefs);\n    }\n\n    storePreference() {\n        if ('undefined' === typeof localStorage) return;\n        const preferences: { [name: string]: { hidden: boolean | '', width?: number | string, order?: number } } = {};\n        if (!this.columnDefs) return;\n\n        for (const column of this.columnDefs.toArray()) {\n            preferences[column.name] = {\n                width: column.width,\n                order: column.overwrittenPosition,\n                hidden: column.hidden,\n            };\n        }\n        this.visibleColumns = this.getVisibleColumns(this.sortedColumnDefs);\n        localStorage.setItem('@dui/table/preferences-' + this.preferenceKey, JSON.stringify(preferences));\n    }\n\n    loadPreference() {\n        if ('undefined' === typeof localStorage) return;\n\n        const preferencesJSON = localStorage.getItem('@dui/table/preferences-' + this.preferenceKey);\n        if (!preferencesJSON) return;\n        const preferences = JSON.parse(preferencesJSON);\n        for (const i in preferences) {\n            if (!preferences.hasOwnProperty(i)) continue;\n            if (!this.columnMap[i]) continue;\n            if (preferences[i].width !== undefined) this.columnMap[i].width = preferences[i].width;\n            if (preferences[i].order !== undefined) this.columnMap[i].overwrittenPosition = preferences[i].order;\n            if (preferences[i].hidden !== undefined) this.columnMap[i].hidden = preferences[i].hidden;\n        }\n    }\n\n    dblClickCell(event: MouseEvent) {\n        if (!this.cellDblClick.observers.length) return;\n\n        if (!event.target) return;\n        const cell = findParentWithClass(event.target as HTMLElement, 'table-cell');\n        if (!cell) return;\n        const i = parseInt(cell.getAttribute('row-i') || '', 10);\n        const column = cell.getAttribute('row-column') || '';\n\n        this.cellDblClick.emit({ item: this.sorted[i], column });\n    }\n\n    clickCell(event: MouseEvent) {\n        if (!this.cellClick.observers.length) return;\n        if (!event.target) return;\n        const cell = findParentWithClass(event.target as HTMLElement, 'table-cell');\n        if (!cell) return;\n        const i = parseInt(cell.getAttribute('row-i') || '', 10);\n        const column = cell.getAttribute('row-column') || '';\n\n        this.cellClick.emit({ item: this.sorted[i], column });\n    }\n\n    /**\n     * Toggles the sort by the given column name.\n     */\n    public sortBy(name: string, $event?: MouseEvent) {\n        if (!this.sorting) return;\n\n        if (this.ignoreThisSort) {\n            this.ignoreThisSort = false;\n            return;\n        }\n\n        if ($event && $event.button === 2) return;\n\n        //only when shift is pressed do we activate multi-column sort\n        if (!$event || !$event.shiftKey) {\n            for (const member in this.sort) if (member !== name) delete this.sort[member];\n        }\n\n        if (this.columnMap[name]) {\n            const headerDef = this.columnMap[name];\n            if (!headerDef.sortable) {\n                return;\n            }\n        }\n\n        if (!this.sort[name]) {\n            this.sort[name] = 'asc';\n        } else {\n            if (this.sort[name] === 'asc') this.sort[name] = 'desc';\n            else if (this.sort[name] === 'desc') delete this.sort[name];\n        }\n\n        if (this.customSort.observers.length) {\n            this.customSort.emit(this.sort);\n        } else {\n            this.doSort();\n        }\n    }\n\n    /**\n     * @hidden\n     */\n    trackByFn = (index: number, item: any) => {\n        return this.trackFn ? this.trackFn(index, item) : index;\n    };\n\n    /**\n     * @hidden\n     */\n    trackByColumn(index: number, column: TableColumnDirective) {\n        return column.name;\n    }\n\n    /**\n     * @hidden\n     */\n    filterSorted(items: T[]): T[] {\n        //apply filter\n        if (this.filter || (this.filterQuery && this.filterFields)) {\n            return items.filter((v) => this.filterFn(v));\n        }\n\n        return items;\n    }\n\n    async initHeaderMovement() {\n        if ('undefined' !== typeof window && this.header && this.ths) {\n            const Hammer = await getHammer();\n            if (!Hammer) return;\n\n            const mc = new Hammer(this.header!.nativeElement);\n            mc.add(new Hammer.Pan({ direction: Hammer.DIRECTION_ALL, threshold: 1 }));\n\n            interface Box {\n                left: number;\n                width: number;\n                element: HTMLElement;\n                directive: TableColumnDirective;\n            }\n\n            const THsBoxes: Box[] = [];\n\n            let element: HTMLElement | undefined;\n            let elementCells: HTMLElement[] = [];\n            let originalPosition = -1;\n            let foundBox: Box | undefined;\n            let rowCells: { cells: HTMLElement[] }[] = [];\n\n            let startOffsetLeft = 0;\n            let offsetLeft = 0;\n            let startOffsetWidth = 0;\n\n            let animationFrame: any;\n            mc.on('panstart', (event: HammerInput) => {\n                foundBox = undefined;\n\n                if (this.ths && event.target.classList.contains('th')) {\n                    element = event.target as HTMLElement;\n                    element.style.zIndex = '1000000';\n                    element.style.opacity = '0.8';\n\n                    startOffsetLeft = element.offsetLeft;\n                    offsetLeft = element.offsetLeft;\n                    startOffsetWidth = element.offsetWidth;\n\n                    arrayClear(THsBoxes);\n                    rowCells = [];\n\n                    for (const th of this.ths.toArray()) {\n                        const directive: TableColumnDirective = this.sortedColumnDefs.find((v) => v.name === th.nativeElement.getAttribute('name')!)!;\n                        const cells = [...this.element.nativeElement.querySelectorAll('div[row-column=\"' + directive.name + '\"]')] as any as HTMLElement[];\n\n                        if (th.nativeElement === element) {\n                            originalPosition = this.sortedColumnDefs.indexOf(directive);\n                            elementCells = cells;\n                            for (const cell of elementCells) {\n                                cell.classList.add('active-drop');\n                            }\n                        } else {\n                            for (const cell of cells) {\n                                cell.classList.add('other-cell');\n                            }\n                            th.nativeElement.classList.add('other-cell');\n                        }\n\n                        THsBoxes.push({\n                            left: th.nativeElement.offsetLeft,\n                            width: th.nativeElement.offsetWidth,\n                            element: th.nativeElement,\n                            directive: directive,\n                        });\n\n                        rowCells.push({ cells: cells });\n                    }\n                }\n            });\n\n            mc.on('panend', (event: HammerInput) => {\n                if (animationFrame) {\n                    cancelAnimationFrame(animationFrame);\n                }\n\n                if (element) {\n                    element.style.left = '';\n                    element.style.zIndex = '';\n                    element.style.opacity = '';\n\n                    for (const t of rowCells) {\n                        for (const cell of t.cells) {\n                            cell.classList.remove('active-drop');\n                            cell.classList.remove('other-cell');\n                            cell.style.left = '0px';\n                        }\n                    }\n\n                    this.ignoreThisSort = true;\n\n                    for (const box of THsBoxes) {\n                        box.element.style.left = '0px';\n                        box.element.classList.remove('other-cell');\n                    }\n\n                    if (foundBox) {\n                        const newPosition = this.sortedColumnDefs.indexOf(foundBox.directive);\n\n                        if (originalPosition !== newPosition) {\n                            const directive = this.sortedColumnDefs[originalPosition];\n                            this.sortedColumnDefs.splice(originalPosition, 1);\n                            this.sortedColumnDefs.splice(newPosition, 0, directive);\n\n                            for (let [i, v] of eachPair(this.sortedColumnDefs)) {\n                                v.overwrittenPosition = i;\n                            }\n\n                            this.sortColumnDefs();\n                        }\n                    }\n\n                    this.storePreference();\n                    element = undefined;\n                }\n            });\n\n            mc.on('pan', (event: HammerInput) => {\n                if (animationFrame) {\n                    cancelAnimationFrame(animationFrame);\n                }\n\n                animationFrame = nextTick(() => {\n                    if (element) {\n                        element!.style.left = (event.deltaX) + 'px';\n                        const offsetLeft = startOffsetLeft + event.deltaX;\n\n                        for (const cell of elementCells) {\n                            cell.style.left = (event.deltaX) + 'px';\n                        }\n                        let afterElement = false;\n\n                        foundBox = undefined;\n                        for (const [i, box] of eachPair(THsBoxes)) {\n                            if (box.element === element) {\n                                afterElement = true;\n                                continue;\n                            }\n\n                            box.element.style.left = '0px';\n                            for (const cell of rowCells[i].cells) {\n                                cell.style.left = '0px';\n                            }\n\n                            if (!afterElement && box.left + (box.width / 2) > offsetLeft) {\n                                //the dragged element is before the current\n                                box.element.style.left = startOffsetWidth + 'px';\n\n                                for (const cell of rowCells[i].cells) {\n                                    cell.style.left = startOffsetWidth + 'px';\n                                }\n\n                                if (foundBox && box.left > foundBox.left) {\n                                    //we found already a box that fits and that is more left\n                                    continue;\n                                }\n\n                                foundBox = box;\n                            } else if (afterElement && box.left + (box.width / 2) < offsetLeft + startOffsetWidth) {\n                                //the dragged element is after the current\n                                box.element.style.left = -startOffsetWidth + 'px';\n                                for (const cell of rowCells[i].cells) {\n                                    cell.style.left = -startOffsetWidth + 'px';\n                                }\n                                foundBox = box;\n                            }\n                        }\n                    }\n                });\n            });\n        }\n    }\n\n    ngAfterViewInit(): void {\n        this.viewport?.renderedRangeStream.subscribe(() => {\n            this.cd.detectChanges();\n        });\n\n        this.zone.runOutsideAngular(() => {\n            if (!this.viewportElement) return;\n            this.viewportElement.nativeElement.addEventListener('scroll', () => {\n                const scrollLeft = this.viewportElement!.nativeElement.scrollLeft;\n                this.header!.nativeElement.scrollLeft = scrollLeft;\n            });\n        });\n\n        this.initHeaderMovement();\n\n        if (this.columnDefs) {\n            setTimeout(() => {\n                this.columnDefs!.changes.subscribe(() => {\n                    this.updateDisplayColumns();\n                    this.loadPreference();\n                    this.sortColumnDefs();\n                });\n                this.updateDisplayColumns();\n                this.loadPreference();\n                this.sortColumnDefs();\n            });\n        }\n    }\n\n    public sortColumnDefs() {\n        if (this.columnDefs) {\n            const originalDefs = this.columnDefs.toArray();\n\n            this.sortedColumnDefs = this.columnDefs.toArray().slice(0);\n\n            this.sortedColumnDefs = this.sortedColumnDefs.sort((a: TableColumnDirective, b: TableColumnDirective) => {\n                const aPosition = a.getPosition() === undefined ? originalDefs.indexOf(a) : a.getPosition()!;\n                const bPosition = b.getPosition() === undefined ? originalDefs.indexOf(b) : b.getPosition()!;\n\n                if (aPosition > bPosition) return 1;\n                if (aPosition < bPosition) return -1;\n\n                return 0;\n            });\n\n            detectChangesNextFrame(this.cd);\n        }\n    }\n\n    getVisibleColumns(t: TableColumnDirective[]): TableColumnDirective[] {\n        return t.filter(v => !v.isHidden());\n    }\n\n    filterFn(item: T) {\n        if (this.filter) {\n            return this.filter(item);\n        }\n\n        if (this.filterQuery && this.filterFields) {\n            const q = this.filterQuery!.toLowerCase();\n            for (const field of this.filterFields) {\n                if (-1 !== String((item as any)[field]).toLowerCase().indexOf(q)) {\n                    return true;\n                }\n            }\n\n            return false;\n        }\n\n        return true;\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        if (changes.preferenceKey) {\n            this.loadPreference();\n        }\n\n        if (changes.items) {\n\n            if (isObservable(this.items)) {\n                this.items.subscribe((items: T[]) => {\n                    this.rawItems = items;\n                    this.sorted = items;\n                    this.doSort();\n                    this.viewport?.checkViewportSize();\n                });\n            } else if (isArray(this.items)) {\n                this.rawItems = this.items;\n                this.sorted = this.items;\n                this.doSort();\n                this.viewport?.checkViewportSize();\n            } else {\n                this.rawItems = [];\n                this.sorted = [];\n                this.doSort();\n                this.viewport?.checkViewportSize();\n            }\n        }\n\n        if (changes.selected) {\n            this.selectedMap.clear();\n            if (this.selected) {\n                for (const v of this.selected) {\n                    this.selectedMap.set(v, true);\n                }\n            }\n        }\n\n        this.visibleColumns = this.getVisibleColumns(this.sortedColumnDefs);\n        setTimeout(() => {\n            this.viewport?.checkViewportSize();\n        });\n    }\n\n    private updateDisplayColumns() {\n        this.displayedColumns = [];\n        this.columnMap = {};\n\n        this.sortColumnDefs();\n        if (this.columnDefs) {\n            for (const column of this.columnDefs.toArray()) {\n                this.displayedColumns.push(column.name!);\n                this.columnMap[column.name!] = column;\n            }\n\n            this.doSort();\n        }\n        this.visibleColumns = this.getVisibleColumns(this.sortedColumnDefs);\n    }\n\n    private doSort() {\n        if (this.customSort.observers.length) return;\n        if (empty(this.sorted)) {\n            this.sorted = this.rawItems;\n        }\n\n        if (this.sortFunction) {\n            this.sorted.sort(this.sortFunction(this.sort));\n        } else {\n            const sort = Object.entries(this.sort);\n            sort.reverse(); //we start from bottom\n            let sortRoot = (a: any, b: any) => 0;\n            for (const [name, dir] of sort) {\n                sortRoot = this.createSortFunction(name, dir, sortRoot);\n            }\n            this.sorted.sort(sortRoot);\n        }\n\n        this.sortedChange.emit(this.sorted);\n        this.height = (this.sorted.length * this.itemHeight) + (this.showHeader ? 23 : 0) + 10; //10 is scrollbar padding\n\n        this.sorted = this.sorted.slice(0);\n        detectChangesNextFrame(this.parentCd);\n    }\n\n    protected createSortFunction(sortField: string, dir: 'asc' | 'desc', next?: (a: any, b: any) => number) {\n        return (a: T, b: T) => {\n            const aV = this.valueFetcher(a, sortField);\n            const bV = this.valueFetcher(b, sortField);\n\n            if (aV === undefined && bV === undefined) return next ? next(a, b) : 0;\n            if (aV === undefined && bV !== undefined) return +1;\n            if (aV !== undefined && bV === undefined) return -1;\n\n            if (dir === 'asc') {\n                if (aV > bV) return 1;\n                if (aV < bV) return -1;\n            } else {\n                if (aV > bV) return -1;\n                if (aV < bV) return 1;\n            }\n\n            return next ? next(a, b) : 0;\n        };\n    }\n\n    /**\n     * @hidden\n     */\n    @HostListener('keydown', ['$event'])\n    onFocus(event: KeyboardEvent) {\n        if (event.key === 'Enter') {\n            const firstSelected = first(this.selected);\n            if (firstSelected) {\n                this.dbclick.emit(firstSelected);\n            }\n        }\n\n        if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n            event.preventDefault();\n            const firstSelected = first(this.selected);\n\n            if (!firstSelected) {\n                this.select(this.sorted[0]);\n                return;\n            }\n\n            let index = indexOf(this.sorted, firstSelected);\n\n            // if (-1 === index) {\n            //     this.select(this.sorted[0]);\n            //     this.paginator.pageIndex = 0;\n            //     return;\n            // }\n\n            if (event.key === 'ArrowUp') {\n                if (0 === index) {\n                    return;\n                }\n                index--;\n            }\n\n            if (event.key === 'ArrowDown') {\n                if (empty(this.sorted)) {\n                    return;\n                }\n                index++;\n            }\n\n            if (this.sorted[index]) {\n                const item = this.sorted[index];\n                // if (event.shiftKey) {\n                //     this.selectedMap[item.id] = true;\n                //     this.selected.push(item);\n                // } else {\n                this.select(item);\n\n                if (this.viewport) {\n                    const scrollTop = this.viewport.measureScrollOffset();\n                    const viewportSize = this.viewport.getViewportSize();\n                    const itemTop = this.itemHeight * index;\n\n                    if (itemTop + this.itemHeight > viewportSize + scrollTop) {\n                        const diff = (itemTop + this.itemHeight) - (viewportSize + scrollTop);\n                        this.viewport.scrollToOffset(scrollTop + diff);\n                    }\n\n                    if (itemTop < scrollTop) {\n                        const diff = (itemTop) - (scrollTop);\n                        this.viewport.scrollToOffset(scrollTop + diff);\n                    }\n                }\n            }\n            this.selectedChange.emit(this.selected.slice(0));\n            this.cd.markForCheck();\n        }\n    }\n\n    public deselect(item: T) {\n        arrayRemoveItem(this.selected, item);\n        this.selectedMap.delete(item);\n        detectChangesNextFrame(this.parentCd);\n    }\n\n    public select(item: T, $event?: MouseEvent) {\n        if (this.selectable === false) {\n            return;\n        }\n\n        let cellSelectFired = false;\n        if ($event && $event.target) {\n            const cell = findParentWithClass($event.target as HTMLElement, 'table-cell');\n            if (cell) {\n                const column = cell.getAttribute('row-column') || '';\n                if (column) {\n                    this.cellSelect.emit({ item, cell: column });\n                    cellSelectFired = true;\n                }\n            }\n        }\n\n        if (!cellSelectFired) {\n            this.cellSelect.emit();\n        }\n\n        if (this.multiSelect === false) {\n            this.selected = [item];\n            this.selectedMap.clear();\n            this.selectedMap.set(item, true);\n        } else {\n            if ($event && $event.shiftKey) {\n                const indexSelected = this.sorted.indexOf(item);\n\n                if (this.selected[0]) {\n                    const firstSelected = this.sorted.indexOf(this.selected[0]);\n                    this.selectedMap.clear();\n                    this.selected = [];\n\n                    if (firstSelected < indexSelected) {\n                        //we select all from index -> indexSelected, downwards\n                        for (let i = firstSelected; i <= indexSelected; i++) {\n                            this.selected.push(this.sorted[i]);\n                            this.selectedMap.set(this.sorted[i], true);\n                        }\n                    } else {\n                        //we select all from indexSelected -> index, upwards\n                        for (let i = firstSelected; i >= indexSelected; i--) {\n                            this.selected.push(this.sorted[i]);\n                            this.selectedMap.set(this.sorted[i], true);\n                        }\n                    }\n                } else {\n                    //we start at 0 and select all until index\n                    for (let i = 0; i <= indexSelected; i++) {\n                        this.selected.push(this.sorted[i]);\n                        this.selectedMap.set(this.sorted[i], true);\n                    }\n                }\n            } else if ($event && $event.metaKey) {\n                if (arrayHasItem(this.selected, item)) {\n                    arrayRemoveItem(this.selected, item);\n                    this.selectedMap.delete(item);\n                } else {\n                    this.selectedMap.set(item, true);\n                    this.selected.push(item);\n                }\n            } else {\n                const isRightButton = $event && $event.button == 2;\n                const isItemSelected = arrayHasItem(this.selected, item);\n                const resetSelection = !isItemSelected || !isRightButton;\n                if (resetSelection) {\n                    this.selected = [item];\n                    this.selectedMap.clear();\n                    this.selectedMap.set(item, true);\n                }\n            }\n        }\n\n        this.selectedChange.emit(this.selected);\n        detectChangesNextFrame(this.parentCd);\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { NgModule } from '@angular/core';\nimport {\n    TableCellDirective,\n    TableColumnDirective,\n    TableComponent,\n    TableCustomHeaderContextMenuDirective,\n    TableCustomRowContextMenuDirective,\n    TableHeaderDirective\n} from './table.component';\nimport { CommonModule } from '@angular/common';\nimport { DuiIconModule } from '../icon';\nimport { DuiSplitterModule } from '../splitter';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { DuiButtonModule } from '../button';\n\nexport * from \"./table.component\";\n\n@NgModule({\n    exports: [\n        TableCellDirective,\n        TableColumnDirective,\n        TableHeaderDirective,\n        TableComponent,\n        TableCustomRowContextMenuDirective,\n        TableCustomHeaderContextMenuDirective,\n    ],\n    declarations: [\n        TableCellDirective,\n        TableColumnDirective,\n        TableHeaderDirective,\n        TableComponent,\n        TableCustomRowContextMenuDirective,\n        TableCustomHeaderContextMenuDirective,\n    ],\n    providers: [],\n    imports: [\n        CommonModule,\n        DuiIconModule,\n        DuiSplitterModule,\n        ScrollingModule,\n        DuiButtonModule,\n    ],\n})\nexport class DuiTableModule {\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { NgModule } from '@angular/core';\nimport { DuiWindowModule } from '../window';\nimport {\n    CloseDialogDirective,\n    DialogActionsComponent,\n    DialogComponent,\n    DialogDirective,\n    DialogErrorComponent,\n    DialogWrapperComponent, OpenDialogDirective,\n} from './dialog.component';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { DuiDialog, DuiDialogAlert, DuiDialogConfirm, DuiDialogConfirmDirective, DuiDialogPrompt } from './dialog';\nimport { DuiButtonModule } from '../button';\nimport { DuiCoreModule } from '../core';\nimport { DuiInputModule } from '../input';\nimport { FormsModule } from '@angular/forms';\nimport { DuiDialogProgress } from './progress-dialog.component';\n\nexport * from \"./dialog.component\";\nexport * from \"./dialog\";\nexport * from \"./progress-dialog.component\";\n\n@NgModule({\n    declarations: [\n        DialogComponent,\n        DialogDirective,\n        DialogActionsComponent,\n        CloseDialogDirective,\n        DuiDialogConfirmDirective,\n        DuiDialogAlert,\n        DuiDialogConfirm,\n        DuiDialogPrompt,\n        DuiDialogProgress,\n        DialogWrapperComponent,\n        DialogErrorComponent,\n        OpenDialogDirective,\n    ],\n    exports: [\n        DialogDirective,\n        DialogComponent,\n        DialogActionsComponent,\n        CloseDialogDirective,\n        DuiDialogConfirmDirective,\n        DuiDialogAlert,\n        DuiDialogConfirm,\n        DuiDialogPrompt,\n        DuiDialogProgress,\n        DialogErrorComponent,\n        OpenDialogDirective,\n    ],\n    providers: [\n        DuiDialog,\n    ],\n    imports: [\n        FormsModule,\n        CommonModule,\n        OverlayModule,\n        DuiWindowModule,\n        DuiButtonModule,\n        DuiCoreModule,\n        DuiInputModule,\n    ]\n})\nexport class DuiDialogModule {\n\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport {\n    AfterViewInit,\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    Injector,\n    Input,\n    SkipSelf,\n    ViewChild,\n} from '@angular/core';\nimport { nextTick } from '@deepkit/core';\nimport { ngValueAccessor, ValueAccessorBase } from '../../core/form';\nimport { getHammer } from '../../core/utils';\n\n@Component({\n    selector: 'dui-slider',\n    standalone: false,\n    template: `\n        <div class=\"bg\"></div>\n        <div class=\"knob-container\">\n            <div [style.width.%]=\"getWidth() * 100\" class=\"active-line\"></div>\n            <div #knob [style.left.%]=\"getWidth() * 100\" class=\"knob\"></div>\n        </div>\n    `,\n    host: {\n        '[class.mini]': 'mini !== false'\n    },\n    styleUrls: ['./slider.component.scss'],\n    providers: [ngValueAccessor(SliderComponent)]\n})\nexport class SliderComponent extends ValueAccessorBase<number> implements AfterViewInit {\n    @ViewChild('knob', { static: true }) knob?: ElementRef;\n\n    @Input() min = 0;\n    @Input() steps = 0.01;\n    @Input() max = 1;\n\n    @Input() mini: boolean | '' = false;\n\n    constructor(\n        protected injector: Injector,\n        public readonly cd: ChangeDetectorRef,\n        @SkipSelf() public readonly cdParent: ChangeDetectorRef,\n        protected element: ElementRef,\n    ) {\n        super(injector, cd, cdParent);\n    }\n\n    getWidth(): number {\n        return Math.max(0, Math.min(1, ((this.innerValue || this.min) - this.min) / (this.max - this.min)));\n    }\n\n    ngAfterViewInit() {\n        //move to next render frame, so all newly created sliders are rendered at the same time and don't block he DOM\n        nextTick(() => {\n            this.initEvents();\n        });\n    }\n\n    async initEvents() {\n        const Hammer = await getHammer();\n        if (!Hammer) return;\n\n        const mc = new Hammer(this.knob!.nativeElement);\n        mc.add(new Hammer.Pan({ direction: Hammer.DIRECTION_HORIZONTAL, threshold: 1 }));\n\n        const mcTab = new Hammer(this.element.nativeElement);\n        mcTab.add(new Hammer.Tap({}));\n        mcTab.add(new Hammer.Pan({ direction: Hammer.DIRECTION_HORIZONTAL, threshold: 0 }));\n        mcTab.add(new Hammer.Press({ threshold: 1 }));\n\n        let startXInPixels = 0;\n        let knobSize = this.knob!.nativeElement.offsetWidth;\n        let width = (this.element!.nativeElement.offsetWidth - knobSize);\n        let lastRequest: any;\n\n        mc.on('panstart', (event: HammerInput) => {\n            startXInPixels = this.getWidth() * width;\n            knobSize = this.knob!.nativeElement.offsetWidth;\n            width = (this.element!.nativeElement.offsetWidth - knobSize);\n        });\n\n        mcTab.on('panstart', (event: HammerInput) => {\n            const rect = (this.element!.nativeElement as HTMLElement).getBoundingClientRect();\n            startXInPixels = event.center.x - (knobSize / 2) - rect.x;\n            knobSize = this.knob!.nativeElement.offsetWidth;\n            width = (this.element!.nativeElement.offsetWidth - knobSize);\n        });\n\n        const handleNewLeft = (newLeft: number) => {\n            if (newLeft === 1.0) {\n                this.innerValue = this.max;\n                return;\n            }\n\n            let newPotentialValue = this.min + (newLeft * ((this.max - this.min)));\n            const shift = (newPotentialValue % this.steps);\n            this.innerValue = Math.max(this.min, newPotentialValue - shift);\n        };\n\n        const setOnMousePos = (event: HammerInput) => {\n            const rect = (this.element!.nativeElement as HTMLElement).getBoundingClientRect();\n            const x = event.center.x - (knobSize / 2) - rect.x;\n            const newLeft = Math.min(width, Math.max(0, x)) / width;\n            handleNewLeft(newLeft);\n        };\n        mcTab.on('tap', setOnMousePos);\n        mcTab.on('press', setOnMousePos);\n\n        function pan(event: HammerInput) {\n            if (lastRequest) {\n                cancelAnimationFrame(lastRequest);\n            }\n\n            lastRequest = nextTick(() => {\n                const newLeft = Math.min(width, Math.max(0, (startXInPixels + event.deltaX))) / width;\n                handleNewLeft(newLeft);\n            });\n        }\n\n        mc.on('pan', pan);\n        mcTab.on('pan', pan);\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { DuiIconModule } from '../icon';\nimport { DuiButtonModule } from '../button';\nimport { SliderComponent } from './slider.component';\n\nexport * from './slider.component';\n\n@NgModule({\n    declarations: [\n        SliderComponent,\n    ],\n    exports: [\n        SliderComponent,\n    ],\n    imports: [\n        FormsModule,\n        CommonModule,\n        DuiIconModule,\n        DuiButtonModule,\n    ]\n})\nexport class DuiSliderModule {\n\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { ChangeDetectorRef, Component, Input, OnChanges, OnDestroy } from '@angular/core';\nimport { ProgressTracker } from '@deepkit/core-rxjs';\nimport { Subscription } from 'rxjs';\n\n@Component({\n    selector: 'dui-indicator',\n    standalone: false,\n    template: `\n        <div [class.invisible]=\"step <= 0\" [style.width.%]=\"step * 100\" class=\"active\"></div>\n    `,\n    styleUrls: ['./indicator.component.scss']\n})\nexport class IndicatorComponent {\n    @Input() step: number = 0;\n}\n\n\n@Component({\n    standalone: false,\n    selector: 'dui-progress-indicator',\n    styles: [`\n        .indicator {\n            display: inline-flex;\n            align-items: center;\n            opacity: 1;\n            transition: opacity .3s ease-in-out;\n        }\n\n        .indicator.vertical {\n            flex-direction: column;\n            align-items: flex-start;\n        }\n\n        .label {\n            padding-left: 4px;\n        }\n\n        .percentage {\n            display: inline-block;\n            width: 55px;\n            text-align: right;\n        }\n\n        .hide {\n            opacity: 0;\n        }\n    `],\n    template: `\n        <div class=\"indicator\" [class.vertical]=\"display === 'vertical'\" [class.hide]=\"progressTracker.ended\" *ngIf=\"progressTracker\">\n            <dui-indicator [step]=\"step\"></dui-indicator>\n            <div class=\"label\" *ngIf=\"progressTracker.current as group\">\n                <span class=\"percentage text-light text-tabular\">{{progressTracker.progress*100|number:'0.2-2'}}%</span> - {{group.message}}\n            </div>\n        </div>\n    `\n})\nexport class ProgressIndicatorComponent implements OnChanges, OnDestroy {\n    @Input() progressTracker?: ProgressTracker;\n    @Input() display: 'horizontal' | 'vertical' = 'horizontal';\n\n    step: number = 0;\n    sub?: Subscription;\n\n    constructor(private cd: ChangeDetectorRef) {\n    }\n\n    ngOnChanges(): void {\n        if (this.sub) this.sub.unsubscribe();\n        if (this.progressTracker) {\n            this.sub = this.progressTracker.subscribe(v => {\n                this.step = this.progressTracker!.progress;\n                this.cd.detectChanges();\n            });\n        }\n    }\n\n    ngOnDestroy(): void {\n        if (this.sub) this.sub.unsubscribe();\n    }\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IndicatorComponent, ProgressIndicatorComponent } from './indicator.component';\n\nexport * from './indicator.component';\n\n@NgModule({\n    declarations: [\n        IndicatorComponent,\n        ProgressIndicatorComponent,\n    ],\n    exports: [\n        IndicatorComponent,\n        ProgressIndicatorComponent,\n    ],\n    imports: [\n        CommonModule,\n    ]\n})\nexport class DuiIndicatorModule {\n\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n    selector: 'dui-tab',\n    standalone: false,\n    template: `\n        <div class=\"content\">\n            <ng-content></ng-content>\n        </div>\n        <dui-icon *ngIf=\"removable\" class=\"closer\" (click)=\"onClose()\" clickable name=\"times\"></dui-icon>\n    `,\n    host: {\n        '[class.active]': 'active',\n    },\n    styleUrls: ['./tab.component.scss']\n})\nexport class TabComponent {\n    @Input() active: boolean = false;\n    @Input() removable: boolean = true;\n\n    @Output() close = new EventEmitter();\n\n    constructor() {\n    }\n\n    onClose() {\n        this.close.emit();\n    }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'dui-tabs',\n    standalone: false,\n    template: `\n        <ng-content></ng-content>`,\n    styleUrls: ['./tabs.component.scss']\n})\nexport class TabsComponent {\n}\n","import { NgModule } from '@angular/core';\nimport { TabComponent } from './tab.component';\nimport { TabsComponent } from './tabs.component';\nimport { DuiIconModule } from '../icon';\nimport { CommonModule } from '@angular/common';\n\nexport * from './tab.component';\nexport * from './tabs.component';\n\n@NgModule({\n    declarations: [\n        TabComponent,\n        TabsComponent,\n    ],\n    exports: [\n        TabComponent,\n        TabsComponent,\n    ],\n    imports: [\n        CommonModule,\n        DuiIconModule\n    ]\n})\nexport class DuiTabsModule {\n}\n","import { Component, Input } from '@angular/core';\n\n\n@Component({\n    selector: 'dui-label',\n    standalone: false,\n    template: `\n        <label>{{label}}</label>\n        <ng-content></ng-content>\n    `,\n    styles: [`\n        :host {\n            user-select: text;\n            margin-bottom: 18px;\n            overflow: hidden;\n            text-overflow: ellipsis;\n            word-break: break-all;\n        }\n\n        label {\n            display: block;\n            color: var(--text-light);\n            margin-bottom: 6px;\n            user-select: none;\n        }\n    `]\n})\nexport class LabelComponent {\n    @Input() label: string = '';\n}\n\n\n@Component({\n    selector: 'dui-label-grid',\n    standalone: false,\n    template: `\n        <ng-content></ng-content>\n    `,\n    styles: [`\n        :host {\n            display: grid;\n            gap: 15px;\n            grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n        }\n    `],\n    host: {\n        '[style.grid-template-columns]': `templateColumns`\n    }\n})\nexport class LabelGridComponent {\n    @Input() labelWidth: string | number = '150px';\n    @Input() labelMaxWidth: string | number = '1fr';\n\n    get templateColumns(){\n        return `repeat(auto-fit, minmax(${this.labelWidth}, ${this.labelMaxWidth}))`;\n    }\n}\n","/*\n * Copyright (c) Marc J. Schmidt <marc@marcjschmidt.de>\n * This file is part of Deepkit and licensed under GNU GPL v3. See the LICENSE file for more information.\n */\n\nimport { Component, Input } from '@angular/core';\n\n@Component({\n    selector: 'dui-section-header',\n    standalone: false,\n    template: `\n        <div class=\"title\">\n            <ng-content></ng-content>\n        </div>\n        <div class=\"line\"></div>\n    `,\n    host: {\n        '[class.center]': 'center !== false'\n    },\n    styleUrls: ['./section-header.component.scss']\n})\nexport class SectionHeaderComponent {\n    @Input() center: boolean | '' = false;\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nimport { NgModule } from '@angular/core';\nimport { LabelComponent, LabelGridComponent } from './label.component';\nimport { SectionHeaderComponent } from './section-header.component';\n\nexport * from './label.component';\nexport * from './section-header.component';\n\n@NgModule({\n    imports: [],\n    exports: [\n        LabelComponent,\n        LabelGridComponent,\n        SectionHeaderComponent,\n    ],\n    declarations: [\n        LabelComponent,\n        LabelGridComponent,\n        SectionHeaderComponent,\n    ],\n    providers: [],\n})\nexport class DuiLayoutModule {\n}\n","/*\n * Deepkit Framework\n * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the MIT License.\n *\n * You should have received a copy of the MIT License along with this program.\n */\n\nexport { ValueAccessorBase, ngValueAccessor } from './core/form';\n\nexport * from './browser-text';\nexport * from './core/form';\nexport * from './core/utils';\nexport * from './components/app';\nexport * from './components/checkbox';\nexport * from './components/button';\nexport * from './components/input';\nexport * from './components/form';\nexport * from './components/radiobox';\nexport * from './components/select';\nexport * from './components/window';\nexport * from './components/icon';\nexport * from './components/list';\nexport * from './components/table';\nexport * from './components/splitter';\nexport * from './components/dialog';\nexport * from './components/core';\nexport * from './components/slider';\nexport * from './components/indicator';\nexport * from './components/tabs';\nexport * from './components/layout';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["__assignType","i1.WindowMenuState","NG_COMP_DEF","__ΩFunctionConstructor","i1.WindowRegistry","i2","i1","i1.IconComponent","i1.WindowState","i3.SplitterComponent","i3.IconComponent","i2.DuiApp","i3.WindowMenuState","i4","i2.FormComponent","i4.IconComponent","i5.WindowState","i6.WindowComponent","i2.OverlayStack","i3.WindowRegistry","i5.ButtonComponent","__decorate","i6.IconComponent","i4.ButtonComponent","i4.ButtonGroupComponent","i5.DropdownComponent","i5.DropdownItemComponent","i5.DropdownSplitterComponent","i5.OpenDropdownDirective","i1.WindowContentComponent","i2.WindowContentComponent","i3.WindowComponent","i4.RenderComponentDirective","i5.OverlayStack","i6","i7.WindowRegistry","i8.ButtonComponent","i1.DialogComponent","i1.DialogActionsComponent","i2.ButtonComponent","i2.HotkeyDirective","i3.DialogActionsComponent","i3.CloseDialogDirective","i3.DialogComponent","i5.InputComponent","i6.WindowRegistry","i7","i2.RenderComponentDirective","i3.DuiDialog","i4.WindowRegistry","i1.DropdownComponent","i4.SplitterComponent","i6.DropdownComponent","i6.DropdownItemComponent","i6.DropdownSplitterComponent","i6.ContextDropdownDirective","i2.IconComponent"],"mappings":"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"}