{"version":3,"file":"mantic-ui-angular.mjs","sources":["../../../projects/mantic-ui/src/lib/helpers/to-boolean.ts","../../../projects/mantic-ui/src/lib/services/sorted-classes.service.ts","../../../projects/mantic-ui/src/lib/base/destroyable.ts","../../../projects/mantic-ui/src/lib/base/base.component.ts","../../../projects/mantic-ui/src/lib/helpers/transformable-model.ts","../../../projects/mantic-ui/src/lib/base/invertible.component.ts","../../../projects/mantic-ui/src/lib/base/button-base.component.ts","../../../projects/mantic-ui/src/lib/base/base.directive.ts","../../../projects/mantic-ui/src/lib/components/animation/animation.component.ts","../../../projects/mantic-ui/src/lib/components/animation/animation.component.html","../../../projects/mantic-ui/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../projects/mantic-ui/src/lib/components/breadcrumb/breadcrumb.component.html","../../../projects/mantic-ui/src/lib/models/key.ts","../../../projects/mantic-ui/src/lib/components/toggle-button/toggle-button.component.ts","../../../projects/mantic-ui/src/lib/components/toggle-button/toggle-button.component.html","../../../projects/mantic-ui/src/lib/components/button-group/button-group.component.ts","../../../projects/mantic-ui/src/lib/components/button-group/button-group.component.html","../../../projects/mantic-ui/src/lib/components/icon/icon.component.ts","../../../projects/mantic-ui/src/lib/components/icon/icon.component.html","../../../projects/mantic-ui/src/lib/components/label/label.component.ts","../../../projects/mantic-ui/src/lib/components/label/label.component.html","../../../projects/mantic-ui/src/lib/components/button/button.component.ts","../../../projects/mantic-ui/src/lib/components/button/button.component.html","../../../projects/mantic-ui/src/lib/components/button/button-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/button/button.directive.ts","../../../projects/mantic-ui/src/lib/components/card/card.component.ts","../../../projects/mantic-ui/src/lib/components/card/card.component.html","../../../projects/mantic-ui/src/lib/components/card-group/card-group.component.ts","../../../projects/mantic-ui/src/lib/components/card-group/card-group.component.html","../../../projects/mantic-ui/src/lib/helpers/math2.ts","../../../projects/mantic-ui/src/lib/models/field-size.ts","../../../projects/mantic-ui/src/lib/components/cell/cell.component.ts","../../../projects/mantic-ui/src/lib/components/cell/cell.component.html","../../../projects/mantic-ui/src/lib/components/checkbox/checkbox.component.ts","../../../projects/mantic-ui/src/lib/components/checkbox/checkbox.component.html","../../../projects/mantic-ui/src/lib/components/checkbox/checkbox-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/chat-message/chat-message.component.ts","../../../projects/mantic-ui/src/lib/components/chat-message/chat-message.component.html","../../../projects/mantic-ui/src/lib/directives/fallback-for.directive.ts","../../../projects/mantic-ui/src/lib/components/icon-button/icon-button.component.ts","../../../projects/mantic-ui/src/lib/components/icon-button/icon-button.component.html","../../../projects/mantic-ui/src/lib/components/label-dropdown/label-dropdown.component.ts","../../../projects/mantic-ui/src/lib/components/label-dropdown/label-dropdown.component.html","../../../projects/mantic-ui/src/lib/base/labeled-base.component.ts","../../../projects/mantic-ui/src/lib/components/input/input-base.component.ts","../../../projects/mantic-ui/src/lib/components/input/text/input.component.ts","../../../projects/mantic-ui/src/lib/components/input/text/input.component.html","../../../projects/mantic-ui/src/lib/components/chat/chat.component.ts","../../../projects/mantic-ui/src/lib/components/chat/chat.component.html","../../../projects/mantic-ui/src/lib/components/chat/chat-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/circular-progress/circular-progress.component.ts","../../../projects/mantic-ui/src/lib/components/circular-progress/circular-progress.component.html","../../../projects/mantic-ui/src/lib/directives/to-body.directive.ts","../../../projects/mantic-ui/src/lib/components/menu/menu.component.ts","../../../projects/mantic-ui/src/lib/components/menu/menu.component.html","../../../projects/mantic-ui/src/lib/components/context-menu/context-menu.component.ts","../../../projects/mantic-ui/src/lib/components/context-menu/context-menu.component.html","../../../projects/mantic-ui/src/lib/components/menu-item/menu-item.component.ts","../../../projects/mantic-ui/src/lib/components/menu-item/menu-item.component.html","../../../projects/mantic-ui/src/lib/components/context-menu/item/context-menu-item.component.ts","../../../projects/mantic-ui/src/lib/components/context-menu/item/context-menu-item.component.html","../../../projects/mantic-ui/src/lib/components/dimmer/dimmer.component.ts","../../../projects/mantic-ui/src/lib/components/dimmer/dimmer.component.html","../../../projects/mantic-ui/src/lib/components/dimmer/dimmer-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/data-source/data-source-request.ts","../../../projects/mantic-ui/src/lib/components/data-source/data-source.component.ts","../../../projects/mantic-ui/src/lib/components/divider/divider.component.ts","../../../projects/mantic-ui/src/lib/components/divider/divider.component.html","../../../projects/mantic-ui/src/lib/helpers/object-helper.ts","../../../projects/mantic-ui/src/lib/components/dynamic-component/component-parser.ts","../../../projects/mantic-ui/src/lib/components/dynamic-component/dynamic-component.component.ts","../../../projects/mantic-ui/src/lib/components/dynamic-component/provider.ts","../../../projects/mantic-ui/src/lib/components/dropdown/dropdown-selection.service.ts","../../../projects/mantic-ui/src/lib/components/dropdown-item/dropdown-item.component.ts","../../../projects/mantic-ui/src/lib/components/dropdown-item/dropdown-item.component.html","../../../projects/mantic-ui/src/lib/components/dropdown/dropdown-value.ts","../../../projects/mantic-ui/src/lib/components/dropdown/dropdown.component.ts","../../../projects/mantic-ui/src/lib/components/dropdown/dropdown.component.html","../../../projects/mantic-ui/src/lib/components/dropdown/dropdown-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/header/header.component.ts","../../../projects/mantic-ui/src/lib/components/header/header.component.html","../../../projects/mantic-ui/src/lib/components/dropdown-group/dropdown-group.component.ts","../../../projects/mantic-ui/src/lib/components/dropdown-group/dropdown-group.component.html","../../../projects/mantic-ui/src/lib/components/document-title/document-title.component.ts","../../../projects/mantic-ui/src/lib/components/document-title/document-title.component.html","../../../projects/mantic-ui/src/lib/components/document-no-index/document-no-index.component.ts","../../../projects/mantic-ui/src/lib/components/loader/loader.component.ts","../../../projects/mantic-ui/src/lib/components/loader/loader.component.html","../../../projects/mantic-ui/src/lib/components/message/message.component.ts","../../../projects/mantic-ui/src/lib/components/message/message.component.html","../../../projects/mantic-ui/src/lib/components/error/error.component.ts","../../../projects/mantic-ui/src/lib/components/error/error.component.html","../../../projects/mantic-ui/src/lib/components/flex/fill/fill.component.ts","../../../projects/mantic-ui/src/lib/components/flex/fill/fill.component.html","../../../projects/mantic-ui/src/lib/components/flex/flex.directive.ts","../../../projects/mantic-ui/src/lib/components/flex/flex.component.ts","../../../projects/mantic-ui/src/lib/components/expander/expander-header.component.ts","../../../projects/mantic-ui/src/lib/components/expander/expander.component.ts","../../../projects/mantic-ui/src/lib/components/expander/expander.component.html","../../../projects/mantic-ui/src/lib/components/expander/expander-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/expander-icon/expander-icon.component.ts","../../../projects/mantic-ui/src/lib/components/expander-icon/expander-icon.component.html","../../../projects/mantic-ui/src/lib/components/expander-part/expander-part.component.ts","../../../projects/mantic-ui/src/lib/components/expander-part/expander-part.component.html","../../../projects/mantic-ui/src/lib/components/flag/flag.component.ts","../../../projects/mantic-ui/src/lib/components/flag/flag.component.html","../../../projects/mantic-ui/src/lib/helpers/timespan.ts","../../../projects/mantic-ui/src/lib/helpers/date-helper.ts","../../../projects/mantic-ui/src/lib/components/input/date/date-input.component.ts","../../../projects/mantic-ui/src/lib/components/input/date/date-input.component.html","../../../projects/mantic-ui/src/lib/components/input/numeric/numeric-input.component.ts","../../../projects/mantic-ui/src/lib/components/input/numeric/numeric-input.component.html","../../../projects/mantic-ui/src/lib/services/radio.service.ts","../../../projects/mantic-ui/src/lib/components/radio/radio.component.ts","../../../projects/mantic-ui/src/lib/components/radio/radio.component.html","../../../projects/mantic-ui/src/lib/components/slider/slider.component.ts","../../../projects/mantic-ui/src/lib/components/slider/slider.component.html","../../../projects/mantic-ui/src/lib/components/textarea/textarea.component.ts","../../../projects/mantic-ui/src/lib/components/textarea/textarea.component.html","../../../projects/mantic-ui/src/lib/components/toggle/toggle.component.ts","../../../projects/mantic-ui/src/lib/components/toggle/toggle.component.html","../../../projects/mantic-ui/src/lib/components/field/field-format-errors.pipe.ts","../../../projects/mantic-ui/src/lib/components/field/field.component.ts","../../../projects/mantic-ui/src/lib/components/field/field.component.html","../../../projects/mantic-ui/src/lib/components/field-group/field-group.component.ts","../../../projects/mantic-ui/src/lib/components/field-group/field-group.component.html","../../../projects/mantic-ui/src/lib/components/field/field-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/flex/auto/auto.component.ts","../../../projects/mantic-ui/src/lib/components/flex/auto/auto.component.html","../../../projects/mantic-ui/src/lib/components/flex/auto/auto.directive.ts","../../../projects/mantic-ui/src/lib/components/flex/fill/fill.directive.ts","../../../projects/mantic-ui/src/lib/components/flex/shrink/shrink.component.ts","../../../projects/mantic-ui/src/lib/components/flex/shrink/shrink.component.html","../../../projects/mantic-ui/src/lib/components/flex/shrink/shrink.directive.ts","../../../projects/mantic-ui/src/lib/components/flex/grow/grow.component.ts","../../../projects/mantic-ui/src/lib/components/flex/grow/grow.component.html","../../../projects/mantic-ui/src/lib/components/flex/grow/grow.directive.ts","../../../projects/mantic-ui/src/lib/components/overflow/overflow.directive.ts","../../../projects/mantic-ui/src/lib/components/footer/footer.component.ts","../../../projects/mantic-ui/src/lib/components/footer/footer.component.html","../../../projects/mantic-ui/src/lib/models/template-target.ts","../../../projects/mantic-ui/src/lib/services/layout.service.ts","../../../projects/mantic-ui/src/lib/components/footer-link/footer-link-template.directive.ts","../../../projects/mantic-ui/src/lib/components/footer-link/footer-link.component.ts","../../../projects/mantic-ui/src/lib/components/footer-link/footer-link.component.html","../../../projects/mantic-ui/src/lib/components/form/form-validation-notifier.ts","../../../projects/mantic-ui/src/lib/components/form/form.component.ts","../../../projects/mantic-ui/src/lib/components/form/form.component.html","../../../projects/mantic-ui/src/lib/components/form/form-defaults.component.ts","../../../projects/mantic-ui/src/lib/directives/header.directive.ts","../../../projects/mantic-ui/src/lib/components/grid/grid.component.ts","../../../projects/mantic-ui/src/lib/components/grid/grid.component.html","../../../projects/mantic-ui/src/lib/components/info/info.component.ts","../../../projects/mantic-ui/src/lib/components/info/info.component.html","../../../projects/mantic-ui/src/lib/components/warning/warning.component.ts","../../../projects/mantic-ui/src/lib/components/warning/warning.component.html","../../../projects/mantic-ui/src/lib/components/form-renderer/form-renderer.service.ts","../../../projects/mantic-ui/src/lib/components/form-element-renderer/form-element-renderer2.component.ts","../../../projects/mantic-ui/src/lib/components/form-element-renderer/form-element-renderer2.component.html","../../../projects/mantic-ui/src/lib/components/form-element-renderer/form-element-renderer.component.ts","../../../projects/mantic-ui/src/lib/components/form-element-renderer/form-element-renderer.component.html","../../../projects/mantic-ui/src/lib/components/form-renderer/form-renderer.component.ts","../../../projects/mantic-ui/src/lib/components/form-renderer/form-renderer.component.html","../../../projects/mantic-ui/src/lib/components/form-element-renderer/form-element.decorator.ts","../../../projects/mantic-ui/src/lib/components/form-renderer/provide-form-element.ts","../../../projects/mantic-ui/src/lib/components/header/header-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/image-upload/image-upload.component.ts","../../../projects/mantic-ui/src/lib/components/image-upload/image-upload.component.html","../../../projects/mantic-ui/src/lib/components/input/file/file-input.component.ts","../../../projects/mantic-ui/src/lib/components/input/file/file-input.component.html","../../../projects/mantic-ui/src/lib/components/input/time/time-input.component.ts","../../../projects/mantic-ui/src/lib/components/input/time/time-input.component.html","../../../projects/mantic-ui/src/lib/components/input/input-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/label-dropdown/label-dropdown-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/layout/layout.component.ts","../../../projects/mantic-ui/src/lib/components/layout/layout.component.html","../../../projects/mantic-ui/src/lib/components/layout/layout-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/localize/localize.ts","../../../projects/mantic-ui/src/lib/components/localize/localize.component.ts","../../../projects/mantic-ui/src/lib/components/localize/localize.component.html","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-bold.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-code.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-code-block.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-custom-element.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-empty.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-header.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-image.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-italic.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-link.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-list.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-paragraph.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-separator.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-strikethrough.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-text.ts","../../../projects/mantic-ui/src/lib/helpers/cast.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/services/markdown-parser.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/markdown-renderer.component.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/markdown-renderer.component.html","../../../projects/mantic-ui/src/lib/components/menu-header/menu-header.component.ts","../../../projects/mantic-ui/src/lib/components/menu-header/menu-header.component.html","../../../projects/mantic-ui/src/lib/components/menu-item/menu-item.directive.ts","../../../projects/mantic-ui/src/lib/components/menu-link/menu-link-template.directive.ts","../../../projects/mantic-ui/src/lib/components/menu-link/menu-link.component.ts","../../../projects/mantic-ui/src/lib/components/menu-link/menu-link.component.html","../../../projects/mantic-ui/src/lib/components/message/message-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/modal/modal-footer.component.ts","../../../projects/mantic-ui/src/lib/components/modal/modal-header.component.ts","../../../projects/mantic-ui/src/lib/components/modal/modal.component.ts","../../../projects/mantic-ui/src/lib/components/modal/modal.component.html","../../../projects/mantic-ui/src/lib/components/modal/modal-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/notification/models/async-action.ts","../../../projects/mantic-ui/src/lib/components/notification/models/notification-ref.ts","../../../projects/mantic-ui/src/lib/components/notification/services/notification.service.ts","../../../projects/mantic-ui/src/lib/components/notification/notification-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/notification/models/notification-token.ts","../../../projects/mantic-ui/src/lib/components/notification/notification-injector.pipe.ts","../../../projects/mantic-ui/src/lib/components/notification/notification.component.ts","../../../projects/mantic-ui/src/lib/components/notification/notification.component.html","../../../projects/mantic-ui/src/lib/components/or/or.component.ts","../../../projects/mantic-ui/src/lib/components/row/row.component.ts","../../../projects/mantic-ui/src/lib/components/row/row.component.html","../../../projects/mantic-ui/src/lib/components/segment/segment.component.ts","../../../projects/mantic-ui/src/lib/components/segment/segment.component.html","../../../projects/mantic-ui/src/lib/components/segment/segment-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/segment-group/segment-group.component.ts","../../../projects/mantic-ui/src/lib/components/segment-group/segment-group.component.html","../../../projects/mantic-ui/src/lib/components/sidebar/sidebar.component.ts","../../../projects/mantic-ui/src/lib/components/sidebar/sidebar.component.html","../../../projects/mantic-ui/src/lib/components/submit/submit.component.ts","../../../projects/mantic-ui/src/lib/components/submit/submit.component.html","../../../projects/mantic-ui/src/lib/components/table/table.component.ts","../../../projects/mantic-ui/src/lib/components/table/table.component.html","../../../projects/mantic-ui/src/lib/components/table/table-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/tab/tab.component.ts","../../../projects/mantic-ui/src/lib/components/tab/tab.component.html","../../../projects/mantic-ui/src/lib/components/tab-group/models/named-url-segment.ts","../../../projects/mantic-ui/src/lib/components/tab-group/tab-group.component.ts","../../../projects/mantic-ui/src/lib/components/tab-group/tab-group.component.html","../../../projects/mantic-ui/src/lib/components/tab-group/tab-group-defaults.component.ts","../../../projects/mantic-ui/src/lib/services/template.service.ts","../../../projects/mantic-ui/src/lib/components/template/template.component.ts","../../../projects/mantic-ui/src/lib/components/template/template.component.html","../../../projects/mantic-ui/src/lib/components/template-outlet/template-outlet.component.ts","../../../projects/mantic-ui/src/lib/components/template-outlet/template-outlet.component.html","../../../projects/mantic-ui/src/lib/components/text-container/text-container.component.ts","../../../projects/mantic-ui/src/lib/components/text-container/text-container.component.html","../../../projects/mantic-ui/src/lib/components/textarea/textarea-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/title-strategy/mantic-title-strategy.ts","../../../projects/mantic-ui/src/lib/components/title-strategy/mantic-title-strategy.module.ts","../../../projects/mantic-ui/src/lib/components/title-strategy/provider.ts","../../../projects/mantic-ui/src/lib/directives/hide-on-empty-template.directive.ts","../../../projects/mantic-ui/src/lib/directives/hide-on-existing-template.directive.ts","../../../projects/mantic-ui/src/lib/directives/to-template.directive.ts","../../../projects/mantic-ui/src/lib/directives/position-absolute.directive.ts","../../../projects/mantic-ui/src/lib/helpers/external-route.component.ts","../../../projects/mantic-ui/src/lib/helpers/lower-case-url-serializer.ts","../../../projects/mantic-ui/src/lib/helpers/lower-case-url-serializer.module.ts","../../../projects/mantic-ui/src/lib/helpers/mantic.ts","../../../projects/mantic-ui/src/lib/helpers/map-void.ts","../../../projects/mantic-ui/src/lib/helpers/provide-locale.ts","../../../projects/mantic-ui/src/lib/models/form-validation.ts","../../../projects/mantic-ui/src/lib/pipes/allowed-chars.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/array.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/ceil.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/debug.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/debugger.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/floor.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/is-email.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/is-filled.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/log.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/pad-end.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/pad-start.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/round.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/safe.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/slice.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/title.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/to-boolean.pipe.ts","../../../projects/mantic-ui/src/lib/services/base-href.service.ts","../../../projects/mantic-ui/src/lib/services/environment.service.ts","../../../projects/mantic-ui/src/lib/services/favicon.service.ts","../../../projects/mantic-ui/src/lib/services/theme.service.ts","../../../projects/mantic-ui/src/mantic-ui-angular.ts"],"sourcesContent":["import { BooleanLike } from '../models/boolean-like';\r\n\r\nexport const toBoolean = (value: BooleanLike): boolean => {\r\n    return value === '' || value === true || value?.toString().toLowerCase() === 'true';\r\n};\r\n\r\nexport const toBooleanWithUndefined = (value: BooleanLike): boolean | undefined => {\r\n    return value === undefined ? undefined : toBoolean(value);\r\n};\r\n","import { ElementRef, inject, Injectable } from '@angular/core';\r\n\r\ninterface Entry {\r\n    key: string;\r\n    order: number;\r\n    value: string;\r\n    fixed?: boolean;\r\n    ignore?: boolean;\r\n    previous?: string[];\r\n}\r\n\r\n@Injectable()\r\nexport class SortedClassesService {\r\n    private readonly entries = new Map<string, Entry>();\r\n    private readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\r\n\r\n    /**\r\n     * Registers one or more keys. The keys will only registered if they are not already registered.\r\n     */\r\n    public registerFallback(...keys: string[]): SortedClassesService {\r\n        for (const key of keys) {\r\n            if (this.has(key)) {\r\n                continue;\r\n            }\r\n            this.registerEntry(key);\r\n        }\r\n        return this;\r\n    }\r\n\r\n    /**\r\n     * Registers one or more keys. If they are already registered, the order will be updated.\r\n     */\r\n    public register(...keys: string[]): SortedClassesService {\r\n        for (const key of keys) {\r\n            const existingEntry = this.getEntry(key);\r\n            if (existingEntry) {\r\n                for (let [_, entry] of this.entries) {\r\n                    if (entry.order > existingEntry.order) {\r\n                        entry.order--;\r\n                    }\r\n                }\r\n                existingEntry.order = this.entries.size - 1;\r\n            }\r\n            else {\r\n                this.registerEntry(key);\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public registerFixed(...keys: string[]): SortedClassesService {\r\n        for (const key of keys) {\r\n            this.registerEntry(key, { fixed: true });\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public unregister(...keys: string[]): SortedClassesService {\r\n        for (const key of keys) {\r\n            this.entries.delete(key.toLocaleLowerCase());\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public ignore(...keys: string[]): SortedClassesService {\r\n        for (const key of keys) {\r\n            this.registerEntry(key, { ignore: true });\r\n        }\r\n        return this;\r\n    }\r\n\r\n    private registerEntry(key: string, options?: Partial<Entry>): void {\r\n        if (!key) {\r\n            return;\r\n        }\r\n        if (this.has(key)) {\r\n            console.warn(`'${key}' is already registered on <${this.elementRef.nativeElement.tagName}>.`);\r\n        }\r\n        const entry: Entry = {\r\n            ...options,\r\n            key: key.toLocaleLowerCase(),\r\n            value: options?.fixed ? key : options?.value ?? '',\r\n            order: this.entries.size\r\n        };\r\n        this.entries.set(entry.key, entry);\r\n    }\r\n\r\n    private getEntry(key: string): Entry | undefined {\r\n        key = key.toLocaleLowerCase();\r\n        return this.entries.get(key);\r\n    }\r\n\r\n    public set(key: string, value: unknown, options?: { refresh: boolean }): SortedClassesService {\r\n        let entry = this.getEntry(key);\r\n        if (!entry) {\r\n            console.warn(`Set an unregistered value '${key}' on <${this.elementRef.nativeElement.tagName}> is not recommended. Call register(key) method once, before using set(...) method.`);\r\n            entry = this.register(key).getEntry(key);\r\n        }\r\n        if (!entry) {\r\n            throw new Error('Entry not found #dki3kjk');\r\n        }\r\n        if (entry.fixed) {\r\n            console.error(`Can not change an fixed value '${key} on <${this.elementRef.nativeElement.tagName}>. Use register(key) instead of registerFixed(key)`);\r\n            return this;\r\n        }\r\n        if (value === true) {\r\n            entry.value = key;\r\n        }\r\n        else if (value === false || value === undefined || value === null) {\r\n            entry.value = '';\r\n        }\r\n        else {\r\n            entry.value = value.toString();\r\n        }\r\n        if (options?.refresh !== false) {\r\n            this.updateEntry(entry);\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public get(key: string): unknown {\r\n        return this.getEntry(key)?.value;\r\n    }\r\n\r\n    public has(key: string): boolean {\r\n        return !!this.getEntry(key);\r\n    }\r\n\r\n    public toString(): string {\r\n        return Array.from(this.entries.values())\r\n            .sort(SortedClassesService.sortByOrder)\r\n            .map(entry => entry.value)\r\n            .filter(value => value)\r\n            .join(' ');\r\n    }\r\n\r\n    public update(): void {\r\n        Array.from(this.entries.values())\r\n            .filter(entry => !entry.ignore)\r\n            .sort(SortedClassesService.sortByOrder)\r\n            .forEach(entry => this.updateEntry(entry));\r\n    }\r\n\r\n    private updateEntry(entry: Entry): void {\r\n        const classList = this.elementRef.nativeElement.classList;\r\n        if (entry.previous) {\r\n            classList.remove(...entry.previous);\r\n        }\r\n        const values = entry.value.split(' ').filter(x => !!x);\r\n        classList.add(...values);\r\n        entry.previous = values;\r\n    }\r\n\r\n    private static sortByOrder(left: Entry, right: Entry): number {\r\n        return left.order > right.order ? 1 : left.order < right.order ? -1 : 0;\r\n    }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { MonoTypeOperatorFunction, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport abstract class Destroyable implements OnDestroy {\r\n    private readonly destroySubject = new Subject<void>();\r\n\r\n    /**\r\n     * An observable that emits when the component is destroyed.\r\n     */\r\n    public readonly destroy = this.destroySubject.asObservable();\r\n\r\n    /**\r\n     * Pipe this method to a subject to take values until the component is destroyed.\r\n     * Example: `observable.pipe(this.takeUntilDestroy()).subscribe(...);`\r\n     * Equals to `observable.pipe(takeUntil(this.destroy)).subscribe(...);`.\r\n     */\r\n    public takeUntilDestroy<T>(): MonoTypeOperatorFunction<T> {\r\n        return takeUntil(this.destroy);\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        this.destroySubject.next();\r\n    }\r\n}\r\n","import { Directive, ElementRef, inject, Inject, OnInit, Optional } from '@angular/core';\r\nimport { toBoolean } from '../helpers/to-boolean';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { SortedClassesService } from '../services/sorted-classes.service';\r\nimport { Destroyable } from './destroyable';\r\n\r\n@Directive({\r\n    providers: BaseComponent.providers\r\n})\r\nexport abstract class BaseComponent extends Destroyable implements OnInit {\r\n    protected static readonly providers = [SortedClassesService];\r\n    protected readonly classes = inject(SortedClassesService, { self: true });\r\n    protected readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n    private noClassesValue = false;\r\n    private initialized = false;\r\n    protected readonly tag = this.elementRef.nativeElement.tagName.toLowerCase();\r\n    protected validateAttributes = true;\r\n\r\n    protected get noClasses(): boolean {\r\n        return this.noClassesValue;\r\n    }\r\n\r\n    protected set noClasses(value: boolean) {\r\n        this.noClassesValue = value;\r\n        this.refreshClasses();\r\n    }\r\n\r\n    protected constructor(\r\n        // eslint-disable-next-line @angular-eslint/prefer-inject\r\n        @Optional() @Inject('none') useUiClass = true\r\n    ) {\r\n        super();\r\n        if (useUiClass) {\r\n            this.classes.registerFixed('ui');\r\n        }\r\n        this.classes.register('style');\r\n    }\r\n\r\n    public ngOnInit(): void {\r\n        this.initialized = true;\r\n        this.readPropertiesFromAttributes();\r\n        this.refreshClasses();\r\n    }\r\n\r\n    private readPropertiesFromAttributes(): void {\r\n        if (!this.validateAttributes) {\r\n            return;\r\n        }\r\n        for (const attribute of this.elementRef.nativeElement.attributes) {\r\n            if (attribute.name.startsWith('_ng') || attribute.name.startsWith('ng-') || attribute.name.startsWith('m-') || attribute.name === 'class' || attribute.name === 'title') {\r\n                continue;\r\n            }\r\n            if (!this.classes.has(attribute.name)) {\r\n                console.warn(`Unknown attribute '${attribute.name}' on <${this.tag}> found.`, this.elementRef.nativeElement);\r\n            }\r\n        }\r\n    }\r\n\r\n    // TODO: Check usage\r\n    protected refreshClasses(): void {\r\n        if (!this.initialized) {\r\n            return;\r\n        }\r\n        this.classes.update();\r\n    }\r\n\r\n    protected toBoolean(value: BooleanLike): boolean {\r\n        return toBoolean(value);\r\n    }\r\n}\r\n","import { linkedSignal, OutputEmitterRef, Signal } from '@angular/core';\n\nexport interface TransformableModel<TRead, TWrite> extends Signal<TRead> {\n    set(value: TWrite): void;\n    update(updateFn: (value: TRead) => TRead): void;\n    asReadonly(): Signal<TRead>;\n}\n\n/**\n * A writable signal that behaves like `model()` but supports a `transform`.\n *\n * `input()` and `output()` are compiler-recognised initializer APIs and must stay as direct\n * class-field initializers — they cannot be created inside a helper. So declare them on the class\n * and hand them to this factory, which wires up the writable state and the change emission:\n *\n * ```ts\n * public readonly activeInput = input<boolean, BooleanLike>(false, { alias: 'active', transform: toBoolean });\n * public readonly activeChange = output<boolean>();\n * public readonly active = transformableModel(this.activeInput, this.activeChange, toBoolean);\n * ```\n *\n * Read with `active()`, write with `active.set(<BooleanLike>)`. A binding on the aliased input flows\n * in (already coerced by the input's own transform) and resets the value WITHOUT re-emitting; an\n * imperative `set`/`update` coerces the value and emits the change output (model two-way semantics).\n */\nexport const transformableModel = <TRead, TWrite>(\n    source: Signal<TRead>,\n    change: OutputEmitterRef<TRead>,\n    transform: (value: TWrite) => TRead\n): TransformableModel<TRead, TWrite> => {\n    const state = linkedSignal(() => source());\n    const setState = state.set.bind(state);\n    const model = state as unknown as TransformableModel<TRead, TWrite>;\n    model.set = (value: TWrite): void => {\n        const next = transform(value);\n        if (Object.is(next, state())) {\n            return;\n        }\n        setState(next);\n        change.emit(next);\n    };\n    model.update = (updateFn: (value: TRead) => TRead): void => {\n        const next = updateFn(state());\n        if (Object.is(next, state())) {\n            return;\n        }\n        setState(next);\n        change.emit(next);\n    };\n    return model;\n};\n","import { computed, Directive, effect, Inject, input, Optional, signal } from '@angular/core';\nimport { toBoolean } from '../helpers/to-boolean';\nimport { BooleanLike } from '../models/boolean-like';\nimport { BaseComponent } from './base.component';\n\n@Directive()\nexport abstract class InvertibleComponent extends BaseComponent {\n    protected static override readonly providers = [...BaseComponent.providers];\n    private readonly invertedDefault = signal(false);\n    public readonly invertedInput = input<boolean | undefined, BooleanLike>(undefined, { alias: 'inverted', transform: toBoolean });\n    public readonly inverted = computed(() => this.invertedInput() ?? this.invertedDefault());\n\n    protected constructor(\n        // eslint-disable-next-line @angular-eslint/prefer-inject\n        @Optional() @Inject('none') useUiClass = true\n    ) {\n        super(useUiClass);\n        this.classes.register('inverted');\n        effect(() => this.classes.set('inverted', this.inverted()));\n    }\n\n    protected refreshInverted(value: boolean): void {\n        this.invertedDefault.set(value);\n    }\n}\n","import { Directive, effect, input, output } from '@angular/core';\nimport { toBoolean } from '../helpers/to-boolean';\nimport { transformableModel } from '../helpers/transformable-model';\nimport { BooleanLike } from '../models/boolean-like';\nimport { ColorName } from '../models/color';\nimport { InvertibleComponent } from './invertible.component';\n\n@Directive({\n    providers: ButtonBaseComponent.providers,\n    host: {\n        '[class.primary]': 'primary()',\n        '[class.secondary]': 'secondary()',\n        '[class.positive]': 'positive()',\n        '[class.negative]': 'negative()',\n        '[class.circular]': 'circular()',\n        '[class.left]': 'attachedLeft()',\n        '[class.top]': 'attachedTop()',\n        '[class.right]': 'attachedRight()',\n        '[class.bottom]': 'attachedBottom()',\n        '[class.attached]': 'attached'\n    }\n})\nexport abstract class ButtonBaseComponent extends InvertibleComponent {\n    protected static override readonly providers = [...InvertibleComponent.providers];\n    public readonly primary = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly secondary = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly positive = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly negative = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly size = input('');\n    public readonly circular = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly attachedLeft = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly attachedTop = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly attachedRight = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly attachedBottom = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly color = input<ColorName | undefined>(undefined);\n    public readonly basic = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly disabled = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly loading = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly activeInput = input<boolean, BooleanLike>(false, { alias: 'active', transform: toBoolean });\n    public readonly activeChange = output<boolean>();\n    public readonly active = transformableModel(this.activeInput, this.activeChange, toBoolean);\n\n    protected get attached(): boolean {\n        return this.attachedTop() || this.attachedBottom() || this.attachedLeft() || this.attachedRight();\n    }\n\n    protected constructor() {\n        super();\n        this.elementRef.nativeElement.setAttribute('tabindex', '0');\n        this.classes.register('color', 'basic', 'disabled', 'loading', 'active', 'size', 'primary', 'secondary', 'positive', 'negative', 'circular', 'tabindex', 'attachedLeft', 'attachedRight', 'attachedTop', 'attachedBottom')\n            .registerFixed('button');\n        effect(() => this.classes.set('color', this.color()));\n        effect(() => this.classes.set('basic', this.basic()));\n        effect(() => this.classes.set('disabled', this.disabled()));\n        effect(() => this.classes.set('loading', this.loading()));\n        effect(() => this.classes.set('active', this.active()));\n        effect(() => this.classes.set('size', this.size()));\n    }\n}\n","import { Directive, ElementRef, Inject, inject, OnInit, Optional, TypeProvider } from '@angular/core';\r\nimport { toBoolean } from '../helpers/to-boolean';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { SortedClassesService } from '../services/sorted-classes.service';\r\nimport { Destroyable } from './destroyable';\r\n\r\n@Directive()\r\nexport abstract class BaseDirective extends Destroyable implements OnInit {\r\n    protected static readonly providers: TypeProvider[] = [SortedClassesService];\r\n    protected readonly classes = inject(SortedClassesService, { self: true });\r\n    protected readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef, { self: true });\r\n    private noClassesValue = false;\r\n    private initialized = false;\r\n    protected tag: string;\r\n    protected validateAttributes = true;\r\n\r\n    protected get noClasses(): boolean {\r\n        return this.noClassesValue;\r\n    }\r\n\r\n    protected set noClasses(value: boolean) {\r\n        this.noClassesValue = value;\r\n        this.refreshClasses();\r\n    }\r\n\r\n    protected constructor(\r\n        // eslint-disable-next-line @angular-eslint/prefer-inject\r\n        @Optional() @Inject('none') useUiClass = true\r\n    ) {\r\n        super();\r\n        this.tag = this.elementRef.nativeElement.tagName.toLowerCase();\r\n        if (useUiClass) {\r\n            this.classes.registerFixed('ui');\r\n        }\r\n    }\r\n\r\n    public ngOnInit(): void {\r\n        this.initialized = true;\r\n        this.readPropertiesFromAttributes();\r\n        this.refreshClasses();\r\n    }\r\n\r\n    private readPropertiesFromAttributes(): void {\r\n        if (!this.validateAttributes) {\r\n            return;\r\n        }\r\n        for (const attribute of this.elementRef.nativeElement.attributes) {\r\n            if (attribute.name.startsWith('_ng') || attribute.name.startsWith('ng-') || attribute.name.startsWith('m-') || attribute.name === 'class' || attribute.name === 'title') {\r\n                continue;\r\n            }\r\n            if (!this.classes.has(attribute.name)) {\r\n                console.warn(`Unknown attribute '${attribute.name}' on <${this.tag}> found.`, this.elementRef.nativeElement);\r\n            }\r\n        }\r\n    }\r\n\r\n    protected refreshClasses(): void {\r\n        if (!this.initialized) {\r\n            return;\r\n        }\r\n        this.classes.update();\r\n    }\r\n\r\n    protected toBoolean(value: BooleanLike): boolean {\r\n        return toBoolean(value);\r\n    }\r\n\r\n}\r\n\r\n","import { Component, input } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { AnimationDirection } from './models/animation-direction';\r\n\r\n@Component({\r\n    selector: 'm-animation',\r\n    templateUrl: './animation.component.html',\r\n    styleUrls: ['./animation.component.scss'],\r\n    host: { '[class.hidden]': 'hidden()' },\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class AnimationComponent extends BaseComponent {\r\n    public readonly hidden = input(true);\r\n    public readonly direction = input<AnimationDirection>();\r\n\r\n    public constructor() {\r\n        super(false);\r\n        this.classes.registerFixed('content');\r\n        this.classes.register('hidden', 'direction');\r\n    }\r\n}\r\n","<ng-content />","import { Component } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\n\r\n@Component({\r\n    selector: 'm-breadcrumb',\r\n    templateUrl: './breadcrumb.component.html',\r\n    styleUrls: ['./breadcrumb.component.scss'],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class BreadcrumbComponent extends BaseComponent {\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('breadcrumb');\r\n    }\r\n}\r\n","<!-- TODO: Not yet implemented -->\r\n<!--  <a class=\"section\">Home</a>-->\r\n<!--  <i class=\"right angle icon divider\"></i>-->\r\n<!--  <a class=\"section\">Store</a>-->\r\n<!--  <i class=\"right angle icon divider\"></i>-->\r\n<!--  <div class=\"active section\">T-Shirt</div>-->\r\n","export declare type KeyCode = 'Space' | 'Enter' | 'Escape';\r\n\r\nexport class Key {\r\n    public static readonly space = new Key('Space');\r\n    public static readonly enter = new Key('Enter');\r\n    public static readonly escape = new Key('Escape');\r\n\r\n    public constructor(\r\n        public readonly code: string\r\n    ) {\r\n    }\r\n\r\n    public is(event: KeyboardEvent): boolean {\r\n        return Key.is(event, this);\r\n    }\r\n\r\n    public static is(event: KeyboardEvent, ...keys: (KeyCode | Key)[]): boolean {\r\n        return keys.some(key => event.key === (typeof key === 'string' ? key : key.code));\r\n    }\r\n}\r\n","import { NgIfContext } from '@angular/common';\r\nimport { Component, contentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\r\nimport { ButtonBaseComponent } from '../../base/button-base.component';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { Key } from '../../models/key';\r\n\r\n@Component({\r\n    selector: 'm-toggle-button',\r\n    templateUrl: './toggle-button.component.html',\r\n    styleUrls: ['./toggle-button.component.scss'],\r\n    imports: [],\r\n    providers: [...ButtonBaseComponent.providers],\r\n    host: {\r\n        '[class.checked]': 'checked',\r\n        '(click)': 'toggle()',\r\n        '(keydown)': 'onKeyDown($event)'\r\n    }\r\n})\r\nexport class ToggleButtonComponent extends ButtonBaseComponent {\r\n    public readonly activeTemplate = contentChild<TemplateRef<NgIfContext<boolean>> | null>('active');\r\n\r\n    public get checked(): boolean {\r\n        return this.active();\r\n    }\r\n\r\n    // Kept as accessor: assigned imperatively inside the class (check()/uncheck()) and has a paired checkedChange output; signal inputs are read-only.\r\n    @Input()\r\n    public set checked(value: BooleanLike) {\r\n        this.active.set(value);\r\n    }\r\n\r\n    @Output()\r\n    public readonly checkedChange = new EventEmitter<boolean>();\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('checked')\r\n            .registerFixed('toggle');\r\n    }\r\n\r\n    protected toggle(): void {\r\n        if (this.checked) {\r\n            this.uncheck();\r\n        }\r\n        else {\r\n            this.check();\r\n        }\r\n    }\r\n\r\n    protected onKeyDown(event: KeyboardEvent): void {\r\n        if (Key.is(event, Key.space, Key.enter)) {\r\n            this.toggle();\r\n            event.preventDefault();\r\n        }\r\n    }\r\n\r\n    public check(): void {\r\n        if (this.checked) {\r\n            return;\r\n        }\r\n        this.checked = true;\r\n        this.checkedChange.emit(this.checked);\r\n    }\r\n\r\n    public uncheck(): void {\r\n        if (!this.checked) {\r\n            return;\r\n        }\r\n        this.checked = false;\r\n        this.checkedChange.emit(this.checked);\r\n    }\r\n}\r\n","@if (!active() || !activeTemplate()) {\n  <ng-content></ng-content>\n} @else {\n  <ng-template [ngTemplateOutlet]=\"activeTemplate()\"></ng-template>\n}\n","import { Component, computed, contentChildren, effect, input } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { ColorName } from '../../models/color';\nimport { ToggleButtonComponent } from '../toggle-button/toggle-button.component';\n\n@Component({\n    selector: 'm-button-group',\n    templateUrl: './button-group.component.html',\n    styleUrls: ['./button-group.component.scss'],\n    providers: [...BaseComponent.providers],\n    host: {\n        '[class.left]': 'attachedLeft()',\n        '[class.top]': 'attachedTop()',\n        '[class.right]': 'attachedRight()',\n        '[class.bottom]': 'attachedBottom()',\n        '[class.attached]': 'attached()'\n    }\n})\nexport class ButtonGroupComponent extends BaseComponent {\n    public readonly attachedLeft = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly attachedTop = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly attachedRight = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly attachedBottom = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly color = input<ColorName | undefined>(undefined);\n    protected readonly toggleButtons = contentChildren(ToggleButtonComponent);\n    protected readonly attached = computed(() => this.attachedTop() || this.attachedBottom() || this.attachedLeft() || this.attachedRight());\n\n    public constructor() {\n        super();\n        this.classes.register('color')\n            .registerFixed('buttons');\n        effect(() => this.classes.set('color', this.color()));\n        effect(onCleanup => {\n            const subscriptions = this.toggleButtons().map(button => button.checkedChange.subscribe(value => value ? this.uncheckOthers(button) : this.keepOneChecked()));\n            onCleanup(() => {\n                for (const subscription of subscriptions) {\n                    subscription.unsubscribe();\n                }\n            });\n        });\n    }\n\n    private uncheckOthers(button: ToggleButtonComponent): void {\n        for (const x of this.toggleButtons().filter(x => x !== button)) {\n            x.uncheck();\n        }\n    }\n\n    private keepOneChecked(): void {\n        const buttons = this.toggleButtons();\n        if (buttons.length > 0 && buttons.every(button => !button.checked)) {\n            buttons[0].check();\n        }\n    }\n}\n","<ng-content />","import { NgClass } from '@angular/common';\nimport { Component, computed, input } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { SizeProp } from '@fortawesome/fontawesome-svg-core';\nimport { IconSize, ManticIconSize } from './models/icon-size';\nimport { IconType } from './models/icon-type';\n\n@Component({\n    selector: 'm-icon',\n    templateUrl: './icon.component.html',\n    styleUrls: ['./icon.component.scss'],\n    imports: [FontAwesomeModule, NgClass]\n})\nexport class IconComponent {\n    public readonly icon = input<IconType>();\n    public readonly size = input<IconSize>();\n    public readonly iconClass = input<string | undefined>('icon');\n    protected readonly mIcon = computed(() => {\n        const icon = this.icon();\n        return typeof icon === 'string' ? icon : undefined;\n    });\n    protected readonly faIcon = computed(() => {\n        const icon = this.icon();\n        return typeof icon === 'string' ? undefined : icon;\n    });\n    private readonly mappedSize = computed(() => IconComponent.mapSize(this.size()));\n    protected readonly mSize = computed(() => this.mappedSize().mSize);\n    protected readonly faSize = computed(() => this.mappedSize().faSize);\n\n    private static mapSize(value: IconSize): { mSize: ManticIconSize; faSize: SizeProp | undefined } {\n        switch (value) {\n            case 'mini':\n            case 'tiny':\n            case 'small':\n                return { mSize: value, faSize: 'xs' };\n            case 'large':\n            case 'lg':\n                return { mSize: 'large', faSize: 'lg' };\n            case 'big':\n            case '2x':\n                return { mSize: 'big', faSize: '2x' };\n            case 'huge':\n            case '4x':\n                return { mSize: 'huge', faSize: '4x' };\n            case 'massive':\n            case '8x':\n                return { mSize: 'massive', faSize: '8x' };\n            case 'xs':\n            case 'sm':\n            case '1x':\n                return { mSize: 'small', faSize: value };\n            case '3x':\n                return { mSize: 'big', faSize: value };\n            case '5x':\n            case '6x':\n                return { mSize: 'huge', faSize: value };\n            case '7x':\n            case '9x':\n            case '10x':\n                return { mSize: 'massive', faSize: value };\n            default:\n                return { mSize: undefined, faSize: undefined };\n        }\n    }\n}\n","@if (mIcon(); as mIcon) {\n    <i class=\"{{ mIcon }} {{ mSize() }}\" [ngClass]=\"iconClass()\"></i>\n}\n@if (faIcon(); as faIcon) {\n    <fa-icon [icon]=\"faIcon\" [size]=\"faSize() ?? '1x'\" [ngClass]=\"iconClass()\" />\n}\n","import { Component, effect, input } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { toBoolean } from '../../helpers/to-boolean';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { ColorName } from '../../models/color';\r\nimport { LabelOptions } from '../../models/label-options';\r\nimport { LabelPosition } from '../../models/label-position';\r\nimport { LabelPointing } from './models/label-pointing';\r\n\r\n@Component({\r\n    selector: 'm-label',\r\n    templateUrl: './label.component.html',\r\n    styleUrls: ['./label.component.scss'],\r\n    providers: [...BaseComponent.providers],\r\n    host: {\r\n        '[class.horizontal]': 'horizontal()'\r\n    }\r\n})\r\nexport class LabelComponent extends BaseComponent implements LabelOptions {\r\n    public readonly position = input<LabelPosition>();\r\n    public readonly pointing = input<LabelPointing>();\r\n    public readonly horizontal = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n    public readonly basic = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n    public readonly color = input<ColorName | undefined>(undefined);\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('basic', 'color', 'pointing', 'position', 'horizontal')\r\n            .registerFixed('label');\r\n        effect(() => this.classes.set('basic', this.basic()));\r\n        effect(() => this.classes.set('color', this.color()));\r\n        effect(() => this.classes.set('pointing', this.pointing()));\r\n    }\r\n}\r\n","<ng-content />","import { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { Component, computed, contentChild, effect, input, signal } from '@angular/core';\r\nimport { ButtonBaseComponent } from '../../base/button-base.component';\r\nimport { toBoolean } from '../../helpers/to-boolean';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { LabelPosition } from '../../models/label-position';\r\nimport { AnimationComponent } from '../animation/animation.component';\r\nimport { AnimationDirection } from '../animation/models/animation-direction';\r\nimport { IconComponent } from '../icon/icon.component';\r\nimport { IconSize } from '../icon/models/icon-size';\r\nimport { IconType } from '../icon/models/icon-type';\r\nimport { LabelComponent } from '../label/label.component';\r\n\r\n@Component({\r\n    selector: 'm-button',\r\n    templateUrl: './button.component.html',\r\n    styleUrls: ['./button.component.scss'],\r\n    imports: [IconComponent, NgTemplateOutlet, NgClass],\r\n    providers: [...ButtonBaseComponent.providers]\r\n})\r\nexport class ButtonComponent extends ButtonBaseComponent {\r\n    public static readonly defaults = {\r\n        inverted: signal(false)\r\n    };\r\n    public readonly animated = contentChild(AnimationComponent);\r\n    public readonly animation = computed<AnimationDirection>(() => this.animated()?.direction());\r\n    public readonly label = contentChild(LabelComponent);\r\n    public readonly labelPosition = computed<LabelPosition>(() => this.label()?.position());\r\n    public readonly icon = input<IconType>();\r\n    public readonly iconSize = input<IconSize>();\r\n    public readonly iconPosition = input<LabelPosition>();\r\n    public readonly social = input<string>();\r\n    public readonly fluid = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n    public readonly pointing = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('fluid', 'pointing', 'animation', 'animated', 'labelPosition', 'iconPosition', 'label', 'labeled', 'iconLabeled', 'social', 'icon');\r\n        effect(() => this.classes.set('fluid', this.fluid()));\r\n        effect(() => this.classes.set('pointing', this.pointing()));\r\n        effect(() => {\r\n            const value = this.icon();\r\n            this.classes.set('icon', !!value);\r\n            this.classes.set('iconLabeled', value ? 'labeled' : undefined);\r\n        });\r\n        effect(() => this.classes.set('iconPosition', this.iconPosition()));\r\n        effect(() => this.classes.set('social', this.social()));\r\n        effect(() => this.classes.set('labeled', !!this.label()));\r\n        effect(() => this.refreshInverted(ButtonComponent.defaults.inverted()));\r\n    }\r\n}\r\n","@if (animated()) {\n    <div class=\"visible content\">\n        <ng-container [ngTemplateOutlet]=\"content\" />\n    </div>\n    <ng-content select=\"m-animation\" />\n}\n@if (label()) {\n    @if (labelPosition() === 'left') {\n        <ng-container [ngTemplateOutlet]=\"labelTemplate\" />\n    }\n    <div class=\"ui\" [class.basic]=\"basic()\" [class.icon]=\"icon()\" [ngClass]=\"color()\" [class.button]=\"true\">\n        <ng-container [ngTemplateOutlet]=\"content\" />\n    </div>\n    @if (labelPosition() !== 'left') {\n        <ng-container [ngTemplateOutlet]=\"labelTemplate\" />\n    }\n    <ng-template #labelTemplate>\n        <ng-content select=\"m-label\" />\n    </ng-template>\n}\n@if (social()) {\n    <m-icon [icon]=\"social()!.toLowerCase()\" class=\"icon\" />\n    {{ social() }}\n}\n@if (!animated() && !label() && !social()) {\n    <ng-container [ngTemplateOutlet]=\"content\" />\n}\n<ng-template #content>\n    @if (icon()) {\n        <m-icon [icon]=\"icon()\" [size]=\"iconSize()\" />\n    }\n    <ng-content />\n</ng-template>\n","import { Component, effect, input } from '@angular/core';\r\nimport { ButtonComponent } from './button.component';\r\n\r\n@Component({\r\n    selector: 'm-button-defaults',\r\n    template: ''\r\n})\r\nexport class ButtonDefaultsComponent {\r\n    public readonly inverted = input<boolean>();\r\n\r\n    public constructor() {\r\n        effect(() => {\r\n            const value = this.inverted();\r\n            if (value !== undefined) {\r\n                ButtonComponent.defaults.inverted.set(value);\r\n            }\r\n        });\r\n    }\r\n}\r\n","import { Directive, effect } from '@angular/core';\nimport { ButtonBaseComponent } from '../../base/button-base.component';\nimport { ButtonComponent } from './button.component';\n\n@Directive({\n    selector: '[m-button]',\n    providers: [...ButtonBaseComponent.providers]\n})\nexport class ButtonDirective extends ButtonBaseComponent {\n    public constructor() {\n        super();\n        this.validateAttributes = false;\n        effect(() => this.refreshInverted(ButtonComponent.defaults.inverted()));\n    }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'm-card',\n    templateUrl: './card.component.html',\n    styleUrls: ['./card.component.scss'],\n    host: {\n        'class': 'ui card'\n    }\n})\nexport class CardComponent {\n}\n","<ng-content />\r\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'm-card-group',\n    templateUrl: './card-group.component.html',\n    styleUrls: ['./card-group.component.scss'],\n    host: {\n        'class': 'ui cards'\n    }\n})\nexport class CardGroupComponent {\n}\n","<ng-content />\r\n","export class Math2 {\r\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n    private constructor() {}\r\n\r\n    public static keepInRange(min: number, value: number | undefined, max?: number | undefined): number\r\n    public static keepInRange(min: number | undefined, value: number, max?: number | undefined): number\r\n    public static keepInRange(min: number | undefined, value: number | undefined, max: number): number\r\n    public static keepInRange(min: number | undefined, value: number | undefined, max?: number | undefined): number {\r\n        if (min !== undefined && (value === undefined || value < min)) {\r\n            return min;\r\n        }\r\n        if (max !== undefined && (value === undefined || value > max)) {\r\n            return max;\r\n        }\r\n        return value as number;\r\n    }\r\n\r\n    public static sum(values: (number | undefined)[] | undefined): number {\r\n        let sum = 0;\r\n        values?.forEach(value => sum += value ?? 0);\r\n        return sum;\r\n    }\r\n\r\n    public static round(value: number, decimals: number): number {\r\n        const factor = Math.pow(10, decimals);\r\n        return Math.round(value * factor) / factor;\r\n    }\r\n}\r\n","import { Math2 } from \"../helpers/math2\";\r\n\r\nexport declare type FieldSize = '' | 'one' | 'two' | 'three' | 'four' | 'five' | 'six' | 'seven' | 'eight' | 'nine' | 'ten' | 'eleven' | 'twelve' | 'thirteen' | 'fourteen' | 'fifteen' | 'sixteen';\r\n\r\nexport declare type ParsableFieldSize = FieldSize\r\n    | number | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16\r\n    | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '15' | '16'\r\n    | undefined;\r\n\r\nexport const fieldSizes: FieldSize[] = ['', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen'];\r\n\r\nexport const parseFieldSize = (size: ParsableFieldSize): FieldSize => {\r\n    if (typeof size === 'number') {\r\n        return fieldSizes[size];\r\n    }\r\n    const parsedSizeNumber = size ? Math2.keepInRange(1, parseInt(size, 10), 16) : undefined;\r\n    return parsedSizeNumber ? fieldSizes[parsedSizeNumber] : (size ?? '') as FieldSize;\r\n};\r\n","import { Component, effect, input } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { FieldSize, ParsableFieldSize, parseFieldSize } from '../../models/field-size';\nimport { CellAlign } from './models/cell-align';\nimport { CellFloat } from './models/cell-float';\n\n@Component({\n    selector: 'm-cell',\n    templateUrl: './cell.component.html',\n    styleUrls: ['./cell.component.scss'],\n    providers: [...BaseComponent.providers]\n})\nexport class CellComponent extends BaseComponent {\n    public readonly size = input<FieldSize | undefined, ParsableFieldSize>(undefined, { transform: parseFieldSize });\n    public readonly float = input<CellFloat | undefined>();\n    public readonly align = input<CellAlign | undefined>();\n\n    public constructor() {\n        super(false);\n        this.classes.register('size', 'wide', 'float', 'align')\n            .registerFixed('column');\n        effect(() => this.classes.set('size', this.size()));\n        effect(() => this.classes.set('wide', !!this.size()));\n        effect(() => this.classes.set('float', this.float() ? `${this.float() ?? ''} floated` : undefined));\n        effect(() => this.classes.set('align', this.align() ? `${this.align() ?? ''} aligned` : undefined));\n    }\n\n}\n","<ng-content />","import { Component, computed, effect, input, model, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { InvertibleComponent } from '../../base/invertible.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { transformableModel } from '../../helpers/transformable-model';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { Key } from '../../models/key';\nimport { IconComponent } from '../icon/icon.component';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\n\n@Component({\n    selector: 'm-checkbox',\n    templateUrl: './checkbox.component.html',\n    styleUrls: ['./checkbox.component.scss'],\n    imports: [IconComponent, FormsModule],\n    providers: CheckboxComponent.providers,\n    host: {\n        '[class.checked]': 'checked()',\n        '[class.indeterminate]': 'indeterminate()',\n        '[class.fitted]': 'fitted()',\n        '(click)': 'onClick($event)',\n        '(keydown)': 'onKeyDown($event)'\n    }\n})\nexport class CheckboxComponent extends InvertibleComponent {\n    public static readonly defaults = {\n        checkIcon: signal<IconType>('check'),\n        checkIconSize: signal<IconSize>('small'),\n        indeterminateIcon: signal<IconType>('minus'),\n        indeterminateIconSize: signal<IconSize>('small'),\n        inverted: signal(false)\n    };\n    protected static override readonly providers = [...InvertibleComponent.providers];\n    protected readonly defaults = CheckboxComponent.defaults;\n    protected readonly checkedState = signal<boolean | undefined>(false);\n    private readonly indeterminateState = signal(false);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly valueInput = input<boolean | undefined, BooleanLike>(undefined, { alias: 'value', transform: toBoolean });\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly checkedInput = input<boolean | undefined, BooleanLike>(undefined, { alias: 'checked', transform: toBoolean });\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly indeterminateInput = input<boolean | undefined, BooleanLike>(undefined, { alias: 'indeterminate', transform: toBoolean });\n    public readonly value = computed(() => this.checkedState());\n    public readonly checked = computed(() => this.checkedState() ?? false);\n    public readonly indeterminate = computed(() => this.indeterminateState());\n    public readonly valueChange = output<boolean | undefined>();\n    public readonly checkedChange = output<boolean>();\n    public readonly indeterminateChange = output<boolean>();\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly readonlyInput = input<boolean, BooleanLike>(false, { alias: 'readonly', transform: toBoolean });\n    public readonly readonlyChange = output<boolean>();\n    public readonly readonly = transformableModel(this.readonlyInput, this.readonlyChange, toBoolean);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly disabledInput = input<boolean, BooleanLike>(false, { alias: 'disabled', transform: toBoolean });\n    public readonly disabledChange = output<boolean>();\n    public readonly disabled = transformableModel(this.disabledInput, this.disabledChange, toBoolean);\n    public readonly name = model<string>();\n    public readonly label = model<string>();\n    public readonly canUncheck = model(true);\n    public readonly checkIcon = input<IconType>();\n    public readonly checkIconSize = input<IconSize>();\n    public readonly indeterminateIcon = input<IconType>();\n    public readonly indeterminateIconSize = input<IconSize>();\n    public readonly fitted = input<boolean, BooleanLike>(false, { transform: toBoolean });\n\n    public constructor() {\n        super();\n        this.classes.register('disabled', 'read-only', 'indeterminate', 'fitted', 'checked', 'value', 'name', 'label', 'readonly')\n            .registerFixed('checkbox');\n        effect(() => this.refreshInverted(CheckboxComponent.defaults.inverted()));\n        effect(() => this.classes.set('read-only', this.readonly()));\n        effect(() => this.classes.set('disabled', this.disabled()));\n        effect(() => {\n            const value = this.valueInput();\n            if (value !== undefined) {\n                this.checkedState.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.checkedInput();\n            if (value !== undefined) {\n                this.checkedState.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.indeterminateInput();\n            if (value !== undefined) {\n                this.indeterminateState.set(value);\n            }\n        });\n    }\n\n    protected onClick(event: MouseEvent): void {\n        if (event.target instanceof HTMLInputElement || this.readonly() || this.disabled()) {\n            return;\n        }\n        this.set(!this.value());\n    }\n\n    protected onKeyDown(event: KeyboardEvent): void {\n        if (this.readonly() || this.disabled() || !Key.space.is(event)) {\n            return;\n        }\n        event.preventDefault();\n        this.set(!this.value());\n    }\n\n    protected set(value: boolean): void {\n        if (!value && !this.canUncheck()) {\n            return;\n        }\n        if (this.indeterminateState()) {\n            this.indeterminateState.set(false);\n            this.indeterminateChange.emit(false);\n        }\n        if (this.value() !== value) {\n            this.checkedState.set(value);\n            this.onChange();\n        }\n        this.refreshClasses();\n    }\n\n    protected onChange(): void {\n        this.valueChange.emit(this.value());\n        this.checkedChange.emit(this.checked());\n    }\n\n}\n","<input type=\"checkbox\" [name]=\"name() ?? ''\" [ngModel]=\"value()\" [indeterminate]=\"indeterminate()\" class=\"hidden\">\n<label [attr.for]=\"name() ?? ''\">\n    {{ label() }}\n    <ng-content />\n    @if (checked()) {\n        <m-icon [icon]=\"checkIcon() ?? defaults.checkIcon()\" [size]=\"checkIconSize() ?? defaults.checkIconSize()\" class=\"icon\" />\n    }\n    @if (indeterminate()) {\n        <m-icon [icon]=\"indeterminateIcon() ?? defaults.indeterminateIcon()\" [size]=\"indeterminateIconSize() ?? defaults.indeterminateIconSize()\" class=\"icon\" />\n    }\n</label>\n","import { Component, effect, input, OnDestroy } from '@angular/core';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\nimport { CheckboxComponent } from './checkbox.component';\n\n@Component({\n    selector: 'm-checkbox-defaults',\n    template: ''\n})\nexport class CheckboxDefaultsComponent implements OnDestroy {\n    private readonly previousDropdownIcon = CheckboxComponent.defaults.checkIcon();\n    private readonly previousDropdownIconSize = CheckboxComponent.defaults.checkIconSize();\n    private readonly previousDeleteIcon = CheckboxComponent.defaults.indeterminateIcon();\n    private readonly previousDeleteIconSize = CheckboxComponent.defaults.indeterminateIconSize();\n    private currentCheckIcon?: IconType;\n    private currentCheckIconSize?: IconSize;\n    private currentIndeterminateIcon?: IconType;\n    private currentIndeterminateIconSize?: IconSize;\n    public readonly checkIcon = input<IconType>();\n    public readonly checkIconSize = input<IconSize>();\n    public readonly indeterminateIcon = input<IconType>();\n    public readonly indeterminateIconSize = input<IconSize>();\n    public readonly inverted = input<boolean>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.checkIcon();\n            if (value !== undefined) {\n                this.currentCheckIcon = value;\n                CheckboxComponent.defaults.checkIcon.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.checkIconSize();\n            if (value !== undefined) {\n                this.currentCheckIconSize = value;\n                CheckboxComponent.defaults.checkIconSize.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.indeterminateIcon();\n            if (value !== undefined) {\n                this.currentIndeterminateIcon = value;\n                CheckboxComponent.defaults.indeterminateIcon.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.indeterminateIconSize();\n            if (value !== undefined) {\n                this.currentIndeterminateIconSize = value;\n                CheckboxComponent.defaults.indeterminateIconSize.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.inverted();\n            if (value !== undefined) {\n                CheckboxComponent.defaults.inverted.set(value);\n            }\n        });\n    }\n\n    public ngOnDestroy(): void {\n        if (this.currentCheckIcon === CheckboxComponent.defaults.checkIcon()) {\n            CheckboxComponent.defaults.checkIcon.set(this.previousDropdownIcon);\n        }\n        if (this.currentCheckIconSize === CheckboxComponent.defaults.checkIconSize()) {\n            CheckboxComponent.defaults.checkIconSize.set(this.previousDropdownIconSize);\n        }\n        if (this.currentIndeterminateIcon === CheckboxComponent.defaults.indeterminateIcon()) {\n            CheckboxComponent.defaults.indeterminateIcon.set(this.previousDeleteIcon);\n        }\n        if (this.currentIndeterminateIconSize === CheckboxComponent.defaults.indeterminateIconSize()) {\n            CheckboxComponent.defaults.indeterminateIconSize.set(this.previousDeleteIconSize);\n        }\n    }\n}\n","import { Component, input, output } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { ButtonComponent } from '../button/button.component';\nimport { ButtonDirective } from '../button/button.directive';\nimport { ChatMessage } from '../chat/models/chat-message';\n\n@Component({\n    selector: 'm-chat-message',\n    templateUrl: './chat-message.component.html',\n    styleUrls: ['./chat-message.component.scss'],\n    imports: [ButtonComponent, ButtonDirective, RouterLink],\n    host: {\n        '[class.in]': 'message()?.direction === \\'in\\'',\n        '[class.out]': 'message()?.direction === \\'out\\'',\n        '[class.grouped]': 'message()?.grouped ?? false'\n    }\n})\nexport class ChatMessageComponent {\n    public readonly message = input.required<ChatMessage | undefined>();\n    public readonly execute = output<string>();\n\n    public open(url: string): void {\n        window.open(url);\n    }\n\n    public onExecute(action: string): void {\n        this.execute.emit(action);\n    }\n}\n","<div class=\"wrapper\">\n    @if (message(); as message) {\n        @if (!message.grouped) {\n            <div class=\"header\">{{ message.sender }}</div>\n        }\n    }\n    {{ message()?.text }}\n    @if (message()?.options) {\n        <div class=\"options\">\n            @for (option of message()?.options; track option) {\n                @if (option.url) {\n                    @if (!option.hideUrl) {\n                        @if (option.url.indexOf('http') === 0) {\n                            <a m-button [attr.href]=\"option.url\" class=\"option\">{{ option.text }}</a>\n                        }\n                        @if (option.url.indexOf('http') !== 0) {\n                            <a m-button [routerLink]=\"[option.url]\" class=\"option\">{{ option.text }}</a>\n                        }\n                    }\n                    @if (option.hideUrl) {\n                        <a m-button class=\"option\" (click)=\"open(option.url)\">{{ option.text }}</a>\n                    }\n                }\n                @if (option.action) {\n                    <m-button class=\"option\" (click)=\"onExecute(option.action)\">{{ option.text }}</m-button>\n                }\n                @if (!option.url && !option.action) {\n                    <span class=\"option\">{{ option.text }}</span>\n                }\n            }\n        </div>\n    }\n</div>\n","import { Directive, effect, ElementRef, inject, input, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n    selector: '[m-fallback-for]'\n})\nexport class FallbackForDirective {\n    private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n    private readonly templateRef = inject<TemplateRef<unknown>>(TemplateRef);\n    private readonly viewContainerRef = inject(ViewContainerRef);\n    public readonly fallback = input.required<string>({ alias: 'm-fallback-for' });\n\n    public constructor() {\n        effect(() => {\n            const foundElement = this.elementRef.nativeElement.parentElement?.querySelector(this.fallback());\n            if (foundElement) {\n                this.viewContainerRef.clear();\n            }\n            else {\n                this.viewContainerRef.createEmbeddedView(this.templateRef);\n            }\n        });\n    }\n}\n","import { Component, effect, input } from '@angular/core';\nimport { ButtonBaseComponent } from '../../base/button-base.component';\nimport { ButtonComponent } from '../button/button.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\n\n@Component({\n    selector: 'm-icon-button',\n    templateUrl: './icon-button.component.html',\n    styleUrls: ['./icon-button.component.scss'],\n    imports: [IconComponent],\n    providers: [...ButtonBaseComponent.providers],\n    host: {\n        '[class.social]': 'social()'\n    }\n})\nexport class IconButtonComponent extends ButtonBaseComponent {\n    public readonly icon = input<IconType>();\n    public readonly iconSize = input<IconSize>();\n    public readonly social = input<string>();\n\n    public constructor() {\n        super();\n        this.classes.register('iconSize', 'social', 'title')\n            .registerFixed('icon');\n        effect(() => this.refreshInverted(ButtonComponent.defaults.inverted()));\n    }\n}\n","@if (icon() || social()) {\n    <m-icon [icon]=\"icon() ?? social()\" [size]=\"iconSize()\" />\n}\n","import { Component, input, model, signal } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { LabelPosition } from '../../models/label-position';\nimport { IconComponent } from '../icon/icon.component';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\n\n// TODO: Enable animation\n// TODO: Enable active state\n@Component({\n    selector: 'm-label-dropdown',\n    templateUrl: './label-dropdown.component.html',\n    styleUrls: ['./label-dropdown.component.scss'],\n    imports: [IconComponent],\n    providers: [...BaseComponent.providers],\n    host: {\n        '(click)': 'onClick($event)'\n    }\n})\nexport class LabelDropdownComponent extends BaseComponent {\n    public static readonly defaults = { dropdownIcon: signal<IconType>('dropdown'), dropdownIconSize: signal<IconSize>(undefined) };\n    protected readonly defaults = LabelDropdownComponent.defaults;\n    public readonly isOpen = signal(false);\n    public readonly position = input<LabelPosition>();\n    public readonly dropdownIcon = input<IconType>();\n    public readonly dropdownIconSize = input<IconSize>();\n    public readonly value = model<string>();\n    public readonly items = input<string[]>();\n\n    public constructor() {\n        super();\n        this.classes.registerFixed('dropdown', 'label');\n    }\n\n    private readonly onOutsideClickHandler = (): void => this.close();\n\n    protected onClick(event: MouseEvent): void {\n        // TODO: Replace prevent\n        event.preventDefault();\n        event.stopPropagation();\n        if (this.isOpen()) {\n            this.close();\n        }\n        else {\n            this.isOpen.set(true);\n            globalThis.addEventListener('click', this.onOutsideClickHandler);\n        }\n    }\n\n    private close(): void {\n        globalThis.removeEventListener('click', this.onOutsideClickHandler);\n        this.isOpen.set(false);\n    }\n\n    public select(value: string): void {\n        this.value.set(value);\n    }\n}\n","<div class=\"text\">{{ value() }}</div>\n<m-icon [icon]=\"dropdownIcon() ?? defaults.dropdownIcon()\" [size]=\"dropdownIconSize() ?? defaults.dropdownIconSize()\" />\n<div class=\"menu\" [class.visible]=\"isOpen()\">\n    @for (item of items(); track item) {\n        <div class=\"item\" (click)=\"select(item)\">{{ item }}</div>\n    }\n</div>\n","import { computed, contentChild, Directive, effect, input, linkedSignal } from '@angular/core';\nimport { ButtonComponent } from '../components/button/button.component';\nimport { IconButtonComponent } from '../components/icon-button/icon-button.component';\nimport { LabelDropdownComponent } from '../components/label-dropdown/label-dropdown.component';\nimport { LabelComponent } from '../components/label/label.component';\nimport { LabelOptions } from '../models/label-options';\nimport { InvertibleComponent } from './invertible.component';\n\n@Directive({\n    host: {\n        '[class.action]': 'isAction()'\n    }\n})\nexport abstract class LabeledBaseComponent extends InvertibleComponent {\n    protected static override readonly providers = [...InvertibleComponent.providers];\n    private readonly labelQuery = contentChild(LabelComponent);\n    public readonly label = linkedSignal<LabelOptions | undefined>(() => this.labelQuery());\n    public readonly labelDropdown = contentChild(LabelDropdownComponent);\n    protected readonly iconButton = contentChild(IconButtonComponent);\n    protected readonly button = contentChild(ButtonComponent);\n    public readonly buttonPosition = input<'left' | 'right'>('right');\n    public readonly isRight = computed(() => {\n        const label = this.label();\n        const labelDropdown = this.labelDropdown();\n        return !!label && label.position() === 'right' || !!labelDropdown && labelDropdown.position() === 'right';\n    });\n    public readonly isAction = computed(() => !!this.button() || !!this.iconButton());\n\n    protected constructor() {\n        super();\n        this.classes.register('labeled');\n        effect(() => {\n            const label = this.label() ?? this.labelDropdown();\n            if (label) {\n                this.classes.set('labeled', (label.position() ?? '') + ' labeled');\n            }\n        });\n    }\n}\n","import { Directive, effect, ElementRef, input, model, OnDestroy, output, signal } from '@angular/core';\nimport { LabeledBaseComponent } from '../../base/labeled-base.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { transformableModel } from '../../helpers/transformable-model';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\nimport { InputIconPosition } from './text/input.component';\n\n@Directive({\n    providers: InputBaseComponent.providers,\n    host: {\n        '[class.icon]': 'icon()',\n        '[class.focus]': 'focused()',\n        '[class.disabled]': 'disabled()',\n        '[class.readonly]': 'readonly()',\n        '[class.error]': 'hasError()',\n        '[class.transparent]': 'transparent()',\n        '[class.color]': 'isColor()'\n    }\n})\nexport abstract class InputBaseComponent extends LabeledBaseComponent implements OnDestroy {\n    public static readonly defaults = {\n        inverted: signal(false)\n    };\n    protected static override readonly providers = [...LabeledBaseComponent.providers];\n    protected readonly colorForId = Date.now().toString() + Math.random().toString();\n    public inputElement: ElementRef<HTMLInputElement> | undefined;\n    public readonly iconPosition = input<InputIconPosition>();\n    public readonly icon = input<IconType>();\n    public readonly iconSize = input<IconSize>();\n    public readonly loading = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly fluid = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly focused = signal(false);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly disabledInput = input<boolean, BooleanLike>(false, { alias: 'disabled', transform: toBoolean });\n    public readonly disabledChange = output<boolean>();\n    public readonly disabled = transformableModel(this.disabledInput, this.disabledChange, toBoolean);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly readonlyInput = input<boolean, BooleanLike>(false, { alias: 'readonly', transform: toBoolean });\n    public readonly readonlyChange = output<boolean>();\n    public readonly readonly = transformableModel(this.readonlyInput, this.readonlyChange, toBoolean);\n    public readonly hasError = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly transparent = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly autofocus = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly placeholder = input<string>();\n    public readonly name = model<string>();\n    public readonly for = model<string>();\n    public readonly keyDown = output<KeyboardEvent>();\n    public readonly keyUp = output<KeyboardEvent>();\n    public readonly keyPress = output<Event>();\n    // eslint-disable-next-line @angular-eslint/no-output-native\n    public readonly blur = output<FocusEvent>();\n    // eslint-disable-next-line @angular-eslint/no-output-native\n    public readonly focus = output<FocusEvent>();\n    // eslint-disable-next-line @angular-eslint/no-output-native\n    public readonly focusin = output<FocusEvent>();\n    // eslint-disable-next-line @angular-eslint/no-output-native\n    public readonly focusout = output<FocusEvent>();\n    protected readonly isColor = signal(false);\n\n    protected constructor() {\n        super();\n        effect(() => this.refreshInverted(InputBaseComponent.defaults.inverted()));\n        this.classes.registerFixed('input');\n        this.classes.register('loading', 'fluid', 'icon', 'focused', 'disabled', 'readonly', 'transparent', 'hasError', 'autofocus', 'placeholder', 'iconPosition');\n        effect(() => this.classes.set('loading', this.loading()));\n        effect(() => this.classes.set('fluid', this.fluid()));\n        effect(() => this.classes.set('iconPosition', this.iconPosition()));\n        // Push disabled/readonly onto the native element, and (re)focus, whenever they change.\n        effect(() => {\n            this.disabled();\n            this.readonly();\n            this.refreshInput();\n        });\n        effect(() => this.refreshFocus());\n    }\n\n    public override ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this.unbindEvents();\n    }\n\n    protected refreshInput(): void {\n        if (!this.inputElement) {\n            return;\n        }\n        this.inputElement.nativeElement.disabled = this.disabled();\n        this.inputElement.nativeElement.readOnly = this.readonly();\n    }\n\n    private readonly keyDownEventHandler = (event: KeyboardEvent): void => this.keyDown.emit(event);\n    private readonly keyUpEventHandler = (event: KeyboardEvent): void => this.keyUp.emit(event);\n    private readonly keyPressEventHandler = (event: Event): void => this.keyPress.emit(event);\n    private readonly blurEventHandler = (event: FocusEvent): void => this.blur.emit(event);\n    private readonly focusEventHandler = (event: FocusEvent): void => this.focus.emit(event);\n    private readonly focusinEventHandler = (event: FocusEvent): void => this.focusin.emit(event);\n    private readonly focusoutEventHandler = (event: FocusEvent): void => this.focusout.emit(event);\n\n    protected bindEvents(): void {\n        if (!this.inputElement) {\n            return;\n        }\n        // TODO: Improve event binding!\n        this.inputElement.nativeElement.addEventListener('keydown', this.keyDownEventHandler);\n        this.inputElement.nativeElement.addEventListener('keyup', this.keyUpEventHandler);\n        this.inputElement.nativeElement.addEventListener('keyPress', this.keyPressEventHandler);\n        this.inputElement.nativeElement.addEventListener('blur', this.blurEventHandler);\n        this.inputElement.nativeElement.addEventListener('focus', this.focusEventHandler);\n        this.inputElement.nativeElement.addEventListener('focusin', this.focusinEventHandler);\n        this.inputElement.nativeElement.addEventListener('focusout', this.focusoutEventHandler);\n    }\n\n    protected unbindEvents(): void {\n        if (!this.inputElement) {\n            return;\n        }\n        this.inputElement.nativeElement.removeEventListener('keydown', this.keyDownEventHandler);\n        this.inputElement.nativeElement.removeEventListener('keyup', this.keyUpEventHandler);\n        this.inputElement.nativeElement.removeEventListener('keyPress', this.keyPressEventHandler);\n        this.inputElement.nativeElement.removeEventListener('blur', this.blurEventHandler);\n        this.inputElement.nativeElement.removeEventListener('focus', this.focusEventHandler);\n        this.inputElement.nativeElement.removeEventListener('focusin', this.focusinEventHandler);\n        this.inputElement.nativeElement.removeEventListener('focusout', this.focusoutEventHandler);\n    }\n\n    protected refreshFocus(): void {\n        if (this.autofocus() && this.inputElement) {\n            setTimeout(() => this.setFocus());\n        }\n    }\n\n    public setFocus(): void {\n        this.inputElement?.nativeElement.focus();\n    }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, ContentChild, effect, ElementRef, input, output, signal, untracked, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FallbackForDirective } from '../../../directives/fallback-for.directive';\nimport { LabelPosition } from '../../../models/label-position';\nimport { IconComponent } from '../../icon/icon.component';\nimport { InputBaseComponent } from '../input-base.component';\n\nexport declare type InputIconPosition =\n    'left'\n    | 'right';\n\nexport declare type InputType = 'button' | 'checkbox' | 'color' | 'date' | 'datetime-local' | 'email' | 'file' | 'hidden' | 'image' | 'month' | 'number' | 'password' | 'radio' | 'range' | 'reset' | 'search' | 'submit' | 'tel' | 'text' | 'time' | 'urlweek';\n\n@Component({\n    selector: 'm-input',\n    templateUrl: './input.component.html',\n    styleUrls: ['./input.component.scss'],\n    imports: [IconComponent, FallbackForDirective, FormsModule, NgTemplateOutlet],\n    providers: [...InputBaseComponent.providers]\n})\nexport class InputComponent extends InputBaseComponent {\n    protected readonly valueState = signal<string | undefined>(undefined);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly valueInput = input<string | undefined>(undefined, { alias: 'value' });\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly textInput = input<string | undefined>(undefined, { alias: 'text' });\n    public readonly default = input('');\n    public readonly type = input<InputType>();\n    public readonly maxlength = input<string | number>();\n    public readonly value = computed(() => this.valueState());\n    public readonly text = computed(() => this.valueState() ?? this.default());\n    public readonly valueChange = output<string | undefined>();\n    public readonly textChange = output<string>();\n\n    @ContentChild('input')\n    protected set contentInputElement(input: ElementRef<HTMLInputElement>) {\n        this.unbindEvents();\n        this.inputElement = input;\n        this.refreshInput();\n        this.bindEvents();\n        this.refreshFocus();\n    }\n\n    @ViewChild('input')\n    protected set viewInputElement(input: ElementRef<HTMLInputElement>) {\n        this.unbindEvents();\n        this.inputElement = input;\n        this.bindEvents();\n        this.refreshFocus();\n    }\n\n    public constructor() {\n        super();\n        this.classes.register('maxlength', 'type', 'default', 'value', 'text');\n        // [value] flows into the shared state; [text] is guarded so an unbound alias can't clobber [value].\n        effect(() => {\n            const value = this.valueInput();\n            untracked(() => this.valueState.set(value));\n        });\n        effect(() => {\n            const value = this.textInput();\n            untracked(() => {\n                if (value !== undefined) {\n                    this.valueState.set(value);\n                }\n            });\n        });\n        // type === 'color' toggles the color layout and forces the label to the right.\n        effect(() => {\n            const isColor = this.type() === 'color';\n            this.isColor.set(isColor);\n            if (isColor) {\n                this.label.set({ position: signal<LabelPosition>('right') });\n            }\n        });\n    }\n\n    protected setValue(value: string | undefined): void {\n        this.valueState.set(value);\n        this.onChange();\n    }\n\n    protected onChange(): void {\n        this.valueChange.emit(this.value() ?? this.default());\n        this.textChange.emit(this.text());\n    }\n}\n","@if (!isRight()) {\n    <ng-container [ngTemplateOutlet]=\"labelTemplate\" />\n}\n@if (buttonPosition() === 'left') {\n    <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n}\n<ng-content />\n@if (type() === 'color') {\n    <input type=\"text\" [ngModel]=\"value()\" [attr.readOnly]=\"readonly() || undefined\" [attr.disabled]=\"disabled() || undefined\" (ngModelChange)=\"setValue($event)\">\n    <label class=\"ui label color-label\" [style.background-color]=\"value()\" [for]=\"colorForId\">\n        <input type=\"color\" [id]=\"colorForId\" [ngModel]=\"value()\" [attr.name]=\"name()\" [attr.readOnly]=\"readonly() || undefined\" [attr.disabled]=\"disabled() || undefined\" (ngModelChange)=\"setValue($event)\" #colorInput>\n    </label>\n}\n<input *m-fallback-for=\"'input'\" [type]=\"type() || 'text'\" [placeholder]=\"placeholder() || ''\" [ngModel]=\"value()\" [attr.name]=\"name()\" [attr.maxlength]=\"maxlength()\" [attr.readOnly]=\"readonly() || undefined\" [attr.disabled]=\"disabled() || undefined\" (ngModelChange)=\"setValue($event)\" #input>\n@if (icon()) {\n    <m-icon [icon]=\"icon()\" [size]=\"iconSize()\" class=\"link icon\" />\n}\n@if (isRight()) {\n    <ng-container [ngTemplateOutlet]=\"labelTemplate\" />\n}\n@if (buttonPosition() === 'right') {\n    <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n}\n\n<ng-template #labelTemplate>\n    <ng-content select=\"m-label\" />\n    <ng-content select=\"m-label-dropdown\" />\n</ng-template>\n\n<ng-template #contentTemplate>\n    <ng-content select=\"m-button\" />\n    <ng-content select=\"m-icon-button\" />\n</ng-template>\n","import { NgIfContext, NgTemplateOutlet } from '@angular/common';\r\nimport { Component, DoCheck, ElementRef, inject, input, IterableDiffer, IterableDiffers, signal, TemplateRef, viewChild } from '@angular/core';\r\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\r\nimport { Subject } from 'rxjs';\r\nimport { toBoolean } from '../../helpers/to-boolean';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { ButtonComponent } from '../button/button.component';\r\nimport { ChatMessageComponent } from '../chat-message/chat-message.component';\r\nimport { IconComponent } from '../icon/icon.component';\r\nimport { IconSize } from '../icon/models/icon-size';\r\nimport { IconType } from '../icon/models/icon-type';\r\nimport { InputComponent } from '../input/text/input.component';\r\nimport { ChatMessage } from './models/chat-message';\r\n\r\n@Component({\r\n    selector: 'm-chat',\r\n    templateUrl: './chat.component.html',\r\n    styleUrls: ['./chat.component.scss'],\r\n    imports: [\r\n        ChatMessageComponent,\r\n        InputComponent,\r\n        ButtonComponent,\r\n        IconComponent,\r\n        NgTemplateOutlet\r\n    ]\r\n})\r\nexport class ChatComponent implements DoCheck {\r\n    public static readonly defaults = {\r\n        sendIcon: signal<IconType>('caret right'),\r\n        sendIconSize: signal<IconSize>('big')\r\n    };\r\n    private readonly sendSubject = new Subject<ChatMessage>();\r\n    private readonly messagesDiffer: IterableDiffer<unknown>;\r\n    protected readonly defaults = ChatComponent.defaults;\r\n    public readonly messages = input<ChatMessage[]>([]);\r\n    public message: string | undefined;\r\n    public readonly canSend = input<boolean, BooleanLike>(true, { transform: toBoolean });\r\n    public readonly sender = input<string>();\r\n    // eslint-disable-next-line unicorn/no-null\r\n    public readonly sendIconTemplate = input<TemplateRef<NgIfContext<boolean>> | null>(null);\r\n    public readonly sendIcon = input<IconType>();\r\n    public readonly sendIconSize = input<IconSize>();\r\n    public readonly showSendIcon = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n    public readonly placeholder = input('Type a message and send with ENTER');\r\n    public readonly send = outputFromObservable(this.sendSubject);\r\n    protected readonly chat = viewChild<ElementRef<HTMLElement>>('chat');\r\n    protected readonly input = viewChild(InputComponent);\r\n\r\n    public constructor() {\r\n        this.messagesDiffer = inject(IterableDiffers).find([]).create(undefined);\r\n    }\r\n\r\n    public ngDoCheck(): void {\r\n        if (this.messagesDiffer.diff(this.messages())) {\r\n            this.scrollDown();\r\n        }\r\n    }\r\n\r\n    protected sendMessage(): void {\r\n        if (this.message) {\r\n            this.sendSubject.next({ direction: 'out', text: this.message, sender: this.sender() ?? 'Unknown', timestamp: Date.now() });\r\n        }\r\n        this.message = undefined;\r\n        this.input()?.setFocus();\r\n    }\r\n\r\n    protected onKeyDown(event: KeyboardEvent): void {\r\n        if (event.code === 'Enter' || event.code === 'NumpadEnter') {\r\n            this.sendMessage();\r\n        }\r\n    }\r\n\r\n    private scrollDown(): void {\r\n        setTimeout(() => this.chat()?.nativeElement.scrollTo(0, 999_999));\r\n    }\r\n}\r\n","<div class=\"chat\" #chat>\n    @for (message of messages(); track message) {\n        <m-chat-message [message]=\"message\" />\n    }\n    <ng-content />\n</div>\n@if (canSend()) {\n    <div class=\"input-wrapper\" [class.visible]=\"canSend()\">\n        <m-input autofocus [(value)]=\"message\" [placeholder]=\"placeholder()\" (keydown)=\"onKeyDown($event)\">\n            @if (showSendIcon()) {\n                <m-button class=\"icon\" (click)=\"sendMessage()\">\n                    @if (!sendIconTemplate()) {\n                        <m-icon [icon]=\"sendIcon() ?? defaults.sendIcon()\" [size]=\"sendIconSize() ?? defaults.sendIconSize()\" />\n                    } @else {\n                        <ng-template [ngTemplateOutlet]=\"sendIconTemplate()\" />\n                    }\n                </m-button>\n            }\n        </m-input>\n    </div>\n}\n","import { Component, effect, input, OnDestroy } from '@angular/core';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\nimport { ChatComponent } from './chat.component';\n\n@Component({\n    selector: 'm-chat-defaults',\n    template: ''\n})\nexport class ChatDefaultsComponent implements OnDestroy {\n    private readonly previousSendIcon = ChatComponent.defaults.sendIcon();\n    private readonly previousSendIconSize = ChatComponent.defaults.sendIconSize();\n    private currentSendIcon?: IconType;\n    private currentSendIconSize?: IconSize;\n    public readonly sendIcon = input<IconType>();\n    public readonly sendIconSize = input<IconSize>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.sendIcon();\n            if (value !== undefined) {\n                this.currentSendIcon = value;\n                ChatComponent.defaults.sendIcon.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.sendIconSize();\n            if (value !== undefined) {\n                this.currentSendIconSize = value;\n                ChatComponent.defaults.sendIconSize.set(value);\n            }\n        });\n    }\n\n    public ngOnDestroy(): void {\n        if (this.currentSendIcon === ChatComponent.defaults.sendIcon()) {\n            ChatComponent.defaults.sendIcon.set(this.previousSendIcon);\n        }\n        if (this.currentSendIconSize === ChatComponent.defaults.sendIconSize()) {\n            ChatComponent.defaults.sendIconSize.set(this.previousSendIconSize);\n        }\n    }\n}\n","import { Component, computed, input } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { toBoolean } from '../../helpers/to-boolean';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { ColorName } from '../../models/color';\r\n\r\n@Component({\r\n    selector: 'm-circular-progress',\r\n    templateUrl: './circular-progress.component.html',\r\n    styleUrls: ['./circular-progress.component.scss'],\r\n    providers: [...BaseComponent.providers],\r\n    host: {\r\n        '[class.success]': 'success()',\r\n        '[class.error]': 'error()',\r\n        '[class.warning]': 'warning()',\r\n        '[class]': 'color()'\r\n    }\r\n})\r\nexport class CircularProgressComponent extends BaseComponent {\r\n    public readonly value = input.required<number>();\r\n    public readonly min = input(0);\r\n    public readonly max = input(100);\r\n    public readonly size = input(160);\r\n    public readonly strokeWidth = input(12);\r\n    public readonly centerContent = input(true);\r\n    public readonly success = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n    public readonly error = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n    public readonly warning = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n    public readonly color = input<ColorName | undefined>(undefined);\r\n    protected readonly radius = computed(() => this.size() / 2 - this.strokeWidth() / 2);\r\n    protected readonly total = computed(() => 2 * Math.PI * this.radius());\r\n    protected readonly offset = computed(() => {\r\n        const valueOffset = (this.value() - this.min()) / (this.max() - this.min());\r\n        return this.total() * (1 - valueOffset);\r\n    });\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('success', 'error', 'warning')\r\n            .registerFixed('circular', 'progress');\r\n    }\r\n\r\n}\r\n","<svg [attr.width]=\"size()\" [attr.height]=\"size()\" [attr.viewBox]=\"'0 0 ' + size() + ' ' + size()\" style=\"transform: rotate(-90deg)\">\n    <circle [attr.r]=\"radius()\" [attr.cx]=\"size() / 2\" [attr.cy]=\"size() / 2\" fill=\"transparent\" stroke=\"#e0e0e0\" [attr.stroke-width]=\"strokeWidth() + 'px'\" class=\"track\"></circle>\n    <circle [attr.r]=\"radius()\" [attr.cx]=\"size() / 2\" [attr.cy]=\"size() / 2\" fill=\"transparent\" stroke=\"#808080\" stroke-linecap=\"round\" [attr.stroke-width]=\"strokeWidth() + 'px'\"\n            [attr.stroke-dasharray]=\"total() + 'px'\" [attr.stroke-dashoffset]=\"offset() + 'px'\" class=\"value\"></circle>\n</svg>\n<div class=\"label\" [style.width.px]=\"size() - 2 * strokeWidth()\" [style.height.px]=\"size() - 2 * strokeWidth()\" [style.margin.px]=\"strokeWidth()\">\n    @if (centerContent()) {\n        <div class=\"label-centered\">\n            <!--      <ng-container [ngTemplateOutlet]=\"labelTemplate\" />-->\n        </div>\n    } @else {\n        <ng-content />\n    }\n</div>\n","import { AfterViewInit, Directive, EmbeddedViewRef, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[m-to-body]',\r\n    })\r\nexport class ToBodyDirective implements AfterViewInit, OnDestroy {\r\n    private embeddedViewRef: EmbeddedViewRef<unknown> | undefined;\r\n\r\n    public constructor(\r\n        private readonly template: TemplateRef<unknown>,\r\n        private readonly viewContainerRef: ViewContainerRef\r\n    ) {\r\n    }\r\n\r\n    public ngAfterViewInit(): void {\r\n        this.embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.template);\r\n        this.embeddedViewRef.detectChanges();\r\n        for (const node of this.embeddedViewRef.rootNodes) {\r\n            document.body.appendChild(node);\r\n        }\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        for (const node of this.embeddedViewRef?.rootNodes ?? []) {\r\n            if (document.body.contains(node)) {\r\n                document.body.removeChild(node);\r\n            }\r\n        }\r\n        this.embeddedViewRef?.destroy();\r\n        this.embeddedViewRef = undefined;\r\n    }\r\n}\r\n","import { Component, effect, inject, input } from '@angular/core';\nimport { InvertibleComponent } from '../../base/invertible.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { MenuPosition } from './models/menu-position';\n\n@Component({\n    selector: 'm-menu',\n    templateUrl: './menu.component.html',\n    styleUrls: ['./menu.component.scss'],\n    providers: [...InvertibleComponent.providers],\n    host: {\n        '[class.fixed]': 'fixed()',\n        '[class.secondary]': 'secondary()',\n        '[class.attached]': 'attached()',\n        '[class.tabular]': 'tabular()',\n        '[class.text]': 'text()',\n        '[class.vertical]': 'vertical()'\n    }\n})\nexport class MenuComponent extends InvertibleComponent {\n    public readonly element = this.elementRef;\n    public readonly position = input<MenuPosition>();\n    public readonly fixed = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly secondary = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly attached = input<MenuPosition>();\n    public readonly tabular = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly text = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly vertical = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly pointing = input<boolean, BooleanLike>(false, { transform: toBoolean });\n\n    public constructor() {\n        super(!inject(MenuComponent, { optional: true, skipSelf: true }));\n        this.classes.registerFixed('menu');\n        this.classes.register('pointing', 'position', 'fixed', 'secondary', 'tabular', 'text', 'attached', 'vertical');\n        effect(() => this.classes.set('pointing', this.pointing()));\n        effect(() => this.classes.set('position', this.position()));\n        effect(() => this.classes.set('attached', this.attached()));\n    }\n}\n","<!-- <div class=\"ui container\"> -->\r\n<ng-content />\r\n<!-- </div> -->","import { AfterViewInit, Component, input, output, signal, viewChild } from '@angular/core';\nimport { animationFrameScheduler, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { BaseComponent } from '../../base/base.component';\nimport { ToBodyDirective } from '../../directives/to-body.directive';\nimport { Math2 } from '../../helpers/math2';\nimport { Mouse } from '../../helpers/mouse';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { MenuComponent } from '../menu/menu.component';\nimport { ContextMenuEvent } from './models/context-menu-event';\nimport { ContextMenuMouseEvent } from './models/context-menu-mouse-event';\n\n@Component({\n    selector: 'm-context-menu',\n    templateUrl: './context-menu.component.html',\n    styleUrls: ['./context-menu.component.scss'],\n    imports: [MenuComponent, ToBodyDirective],\n    providers: [...BaseComponent.providers],\n    host: {\n        '[class.visible]': 'isVisible()',\n        '(document:mousedown)': 'onOutsideAction($event)',\n        '(document:keydown)': 'onOutsideAction($event)'\n    }\n})\nexport class ContextMenuComponent extends BaseComponent implements AfterViewInit {\n    protected readonly menu = viewChild(MenuComponent);\n    public readonly left = signal<number | undefined>(undefined);\n    public readonly top = signal<number | undefined>(undefined);\n    public readonly isVisible = signal(false);\n    public readonly openOnLeftClick = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly openOnRightClick = input<boolean, BooleanLike>(true, { transform: toBoolean });\n    public readonly vertical = input<boolean, BooleanLike>(true, { transform: toBoolean });\n    public readonly shared = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly margin = input(5);\n\n    // eslint-disable-next-line @angular-eslint/no-output-rename,@angular-eslint/no-output-native\n    public readonly onclose = output({ alias: 'close' });\n\n    // eslint-disable-next-line @angular-eslint/no-output-rename\n    public readonly onopen = output({ alias: 'open' });\n\n    public constructor() {\n        super();\n        this.classes.register('openOnLeftClick', 'openOnRightClick', 'vertical', 'margin', 'shared');\n    }\n\n    public ngAfterViewInit(): void {\n        if (!this.shared() && this.elementRef.nativeElement.parentElement) {\n            fromEvent(this.elementRef.nativeElement.parentElement, 'click').pipe(takeUntil(this.destroy)).subscribe(event => this.onParentClick(event as ContextMenuMouseEvent));\n            fromEvent(this.elementRef.nativeElement.parentElement, 'contextmenu').pipe(takeUntil(this.destroy)).subscribe(event => this.onParentClick(event as ContextMenuMouseEvent));\n        }\n        fromEvent(document.documentElement, 'scroll', { capture: true }).pipe(takeUntil(this.destroy)).subscribe(event => this.onOutsideAction(event));\n    }\n\n    private onParentClick(event: ContextMenuMouseEvent): void {\n        if (event.button === Mouse.left.valueOf() && !this.openOnLeftClick()) {\n            return;\n        }\n        if (event.button === Mouse.right.valueOf() && !this.openOnRightClick()) {\n            return;\n        }\n        this.open(event);\n    }\n\n    protected onOutsideAction(event: ContextMenuEvent): void {\n        if (!this.isVisible()) {\n            return;\n        }\n        if (event.contextMenuTarget === this || (event as KeyboardEvent).key === 'F8') {\n            return;\n        }\n        if ((event.target as HTMLElement).closest('m-context-menu-item')) {\n            return;\n        }\n        this.close();\n    }\n\n    private refreshPosition(tries = 3): void {\n        const menu = this.menu();\n        if (!menu) {\n            if (tries > 0) {\n                animationFrameScheduler.schedule(() => this.refreshPosition(tries - 1));\n            }\n            return;\n        }\n        const menuRect = menu.element.nativeElement.getBoundingClientRect();\n        const clipRect = document.documentElement.getBoundingClientRect();\n        this.left.set(Math2.keepInRange(clipRect.left + this.margin(), this.left(), clipRect.right - this.margin() - menuRect.width));\n        this.top.set(Math2.keepInRange(clipRect.top + this.margin(), this.top(), clipRect.bottom - this.margin() - menuRect.height));\n    }\n\n    public open(left?: number, top?: number): void\n    public open(event: MouseEvent): void\n    public open(leftOrEvent?: number | ContextMenuMouseEvent, top?: number): void {\n        if (typeof leftOrEvent === 'number' || leftOrEvent === undefined) {\n            this.left.set(leftOrEvent ?? this.left());\n            this.top.set(top ?? this.top());\n        }\n        else {\n            leftOrEvent.preventDefault();\n            leftOrEvent.contextMenuTarget = this;\n            this.left.set(leftOrEvent.clientX);\n            this.top.set(leftOrEvent.clientY);\n        }\n        this.isVisible.set(true);\n        this.refreshPosition();\n        this.onopen.emit();\n    }\n\n    public close(): void {\n        this.isVisible.set(false);\n        this.onclose.emit();\n    }\n}\n","@if (isVisible()) {\n  <m-menu *m-to-body class=\"content\" [vertical]=\"vertical()\" [style.left.px]=\"left()\" [style.top.px]=\"top()\">\n    <ng-content />\n  </m-menu>\n}\n","import { Component, Inject, input, Optional, output } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { transformableModel } from '../../helpers/transformable-model';\nimport { BooleanLike } from '../../models/boolean-like';\n\n@Component({\n    selector: 'm-menu-item',\n    templateUrl: './menu-item.component.html',\n    styleUrls: ['./menu-item.component.scss'],\n    providers: [...MenuItemComponent.providers],\n    host: {\n        '[class.active]': 'active()',\n        '[class.link]': 'link()'\n    }\n})\nexport class MenuItemComponent extends BaseComponent {\n    protected static override readonly providers = [...BaseComponent.providers];\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly activeInput = input<boolean, BooleanLike>(false, { alias: 'active', transform: toBoolean });\n    public readonly activeChange = output<boolean>();\n    public readonly active = transformableModel(this.activeInput, this.activeChange, toBoolean);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly linkInput = input<boolean, BooleanLike>(false, { alias: 'link', transform: toBoolean });\n    public readonly linkChange = output<boolean>();\n    public readonly link = transformableModel(this.linkInput, this.linkChange, toBoolean);\n\n    public constructor(\n        // eslint-disable-next-line @angular-eslint/prefer-inject\n        @Optional() @Inject('none') useUiClass = true\n    ) {\n        super(useUiClass);\n        this.classes.register('active', 'link')\n            .registerFixed('item');\n    }\n}\n","<ng-content />","import { Component, effect, inject, input } from '@angular/core';\nimport { toBoolean } from '../../../helpers/to-boolean';\nimport { BooleanLike } from '../../../models/boolean-like';\nimport { IconComponent } from '../../icon/icon.component';\nimport { IconType } from '../../icon/models/icon-type';\nimport { MenuItemComponent } from '../../menu-item/menu-item.component';\nimport { ContextMenuComponent } from '../context-menu.component';\n\n@Component({\n    selector: 'm-context-menu-item',\n    templateUrl: './context-menu-item.component.html',\n    styleUrls: ['./context-menu-item.component.scss'],\n    imports: [IconComponent],\n    providers: [...MenuItemComponent.providers],\n    host: {\n        '(click)': 'onClick()'\n    }\n})\nexport class ContextMenuItemComponent extends MenuItemComponent {\n    private readonly contextMenu = inject(ContextMenuComponent, { optional: true });\n    public readonly icon = input<IconType>();\n    public readonly iconColor = input<string>();\n    public readonly keepOpen = input<boolean, BooleanLike>(false, { transform: toBoolean });\n\n    public constructor() {\n        super();\n        this.classes.register('keepOpen', 'icon');\n        this.link.set(true);\n        effect(() => this.classes.set('keepOpen', this.keepOpen()));\n    }\n\n    protected onClick(): void {\n        if (this.keepOpen()) {\n            return;\n        }\n        this.contextMenu?.close();\n    }\n}\n","<m-icon [icon]=\"icon()\" [style.color]=\"iconColor()\" />\r\n\r\n<ng-content />\r\n","import { Component, effect, input, OnDestroy, signal } from '@angular/core';\nimport { InvertibleComponent } from '../../base/invertible.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { BooleanLike } from '../../models/boolean-like';\n\n@Component({\n    selector: 'm-dimmer',\n    templateUrl: './dimmer.component.html',\n    styleUrls: ['./dimmer.component.scss'],\n    providers: [...InvertibleComponent.providers],\n    host: {\n        '[class.page]': 'page()',\n        '[class.visible]': 'visible()',\n        '[class.active]': 'visible()',\n        '(click)': 'onClick()'\n    }\n})\nexport class DimmerComponent extends InvertibleComponent implements OnDestroy {\n    public static readonly defaults = {\n        inverted: signal(false)\n    };\n    public readonly page = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly hideOnClick = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly visibleInput = input<boolean | undefined, BooleanLike>(undefined, { alias: 'visible', transform: toBoolean });\n    private readonly visibleState = signal(true);\n    public readonly visible = this.visibleState.asReadonly();\n\n    public constructor() {\n        super();\n        this.classes.register('page', 'visible')\n            .registerFixed('dimmer');\n        effect(() => this.refreshInverted(DimmerComponent.defaults.inverted()));\n        effect(() => {\n            const value = this.visibleInput();\n            if (value !== undefined) {\n                if (value) {\n                    this.show();\n                }\n                else {\n                    this.hide();\n                }\n            }\n        });\n    }\n\n    public override ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this.hide();\n    }\n\n    public show(): void {\n        this.visibleState.set(true);\n        this.refreshClasses();\n    }\n\n    public hide(): void {\n        this.visibleState.set(false);\n        this.refreshClasses();\n    }\n\n    protected onClick(): void {\n        if (this.hideOnClick()) {\n            this.hide();\n        }\n    }\n}\n","<!-- <div *ngIf=\"useContent; else contentTemplate\" class=\"content\">\r\n    <ng-container [ngComponentOutlet]=\"contentTemplate\" />\r\n</div>\r\n<ng-template #contentTemplate> -->\r\n<ng-content />\r\n<!-- </ng-template> -->","import { Component, effect, input } from '@angular/core';\nimport { DimmerComponent } from './dimmer.component';\n\n@Component({\n    selector: 'm-dimmer-defaults',\n    template: ''\n})\nexport class DimmerDefaultsComponent {\n    public readonly inverted = input<boolean>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.inverted();\n            if (value !== undefined) {\n                DimmerComponent.defaults.inverted.set(value);\n            }\n        });\n    }\n}\n","import { Observable, ReplaySubject } from 'rxjs';\r\n\r\nexport class DataSourceRequest {\r\n    private readonly subject = new ReplaySubject<Record<string, unknown>[]>(1);\r\n    public readonly observable = this.subject.asObservable();\r\n\r\n    public constructor(\r\n        public readonly key: string\r\n    ) {\r\n    }\r\n\r\n    public resolve(data: Record<string, unknown>[] | Observable<Record<string, unknown>[]>): void {\r\n        if (Array.isArray(data)) {\r\n            this.subject.next(data);\r\n        } else {\r\n            data.subscribe({\r\n                next: result => this.subject.next(result),\r\n                error: error => this.subject.error(error)\r\n            });\r\n        }\r\n    }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { DataSourceRequest } from './data-source-request';\r\n\r\n@Component({\r\n    selector: 'm-data-source',\r\n    template: ''\r\n})\r\nexport class DataSourceComponent {\r\n    private readonly requestSubject = new Subject<DataSourceRequest>();\r\n    public readonly request = outputFromObservable(this.requestSubject);\r\n\r\n    public get(key: string): Observable<Record<string, unknown>[]> {\r\n        const request = new DataSourceRequest(key);\r\n        this.requestSubject.next(request);\r\n        return request.observable;\r\n    }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\n\r\n@Component({\r\n    selector: 'm-divider',\r\n    templateUrl: './divider.component.html',\r\n    styleUrls: ['./divider.component.scss'],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class DividerComponent extends BaseComponent {\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('divider');\r\n    }\r\n}\r\n","<ng-content />","export class ObjectHelper {\r\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n    private constructor() {}\r\n\r\n    public static clone<T>(value: T): T {\r\n        return JSON.parse(JSON.stringify(value)) as T;\r\n    }\r\n\r\n    public static get<T = unknown>(object: Record<string, unknown> | undefined, path: string | string[]): T | undefined {\r\n        const pathArray = typeof path === 'string' ? path.split('.') : path;\r\n        return pathArray.length > 1 ? this.get<T>(object?.[pathArray[0]] as Record<string, unknown> | undefined, pathArray.slice(1)) : object?.[pathArray[0]] as T;\r\n    }\r\n\r\n    /*\r\n     * Checks if the object has all specified keys. This is like a typesafe version of the `in` operator\r\n     */\r\n    public static has<T>(value: unknown, ...keys: (keyof T)[]): value is T {\r\n        // eslint-disable-next-line no-restricted-syntax\r\n        return !!value && typeof value === 'object' && keys.every(key => key in value);\r\n    }\r\n\r\n    /*\r\n     * Checks if the object has any of the specified keys. This is like a typesafe version of the `in` operator\r\n     */\r\n    public static hasSome<T>(value: unknown, ...keys: (keyof T)[]): value is T {\r\n        // eslint-disable-next-line no-restricted-syntax\r\n        return !!value && typeof value === 'object' && keys.some(key => key in value);\r\n    }\r\n}\r\n","import { ComponentRef, Type, ViewContainerRef } from '@angular/core';\nimport { ObjectHelper } from '../../helpers/object-helper';\n\ninterface ComponentDef<T> {\n    readonly ngContentSelectors?: string[];\n    readonly selectors: string[][];\n    readonly type: Type<T>;\n    readonly inputs: Record<string, unknown>;\n    hostDirectives: (HostDirectiveDef | unknown)[] | null;\n}\n\ninterface HostDirectiveDef<T = unknown> {\n    directive: Type<T>;\n    inputs: Record<string, string>;\n    outputs: Record<string, string>;\n}\n\nfunction getComponentDef<T>(type: Type<T>): ComponentDef<T> | undefined {\n    return (type as any)['ɵ' + 'cmp'] || undefined;\n}\n\nfunction isHostDirectiveDef(value: unknown): value is HostDirectiveDef {\n    return !!value && typeof value === 'object' && typeof (value as HostDirectiveDef).inputs === 'object';\n}\n\nexport class ComponentParser {\n    private static readonly registeredComponents: ComponentDef<unknown>[] = [];\n\n    public static register<T>(component: Type<T>): void {\n        const componentDef = getComponentDef<T>(component);\n        if (!componentDef) {\n            throw new Error(`Can not register component '${component.name}': no definition found`);\n        }\n        this.registeredComponents.push(componentDef);\n    }\n\n    public static parse(template: string | undefined, viewContainerRef: ViewContainerRef, data?: Record<string, unknown>): Node[] {\n        const host: Element = viewContainerRef.element.nativeElement;\n        viewContainerRef.clear();\n        host.replaceChildren();\n        if (!template) {\n            return [];\n        }\n        data ??= {};\n        const nodes: Node[] = [];\n        const helperNode = document.createElement('div');\n        helperNode.innerHTML = template;\n        const nodesToParse = Array.from(helperNode.childNodes);\n        const dataNode = nodesToParse.find(node => node.nodeName === 'M-JSON');\n        const index = dataNode ? nodesToParse.indexOf(dataNode) : -1;\n        if (index >= 0) {\n            nodesToParse.splice(index, 1);\n        }\n        if (dataNode instanceof Element) {\n            Object.assign(data, JSON.parse(dataNode.innerHTML || '{}'));\n        }\n        for (const node of nodesToParse) {\n            const parsedNode = this.parseNode(node, viewContainerRef, data);\n            host.append(parsedNode);\n            nodes.push(parsedNode);\n        }\n        return nodes;\n    }\n\n    private static parseNode(node: Node, viewContainerRef: ViewContainerRef, data: Record<string, unknown>): Node {\n        const definition = this.registeredComponents.find(d => d.selectors.some(sa => sa.some(s => s.toLowerCase() === node.nodeName.toLowerCase())));\n        if (!definition) {\n            return node;\n        }\n\n        const nodes: Node[] = [];\n        const nodesToParse = Array.from(node.childNodes);\n        for (const nodeToParse of nodesToParse) {\n            nodes.push(this.parseNode(nodeToParse, viewContainerRef, data));\n        }\n        const unusedNodes = [...nodes];\n        const projectableNodes: Node[][] | undefined = definition.ngContentSelectors?.map(selector => {\n            if (selector === '*') {\n                return unusedNodes;\n            }\n            const foundNodes = nodes.filter(node => node.nodeName.toLowerCase() === selector);\n            for (const foundNode of foundNodes) {\n                const index = unusedNodes.indexOf(foundNode);\n                if (index >= 0) {\n                    unusedNodes.splice(index, 1);\n                }\n            }\n            return foundNodes;\n        });\n        const componentRef = viewContainerRef.createComponent(definition.type, {\n            projectableNodes\n        });\n        if (node instanceof Element) {\n            this.applyAttributes(node, definition, componentRef, data);\n        }\n        return componentRef.location.nativeElement;\n    }\n\n    private static applyAttributes(node: Element, definition: ComponentDef<unknown>, componentRef: ComponentRef<unknown>, data: Record<string, unknown>): void {\n        const inputNames = this.getInputNames(definition);\n        for (const attribute of Array.from(node.attributes)) {\n            const boundAttribute = /^\\[(?<name>.*)]$/.exec(attribute.name);\n            const attributeName = boundAttribute ? boundAttribute.groups?.['name'] ?? '' : attribute.name;\n            const attributeValue = boundAttribute ? ObjectHelper.get(data, attribute.value) : attribute.value;\n            const inputName = inputNames.get(attributeName.toLowerCase());\n            if (inputName) {\n                componentRef.setInput(inputName, attributeValue);\n            } else {\n                (componentRef.instance as any)[attributeName] = attributeValue;\n            }\n        }\n    }\n\n    private static getInputNames(definition: ComponentDef<unknown>): Map<string, string> {\n        const inputNames = new Map<string, string>();\n        for (const inputName of Object.keys(definition.inputs ?? {})) {\n            inputNames.set(inputName.toLowerCase(), inputName);\n        }\n        for (const hostDirective of definition.hostDirectives ?? []) {\n            if (!isHostDirectiveDef(hostDirective)) {\n                continue;\n            }\n            for (const inputName of Object.values(hostDirective.inputs)) {\n                inputNames.set(inputName.toLowerCase(), inputName);\n            }\n        }\n        return inputNames;\n    }\n}\n","import { Component, effect, inject, input, untracked, ViewContainerRef } from '@angular/core';\nimport { ComponentParser } from './component-parser';\n\n@Component({\n    selector: 'm-dynamic-component',\n    template: '',\n    styleUrls: ['./dynamic-component.component.scss']\n})\nexport class DynamicComponentComponent {\n    private readonly viewContainerRef = inject(ViewContainerRef);\n    public readonly code = input.required<string | undefined>();\n    public readonly data = input<Record<string, unknown>>();\n\n    public constructor() {\n        effect(() => {\n            const code = this.code();\n            ComponentParser.parse(code, this.viewContainerRef, untracked(() => this.data()));\n        });\n    }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders, Type } from '@angular/core';\r\nimport { ComponentParser } from './component-parser';\r\n\r\nexport function provideDynamicComponent(\r\n    type: Type<unknown>\r\n): EnvironmentProviders {\r\n    ComponentParser.register(type);\r\n    return makeEnvironmentProviders([]);\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n// Use this to solve circular dependency problem\r\n@Injectable()\r\nexport class DropDownSelectionService {\r\n    private readonly selectedSubject = new Subject<unknown>();\r\n    public readonly selected = this.selectedSubject.asObservable();\r\n\r\n    public select(value: unknown): void {\r\n        this.selectedSubject.next(value);\r\n    }\r\n}\r\n","import { Component, inject, input, output } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { transformableModel } from '../../helpers/transformable-model';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { DropDownSelectionService } from '../dropdown/dropdown-selection.service';\n\n@Component({\n    selector: 'm-dropdown-item',\n    templateUrl: './dropdown-item.component.html',\n    styleUrls: ['./dropdown-item.component.scss'],\n    providers: [...BaseComponent.providers],\n    host: {\n        '[class.filtered]': 'filteredOut()',\n        '[class.active]': 'selected()',\n        '[class.selected]': 'selected()',\n        '(click)': 'click($event)'\n    }\n})\nexport class DropdownItemComponent extends BaseComponent {\n    private readonly dropDownSelectionService = inject(DropDownSelectionService);\n    public readonly value = input.required<unknown>();\n    public readonly icon = input<string>();\n    public readonly element = this.elementRef;\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly filteredOutInput = input<boolean, BooleanLike>(false, { alias: 'filteredOut', transform: toBoolean });\n    public readonly filteredOutChange = output<boolean>();\n    public readonly filteredOut = transformableModel(this.filteredOutInput, this.filteredOutChange, toBoolean);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly selectedInput = input<boolean, BooleanLike>(false, { alias: 'selected', transform: toBoolean });\n    public readonly selectedChange = output<boolean>();\n    public readonly selected = transformableModel(this.selectedInput, this.selectedChange, toBoolean);\n\n    public constructor() {\n        super();\n        this.classes.register('filtered', 'selected', 'value')\n            .registerFixed('item');\n    }\n\n    protected click(event: MouseEvent): void {\n        event.preventDefault();\n        event.stopPropagation();\n        this.dropDownSelectionService.select(this.value());\n    }\n\n    public select(value = true): void {\n        this.selected.set(value);\n    }\n}\n","<ng-content />","import { IconSize } from '../icon/models/icon-size';\r\nimport { IconType } from '../icon/models/icon-type';\r\n\r\nexport class DropdownValue<T = unknown> {\r\n    public filtered?: boolean;\r\n\r\n    public constructor(\r\n        public value: T,\r\n        public text?: string,\r\n        public icon?: IconType,\r\n        public iconSize?: IconSize\r\n    ) { }\r\n}\r\n","import { ChangeDetectionStrategy, Component, computed, contentChildren, effect, ElementRef, inject, input, model, NgZone, OnInit, output, signal, untracked, viewChild, viewChildren } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { fromEvent } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { InvertibleComponent } from '../../base/invertible.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { transformableModel } from '../../helpers/transformable-model';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { DropdownItemComponent } from '../dropdown-item/dropdown-item.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\nimport { DropDownSelectionService } from './dropdown-selection.service';\nimport { DropdownValue } from './dropdown-value';\n\n@Component({\n    selector: 'm-dropdown',\n    templateUrl: './dropdown.component.html',\n    styleUrls: ['./dropdown.component.scss'],\n    imports: [FormsModule, IconComponent, DropdownItemComponent],\n    changeDetection: ChangeDetectionStrategy.Eager,\n    providers: [...InvertibleComponent.providers, DropDownSelectionService],\n    host: {\n        '[class.multiple]': 'multiple()',\n        '[class.attached-left]': 'attachedLeft()',\n        '[class.attached-top]': 'attachedTop()',\n        '[class.attached-right]': 'attachedRight()',\n        '[class.attached-bottom]': 'attachedBottom()',\n        '[attr.tabindex]': 'tabIndex()',\n        '[class.search]': 'searchClass()',\n        '[class.active]': 'isActive()',\n        '[class.disabled]': 'readonly()',\n        '[class.upward]': 'isUpwardClass()',\n        '(focusin)': 'focus()',\n        '(focusout)': 'blur()',\n        '(click)': 'toggle()',\n        '(keydown)': 'onKeyDown($event)'\n    }\n})\nexport class DropdownComponent extends InvertibleComponent implements OnInit {\n    public static readonly defaults = {\n        dropdownIcon: signal<IconType>('dropdown'),\n        dropdownIconSize: signal<IconSize>(undefined),\n        deleteIcon: signal<IconType>('delete'),\n        deleteIconSize: signal<IconSize>(undefined),\n        inverted: signal(false)\n    };\n    private static readonly upwardThreshold = 120;\n    private static readonly viewportMargin = 8;\n    private readonly dropDownSelectionService = inject(DropDownSelectionService);\n    private readonly zone = inject(NgZone);\n    protected readonly defaults = DropdownComponent.defaults;\n    protected readonly textElement = viewChild<ElementRef<HTMLDivElement>>('htmlElement');\n    protected readonly menuElement = viewChild<ElementRef<HTMLDivElement>>('menuElement');\n    protected readonly inputElement = viewChild<ElementRef<HTMLInputElement>>('inputElement');\n    private readonly contentItems = contentChildren(DropdownItemComponent);\n    private readonly viewItems = viewChildren(DropdownItemComponent);\n    protected readonly itemComponents = computed(() => [...this.contentItems(), ...this.viewItems()]);\n    public readonly multiple = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly search = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly attachedLeft = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly attachedTop = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly attachedRight = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly attachedBottom = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly placeholder = input<string>();\n    public readonly fluid = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly animationDuration = input(200);\n    public readonly filter = model<string>();\n    public readonly name = model<string>();\n    public readonly filterValue = input(true);\n    public readonly filterText = input(true);\n    public readonly icon = input<IconType>();\n    public readonly iconSize = input<IconSize>();\n    public readonly dropdownIcon = input<IconType>();\n    public readonly dropdownIconSize = input<IconSize>();\n    public readonly deleteIcon = input<IconType>();\n    public readonly deleteIconSize = input<IconSize>();\n    public readonly filterType = input<'startsWith' | 'contains'>('startsWith');\n    public readonly selectFirst = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly allowFreeText = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly valueInput = input<unknown>(undefined, { alias: 'value' });\n    private readonly valueState = signal<unknown>(undefined);\n    public readonly value = this.valueState.asReadonly();\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly itemsInput = input<DropdownValue[] | null | undefined>(undefined, { alias: 'items' });\n    private readonly itemsState = signal<DropdownValue[] | undefined>(undefined);\n    public readonly items = this.itemsState.asReadonly();\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly disabledInput = input<boolean, BooleanLike>(false, { alias: 'disabled', transform: toBoolean });\n    public readonly disabledChange = output<boolean>();\n    public readonly disabled = transformableModel(this.disabledInput, this.disabledChange, toBoolean);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly readonlyInput = input<boolean, BooleanLike>(false, { alias: 'readonly', transform: toBoolean });\n    public readonly readonlyChange = output<boolean>();\n    public readonly readonly = transformableModel(this.readonlyInput, this.readonlyChange, toBoolean);\n    public readonly tabIndex = computed(() => this.search() ? undefined : 0);\n    public readonly searchClass = computed(() => this.search() || this.allowFreeText());\n    public readonly isActive = signal(false);\n    public readonly isDefault = signal(true);\n    public readonly isMenuVisible = signal(false);\n    public readonly isHidden = signal(false);\n    public readonly isSlidingIn = signal(false);\n    public readonly isSlidingOut = signal(false);\n    public readonly isFiltered = signal(false);\n    public readonly isLoading = signal(false);\n    public readonly selectedIndex = signal<number | undefined>(undefined);\n    public readonly selectedItem = signal<DropdownValue | undefined>(undefined);\n    public readonly selectedItems = signal<DropdownValue[]>([]);\n    private readonly isSystemUpward = signal(false);\n    private readonly menuMaxHeight = signal<number | undefined>(undefined);\n    public readonly isUpwardClass = computed(() => this.isSystemUpward());\n    public readonly menuMaxHeightPx = computed(() => this.menuMaxHeight());\n    private readonly isFocused = signal(false);\n    private readonly keepOpen = signal(false);\n    public readonly hasItems = computed(() => this.itemComponents().length > 0);\n    public readonly valueChange = output<unknown>();\n\n    public constructor() {\n        super();\n        this.classes.register('fluid', 'disabled', 'multiple', 'search', 'active', 'visible', 'upward', 'selectFirst', 'placeholder', 'attachedLeft', 'attachedRight', 'attachedTop', 'attachedBottom', 'filterType', 'allowFreetext')\n            .registerFixed('selection', 'dropdown');\n        effect(() => this.classes.set('fluid', this.fluid()));\n        effect(() => this.classes.set('disabled', this.disabled()));\n        effect(() => this.refreshInverted(DropdownComponent.defaults.inverted()));\n        this.dropDownSelectionService.selected.pipe(takeUntil(this.destroy)).subscribe(event => this.select(event));\n        // External [value]/[items] changes drive the same selection logic the old setters did.\n        // untracked() keeps select()'s many signal reads/writes from registering as effect dependencies.\n        effect(() => {\n            const value = this.valueInput();\n            untracked(() => this.setValue(value));\n        });\n        effect(() => {\n            const items = this.itemsInput();\n            untracked(() => this.setItems(items));\n        });\n        effect(() => {\n            const items = this.itemComponents();\n            untracked(() => this.refreshItems(items));\n        });\n        // Re-apply the requested [value] once a matching item exists. Projected items (and their\n        // [value] inputs) can resolve after the dropdown is created — e.g. a preselected value in a\n        // freshly opened modal — which would otherwise leave select() with no match and the value cleared.\n        // An item's [value] is a required input that can itself still be unresolved on the very\n        // same change-detection pass contentChildren() first reports it (NG0950) — readItemValue()\n        // tolerates that; the signal read still registers as an effect dependency, so this effect\n        // simply re-runs once the item's value is actually set.\n        effect(() => {\n            const itemValues = this.itemComponents().map(item => DropdownComponent.readItemValue(item));\n            untracked(() => {\n                const requested = this.valueInput();\n                if (requested !== undefined && this.value() !== requested && itemValues.includes(requested)) {\n                    this.select(requested);\n                }\n            });\n        });\n    }\n\n    // See the comment above this method's only caller — swallows the NG0950 a required [value]\n    // input throws when read before it's been bound yet, treating that item as valueless for\n    // this pass rather than crashing the whole dropdown.\n    private static readItemValue(item: DropdownItemComponent): unknown {\n        try {\n            return item.value();\n        }\n        catch {\n            return undefined;\n        }\n    }\n\n    public override ngOnInit(): void {\n        super.ngOnInit();\n        this.zone.runOutsideAngular(() =>\n            fromEvent(window, 'scroll', { capture: true }).pipe(\n                filter(event => this.isActive() && event.target instanceof HTMLElement && this.elementRef.nativeElement !== event.target && !this.elementRef.nativeElement.contains(event.target)),\n                takeUntil(this.destroy)\n            ).subscribe(() => this.zone.run(() => this.close())));\n    }\n\n    public focus(): void {\n        // Ignore focus/blur of window\n        if (this.isFocused()) {\n            return;\n        }\n        this.open();\n        setTimeout(() => this.isFocused.set(true), this.animationDuration());\n    }\n\n    public blur(): void {\n        // Ignore focus/blur of window\n        const inputElement = this.inputElement();\n        if (document.activeElement === this.elementRef.nativeElement || inputElement && document.activeElement === inputElement.nativeElement || this.keepOpen()) {\n            return;\n        }\n        this.isFocused.set(false);\n        this.close();\n    }\n\n    public toggle(): void {\n        if (this.isFocused() && this.isMenuVisible() && !this.search()) {\n            this.close();\n        }\n        else {\n            this.open();\n        }\n    }\n\n    protected onKeyDown(event: KeyboardEvent): void {\n        if (event.code === 'ArrowUp') {\n            event.preventDefault();\n            event.stopPropagation();\n            const index = this.selectedIndex();\n            this.selectIndex(index === undefined ? 0 : index - 1);\n            this.open();\n        }\n        else if (event.code === 'ArrowDown') {\n            event.preventDefault();\n            event.stopPropagation();\n            const index = this.selectedIndex();\n            this.selectIndex(index === undefined ? 0 : index + 1);\n            this.open();\n        }\n        else if (event.code === 'Enter' || event.code === 'Space') {\n            const index = this.selectedIndex();\n            if (index !== undefined && index >= 0) {\n                event.preventDefault();\n                event.stopPropagation();\n                const component = this.itemComponents()[index];\n                this.select(DropdownComponent.readItemValue(component));\n                this.close();\n            }\n            else {\n                const filteredComponents = this.itemComponents().filter(component => !component.filteredOut());\n                if (filteredComponents.length === 1) {\n                    event.preventDefault();\n                    event.stopPropagation();\n                    this.select(DropdownComponent.readItemValue(filteredComponents[0]));\n                    this.close();\n                }\n            }\n        }\n        else if (event.code === 'Backspace') {\n            const selectedItems = this.selectedItems();\n            if (this.multiple() && selectedItems.length > 0) {\n                event.preventDefault();\n                event.stopPropagation();\n                this.deselect(selectedItems[selectedItems.length - 1]);\n            }\n        }\n        else if (event.code === 'Escape') {\n            event.preventDefault();\n            event.stopPropagation();\n            this.filter.set(undefined);\n            this.onFilter();\n            this.close();\n        }\n        else if (event.code === 'Tab') {\n            const index = this.selectedIndex();\n            if (index !== undefined && index >= 0) {\n                const component = this.itemComponents()[index];\n                this.select(DropdownComponent.readItemValue(component));\n            }\n            else {\n                const filteredComponents = this.itemComponents().filter(component => !component.filteredOut());\n                if (filteredComponents.length === 1) {\n                    this.select(DropdownComponent.readItemValue(filteredComponents[0]));\n                }\n            }\n        }\n    }\n\n    protected deleteClick(item: DropdownValue, event: MouseEvent): void {\n        event.preventDefault();\n        this.deselect(item);\n    }\n\n    public open(): void {\n        if (this.isMenuVisible()) {\n            return;\n        }\n        if (this.search()) {\n            this.inputElement()?.nativeElement.focus();\n        }\n        this.isHidden.set(true);\n        this.isLoading.set(true);\n        this.isSystemUpward.set(false);\n        this.menuMaxHeight.set(undefined);\n        // Wait for rendering complete\n        setTimeout(() => {\n            const hostBounds = this.elementRef.nativeElement.getBoundingClientRect();\n            const clip = this.getClippingBounds(this.elementRef.nativeElement);\n            const spaceBelow = clip.bottom - hostBounds.bottom;\n            const spaceAbove = hostBounds.top - clip.top;\n            const isUpward = spaceBelow < DropdownComponent.upwardThreshold && spaceAbove > spaceBelow;\n            this.isSystemUpward.set(isUpward);\n            const available = (isUpward ? spaceAbove : spaceBelow) - DropdownComponent.viewportMargin;\n            const menu = this.menuElement()?.nativeElement;\n            const defaultMaxHeight = menu ? parseFloat(window.getComputedStyle(menu).maxHeight) : NaN;\n            // Only override the stylesheet default when our viewport-fit cap is stricter.\n            this.menuMaxHeight.set(isFinite(defaultMaxHeight) && defaultMaxHeight > 0 && defaultMaxHeight <= available\n                ? undefined\n                : Math.max(0, available));\n\n            this.isLoading.set(false);\n            this.isHidden.set(false);\n\n            // Wait for rendering complete\n            setTimeout(() => {\n                this.isActive.set(true);\n                this.isMenuVisible.set(true);\n                this.isSlidingIn.set(true);\n                this.isSlidingOut.set(false);\n            });\n        });\n    }\n\n    public close(): void {\n        this.isSlidingIn.set(false);\n        this.isSlidingOut.set(true);\n        this.isActive.set(false);\n        const filterValue = this.filter();\n        if (this.allowFreeText() && (this.selectedIndex() === -1 || this.selectedIndex() === undefined) && filterValue) {\n            this.setValue(filterValue);\n            this.valueChange.emit(this.value());\n        }\n        this.filter.set(undefined);\n        this.onFilter();\n        this.keepOpen.set(false);\n        setTimeout(() => {\n            this.isMenuVisible.set(false);\n            this.isSlidingOut.set(false);\n        }, this.animationDuration());\n    }\n\n    // Mirrors the former `value` setter: dedupe against the current value, then run selection.\n    private setValue(value: unknown): void {\n        value ??= undefined;\n        if (this.valueState() === value) {\n            return;\n        }\n        this.valueState.set(value);\n        this.select(value);\n    }\n\n    // Mirrors the former `items` setter.\n    private setItems(value: DropdownValue[] | null | undefined): void {\n        value ??= undefined;\n        if (this.itemsState() === value) {\n            return;\n        }\n        this.itemsState.set(value);\n        this.select(this.value());\n    }\n\n    protected select(value: unknown): void {\n        const isChanged = this.valueState() !== value;\n        const components = this.itemComponents();\n        if (this.items()?.length && !components.length) {\n            return;\n        }\n        this.isDefault.set(false);\n        if (!components.length) {\n            this.selectedItem.set(undefined);\n            this.selectedItems.set([]);\n            this.setValue(value);\n            this.filter.set(undefined);\n            return;\n        }\n        let component = components.find(x => DropdownComponent.readItemValue(x) === value);\n        if (this.selectFirst()) {\n            // The selectFirst() fallback below picks an item that was never checked by the find()\n            // above, so its value has never been safely read yet — readItemValue() again here,\n            // not a direct .value(), for the same NG0950-tolerance reason.\n            component ??= components[0];\n        }\n        const componentValue = component ? DropdownComponent.readItemValue(component) : undefined;\n        if (this.allowFreeText()) {\n            this.setValue(componentValue ?? value);\n        }\n        else if (this.search() && this.filter()) {\n            this.filter.set(undefined);\n            this.onFilter();\n            this.setValue(componentValue);\n        }\n        else {\n            this.setValue(componentValue);\n        }\n        if (isChanged) {\n            this.valueChange.emit(this.value());\n        }\n        this.selectedIndex.set(component ? components.indexOf(component) : undefined);\n        if (this.multiple() && component) {\n            this.selectedItem.set(undefined);\n            // TODO: Implement\n            // this.selectedItems.push(item);\n            // item.filtered = true;\n        }\n        else {\n            const items = this.items();\n            this.selectedItem.set(items ? items.find(item => item.value === value) : { value });\n        }\n        if (!this.multiple()) {\n            this.close();\n        }\n        // HACK: This is a dirty hack, but currently i found no other solution. If you have a solution please create an issue\n        setTimeout(() => {\n            const textElement = this.textElement();\n            if (!textElement) {\n                return;\n            }\n            textElement.nativeElement.innerHTML = component?.element.nativeElement.innerHTML ?? '';\n        });\n        // HACK-END\n    }\n\n    protected deselect(item: DropdownValue): void {\n        const items = this.selectedItems();\n        const index = items.indexOf(item);\n        if (index >= 0) {\n            this.selectedItems.set(items.filter((_, itemIndex) => itemIndex !== index));\n        }\n        if (this.selectedItems().length === 0) {\n            this.isDefault.set(true);\n        }\n    }\n\n    protected selectIndex(index: number): void {\n        const components = this.itemComponents();\n        this.selectedIndex.set(Math.max(0, Math.min(index, components.length - 1)));\n        components.forEach((item, itemIndex) => item.select(itemIndex === this.selectedIndex()));\n    }\n\n    protected onFilter(): void {\n        const components = this.itemComponents();\n        components.forEach(item => item.filteredOut.set(this.isItemFilteredOut(item)));\n        const filteredItems = components.filter(item => !item.filteredOut());\n        if (filteredItems.length === 1) {\n            this.selectedIndex.set(components.indexOf(filteredItems[0]));\n        }\n        else if (this.selectedIndex() !== undefined && !filteredItems.includes(components[this.selectedIndex()!])) {\n            this.selectedIndex.set(components.indexOf(filteredItems[0]));\n        }\n        this.isFiltered.set(!!this.filter());\n        // TODO: Filter content children\n    }\n\n    private isItemFilteredOut(item: DropdownItemComponent): boolean {\n        const filterValue = this.filter();\n        if (!filterValue) {\n            return false;\n        }\n        const caseInsensitiveFilter = filterValue.toLowerCase();\n        const filterAction: (value: string | undefined) => boolean = this.filterType() === 'contains'\n            ? value => !!value && value.toLowerCase().indexOf(caseInsensitiveFilter) === -1\n            : value => !!value && value.toLowerCase().indexOf(caseInsensitiveFilter) !== 0;\n        const textContainsFilter = !this.filterText() || filterAction(item.element.nativeElement.innerText);\n        const valueValue = DropdownComponent.readItemValue(item);\n        const valueContainsFilter = !this.filterValue() || filterAction(valueValue && typeof valueValue.toString === 'function' ? valueValue.toString() : undefined);\n        return textContainsFilter && valueContainsFilter;\n    }\n\n    private refreshItems(items: DropdownItemComponent[]): void {\n        const selectedIndex = this.selectedIndex();\n        const selectedItem = selectedIndex === undefined ? undefined : items[selectedIndex];\n        const selectedValue = selectedItem ? DropdownComponent.readItemValue(selectedItem) : undefined;\n        if (selectedIndex === undefined || selectedValue !== this.value()) {\n            setTimeout(() => this.select(this.value()));\n        }\n    }\n\n    protected itemMouseDown(item: DropdownValue): void {\n        this.keepOpen.set(true);\n        // this.select(item);\n        setTimeout(() => {\n            if (this.search()) {\n                this.inputElement()?.nativeElement.focus();\n            }\n            else {\n                this.elementRef.nativeElement.focus();\n            }\n        });\n    }\n\n    protected itemMouseUp(item: DropdownValue): void {\n        this.keepOpen.set(false);\n    }\n\n    /**\n     * Intersects the viewport with every scrolling/clipping ancestor so the dropdown\n     * fits inside the visible area even when an outer container clips it.\n     */\n    private getClippingBounds(element: HTMLElement): { top: number; bottom: number } {\n        let top = 0;\n        let bottom = window.innerHeight;\n        let node: HTMLElement | null = element.parentElement;\n        while (node && node !== document.body && node !== document.documentElement) {\n            const style = window.getComputedStyle(node);\n            const overflowY = style.overflowY;\n            const clipsY = overflowY === 'auto' || overflowY === 'scroll' || overflowY === 'hidden' || overflowY === 'clip';\n            if (clipsY) {\n                const rect = node.getBoundingClientRect();\n                if (rect.top > top) {\n                    top = rect.top;\n                }\n                if (rect.bottom < bottom) {\n                    bottom = rect.bottom;\n                }\n            }\n            node = node.parentElement;\n        }\n        return { top, bottom };\n    }\n}\n","<input type=\"hidden\">\n@if (icon()) {\n    <m-icon [icon]=\"icon()\" [size]=\"iconSize()\" class=\"icon\" />\n}\n@if (!allowFreeText() && hasItems()) {\n    <m-icon [icon]=\"dropdownIcon() ?? defaults.dropdownIcon()\" [size]=\"dropdownIconSize() ?? defaults.dropdownIconSize()\" class=\"dropdown icon\" />\n}\n@for (selectedItem of selectedItems(); track selectedItem) {\n    <a class=\"ui label transition visible\">\n        @if (selectedItem.icon) {\n            <m-icon [icon]=\"selectedItem.icon\" [size]=\"selectedItem.iconSize\"></m-icon>\n        }\n        {{ selectedItem.text === undefined ? selectedItem.value : selectedItem.text }}\n        <m-icon [icon]=\"deleteIcon() ?? defaults.deleteIcon()\" [size]=\"deleteIconSize() ?? defaults.deleteIconSize()\" class=\"icon\" (click)=\"deleteClick(selectedItem, $event)\" />\n    </a>\n}\n@if (search() || allowFreeText()) {\n    <input [ngModel]=\"filter()\" class=\"search\" autocomplete=\"off\" tabindex=\"0\" (ngModelChange)=\"filter.set($event)\" (input)=\"onFilter()\" (keydown)=\"onKeyDown($event)\" #inputElement>\n}\n<div [class.default]=\"isDefault()\" [class.filtered]=\"isFiltered()\" class=\"text\">\n    @if (!selectedItem()) {\n        {{ value() || placeholder() }}\n    }\n    <span #htmlElement></span>\n</div>\n<div class=\"menu\" [class.visible]=\"isMenuVisible()\"\n     [style.display]=\"isMenuVisible() ? 'block' : ''\"\n     [style.max-height.px]=\"menuMaxHeightPx()\"\n     [style.animation-duration.ms]=\"animationDuration()\"\n     [class.transition]=\"isSlidingIn() || isSlidingOut()\"\n     [class.hidden]=\"isHidden()\"\n     [class.animating]=\"isSlidingIn() || isSlidingOut()\"\n     [class.slide]=\"isSlidingIn() || isSlidingOut()\"\n     [class.down]=\"(isSlidingIn() || isSlidingOut()) && !isUpwardClass()\"\n     [class.up]=\"(isSlidingIn() || isSlidingOut()) && isUpwardClass()\"\n     [class.in]=\"isSlidingIn()\"\n     [class.out]=\"isSlidingOut()\"\n     [class.loading]=\"isLoading()\"\n     #menuElement>\n    @if (items()) {\n        @for (item of items(); track item; let index = $index) {\n            <m-dropdown-item [value]=\"item.value\" [filteredOut]=\"item.filtered\" [selected]=\"index === selectedIndex()\" (mousedown)=\"itemMouseDown(item)\" (mouseup)=\"itemMouseUp(item)\">\n                @if (item.icon) {\n                    <m-icon [icon]=\"item.icon\" [size]=\"item.iconSize\" />\n                }\n                {{ item.text === undefined ? item.value : item.text }}\n            </m-dropdown-item>\n        }\n    } @else {\n        <ng-content />\n    }\n</div>\n","import { Component, effect, input, OnDestroy } from '@angular/core';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\nimport { DropdownComponent } from './dropdown.component';\n\n@Component({\n    selector: 'm-dropdown-defaults',\n    template: ''\n})\nexport class DropdownDefaultsComponent implements OnDestroy {\n    private readonly previousDropdownIcon = DropdownComponent.defaults.dropdownIcon();\n    private readonly previousDropdownIconSize = DropdownComponent.defaults.dropdownIconSize();\n    private readonly previousDeleteIcon = DropdownComponent.defaults.deleteIcon();\n    private readonly previousDeleteIconSize = DropdownComponent.defaults.deleteIconSize();\n    private currentDropdownIcon?: IconType;\n    private currentDropdownIconSize?: IconSize;\n    private currentDeleteIcon?: IconType;\n    private currentDeleteIconSize?: IconSize;\n    public readonly dropdownIcon = input<IconType>();\n    public readonly dropdownIconSize = input<IconSize>();\n    public readonly deleteIcon = input<IconType>();\n    public readonly deleteIconSize = input<IconSize>();\n    public readonly inverted = input<boolean>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.dropdownIcon();\n            if (value !== undefined) {\n                this.currentDropdownIcon = value;\n                DropdownComponent.defaults.dropdownIcon.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.dropdownIconSize();\n            if (value !== undefined) {\n                this.currentDropdownIconSize = value;\n                DropdownComponent.defaults.dropdownIconSize.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.deleteIcon();\n            if (value !== undefined) {\n                this.currentDeleteIcon = value;\n                DropdownComponent.defaults.deleteIcon.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.deleteIconSize();\n            if (value !== undefined) {\n                this.currentDeleteIconSize = value;\n                DropdownComponent.defaults.deleteIconSize.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.inverted();\n            if (value !== undefined) {\n                DropdownComponent.defaults.inverted.set(value);\n            }\n        });\n    }\n\n    public ngOnDestroy(): void {\n        if (this.currentDropdownIcon === DropdownComponent.defaults.dropdownIcon()) {\n            DropdownComponent.defaults.dropdownIcon.set(this.previousDropdownIcon);\n        }\n        if (this.currentDropdownIconSize === DropdownComponent.defaults.dropdownIconSize()) {\n            DropdownComponent.defaults.dropdownIconSize.set(this.previousDropdownIconSize);\n        }\n        if (this.currentDeleteIcon === DropdownComponent.defaults.deleteIcon()) {\n            DropdownComponent.defaults.deleteIcon.set(this.previousDeleteIcon);\n        }\n        if (this.currentDeleteIconSize === DropdownComponent.defaults.deleteIconSize()) {\n            DropdownComponent.defaults.deleteIconSize.set(this.previousDeleteIconSize);\n        }\n    }\n}\n","import { Component, effect, input, signal } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { InvertibleComponent } from '../../base/invertible.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\nimport { HeaderSize } from './models/header-size';\n\n@Component({\n    selector: 'm-header',\n    templateUrl: './header.component.html',\n    styleUrls: ['./header.component.scss'],\n    imports: [IconComponent],\n    providers: [...BaseComponent.providers]\n})\nexport class HeaderComponent extends InvertibleComponent {\n    public static readonly defaults = {\n        inverted: signal(false)\n    };\n    public readonly icon = input<IconType>();\n    public readonly iconSize = input<IconSize>();\n    public readonly size = input<HeaderSize>();\n\n    public constructor() {\n        super();\n        this.classes.register('size', 'iconSize')\n            .registerFixed('header');\n        effect(() => this.classes.set('size', this.size()));\n        effect(() => this.refreshInverted(HeaderComponent.defaults.inverted()));\n    }\n}\n","@if (icon()) {\n    <m-icon [icon]=\"icon()\" [size]=\"iconSize()\" />\n}\n<ng-content />\n","import { AfterViewInit, Component, inject, input, TemplateRef, viewChild, ViewContainerRef } from '@angular/core';\r\nimport { DividerComponent } from '../divider/divider.component';\r\nimport { HeaderComponent } from '../header/header.component';\r\nimport { IconSize } from '../icon/models/icon-size';\r\nimport { IconType } from '../icon/models/icon-type';\r\n\r\n@Component({\r\n    selector: 'm-dropdown-group',\r\n    templateUrl: './dropdown-group.component.html',\r\n    styleUrls: ['./dropdown-group.component.scss'],\r\n    imports: [HeaderComponent, DividerComponent]\r\n})\r\nexport class DropdownGroupComponent implements AfterViewInit {\r\n    private readonly viewContainerRef = inject(ViewContainerRef);\r\n    public readonly label = input<string>();\r\n    public readonly icon = input<IconType>();\r\n    public readonly iconSize = input<IconSize>();\r\n    protected readonly contentTemplate = viewChild<TemplateRef<unknown>>('contentTemplate');\r\n\r\n    public ngAfterViewInit(): void {\r\n        const contentTemplate = this.contentTemplate();\r\n        if (contentTemplate) {\r\n            this.viewContainerRef.createEmbeddedView(contentTemplate);\r\n        }\r\n        else {\r\n            this.viewContainerRef.clear();\r\n        }\r\n    }\r\n\r\n}\r\n","<ng-template #contentTemplate>\n    @if (icon() || label()) {\n        <m-header [icon]=\"icon()\" [iconSize]=\"iconSize()\">{{ label() }}</m-header>\n    }\n    <m-divider />\n    <ng-content />\n</ng-template>\n","import { Component, DoCheck, ElementRef, Input, OnDestroy, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\n/**\r\n * @deprecated Use Route.title instead\r\n */\r\n@Component({\r\n    selector: 'm-document-title',\r\n    templateUrl: './document-title.component.html',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\r\n    styleUrls: ['./document-title.component.scss']\r\n})\r\nexport class DocumentTitleComponent implements DoCheck, OnDestroy {\r\n    public static globalPostfix = '';\r\n    public static globalPrefix = '';\r\n    private previousTitle: string | undefined;\r\n    private value: string | undefined;\r\n    private title: string | undefined;\r\n\r\n    @Input()\r\n    public get postfix(): string {\r\n        return DocumentTitleComponent.globalPostfix;\r\n    }\r\n\r\n    public set postfix(value: string) {\r\n        DocumentTitleComponent.globalPostfix = value;\r\n    }\r\n\r\n    @Input()\r\n    public get prefix(): string {\r\n        return DocumentTitleComponent.globalPrefix;\r\n    }\r\n\r\n    public set prefix(value: string) {\r\n        DocumentTitleComponent.globalPrefix = value;\r\n    }\r\n\r\n    public constructor(\r\n        private readonly element: ElementRef<HTMLElement>,\r\n        private readonly titleService: Title\r\n    ) {\r\n    }\r\n\r\n    public ngDoCheck(): void {\r\n        const newValue = this.prefix + this.element.nativeElement.innerText + this.postfix;\r\n        if (newValue !== this.value) {\r\n            this.value = newValue;\r\n            if (this.previousTitle === undefined) {\r\n                this.previousTitle = this.titleService.getTitle();\r\n            }\r\n            this.title = this.value;\r\n            this.titleService.setTitle(this.title);\r\n        }\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        if (this.titleService.getTitle() === this.title) {\r\n            this.titleService.setTitle(this.previousTitle ?? '');\r\n        }\r\n    }\r\n}\r\n","<ng-content />","import { Component, OnDestroy, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'm-document-no-index',\r\n    template: ''\r\n})\r\nexport class DocumentNoIndexComponent implements OnInit, OnDestroy {\r\n\r\n    public ngOnInit(): void {\r\n        const robotsMetaElement = document.querySelector('meta[name=robots]') as HTMLMetaElement;\r\n        if (robotsMetaElement) {\r\n            robotsMetaElement.content = 'noindex';\r\n        } else {\r\n            const element = document.createElement('meta') as HTMLMetaElement;\r\n            element.name = 'robots';\r\n            element.content = 'noindex';\r\n            document.head.appendChild(element);\r\n        }\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        const robotsMetaElement = document.querySelector('meta[name=robots]') as HTMLMetaElement;\r\n        if (robotsMetaElement) {\r\n            robotsMetaElement.content = 'index';\r\n        }\r\n    }\r\n\r\n}\r\n","import { Component, effect, input, output } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { transformableModel } from '../../helpers/transformable-model';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { LoaderSize } from './models/loader-size';\n\n@Component({\n    selector: 'm-loader',\n    templateUrl: './loader.component.html',\n    styleUrls: ['./loader.component.scss'],\n    providers: [...BaseComponent.providers],\n    host: {\n        '[class.inline]': 'inline()'\n    }\n})\nexport class LoaderComponent extends BaseComponent {\n    public readonly text = input<string>();\n    public readonly size = input<LoaderSize>();\n    public readonly inline = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly inverted = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly activeInput = input<boolean, BooleanLike>(false, { alias: 'active', transform: toBoolean });\n    public readonly activeChange = output<boolean>();\n    public readonly active = transformableModel(this.activeInput, this.activeChange, toBoolean);\n\n    public constructor() {\n        super();\n        this.active.set(true);\n        this.classes.register('inverted', 'active', 'text', 'size')\n            .registerFixed('loader');\n        effect(() => this.classes.set('inverted', this.inverted()));\n        effect(() => this.classes.set('active', this.active()));\n        effect(() => this.classes.set('text', this.text() || this.text() === ''));\n        effect(() => this.classes.set('size', this.size()));\n    }\n\n}\n","@if (text()) {\n    {{ text() }}\n}\n<ng-content />\n","import { Component, effect, input, output, signal } from '@angular/core';\nimport { InvertibleComponent } from '../../base/invertible.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { IconComponent } from '../icon/icon.component';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\nimport { LoaderComponent } from '../loader/loader.component';\nimport { MessageAttached } from './models/message-attached';\n\n@Component({\n    selector: 'm-message',\n    templateUrl: './message.component.html',\n    styleUrls: ['./message.component.scss'],\n    imports: [\n        IconComponent,\n        LoaderComponent\n    ],\n    providers: [...InvertibleComponent.providers],\n    host: {\n        '[class.positive]': 'positive()',\n        '[class.info]': 'info()',\n        '[class.success]': 'success()',\n        '[class.warning]': 'warning()',\n        '[class.error]': 'error()',\n        '(click)': 'onClick($event)'\n    }\n})\nexport class MessageComponent extends InvertibleComponent {\n    public static readonly defaults = {\n        closeIcon: signal<IconType>('close'),\n        closeIconSize: signal<IconSize>(undefined),\n        inverted: signal(false)\n    };\n    protected readonly defaults = MessageComponent.defaults;\n    public readonly positive = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly info = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly success = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly warning = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly error = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly closable = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly showClose = input<boolean, BooleanLike>(true, { transform: toBoolean });\n    public readonly loading = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly attached = input<MessageAttached>();\n    public readonly header = input<string>();\n    public readonly icon = input<IconType | undefined>();\n    public readonly iconSize = input<IconSize>();\n    public readonly closeIcon = input<IconType>();\n    public readonly closeIconSize = input<IconSize>();\n    public readonly ignored = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly close = output<MouseEvent>();\n\n    public constructor() {\n        super();\n        this.classes.register('ignored', 'positive', 'success', 'warning', 'error', 'attached', 'icon', 'closable')\n            .registerFixed('visible', 'message');\n        effect(() => this.classes.set('ignored', this.ignored()));\n        effect(() => this.classes.set('icon', this.loading() || !!this.icon()));\n        effect(() => this.classes.set('attached', this.attached() ? (this.attached() ?? '') + ' attached' : undefined));\n        effect(() => this.refreshInverted(MessageComponent.defaults.inverted()));\n    }\n\n    protected onClick(event: MouseEvent): void {\n        const selection = globalThis.getSelection();\n        if (selection && this.elementRef.nativeElement.contains(selection.focusNode) && (selection.anchorNode !== selection.focusNode || selection.anchorOffset !== selection.focusOffset)) {\n            return;\n        }\n        if (this.closable()) {\n            this.close.emit(event);\n        }\n    }\n}\n","@if (header()) {\n  <div class=\"header\">{{ header() }}</div>\n}\n@if (icon() && !loading()) {\n  <m-icon [icon]=\"icon()\" [size]=\"iconSize()\" class=\"icon\" />\n}\n@if (loading()) {\n  <m-loader inline class=\"icon\" />\n}\n<ng-content />\n@if (closable() && showClose()) {\n  <m-icon [icon]=\"closeIcon() ?? defaults.closeIcon()\" [size]=\"closeIconSize() ?? defaults.closeIconSize()\" class=\"close icon\" (click)=\"close.emit($event)\" />\n}\n","import { Component, effect, input } from '@angular/core';\r\nimport { InvertibleComponent } from '../../base/invertible.component';\r\nimport { toBoolean } from '../../helpers/to-boolean';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { MessageComponent } from '../message/message.component';\r\n\r\n@Component({\r\n    selector: 'm-error',\r\n    templateUrl: './error.component.html',\r\n    styleUrls: ['./error.component.scss'],\r\n    providers: [...InvertibleComponent.providers]\r\n})\r\nexport class ErrorComponent extends InvertibleComponent {\r\n    public readonly ignored = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('ignored')\r\n            .registerFixed('visible', 'error', 'message');\r\n        effect(() => this.classes.set('ignored', this.ignored()));\r\n        effect(() => this.refreshInverted(MessageComponent.defaults.inverted()));\r\n    }\r\n}\r\n","<ng-content />","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'm-fill',\n    templateUrl: './fill.component.html',\n    styleUrls: ['./fill.component.scss']\n})\nexport class FillComponent {}\n","<ng-content />\r\n","import { computed, Directive, input } from '@angular/core';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { FlexAlignItems, FlexDirection, FlexJustifyContent } from './flex.types';\n\n@Directive({\n    selector: '[m-flex]',\n    host: {\n        '[style.display]': 'display',\n        '[style.flex-direction]': 'direction()',\n        '[style.align-items]': 'alignItems()',\n        '[style.justify-content]': 'justifyContent()',\n        '[style.gap]': 'gap()',\n        '[style.flex-wrap]': 'wrapStyle()'\n    }\n})\nexport class FlexDirective {\n    public static readonly default = { directive: FlexDirective, inputs: ['alignItems', 'justifyContent', 'column', 'reverse', 'gap', 'wrap', 'wrapReverse'] };\n    protected readonly display = 'flex';\n    public readonly column = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly reverse = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly alignItems = input<FlexAlignItems>();\n    public readonly justifyContent = input<FlexJustifyContent>();\n    public readonly gap = input<string>();\n    public readonly wrap = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly wrapReverse = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    protected readonly wrapStyle = computed(() => this.wrap() ? 'wrap' : this.wrapReverse() ? 'wrap-reverse' : '');\n    public readonly direction = computed<FlexDirection>(() => {\n        const column = this.column();\n        // eslint-disable-next-line unicorn/no-array-reverse\n        if (this.reverse()) {\n            return column ? 'column-reverse' : 'row-reverse';\n        }\n        return column ? 'column' : 'row';\n    });\n}\n","import { Component } from '@angular/core';\r\nimport { FlexDirective } from './flex.directive';\r\n\r\n@Component({\r\n    selector: 'm-flex',\r\n    template: '<ng-content/>',\r\n    hostDirectives: [FlexDirective.default]\r\n})\r\nexport class FlexComponent {}\r\n","import { Component, TemplateRef, viewChild } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'm-expander-header',\r\n    template: `\r\n        <ng-template>\r\n            <ng-content />\r\n        </ng-template>\r\n    `\r\n})\r\nexport class ExpanderHeaderComponent {\r\n    public readonly template = viewChild(TemplateRef);\r\n}\r\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, contentChild, effect, input, output, signal } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { transformableModel } from '../../helpers/transformable-model';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { FillComponent } from '../flex/fill/fill.component';\nimport { FlexComponent } from '../flex/flex.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\nimport { ExpanderHeaderComponent } from './expander-header.component';\n\n@Component({\n    selector: 'm-expander',\n    templateUrl: './expander.component.html',\n    styleUrls: ['./expander.component.scss'],\n    imports: [IconComponent, FlexComponent, FillComponent, NgTemplateOutlet],\n    providers: [...BaseComponent.providers]\n})\nexport class ExpanderComponent extends BaseComponent {\n    public static readonly defaults = {\n        dropdownIcon: signal<IconType>('caret right'),\n        dropdownIconSize: signal<IconSize>(undefined)\n    };\n    protected readonly defaults = ExpanderComponent.defaults;\n    public readonly header = input<string>();\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly expandedInput = input<boolean, BooleanLike>(false, { alias: 'expanded', transform: toBoolean });\n    public readonly expandedChange = output<boolean>();\n    public readonly expanded = transformableModel(this.expandedInput, this.expandedChange, toBoolean);\n    public readonly dropdownIcon = input<IconType>();\n    public readonly dropdownIconSize = input<IconSize>();\n    public readonly basic = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly iconPosition = input<'left' | 'right'>('left');\n    protected readonly headerTemplate = contentChild(ExpanderHeaderComponent);\n\n    public constructor() {\n        super();\n        this.classes.register('header', 'expanded', 'dropdownIcon', 'dropdownIconSize', 'styled')\n            .registerFixed('fluid', 'accordion');\n        effect(() => this.classes.set('styled', !this.basic()));\n    }\n\n    public toggle(): void {\n        if (this.expanded()) {\n            this.collapse();\n        }\n        else {\n            this.expand();\n        }\n    }\n\n    public collapse(): void {\n        this.expanded.set(false);\n    }\n\n    public expand(): void {\n        this.expanded.set(true);\n    }\n}\n","<m-flex class=\"title\" [reverse]=\"iconPosition() !== 'left'\" [class.active]=\"expanded()\" (click)=\"toggle()\">\n    <m-icon [icon]=\"dropdownIcon() ?? defaults.dropdownIcon()\" [size]=\"dropdownIconSize() ?? defaults.dropdownIconSize()\" iconClass=\"dropdown icon\" />\n    <m-fill>\n        @if (headerTemplate(); as headerComponent) {\n            <ng-container [ngTemplateOutlet]=\"headerComponent.template()\" />\n        } @else {\n            {{ header() }}\n        }\n    </m-fill>\n</m-flex>\n<div class=\"content\" [class.active]=\"expanded()\">\n    <ng-content />\n</div>\n","import { Component, effect, input, OnDestroy } from '@angular/core';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\nimport { ExpanderComponent } from './expander.component';\n\n@Component({\n    selector: 'm-expander-defaults',\n    template: ''\n})\nexport class ExpanderDefaultsComponent implements OnDestroy {\n    private readonly previousDropdownIcon = ExpanderComponent.defaults.dropdownIcon();\n    private readonly previousDropdownIconSize = ExpanderComponent.defaults.dropdownIconSize();\n    private currentDropdownIcon?: IconType;\n    private currentDropdownIconSize?: IconSize;\n    public readonly dropdownIcon = input<IconType>();\n    public readonly dropdownIconSize = input<IconSize>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.dropdownIcon();\n            if (value !== undefined) {\n                this.currentDropdownIcon = value;\n                ExpanderComponent.defaults.dropdownIcon.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.dropdownIconSize();\n            if (value !== undefined) {\n                this.currentDropdownIconSize = value;\n                ExpanderComponent.defaults.dropdownIconSize.set(value);\n            }\n        });\n    }\n\n    public ngOnDestroy(): void {\n        if (this.currentDropdownIcon === ExpanderComponent.defaults.dropdownIcon()) {\n            ExpanderComponent.defaults.dropdownIcon.set(this.previousDropdownIcon);\n        }\n        if (this.currentDropdownIconSize === ExpanderComponent.defaults.dropdownIconSize()) {\n            ExpanderComponent.defaults.dropdownIconSize.set(this.previousDropdownIconSize);\n        }\n    }\n}\n","import { Component, input, output } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { transformableModel } from '../../helpers/transformable-model';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { ExpanderComponent } from '../expander/expander.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\n\n@Component({\n    selector: 'm-expander-icon',\n    templateUrl: './expander-icon.component.html',\n    styleUrls: ['./expander-icon.component.scss'],\n    imports: [IconComponent],\n    providers: [...BaseComponent.providers],\n    host: {\n        '[class.expanded]': 'expanded()'\n    }\n})\nexport class ExpanderIconComponent extends BaseComponent {\n    protected readonly defaults = ExpanderComponent.defaults;\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly expandedInput = input<boolean, BooleanLike>(false, { alias: 'expanded', transform: toBoolean });\n    public readonly expandedChange = output<boolean>();\n    public readonly expanded = transformableModel(this.expandedInput, this.expandedChange, toBoolean);\n    public readonly dropdownIcon = input<IconType>();\n    public readonly dropdownIconSize = input<IconSize>();\n\n    public constructor() {\n        super();\n        this.classes.register('expanded');\n    }\n\n    public toggle(): void {\n        if (this.expanded()) {\n            this.collapse();\n        }\n        else {\n            this.expand();\n        }\n    }\n\n    public collapse(): void {\n        this.expanded.set(false);\n    }\n\n    public expand(): void {\n        this.expanded.set(true);\n    }\n}\n","<m-icon [icon]=\"dropdownIcon() ?? defaults.dropdownIcon()\" [size]=\"dropdownIconSize() ?? defaults.dropdownIconSize()\" />\r\n","import { Component, input, output, viewChild } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { transformableModel } from '../../helpers/transformable-model';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { ExpanderIconComponent } from '../expander-icon/expander-icon.component';\nimport { FillComponent } from '../flex/fill/fill.component';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\n\n@Component({\n    selector: 'm-expander-part',\n    templateUrl: './expander-part.component.html',\n    styleUrls: ['./expander-part.component.scss'],\n    imports: [FillComponent, ExpanderIconComponent],\n    providers: [...BaseComponent.providers],\n    host: {\n        '[class.expandable]': 'expandable()',\n        '[class.expanded]': 'expanded() && expandable() !== false',\n        '(click)': 'onClick()'\n    }\n})\nexport class ExpanderPartComponent extends BaseComponent {\n    public readonly expandable = input<boolean | undefined>(true);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly expandedInput = input<boolean, BooleanLike>(false, { alias: 'expanded', transform: toBoolean });\n    public readonly expandedChange = output<boolean>();\n    public readonly expanded = transformableModel(this.expandedInput, this.expandedChange, toBoolean);\n    public readonly dropdownIcon = input<IconType>();\n    public readonly dropdownIconSize = input<IconSize>();\n    protected readonly icon = viewChild(ExpanderIconComponent);\n\n    public constructor() {\n        super(false);\n        this.classes.register('expanded', 'expandable');\n    }\n\n    protected onClick(): void {\n        if (this.expandable() === false) {\n            return;\n        }\n        this.icon()?.toggle();\n    }\n}\n","<m-fill>\n    <ng-content />\n</m-fill>\n@if (expandable()) {\n    <m-expander-icon [expanded]=\"expanded()\" [dropdownIcon]=\"dropdownIcon()\" [dropdownIconSize]=\"dropdownIconSize()\" (expandedChange)=\"expanded.set($event)\" />\n}\n","import { Component, input } from '@angular/core';\r\nimport { IconSize } from '../icon/models/icon-size';\r\n\r\n@Component({\r\n    selector: 'm-flag',\r\n    templateUrl: './flag.component.html',\r\n    styleUrls: ['./flag.component.scss']\r\n})\r\nexport class FlagComponent {\r\n    public readonly flag = input<string>();\r\n    public readonly size = input<IconSize>();\r\n}\r\n","<i class=\"{{flag()}} {{size()}} flag\"></i>\r\n","export class Timespan {\r\n    public static readonly hoursInDay = 24;\r\n\r\n    public static readonly minutesInHour = 60;\r\n    public static readonly minutesInDay = this.minutesInHour * this.hoursInDay;\r\n\r\n    public static readonly secondsInMinute = 60;\r\n    public static readonly secondsInHour = this.secondsInMinute * this.minutesInHour;\r\n    public static readonly secondsInDay = this.secondsInMinute * this.minutesInDay;\r\n\r\n    public static readonly millisecondsInSecond = 1000;\r\n    public static readonly millisecondsInMinute = this.millisecondsInSecond * this.secondsInMinute;\r\n    public static readonly millisecondsInHour = this.millisecondsInSecond * this.secondsInHour;\r\n    public static readonly millisecondsInDay = this.millisecondsInSecond * this.secondsInDay;\r\n}\r\n","import { Timespan } from './timespan';\r\n\r\nexport abstract class DateHelper {\r\n    public static keepInRange(min: Date, value: Date | undefined, max?: Date | undefined): Date\r\n    public static keepInRange(min: Date | undefined, value: Date, max?: Date | undefined): Date\r\n    public static keepInRange(min: Date | undefined, value: Date | undefined, max?: Date): Date\r\n    public static keepInRange(min: Date | undefined, value: Date | undefined, max?: Date | undefined): Date {\r\n        if (min !== undefined && (value === undefined || value < min)) {\r\n            return min;\r\n        }\r\n        if (max !== undefined && (value === undefined || value > max)) {\r\n            return max;\r\n        }\r\n        return value as any;\r\n    }\r\n\r\n    public static sameDay(left: Date | undefined, right: Date | undefined): boolean {\r\n        if (!left || !right) {\r\n            return false;\r\n        }\r\n        return this.sameMonth(left, right) && left.getDate() === right.getDate();\r\n    }\r\n\r\n    public static sameWeek(left: Date | undefined, right: Date | undefined): boolean {\r\n        if (!left || !right) {\r\n            return false;\r\n        }\r\n        const leftDayOfYear = Math.floor((left.getTime() - new Date(left.getFullYear(), 0, 0).getTime()) / Timespan.millisecondsInDay);\r\n        const rightDayOfYear = Math.floor((right.getTime() - new Date(right.getFullYear(), 0, 0).getTime()) / Timespan.millisecondsInDay);\r\n        const leftWeekNumber = Math.ceil((leftDayOfYear + 1) / 7);\r\n        const rightWeekNumber = Math.ceil((rightDayOfYear + 1) / 7);\r\n        return leftWeekNumber === rightWeekNumber;\r\n    }\r\n\r\n    public static sameMonth(left: Date | undefined, right: Date | undefined): boolean {\r\n        if (!left || !right) {\r\n            return false;\r\n        }\r\n        return this.sameYear(left, right) && left.getMonth() === right.getMonth();\r\n    }\r\n\r\n    public static sameYear(left: Date | undefined, right: Date | undefined): boolean {\r\n        if (!left || !right) {\r\n            return false;\r\n        }\r\n        return left.getFullYear() === right.getFullYear();\r\n    }\r\n\r\n    public static today(): Date {\r\n        const today = new Date();\r\n        today.setUTCHours(0, 0, 0, 0);\r\n        return today;\r\n    }\r\n}\r\n","import { DatePipe, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, ContentChild, effect, ElementRef, input, OnInit, output, signal, untracked, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FallbackForDirective } from '../../../directives/fallback-for.directive';\nimport { DateHelper } from '../../../helpers/date-helper';\nimport { toBoolean } from '../../../helpers/to-boolean';\nimport { ColorName } from '../../../models/color';\nimport { IconComponent } from '../../icon/icon.component';\nimport { LabelComponent } from '../../label/label.component';\nimport { InputBaseComponent } from '../input-base.component';\n\n@Component({\n    selector: 'm-date-input',\n    templateUrl: './date-input.component.html',\n    styleUrls: ['./date-input.component.scss'],\n    imports: [IconComponent, FallbackForDirective, FormsModule, LabelComponent, NgTemplateOutlet, DatePipe],\n    providers: [...InputBaseComponent.providers]\n})\nexport class DateInputComponent extends InputBaseComponent implements OnInit {\n    // eslint-disable-next-line unicorn/no-null\n    protected readonly internalValue = signal<string | null>(null);\n    protected readonly valueState = signal<Date | undefined>(undefined);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly valueInput = input<Date | undefined, Date | number | string | undefined>(undefined, { alias: 'value', transform: value => DateInputComponent.coerceDate(value) });\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly dateInput = input<Date | undefined, Date | number | string | undefined>(undefined, { alias: 'date', transform: value => DateInputComponent.coerceDate(value) });\n    public readonly default = input(new Date(0));\n    public readonly min = input<Date>();\n    public readonly max = input<Date>();\n    public readonly showDay = input(false, { transform: toBoolean });\n    public readonly weekendColor = input<ColorName | undefined>('red');\n    public readonly value = computed(() => this.valueState());\n    public readonly date = computed(() => this.valueState() ?? this.default());\n    public readonly valueChange = output<Date | undefined>();\n    public readonly dateChange = output<Date>();\n\n    @ContentChild('input')\n    protected set contentInputElement(input: ElementRef<HTMLInputElement>) {\n        this.unbindEvents();\n        this.inputElement = input;\n        this.refreshInput();\n        this.bindEvents();\n        this.refreshFocus();\n    }\n\n    @ViewChild('input')\n    protected set viewInputElement(input: ElementRef<HTMLInputElement>) {\n        this.unbindEvents();\n        this.inputElement = input;\n        this.bindEvents();\n        this.refreshFocus();\n    }\n\n    public constructor() {\n        super();\n        this.classes.register('min', 'max', 'default', 'value', 'date', 'showDay', 'weekendColor');\n        effect(() => this.classes.set('labeled', this.showDay()));\n        // [value] flows into the shared state (normalising the display); [date] is guarded so an unbound alias can't clobber [value].\n        effect(() => {\n            const value = this.valueInput();\n            untracked(() => this.applyValue(value));\n        });\n        effect(() => {\n            const value = this.dateInput();\n            untracked(() => {\n                if (value !== undefined) {\n                    this.applyValue(value);\n                }\n            });\n        });\n    }\n\n    public override ngOnInit(): void {\n        super.ngOnInit();\n        // Set internal value on blur to ensure a invalid value is overwritten\n        this.blur.subscribe(() => this.setInternalValue(this.value()));\n    }\n\n    protected onInternalChange(rawValue: string): void {\n        let value = rawValue ? new Date(rawValue) : undefined;\n        if (value) {\n            this.setInternalValue(value);\n        }\n        value = DateHelper.keepInRange(this.min(), value, this.max());\n        if (value !== this.value()) {\n            this.valueState.set(value);\n            this.valueChange.emit(this.value());\n            this.dateChange.emit(this.date());\n        }\n    }\n\n    // Mirrors the old `value` setter: normalise the display only when the value actually changes, then store it (without emitting).\n    private applyValue(value: Date | undefined): void {\n        if (value != this.valueState()) {\n            this.setInternalValue(value);\n        }\n        this.valueState.set(value);\n    }\n\n    private static coerceDate(value: Date | number | string | undefined): Date | undefined {\n        const date = value ? new Date(value) : undefined;\n        return isNaN(date?.getDate() as any) ? undefined : date;\n    }\n\n    private setInternalValue(value: Date | null | undefined): void {\n        // Use null to avoid strange input behaviour with undefined values (e.g. input of negative values requires two minus signs to work)\n        // eslint-disable-next-line no-null/no-null\n        this.internalValue.set(value?.toISOString().split('T')[0] ?? null);\n    }\n}\n","@if (!isRight()) {\n    <ng-container [ngTemplateOutlet]=\"labelTemplate\" />\n}\n@if (buttonPosition() === 'left') {\n    <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n}\n<ng-content />\n<input *m-fallback-for=\"'input'\" type=\"date\" [placeholder]=\"placeholder() || ''\" [ngModel]=\"internalValue()\" [min]=\"min() || ''\" [max]=\"max() || ''\" [attr.name]=\"name()\" [attr.for]=\"for()\" [attr.readOnly]=\"readonly() || undefined\" [attr.disabled]=\"disabled() || undefined\" (ngModelChange)=\"onInternalChange($event)\" #input>\n@if (icon()) {\n    <m-icon [icon]=\"icon()\" [size]=\"iconSize()\" class=\"link icon\" />\n}\n@if (isRight()) {\n    <ng-container [ngTemplateOutlet]=\"labelTemplate\" />\n}\n@if (buttonPosition() === 'right') {\n    <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n}\n\n<ng-template #labelTemplate>\n    @if (showDay()) {\n        <m-label [color]=\"value()?.getDay() === 0 || value()?.getDay() === 6 ? weekendColor() : undefined\">{{ value() | date: 'E' }}</m-label>\n    }\n    <ng-content select=\"m-label\" />\n    <ng-content select=\"m-label-dropdown\" />\n</ng-template>\n\n<ng-template #contentTemplate>\n    <ng-content select=\"m-button\" />\n    <ng-content select=\"m-icon-button\" />\n</ng-template>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, ContentChild, effect, ElementRef, input, OnInit, output, signal, untracked, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FallbackForDirective } from '../../../directives/fallback-for.directive';\nimport { Math2 } from '../../../helpers/math2';\nimport { toBoolean } from '../../../helpers/to-boolean';\nimport { IconComponent } from '../../icon/icon.component';\nimport { InputBaseComponent } from '../input-base.component';\n\n@Component({\n    selector: 'm-numeric-input',\n    templateUrl: './numeric-input.component.html',\n    styleUrls: ['./numeric-input.component.scss'],\n    imports: [IconComponent, FallbackForDirective, FormsModule, NgTemplateOutlet],\n    providers: [...InputBaseComponent.providers]\n})\nexport class NumericInputComponent extends InputBaseComponent implements OnInit {\n    // eslint-disable-next-line unicorn/no-null\n    protected readonly internalValue = signal<number | null>(null);\n    protected readonly valueState = signal<number | undefined>(undefined);\n    public readonly default = input(0);\n    public readonly min = input<number>();\n    public readonly max = input<number>();\n    public readonly zeroText = input<string>();\n    public readonly range = input(false, { transform: toBoolean });\n    public readonly type = computed<'number' | 'range'>(() => this.range() ? 'range' : 'number');\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly valueInput = input<number | undefined>(undefined, { alias: 'value' });\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly numberInput = input<number | undefined>(undefined, { alias: 'number' });\n    public readonly value = computed(() => this.valueState());\n    public readonly number = computed(() => this.valueState() ?? this.default());\n    protected readonly placeholderInternal = computed(() => {\n        const zeroText = this.zeroText();\n        return this.value() === 0 && zeroText ? zeroText : this.placeholder() ?? '';\n    });\n    public readonly valueChange = output<number | undefined>();\n    public readonly numberChange = output<number>();\n\n    @ContentChild('input')\n    protected set contentInputElement(input: ElementRef<HTMLInputElement>) {\n        this.unbindEvents();\n        this.inputElement = input;\n        this.refreshInput();\n        this.bindEvents();\n        this.refreshFocus();\n    }\n\n    @ViewChild('input')\n    protected set viewInputElement(input: ElementRef<HTMLInputElement>) {\n        this.unbindEvents();\n        this.inputElement = input;\n        this.bindEvents();\n        this.refreshFocus();\n    }\n\n    public constructor() {\n        super();\n        this.classes.register('min', 'max', 'default', 'value', 'range', 'zeroText', 'number');\n        // [value] flows into the shared state (normalising the display); [number] is guarded so an unbound alias can't clobber [value].\n        effect(() => {\n            const value = this.valueInput();\n            untracked(() => this.applyValue(value));\n        });\n        effect(() => {\n            const value = this.numberInput();\n            untracked(() => {\n                if (value !== undefined) {\n                    this.applyValue(value);\n                }\n            });\n        });\n    }\n\n    public override ngOnInit(): void {\n        super.ngOnInit();\n        // Set internal value on blur to ensure a invalid value is overwritten\n        this.blur.subscribe(() => this.setInternalValue(this.value()));\n    }\n\n    protected onInternalChange(rawValue: string | null | undefined): void {\n        let value = typeof rawValue === 'string' ? rawValue !== '' ? parseFloat(rawValue) : undefined : rawValue ?? undefined;\n        this.setInternalValue(value);\n        value = value == undefined || Number.isNaN(value) ? undefined : Math2.keepInRange(this.min(), value, this.max());\n        if (value !== this.value()) {\n            this.valueState.set(value);\n            this.valueChange.emit(this.value());\n            this.numberChange.emit(this.number());\n        }\n    }\n\n    // Mirrors the old `value` setter: normalise the display only when the value actually changes, then store it (without emitting).\n    private applyValue(value: number | undefined): void {\n        if (value != this.valueState()) {\n            this.setInternalValue(value);\n        }\n        this.valueState.set(value);\n    }\n\n    private setInternalValue(value: number | null | undefined): void {\n        if (value === 0 && this.zeroText()) {\n            // Use null to avoid strange input behaviour with undefined values (e.g. input of negative values requires two minus signs to work)\n            // eslint-disable-next-line no-null/no-null\n            this.internalValue.set(null);\n            return;\n        }\n        // Use null to avoid strange input behaviour with undefined values (e.g. input of negative values requires two minus signs to work)\n        // eslint-disable-next-line no-null/no-null\n        this.internalValue.set(value ?? null);\n    }\n}\n","@if (!isRight()) {\n    <ng-container [ngTemplateOutlet]=\"labelTemplate\" />\n}\n@if (buttonPosition() === 'left') {\n    <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n}\n<ng-content />\n<input *m-fallback-for=\"'input'\" [type]=\"type()\" [placeholder]=\"placeholderInternal() || ''\" [ngModel]=\"internalValue()\" [min]=\"min() || ''\" [max]=\"max() || ''\" [attr.name]=\"name()\" [attr.for]=\"for()\" [attr.readOnly]=\"readonly() || undefined\" [attr.disabled]=\"disabled() || undefined\" (ngModelChange)=\"onInternalChange($event)\" #input>\n@if (icon()) {\n    <m-icon [icon]=\"icon()\" [size]=\"iconSize()\" class=\"link icon\" />\n}\n@if (isRight()) {\n    <ng-container [ngTemplateOutlet]=\"labelTemplate\" />\n}\n@if (buttonPosition() === 'right') {\n    <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n}\n\n<ng-template #labelTemplate>\n    <ng-content select=\"m-label\" />\n    <ng-content select=\"m-label-dropdown\" />\n</ng-template>\n\n<ng-template #contentTemplate>\n    <ng-content select=\"m-button\" />\n    <ng-content select=\"m-icon-button\" />\n</ng-template>\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { RadioCheckEvent } from '../models/radio-check-event';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class RadioService {\r\n    private readonly checkedSubject = new Subject<RadioCheckEvent>();\r\n    public readonly checked = this.checkedSubject.asObservable();\r\n\r\n    public check(group: string, value: unknown): void {\r\n        this.checkedSubject.next({ group, value });\r\n    }\r\n}\r\n","import { Component, inject } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { RadioService } from '../../services/radio.service';\r\nimport { CheckboxComponent } from '../checkbox/checkbox.component';\r\n\r\n@Component({\r\n    selector: 'm-radio',\r\n    templateUrl: './radio.component.html',\r\n    styleUrls: ['./radio.component.scss'],\r\n    imports: [FormsModule],\r\n    providers: [...CheckboxComponent.providers]\r\n})\r\nexport class RadioComponent extends CheckboxComponent {\r\n    private readonly radioService = inject(RadioService);\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('radio');\r\n        this.canUncheck.set(false);\r\n        this.radioService.checked.pipe(\r\n            filter(event => !!event.group && event.group === (this.name() ?? '') && event.value !== this),\r\n            takeUntil(this.destroy)\r\n        ).subscribe(() => this.checkedState.set(false));\r\n        this.valueChange.subscribe(value => {\r\n            if (value) {\r\n                this.radioService.check(this.name() ?? '', this);\r\n            }\r\n        });\r\n    }\r\n}\r\n","<input type=\"checkbox\" [name]=\"name() ?? ''\" [ngModel]=\"value()\" [indeterminate]=\"indeterminate()\" class=\"hidden\">\n<label [attr.for]=\"name() ?? ''\">\n    {{ label() }}\n    <ng-content />\n</label>\n","import { Component, inject } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { RadioService } from '../../services/radio.service';\r\nimport { CheckboxComponent } from '../checkbox/checkbox.component';\r\n\r\n@Component({\r\n    selector: 'm-slider',\r\n    templateUrl: './slider.component.html',\r\n    styleUrls: ['./slider.component.scss'],\r\n    imports: [FormsModule],\r\n    providers: [...CheckboxComponent.providers]\r\n})\r\nexport class SliderComponent extends CheckboxComponent {\r\n    private readonly radioService = inject(RadioService);\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('slider');\r\n        this.radioService.checked.pipe(\r\n            filter(event => !!event.group && event.group === (this.name() ?? '') && event.value !== this),\r\n            takeUntil(this.destroy)\r\n        ).subscribe(() => this.checkedState.set(false));\r\n        this.valueChange.subscribe(value => {\r\n            if (value) {\r\n                this.radioService.check(this.name() ?? '', this);\r\n            }\r\n        });\r\n    }\r\n}\r\n","<input type=\"checkbox\" [name]=\"name() ?? ''\" [ngModel]=\"value()\" [indeterminate]=\"indeterminate()\" class=\"hidden\">\n<label [attr.for]=\"name() ?? ''\">\n    {{ label() }}\n    <ng-content />\n</label>\n","import { Component, computed, ContentChild, effect, ElementRef, input, model, output, signal, untracked, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { InvertibleComponent } from '../../base/invertible.component';\nimport { FallbackForDirective } from '../../directives/fallback-for.directive';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { transformableModel } from '../../helpers/transformable-model';\nimport { BooleanLike } from '../../models/boolean-like';\n\n@Component({\n    selector: 'm-textarea',\n    templateUrl: './textarea.component.html',\n    styleUrls: ['./textarea.component.scss'],\n    imports: [FormsModule, FallbackForDirective],\n    providers: [...InvertibleComponent.providers],\n    host: {\n        '[class.disabled]': 'disabled() || readonly()',\n        '[class.error]': 'hasError()'\n    }\n})\nexport class TextareaComponent extends InvertibleComponent {\n    public static readonly defaults = {\n        inverted: signal(false)\n    };\n    protected readonly valueState = signal<string | undefined>(undefined);\n    public textareaElement?: ElementRef<HTMLTextAreaElement>;\n    public readonly name = model<string>();\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly disabledInput = input<boolean, BooleanLike>(false, { alias: 'disabled', transform: toBoolean });\n    public readonly disabledChange = output<boolean>();\n    public readonly disabled = transformableModel(this.disabledInput, this.disabledChange, toBoolean);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly readonlyInput = input<boolean, BooleanLike>(false, { alias: 'readonly', transform: toBoolean });\n    public readonly readonlyChange = output<boolean>();\n    public readonly readonly = transformableModel(this.readonlyInput, this.readonlyChange, toBoolean);\n    public readonly hasError = input(false);\n    public readonly placeholder = input<string>();\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly valueInput = input<string | undefined>(undefined, { alias: 'value' });\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly textInput = input<string | undefined>(undefined, { alias: 'text' });\n    public readonly default = input('');\n    public readonly inputId = input<string>();\n    public readonly value = computed(() => this.valueState());\n    public readonly text = computed(() => this.valueState() ?? this.default());\n    public readonly valueChange = output<string | undefined>();\n    public readonly textChange = output<string>();\n    public readonly keyDown = output<KeyboardEvent>();\n    public readonly keyUp = output<KeyboardEvent>();\n    public readonly keyPress = output<Event>();\n    // eslint-disable-next-line @angular-eslint/no-output-native\n    public readonly blur = output<FocusEvent>();\n    // eslint-disable-next-line @angular-eslint/no-output-native\n    public readonly focus = output<FocusEvent>();\n    // eslint-disable-next-line @angular-eslint/no-output-native\n    public readonly focusin = output<FocusEvent>();\n    // eslint-disable-next-line @angular-eslint/no-output-native\n    public readonly focusout = output<FocusEvent>();\n\n    @ContentChild('textarea')\n    protected set contentTextareaElement(textarea: ElementRef<HTMLTextAreaElement>) {\n        this.unbindEvents();\n        this.textareaElement = textarea;\n        this.refreshTextarea();\n        this.bindEvents();\n    }\n\n    @ViewChild('textarea')\n    protected set viewInputElement(textarea: ElementRef<HTMLTextAreaElement>) {\n        this.unbindEvents();\n        this.textareaElement = textarea;\n        this.bindEvents();\n    }\n\n    public constructor() {\n        super();\n        this.classes.register('disabled', 'readonly', 'hasError', 'fluid', 'value', 'text', 'default', 'placeholder')\n            // HACK: Currently I do not know a other way to style a textarea with semantic ui, so I have to use form class here\n            .registerFixed('form', 'textarea');\n        effect(() => this.refreshInverted(TextareaComponent.defaults.inverted()));\n        // Push disabled/readonly onto the native element whenever they change.\n        effect(() => {\n            this.disabled();\n            this.readonly();\n            this.refreshTextarea();\n        });\n        // [value] flows into the shared state; [text] is guarded so an unbound alias can't clobber [value].\n        effect(() => {\n            const value = this.valueInput();\n            untracked(() => this.valueState.set(value));\n        });\n        effect(() => {\n            const value = this.textInput();\n            untracked(() => {\n                if (value !== undefined) {\n                    this.valueState.set(value);\n                }\n            });\n        });\n    }\n\n    protected setValue(value: string | undefined): void {\n        this.valueState.set(value);\n        this.onChange();\n    }\n\n    protected onChange(): void {\n        this.valueChange.emit(this.value() ?? this.default());\n        this.textChange.emit(this.text());\n    }\n\n    private refreshTextarea(): void {\n        if (!this.textareaElement) {\n            return;\n        }\n        this.textareaElement.nativeElement.disabled = this.disabled();\n        this.textareaElement.nativeElement.readOnly = this.readonly();\n    }\n\n    private readonly keyDownEventHandler = (event: KeyboardEvent): void => this.keyDown.emit(event);\n    private readonly keyUpEventHandler = (event: KeyboardEvent): void => this.keyUp.emit(event);\n    private readonly keyPressEventHandler = (event: Event): void => this.keyPress.emit(event);\n    private readonly blurEventHandler = (event: FocusEvent): void => this.blur.emit(event);\n    private readonly focusEventHandler = (event: FocusEvent): void => this.focus.emit(event);\n    private readonly focusinEventHandler = (event: FocusEvent): void => this.focusin.emit(event);\n    private readonly focusoutEventHandler = (event: FocusEvent): void => this.focusout.emit(event);\n\n    protected bindEvents(): void {\n        if (!this.textareaElement) {\n            return;\n        }\n        // TODO: Improve event binding!\n        this.textareaElement.nativeElement.addEventListener('keydown', this.keyDownEventHandler);\n        this.textareaElement.nativeElement.addEventListener('keyup', this.keyUpEventHandler);\n        this.textareaElement.nativeElement.addEventListener('keyPress', this.keyPressEventHandler);\n        this.textareaElement.nativeElement.addEventListener('blur', this.blurEventHandler);\n        this.textareaElement.nativeElement.addEventListener('focus', this.focusEventHandler);\n        this.textareaElement.nativeElement.addEventListener('focusin', this.focusinEventHandler);\n        this.textareaElement.nativeElement.addEventListener('focusout', this.focusoutEventHandler);\n    }\n\n    protected unbindEvents(): void {\n        if (!this.textareaElement) {\n            return;\n        }\n        this.textareaElement.nativeElement.removeEventListener('keydown', this.keyDownEventHandler);\n        this.textareaElement.nativeElement.removeEventListener('keyup', this.keyUpEventHandler);\n        this.textareaElement.nativeElement.removeEventListener('keyPress', this.keyPressEventHandler);\n        this.textareaElement.nativeElement.removeEventListener('blur', this.blurEventHandler);\n        this.textareaElement.nativeElement.removeEventListener('focus', this.focusEventHandler);\n        this.textareaElement.nativeElement.removeEventListener('focusin', this.focusinEventHandler);\n        this.textareaElement.nativeElement.removeEventListener('focusout', this.focusoutEventHandler);\n    }\n}\n","<ng-content />\n<textarea *m-fallback-for=\"'input'\" [placeholder]=\"placeholder() || ''\" [ngModel]=\"value()\" [readOnly]=\"readonly() ? true : undefined\" [disabled]=\"$any(disabled() ? true : undefined)\" [attr.id]=\"inputId()\" (ngModelChange)=\"setValue($event)\" #textarea></textarea>\n","import { Component, inject } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { RadioService } from '../../services/radio.service';\r\nimport { CheckboxComponent } from '../checkbox/checkbox.component';\r\n\r\n@Component({\r\n    selector: 'm-toggle',\r\n    templateUrl: './toggle.component.html',\r\n    styleUrls: ['./toggle.component.scss'],\r\n    imports: [FormsModule],\r\n    providers: [...CheckboxComponent.providers]\r\n})\r\nexport class ToggleComponent extends CheckboxComponent {\r\n    private readonly radioService = inject(RadioService);\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('toggle');\r\n        this.radioService.checked.pipe(\r\n            filter(event => !!event.group && event.group === (this.name() ?? '') && event.value !== this),\r\n            takeUntil(this.destroy)\r\n        ).subscribe(() => this.checkedState.set(false));\r\n        this.valueChange.subscribe(value => {\r\n            if (value) {\r\n                this.radioService.check(this.name() ?? '', this);\r\n            }\r\n        });\r\n    }\r\n}\r\n","<input type=\"checkbox\" [name]=\"name() ?? ''\" [ngModel]=\"value()\" [indeterminate]=\"indeterminate()\" class=\"hidden\">\n<label [attr.for]=\"name() ?? ''\">\n    {{ label() }}\n    <ng-content />\n</label>\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { FormError } from '../../models/form-error';\r\n\r\n@Pipe({\r\n    name: 'fieldFormatErrors'\r\n})\r\nexport class FieldFormatErrorsPipe implements PipeTransform {\r\n    public transform(errors: FormError[]): string {\r\n        return errors.map(error => error.label + ' ' + error.message).join('\\n');\r\n    }\r\n}\r\n","import { Component, contentChild, effect, ElementRef, input, output, OutputEmitterRef, OutputRefSubscription, signal, untracked } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { transformableModel } from '../../helpers/transformable-model';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { FieldSize, ParsableFieldSize, parseFieldSize } from '../../models/field-size';\nimport { FormError } from '../../models/form-error';\nimport { FormValidation } from '../../models/form-validation';\nimport { CheckboxComponent } from '../checkbox/checkbox.component';\nimport { DropdownComponent } from '../dropdown/dropdown.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\nimport { DateInputComponent } from '../input/date/date-input.component';\nimport { NumericInputComponent } from '../input/numeric/numeric-input.component';\nimport { InputComponent } from '../input/text/input.component';\nimport { RadioComponent } from '../radio/radio.component';\nimport { SliderComponent } from '../slider/slider.component';\nimport { TextareaComponent } from '../textarea/textarea.component';\nimport { ToggleComponent } from '../toggle/toggle.component';\nimport { FieldFormatErrorsPipe } from './field-format-errors.pipe';\n\n@Component({\n    selector: 'm-field',\n    templateUrl: './field.component.html',\n    styleUrls: ['./field.component.scss'],\n    imports: [IconComponent, FieldFormatErrorsPipe],\n    providers: [...BaseComponent.providers],\n    host: {\n        '[class.wide]': 'size()',\n        '[class.error]': 'visibleError()',\n        '[class.disabled]': 'disabled()',\n        '[class.readonly]': 'readonly()',\n        '[class.inline]': 'inline()',\n        '[class.fill]': 'fill()'\n    }\n})\nexport class FieldComponent extends BaseComponent {\n    public static readonly defaults = {\n        hintIcon: signal<IconType>('info circle'),\n        hintIconSize: signal<IconSize>(undefined),\n        errorIcon: signal<IconType>('exclamation circle'),\n        errorIconSize: signal<IconSize>(undefined)\n    };\n    protected readonly defaults = FieldComponent.defaults;\n    private originalLabel?: string;\n    private labelSaved = false;\n    protected readonly wasAnytimeValid = signal(false);\n    protected readonly labelElement = contentChild<ElementRef<HTMLLabelElement>>('labelElement');\n    protected readonly inputComponent = contentChild(InputComponent);\n    protected readonly numericInputComponent = contentChild(NumericInputComponent);\n    protected readonly dateInputComponent = contentChild(DateInputComponent);\n    protected readonly checkboxComponent = contentChild(CheckboxComponent);\n    protected readonly sliderComponent = contentChild(SliderComponent);\n    protected readonly toggleComponent = contentChild(ToggleComponent);\n    protected readonly radioComponent = contentChild(RadioComponent);\n    protected readonly textareaComponent = contentChild(TextareaComponent);\n    protected readonly dropDownComponent = contentChild(DropdownComponent);\n    public readonly name = input<string>();\n    public readonly label = input<string>();\n    public readonly hint = input<string>();\n    public readonly size = input<FieldSize, ParsableFieldSize>('', { transform: value => parseFieldSize(value) });\n    public readonly disabled = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly readonly = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly inline = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly hideInitialError = input(true);\n    public readonly fill = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly ownLabel = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly forceLabel = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly valid = input<boolean | FormValidation | undefined>(undefined);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly errorInput = input<boolean, BooleanLike>(false, { alias: 'error', transform: toBoolean });\n    private readonly errorState = signal(false);\n    public readonly error = this.errorState.asReadonly();\n    protected readonly visibleError = signal(false);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly inlineValidationInput = input<boolean, BooleanLike>(false, { alias: 'inlineValidation', transform: toBoolean });\n    public readonly inlineValidationChange = output<boolean>();\n    public readonly inlineValidation = transformableModel(this.inlineValidationInput, this.inlineValidationChange, toBoolean);\n    public readonly errors = signal<FormError[]>([]);\n    public readonly errorChange = output<boolean>();\n    public readonly change = output();\n\n    public constructor() {\n        super(false);\n        this.classes.registerFixed('field');\n        this.classes.register('size', 'disabled', 'readonly', 'inline', 'label', 'fill', 'name');\n        effect(() => this.classes.set('size', this.size()));\n\n        // Propagate name/for to every projected child input (and the label element).\n        effect(() => {\n            const name = this.name();\n            this.labelElement()?.nativeElement.setAttribute('for', name ?? '');\n            this.inputComponent()?.for.set(name);\n            this.inputComponent()?.name.set(name);\n            this.numericInputComponent()?.for.set(name);\n            this.numericInputComponent()?.name.set(name);\n            this.dateInputComponent()?.for.set(name);\n            this.dateInputComponent()?.name.set(name);\n            this.checkboxComponent()?.name.set(name);\n            this.sliderComponent()?.name.set(name);\n            this.toggleComponent()?.name.set(name);\n            this.radioComponent()?.name.set(name);\n            this.textareaComponent()?.name.set(name);\n            this.dropDownComponent()?.name.set(name);\n        });\n\n        // Propagate readonly.\n        effect(() => {\n            const readonly = this.readonly();\n            this.inputComponent()?.readonly.set(readonly);\n            this.numericInputComponent()?.readonly.set(readonly);\n            this.dateInputComponent()?.readonly.set(readonly);\n            this.textareaComponent()?.readonly.set(readonly);\n            this.checkboxComponent()?.readonly.set(readonly);\n            this.sliderComponent()?.readonly.set(readonly);\n            this.toggleComponent()?.readonly.set(readonly);\n            this.radioComponent()?.readonly.set(readonly);\n            this.dropDownComponent()?.readonly.set(readonly);\n        });\n\n        // Propagate disabled.\n        effect(() => {\n            const disabled = this.disabled();\n            this.inputComponent()?.disabled.set(disabled);\n            this.numericInputComponent()?.disabled.set(disabled);\n            this.dateInputComponent()?.disabled.set(disabled);\n            this.textareaComponent()?.disabled.set(disabled);\n            this.checkboxComponent()?.disabled.set(disabled);\n            this.sliderComponent()?.disabled.set(disabled);\n            this.toggleComponent()?.disabled.set(disabled);\n            this.radioComponent()?.disabled.set(disabled);\n            this.dropDownComponent()?.disabled.set(disabled);\n        });\n\n        // Propagate the field label to checkbox-family children (unless they own their label).\n        effect(() => {\n            const label = this.label();\n            const ownLabel = this.ownLabel();\n            const checkbox = this.checkboxComponent();\n            const slider = this.sliderComponent();\n            const toggle = this.toggleComponent();\n            const radio = this.radioComponent();\n            untracked(() => {\n                this.propagateLabel(checkbox, label, ownLabel);\n                this.propagateLabel(slider, label, ownLabel);\n                this.propagateLabel(toggle, label, ownLabel);\n                this.propagateLabel(radio, label, ownLabel);\n            });\n        });\n\n        // Forward each child's value change as the field's change, re-wiring when the projected child changes.\n        effect(onCleanup => {\n            const subscriptions: OutputRefSubscription[] = [];\n            const subscribe = <T>(component: { valueChange: OutputEmitterRef<T> } | undefined): void => {\n                if (component) {\n                    subscriptions.push(component.valueChange.subscribe(() => this.change.emit()));\n                }\n            };\n            subscribe(this.inputComponent());\n            subscribe(this.numericInputComponent());\n            subscribe(this.dateInputComponent());\n            subscribe(this.checkboxComponent());\n            subscribe(this.sliderComponent());\n            subscribe(this.toggleComponent());\n            subscribe(this.radioComponent());\n            subscribe(this.textareaComponent());\n            subscribe(this.dropDownComponent());\n            onCleanup(() => {\n                for (const subscription of subscriptions) {\n                    subscription.unsubscribe();\n                }\n            });\n        });\n\n        // External [error] binding flows through the same dedupe/emit the old setter did.\n        effect(() => {\n            const value = this.errorInput();\n            untracked(() => this.setError(value));\n        });\n\n        // [valid] runs the validation logic.\n        effect(() => {\n            const value = this.valid();\n            untracked(() => {\n                if (value !== undefined) {\n                    this.applyValidation(value);\n                }\n            });\n        });\n    }\n\n    public forceValidation(): void {\n        this.wasAnytimeValid.set(true);\n        this.visibleError.set(this.error());\n    }\n\n    private propagateLabel(child: CheckboxComponent | undefined, label: string | undefined, ownLabel: boolean): void {\n        if (!child) {\n            return;\n        }\n        // Save the child's own label once, before the field ever overrides it, so ownLabel can restore it.\n        if (!this.labelSaved) {\n            this.originalLabel = child.label();\n            this.labelSaved = true;\n        }\n        child.label.set(ownLabel ? this.originalLabel : label);\n    }\n\n    private setError(value: boolean): void {\n        if (this.errorState() === value) {\n            return;\n        }\n        this.errorState.set(value);\n        this.visibleError.set(value);\n        this.errorChange.emit(value);\n    }\n\n    private applyValidation(value: boolean | FormValidation): void {\n        const oldError = this.error();\n        const newError = typeof value === 'boolean' ? !value : !value.valid;\n        if (newError) {\n            const message = typeof value === 'boolean' ? '' : value.message ?? '';\n            const label = ((typeof value === 'boolean') || (value.label === undefined) ? this.label() : value.label) ?? '';\n            this.errors.set([{ message, label }]);\n        }\n        else {\n            this.errors.set([]);\n        }\n        if (newError !== oldError) {\n            this.setError(newError);\n            this.refreshClasses();\n        }\n        if (!this.error()) {\n            this.wasAnytimeValid.set(true);\n        }\n        else if (this.hideInitialError() && !this.wasAnytimeValid()) {\n            this.visibleError.set(false);\n        }\n    }\n}\n","@if ((checkboxComponent() || sliderComponent() || toggleComponent() || radioComponent()) && !ownLabel() && forceLabel()) {\n    <label [attr.for]=\"name()\" class=\"empty label\">&nbsp;</label>\n} @else if (label() || hint()) {\n    @if ((label() || hint()) && (!checkboxComponent() && !sliderComponent() && !toggleComponent() && !radioComponent() || ownLabel())) {\n        <label [attr.for]=\"name()\" #labelElement>\n            {{ label() }}\n            @if (hint()) {\n                <m-icon [icon]=\"defaults.hintIcon()\" [size]=\"defaults.hintIconSize()\" [title]=\"hint()\" />\n            }\n            @if (inlineValidation() && errors().length) {\n                <m-icon [icon]=\"defaults.errorIcon()\" [size]=\"defaults.errorIconSize()\" [title]=\"errors() | fieldFormatErrors\" />\n            }\n        </label>\n    }\n}\n\n<ng-content />\n","import { Component, computed, contentChildren, effect, input, OnDestroy, output, OutputRefSubscription, signal, untracked } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { transformableModel } from '../../helpers/transformable-model';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { FieldComponent } from '../field/field.component';\nimport { FieldsType } from './models/fields-type';\n\n@Component({\n    selector: 'm-field-group',\n    templateUrl: './field-group.component.html',\n    styleUrls: ['./field-group.component.scss'],\n    providers: [...BaseComponent.providers],\n    host: {\n        '[class.grouped]': 'grouped()'\n    }\n})\nexport class FieldGroupComponent extends BaseComponent implements OnDestroy {\n    private static readonly fieldClasses: FieldsType[] = ['', '', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten'];\n    private readonly changeSubscriptions: OutputRefSubscription[] = [];\n    public readonly fieldComponents = contentChildren(FieldComponent);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly fieldsInput = input<FieldsType | undefined, FieldsType>(undefined, { alias: 'fields', transform: value => typeof value === 'number' ? FieldGroupComponent.fieldClasses[value] : value });\n    private readonly fieldsAutoValue = signal<FieldsType | undefined>(undefined);\n    public readonly fields = computed(() => this.fieldsInput() || this.fieldsAutoValue());\n    public readonly grouped = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly inline = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly inlineValidationInput = input<boolean, BooleanLike>(false, { alias: 'inlineValidation', transform: toBoolean });\n    public readonly inlineValidationChange = output<boolean>();\n    public readonly inlineValidation = transformableModel(this.inlineValidationInput, this.inlineValidationChange, toBoolean);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly errorInput = input<boolean, BooleanLike>(false, { alias: 'error', transform: toBoolean });\n    private readonly errorState = signal(false);\n    public readonly error = this.errorState.asReadonly();\n    public readonly errorChange = output<boolean>();\n    // eslint-disable-next-line @angular-eslint/no-output-native\n    public readonly change = output();\n\n    public constructor() {\n        super(false);\n        this.classes.register('inline', 'grouped')\n            .registerFixed('fields');\n        effect(() => this.classes.set('inline', this.inline()));\n\n        // React to the projected fields: derive the column-count class, re-wire change/error subscriptions, recheck validity.\n        effect(() => {\n            const fields = this.fieldComponents();\n            untracked(() => {\n                this.fieldsAutoValue.set(FieldGroupComponent.fieldClasses[fields.length]);\n                this.refreshChangeSubscriptions(fields);\n                this.refreshIsValid();\n            });\n        });\n\n        // Propagate inlineValidation to child fields when it or the field set changes.\n        effect(() => {\n            const inlineValidation = this.inlineValidation();\n            const fields = this.fieldComponents();\n            untracked(() => {\n                for (const field of fields) {\n                    field.inlineValidation.set(inlineValidation);\n                }\n            });\n        });\n\n        // External [error] binding flows through the same dedupe/emit the old setter did.\n        effect(() => {\n            const value = this.errorInput();\n            untracked(() => this.setError(value));\n        });\n    }\n\n    public override ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this.unsubscribeAllChanges();\n    }\n\n    private refreshChangeSubscriptions(fields: readonly FieldComponent[]): void {\n        this.unsubscribeAllChanges();\n        for (const field of fields) {\n            this.changeSubscriptions.push(\n                field.change.subscribe(() => this.change.emit()),\n                field.errorChange.subscribe(() => this.refreshIsValid())\n            );\n        }\n    }\n\n    private unsubscribeAllChanges(): void {\n        for (const subscription of this.changeSubscriptions) {\n            subscription.unsubscribe();\n        }\n        this.changeSubscriptions.length = 0;\n    }\n\n    private refreshIsValid(): void {\n        this.setError(this.fieldComponents().some(component => component.error()));\n    }\n\n    private setError(value: boolean): void {\n        if (this.errorState() === value) {\n            return;\n        }\n        this.errorState.set(value);\n        this.errorChange.emit(value);\n    }\n}\n","<ng-content />","import { Component, effect, input, OnDestroy } from '@angular/core';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\nimport { FieldComponent } from './field.component';\n\n@Component({\n    selector: 'm-field-defaults',\n    template: ''\n})\nexport class FieldDefaultsComponent implements OnDestroy {\n    private readonly previousHintIcon = FieldComponent.defaults.hintIcon();\n    private readonly previousHintIconSize = FieldComponent.defaults.hintIconSize();\n    private readonly previousErrorIcon = FieldComponent.defaults.errorIcon();\n    private readonly previousErrorIconSize = FieldComponent.defaults.errorIconSize();\n    private currentHintIcon?: IconType;\n    private currentHintIconSize?: IconSize;\n    private currentErrorIcon?: IconType;\n    private currentErrorIconSize?: IconSize;\n    public readonly hintIcon = input<IconType>();\n    public readonly hintIconSize = input<IconSize>();\n    public readonly errorIcon = input<IconType>();\n    public readonly errorIconSize = input<IconSize>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.hintIcon();\n            if (value !== undefined) {\n                this.currentHintIcon = value;\n                FieldComponent.defaults.hintIcon.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.hintIconSize();\n            if (value !== undefined) {\n                this.currentHintIconSize = value;\n                FieldComponent.defaults.hintIconSize.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.errorIcon();\n            if (value !== undefined) {\n                this.currentErrorIcon = value;\n                FieldComponent.defaults.errorIcon.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.errorIconSize();\n            if (value !== undefined) {\n                this.currentErrorIconSize = value;\n                FieldComponent.defaults.errorIconSize.set(value);\n            }\n        });\n    }\n\n    public ngOnDestroy(): void {\n        if (this.currentHintIcon === FieldComponent.defaults.hintIcon()) {\n            FieldComponent.defaults.hintIcon.set(this.previousHintIcon);\n        }\n        if (this.currentHintIconSize === FieldComponent.defaults.hintIconSize()) {\n            FieldComponent.defaults.hintIconSize.set(this.previousHintIconSize);\n        }\n        if (this.currentErrorIcon === FieldComponent.defaults.errorIcon()) {\n            FieldComponent.defaults.errorIcon.set(this.previousErrorIcon);\n        }\n        if (this.currentErrorIconSize === FieldComponent.defaults.errorIconSize()) {\n            FieldComponent.defaults.errorIconSize.set(this.previousErrorIconSize);\n        }\n    }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'm-auto',\n    templateUrl: './auto.component.html',\n    styleUrls: ['./auto.component.scss']\n})\nexport class AutoComponent {}\n","<ng-content />\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[m-auto]'\r\n})\r\nexport class AutoDirective {\r\n    @HostBinding('style.flex')\r\n    public readonly flex = '0 0 auto';\r\n}\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[m-fill]'\r\n})\r\nexport class FillDirective {\r\n    @HostBinding('style.flex')\r\n    public readonly flex = '1';\r\n}\r\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'm-shrink',\n    templateUrl: './shrink.component.html',\n    styleUrls: ['./shrink.component.scss']\n})\nexport class ShrinkComponent {}\n","<ng-content />\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[m-shrink]'\r\n})\r\nexport class ShrinkDirective {\r\n    @HostBinding('style.flex')\r\n    protected readonly flex = '0 1 auto';\r\n}\r\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'm-grow',\n    templateUrl: './grow.component.html',\n    styleUrls: ['./grow.component.scss']\n})\nexport class GrowComponent {}\n","<ng-content />\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[m-grow]'\r\n})\r\nexport class GrowDirective {\r\n    @HostBinding('style.flex')\r\n    public readonly flex = '1 0 auto';\r\n}\r\n","import { computed, Directive, input } from '@angular/core';\nimport { OverflowValue } from './overflow.types';\n\n@Directive({\n    selector: '[m-overflow]',\n    host: {\n        '[style.overflow-x]': 'effectiveOverflowX()',\n        '[style.overflow-y]': 'effectiveOverflowY()'\n    }\n})\nexport class OverflowDirective {\n    public static readonly default = {\n        directive: OverflowDirective,\n        inputs: ['m-overflow', 'm-overflow-x', 'm-overflow-y']\n    };\n\n    public readonly overflow = input<OverflowValue | '' | undefined>(undefined, { alias: 'm-overflow' });\n    public readonly overflowX = input<OverflowValue | undefined>(undefined, { alias: 'm-overflow-x' });\n    public readonly overflowY = input<OverflowValue | undefined>(undefined, { alias: 'm-overflow-y' });\n\n    protected readonly effectiveOverflowX = computed(() => this.overflowX() || this.overflow() || undefined);\n    protected readonly effectiveOverflowY = computed(() => this.overflowY() || this.overflow() || undefined);\n}\n","import { Component } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\n\r\n@Component({\r\n    selector: 'm-footer',\r\n    templateUrl: './footer.component.html',\r\n    styleUrls: ['./footer.component.scss'],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class FooterComponent extends BaseComponent {\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('footer ui segment vertical no-border');\r\n    }\r\n}\r\n","<ng-content />","import { TemplateRef } from '@angular/core';\r\n\r\nexport class TemplateTarget {\r\n    public template: TemplateRef<unknown> | undefined;\r\n}\r\n","import { Injectable, TemplateRef } from '@angular/core';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class LayoutService {\r\n    public readonly menuTemplates: TemplateRef<unknown>[] = [];\r\n    public readonly footerTemplates: TemplateRef<unknown>[] = [];\r\n}\r\n","import { Directive, inject, TemplateRef } from '@angular/core';\r\nimport { LayoutService } from '../../services/layout.service';\r\n\r\n@Directive({\r\n    selector: '[m-footer-link-template]'\r\n})\r\nexport class FooterLinkTemplateDirective {\r\n    private readonly layoutService = inject(LayoutService);\r\n    private readonly templateRef = inject<TemplateRef<unknown>>(TemplateRef);\r\n\r\n    public constructor() {\r\n        this.layoutService.footerTemplates.push(this.templateRef);\r\n    }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { TemplateTarget } from '../../models/template-target';\r\nimport { FooterLinkTemplateDirective } from './footer-link-template.directive';\r\n\r\n@Component({\r\n    selector: 'm-footer-link',\r\n    templateUrl: './footer-link.component.html',\r\n    styleUrls: ['./footer-link.component.scss'],\r\n    imports: [FooterLinkTemplateDirective]\r\n})\r\nexport class FooterLinkComponent {\r\n    public readonly target = new TemplateTarget();\r\n}\r\n","<ng-container *m-footer-link-template>\r\n    <ng-content />\r\n</ng-container>\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class FormValidationNotifier {\r\n    private isValidValue = true;\r\n    private readonly isValidSubject = new BehaviorSubject<boolean>(this.isValidValue);\r\n    public readonly isValid$ = this.isValidSubject.asObservable();\r\n\r\n    public get isValid(): boolean {\r\n        return this.isValidValue;\r\n    }\r\n\r\n    public set(value: boolean): void {\r\n        this.isValidValue = value;\r\n        this.isValidSubject.next(value);\r\n    }\r\n\r\n}\r\n","import { Component, contentChildren, effect, inject, input, output, OutputRefSubscription, signal, untracked } from '@angular/core';\nimport { delay, Subject, Subscription, throttleTime } from 'rxjs';\nimport { InvertibleComponent } from '../../base/invertible.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { FieldGroupComponent } from '../field-group/field-group.component';\nimport { FieldComponent } from '../field/field.component';\nimport { FillDirective } from '../flex/fill/fill.directive';\nimport { FlexDirective } from '../flex/flex.directive';\nimport { FormValidationNotifier } from './form-validation-notifier';\n\n@Component({\n    selector: 'm-form',\n    templateUrl: './form.component.html',\n    styleUrls: ['./form.component.scss'],\n    imports: [FlexDirective, FillDirective],\n    providers: [...InvertibleComponent.providers],\n    host: {\n        '[class.success]': 'success()',\n        '[class.error]': 'error()',\n        '[class.warning]': 'warning()'\n    }\n})\nexport class FormComponent extends InvertibleComponent {\n    public static readonly defaults = {\n        inverted: signal(false)\n    };\n    protected readonly flexDirective = inject(FlexDirective, { self: true, optional: true });\n    private readonly formValidationNotifier = inject(FormValidationNotifier, { optional: true });\n    private readonly fieldSubscriptions: OutputRefSubscription[] = [];\n    private readonly groupSubscriptions: OutputRefSubscription[] = [];\n    private readonly autoSubmitSubject = new Subject<void>();\n    private autoSubmitSubscription: Subscription | undefined;\n    public readonly fieldComponents = contentChildren(FieldComponent);\n    public readonly fieldGroupsComponents = contentChildren(FieldGroupComponent);\n    public readonly loading = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly action = input<string>();\n    public readonly autocomplete = input<'on' | 'off'>();\n    public readonly enctype = input<'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain'>();\n    public readonly method = input<'get' | 'post'>();\n    public readonly name = input<string>();\n    public readonly novalidate = input(false);\n    public readonly success = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly warning = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly target = input<'_blank' | '_self' | '_parent' | '_top'>();\n    public readonly autoSubmit = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly autoSubmitThrottle = input(1000);\n    public readonly inlineValidation = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    private readonly errorState = signal(false);\n    public readonly error = this.errorState.asReadonly();\n    private readonly isValidState = signal(false);\n    public readonly isValid = this.isValidState.asReadonly();\n    // eslint-disable-next-line @angular-eslint/no-output-native\n    public readonly submit = output();\n    public readonly isValidChange = output<boolean>();\n\n    public constructor() {\n        super(false);\n        this.classes.register('loading', 'success', 'warning', 'error', 'autoSubmit');\n        effect(() => this.classes.set('loading', this.loading()));\n        effect(() => this.refreshInverted(FormComponent.defaults.inverted()));\n\n        // Subscribe to each projected field's error/change, re-wiring when the field set changes.\n        effect(onCleanup => {\n            const fields = this.fieldComponents();\n            untracked(() => {\n                this.subscribeFields(fields);\n                this.refreshIsValid();\n            });\n            onCleanup(() => this.releaseFields());\n        });\n\n        // Same for field groups.\n        effect(onCleanup => {\n            const groups = this.fieldGroupsComponents();\n            untracked(() => {\n                this.subscribeGroups(groups);\n                this.refreshIsValid();\n            });\n            onCleanup(() => this.releaseGroups());\n        });\n\n        // Propagate inlineValidation to children when it or the child set changes.\n        effect(() => {\n            this.inlineValidation();\n            this.fieldComponents();\n            this.fieldGroupsComponents();\n            untracked(() => this.refreshInlineValidation());\n        });\n\n        // Re-arm the throttled auto-submit pipeline when the throttle changes.\n        effect(() => {\n            this.autoSubmitThrottle();\n            untracked(() => this.refreshAutoSubmitSubscription());\n        });\n    }\n\n    public changed(): void {\n        this.autoSubmitSubject.next();\n    }\n\n    public validateAndSubmit(): void {\n        if (this.error()) {\n            for (const field of this.fieldComponents()) {\n                field.forceValidation();\n            }\n        }\n        else {\n            this.submit.emit();\n        }\n    }\n\n    protected onSubmit(event: SubmitEvent): void {\n        event.preventDefault();\n        // TODO: Implement\n    }\n\n    private releaseFields(): void {\n        for (const subscription of this.fieldSubscriptions) {\n            subscription.unsubscribe();\n        }\n        this.fieldSubscriptions.length = 0;\n    }\n\n    private subscribeFields(fields: readonly FieldComponent[]): void {\n        this.fieldSubscriptions.push(\n            ...fields.map(field => field.errorChange.subscribe(() => this.refreshIsValid())),\n            ...(this.autoSubmit() ? fields.map(field => field.change.subscribe(() => this.changed())) : [])\n        );\n    }\n\n    private releaseGroups(): void {\n        for (const subscription of this.groupSubscriptions) {\n            subscription.unsubscribe();\n        }\n        this.groupSubscriptions.length = 0;\n    }\n\n    private subscribeGroups(groups: readonly FieldGroupComponent[]): void {\n        this.groupSubscriptions.push(\n            ...groups.map(group => group.errorChange.subscribe(() => this.refreshIsValid())),\n            ...(this.autoSubmit() ? groups.map(group => group.change.subscribe(() => this.changed())) : [])\n        );\n    }\n\n    private refreshAutoSubmitSubscription(): void {\n        this.autoSubmitSubscription?.unsubscribe();\n        this.autoSubmitSubscription = this.autoSubmitSubject.pipe(\n            throttleTime(this.autoSubmitThrottle(), undefined, { leading: true, trailing: true }),\n            // Delay a little bit to let all bindings be executed and the values written to the objects\n            delay(1)\n        ).subscribe(() => this.validateAndSubmit());\n    }\n\n    private refreshIsValid(): void {\n        const hasError = this.fieldComponents().some(field => field.error()) || this.fieldGroupsComponents().some(group => group.error());\n        const isValid = !hasError;\n        this.errorState.set(hasError);\n        if (this.isValidState() !== isValid) {\n            this.isValidState.set(isValid);\n            this.formValidationNotifier?.set(isValid);\n            // Delay the notification to fire the change outside the check to ensure a change detection run will be started\n            setTimeout(() => this.isValidChange.emit(isValid));\n        }\n    }\n\n    private refreshInlineValidation(): void {\n        const inlineValidation = this.inlineValidation();\n        for (const field of this.fieldComponents()) {\n            field.inlineValidation.set(inlineValidation);\n        }\n        for (const group of this.fieldGroupsComponents()) {\n            group.inlineValidation.set(inlineValidation);\n        }\n    }\n}\n","<form class=\"ui form\" [class.loading]=\"loading()\" [class.success]=\"success()\" [class.error]=\"error()\" [class.warning]=\"warning()\" [class.inverted]=\"inverted()\" [attr.action]=\"action()\" [attr.autocomplete]=\"autocomplete()\" [attr.enctype]=\"enctype()\" [attr.method]=\"method()\" [attr.name]=\"name()\" [attr.novalidate]=\"novalidate() ? 'novalidate' : undefined\" [attr.target]=\"target()\" m-fill m-flex [column]=\"flexDirective?.column() ?? true\" (submit)=\"onSubmit($event)\">\n    <ng-content />\n    @if (error()) {\n        <div class=\"ui error message\">\n            <ul class=\"list\">\n                @for (field of fieldComponents(); track field) {\n                    @if (field.error()) {\n                        @for (error of field.errors(); track error) {\n                            <li>{{ error.label }} {{ error.message }}</li>\n                        }\n                    }\n                }\n                @for (group of fieldGroupsComponents(); track group) {\n                    @if (group.error()) {\n                        @for (field of group.fieldComponents(); track field) {\n                            @for (error of field.errors(); track error) {\n                                <li>{{ error.label }} {{ error.message }}</li>\n                            }\n                        }\n                    }\n                }\n            </ul>\n        </div>\n    }\n</form>\n","import { Component, effect, input } from '@angular/core';\nimport { FormComponent } from './form.component';\n\n@Component({\n    selector: 'm-form-defaults',\n    template: ''\n})\nexport class FormDefaultsComponent {\n    public readonly inverted = input<boolean>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.inverted();\n            if (value !== undefined) {\n                FormComponent.defaults.inverted.set(value);\n            }\n        });\n    }\n}\n","import { Directive, effect, Input, input } from '@angular/core';\nimport { BaseDirective } from '../base/base.directive';\nimport { HeaderComponent } from '../components/header/header.component';\nimport { toBoolean } from '../helpers/to-boolean';\nimport { BooleanLike } from '../models/boolean-like';\n\n@Directive({\n    selector: '[m-header]',\n    providers: [...BaseDirective.providers],\n    host: {\n        '[class.dividing]': 'dividing()',\n        '[class.icon]': 'icon()',\n        '[class.sub]': 'sub()'\n    }\n})\nexport class HeaderDirective extends BaseDirective {\n    private isInverted: boolean | undefined;\n    private isInvertedDefault = false;\n\n    @Input()\n    public get inverted(): boolean {\n        return this.isInverted ?? this.isInvertedDefault;\n    }\n\n    public set inverted(value: BooleanLike) {\n        this.isInverted = this.toBoolean(value);\n        this.classes.set('inverted', this.inverted);\n    }\n\n    public readonly dividing = input<boolean, BooleanLike>(false, { transform: toBoolean });\n\n    public readonly icon = input<boolean, BooleanLike>(false, { transform: toBoolean });\n\n    public readonly sub = input(false);\n\n    public constructor() {\n        super();\n        this.classes.register('inverted')\n            .registerFixed('header');\n        this.validateAttributes = false;\n        effect(() => this.setInvertedDefault(HeaderComponent.defaults.inverted()));\n    }\n\n    private setInvertedDefault(value: boolean): void {\n        this.isInvertedDefault = value;\n        this.classes.set('inverted', this.inverted);\n    }\n}\n","import { Component, effect, input } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { FieldSize, ParsableFieldSize, parseFieldSize } from '../../models/field-size';\nimport { GridWidth } from './models/grid-width';\n\n@Component({\n    selector: 'm-grid',\n    templateUrl: './grid.component.html',\n    styleUrls: ['./grid.component.scss'],\n    providers: [...BaseComponent.providers]\n})\nexport class GridComponent extends BaseComponent {\n    public readonly vertically = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly divided = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly columns = input<FieldSize | undefined, ParsableFieldSize>(undefined, { transform: parseFieldSize });\n    public readonly internally = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly celled = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly width = input<GridWidth | undefined>();\n    public readonly noMargin = input<boolean, BooleanLike>(false, { transform: toBoolean });\n\n    public constructor() {\n        super();\n        this.classes.register('vertically', 'divided', 'columns', 'internally', 'celled', 'width', 'noMargin')\n            .registerFixed('grid');\n        effect(() => this.classes.set('vertically', this.vertically()));\n        effect(() => this.classes.set('divided', this.divided()));\n        effect(() => this.classes.set('columns', this.columns() ? `${this.columns() ?? 'none'} column` : undefined));\n        effect(() => this.classes.set('internally', this.internally()));\n        effect(() => this.classes.set('celled', this.celled()));\n        effect(() => this.classes.set('width', this.width() ? `${this.width() ?? 'none'} width` : undefined));\n        effect(() => this.classes.set('no-margin', this.noMargin()));\n    }\n\n}\n","<ng-content />","import { Component, effect, input } from '@angular/core';\r\nimport { InvertibleComponent } from '../../base/invertible.component';\r\nimport { toBoolean } from '../../helpers/to-boolean';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { MessageComponent } from '../message/message.component';\r\n\r\n@Component({\r\n    selector: 'm-info',\r\n    templateUrl: './info.component.html',\r\n    styleUrls: ['./info.component.scss'],\r\n    providers: [...InvertibleComponent.providers]\r\n})\r\nexport class InfoComponent extends InvertibleComponent {\r\n    public readonly ignored = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('ignored')\r\n            .registerFixed('visible', 'info', 'message');\r\n        effect(() => this.classes.set('ignored', this.ignored()));\r\n        effect(() => this.refreshInverted(MessageComponent.defaults.inverted()));\r\n    }\r\n}\r\n","<ng-content />","import { Component, computed, effect, input, model, output } from '@angular/core';\nimport { InvertibleComponent } from '../../base/invertible.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { MessageComponent } from '../message/message.component';\n\n@Component({\n    selector: 'm-warning',\n    templateUrl: './warning.component.html',\n    styleUrls: ['./warning.component.scss'],\n    imports: [IconComponent],\n    providers: [...InvertibleComponent.providers],\n    host: {\n        '[class.closed]': 'closed()',\n        '[class.visible]': 'visible()'\n    }\n})\nexport class WarningComponent extends InvertibleComponent {\n    protected readonly defaults = MessageComponent.defaults;\n    public readonly showClose = input(true);\n    public readonly closed = model(false);\n    public readonly visible = computed(() => !this.closed());\n    public readonly close = output();\n\n    public constructor() {\n        super();\n        this.classes.registerFixed('warning', 'message');\n        effect(() => this.refreshInverted(MessageComponent.defaults.inverted()));\n    }\n\n    public onClose(): void {\n        this.closed.set(true);\n        this.close.emit();\n    }\n}\n","@if (showClose()) {\n    <m-icon [icon]=\"defaults.closeIcon()\" [size]=\"defaults.closeIconSize()\" class=\"close icon\" (click)=\"onClose()\" />\n}\n<ng-content>/</ng-content>\n","import { Service, Type } from '@angular/core';\nimport { FormElementBase } from '../form-element-renderer/form-element-base';\n\n@Service()\nexport class FormRendererService {\n    public static readonly formElements: Record<string, Type<FormElementBase>> = {};\n\n    public register(type: Type<FormElementBase>, name: string): void {\n        if (!name) {\n            throw new Error('FormRendererService.register requires a name');\n        }\n        FormRendererService.formElements[name] = type;\n    }\n\n    public get(name: string | undefined): Type<FormElementBase> | undefined {\n        return name ? FormRendererService.formElements[name] : undefined;\n    }\n}\n","import { Component, ComponentRef, effect, inject, input, OnDestroy, signal, Type, untracked, ViewContainerRef } from '@angular/core';\nimport { FormElements } from '../form-renderer/form-layout';\nimport { FormRendererService } from '../form-renderer/form-renderer.service';\nimport { FormElementBase } from './form-element-base';\n\n@Component({\n    selector: 'm-form-renderer2',\n    templateUrl: './form-element-renderer2.component.html',\n    styleUrls: ['./form-element-renderer2.component.scss'],\n    host: {\n        '[class.visible]': 'invalidType()'\n    }\n})\nexport class FormElementRenderer2Component implements OnDestroy {\n    private readonly formRendererService = inject(FormRendererService);\n    private readonly viewContainerRef = inject(ViewContainerRef);\n    private elementType: Type<FormElementBase> | undefined;\n    public componentRef: ComponentRef<FormElementBase> | undefined;\n    public readonly invalidType = signal<string | undefined>(undefined);\n    public readonly element = input<FormElements>();\n    public readonly data = input<unknown>();\n\n    public constructor() {\n        // Resolve the element type and (re)create the child component when the element changes.\n        effect(() => {\n            const element = this.element();\n            untracked(() => {\n                this.elementType = this.formRendererService.get(element?.elementType);\n                this.invalidType.set(this.elementType ? undefined : element?.elementType);\n                this.createComponent();\n            });\n        });\n        // Push data changes onto the already-created child instance.\n        effect(() => {\n            const data = this.data();\n            untracked(() => {\n                if (this.componentRef?.instance) {\n                    this.componentRef.instance.data = data;\n                }\n            });\n        });\n    }\n\n    public createComponent(): void {\n        this.viewContainerRef.clear();\n        const element = this.element();\n        if (!this.elementType || !element) {\n            return;\n        }\n        this.componentRef = this.viewContainerRef.createComponent(this.elementType);\n        this.componentRef.instance.element = element;\n        this.componentRef.instance.data = this.data();\n    }\n\n    public ngOnDestroy(): void {\n        this.componentRef?.destroy();\n    }\n}\n","@if (invalidType()) {\n  <div>{{ invalidType() }} is not a known component type</div>\n}\n","import { AsyncPipe } from '@angular/common';\r\nimport { Component, computed, DoCheck, effect, inject, input, IterableDiffer, IterableDiffers, output, untracked } from '@angular/core';\r\nimport { BehaviorSubject, combineLatest, merge, Observable, ReplaySubject } from 'rxjs';\r\nimport { map, shareReplay } from 'rxjs/operators';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { HeaderDirective } from '../../directives/header.directive';\r\nimport { toBoolean } from '../../helpers/to-boolean';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { ButtonComponent } from '../button/button.component';\r\nimport { CellComponent } from '../cell/cell.component';\r\nimport { CheckboxComponent } from '../checkbox/checkbox.component';\r\nimport { DataSourceComponent } from '../data-source/data-source.component';\r\nimport { DividerComponent } from '../divider/divider.component';\r\nimport { DropdownValue } from '../dropdown/dropdown-value';\r\nimport { DropdownComponent } from '../dropdown/dropdown.component';\r\nimport { ErrorComponent } from '../error/error.component';\r\nimport { FieldComponent } from '../field/field.component';\r\nimport { FormAreaElement, FormButtonElement, FormCheckboxElement, FormDataElement, FormDropDownElement, FormDropDownFilter, FormElements, FormError, FormFieldGroupElement, FormGridElement, FormHeader, FormInfo, FormInputElement, FormLabelElement, FormMessage, FormWarning } from '../form-renderer/form-layout';\r\nimport { GridComponent } from '../grid/grid.component';\r\nimport { InfoComponent } from '../info/info.component';\r\nimport { NumericInputComponent } from '../input/numeric/numeric-input.component';\r\nimport { InputComponent } from '../input/text/input.component';\r\nimport { MessageComponent } from '../message/message.component';\r\nimport { TextareaComponent } from '../textarea/textarea.component';\r\nimport { WarningComponent } from '../warning/warning.component';\r\nimport { FormElementRenderer2Component } from './form-element-renderer2.component';\r\n\r\n@Component({\r\n    selector: 'm-form-element-renderer',\r\n    templateUrl: './form-element-renderer.component.html',\r\n    styleUrls: ['./form-element-renderer.component.scss'],\r\n    imports: [FieldComponent, InputComponent, NumericInputComponent, CheckboxComponent, TextareaComponent, DropdownComponent, ButtonComponent, GridComponent, CellComponent, MessageComponent, WarningComponent, InfoComponent, ErrorComponent, DividerComponent, FormElementRenderer2Component, HeaderDirective, AsyncPipe],\r\n    providers: [...BaseComponent.providers],\r\n    host: {\r\n        '[class.fields]': 'fields()'\r\n    }\r\n})\r\nexport class FormElementRendererComponent extends BaseComponent implements DoCheck {\r\n    private readonly elementsDiffer: IterableDiffer<FormElements> = inject(IterableDiffers).find([]).create(undefined);\r\n    private readonly fieldClasses = ['', '', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten'];\r\n    private readonly dataCache = new Map<string, Observable<Record<string, unknown>[]>>();\r\n    private readonly dropDownCache = new Map<string, Observable<DropdownValue[]>>();\r\n    private readonly filterTick = new BehaviorSubject<void>(undefined);\r\n    private readonly filterFields = new Set<string>();\r\n    private readonly lastFilterValues = new Map<string, unknown>();\r\n    public readonly elements = input<FormElements[]>([]);\r\n    public readonly data = input<Record<string, unknown>>({});\r\n    public readonly execute = output<string>();\r\n    public readonly fields = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n    protected readonly anyData = computed(() => this.data() as any);\r\n    public readonly dataSources = input<DataSourceComponent[]>([]);\r\n\r\n    public constructor() {\r\n        super(false);\r\n        this.classes.register('elements', 'fields');\r\n        // Re-run the element/data setup side effects when those inputs change.\r\n        effect(() => {\r\n            this.elements();\r\n            untracked(() => {\r\n                this.applyDefaults();\r\n                this.collectFilterFields();\r\n            });\r\n        });\r\n        effect(() => {\r\n            this.data();\r\n            untracked(() => {\r\n                this.applyDefaults();\r\n                this.dropDownCache.clear();\r\n                this.lastFilterValues.clear();\r\n                this.filterTick.next();\r\n            });\r\n        });\r\n    }\r\n\r\n    public ngDoCheck(): void {\r\n        if (this.fields() && this.elementsDiffer.diff(this.elements())) {\r\n            this.classes.set('elements', this.fieldClasses[this.elements().length]);\r\n        }\r\n        this.checkFilterValues();\r\n    }\r\n\r\n    protected getData(dataSource: string): Observable<Record<string, unknown>[]> {\r\n        const cachedObservable = this.dataCache.get(dataSource);\r\n        if (cachedObservable) {\r\n            return cachedObservable;\r\n        }\r\n        const subject = new ReplaySubject<Record<string, unknown>[]>(1);\r\n        this.dataCache.set(dataSource, subject.asObservable());\r\n        merge(...this.dataSources().map(x => x.get(dataSource)).filter(x => x)).subscribe({\r\n            next: data => subject.next(data),\r\n            error: error => subject.next(error)\r\n        });\r\n        return subject.asObservable();\r\n    }\r\n\r\n    protected getItems(dropdown: FormDropDownElement): Observable<DropdownValue[]> {\r\n        const filters = this.normalizeFilters(dropdown.filter);\r\n        const cacheKey = `${dropdown.dataSource}|${filters.map(dropdownFilter => `${dropdownFilter.formField}=${dropdownFilter.dataField}`).join(',')}`;\r\n        const cachedObservable = this.dropDownCache.get(cacheKey);\r\n        if (cachedObservable) {\r\n            return cachedObservable;\r\n        }\r\n        const stream = combineLatest([this.getData(dropdown.dataSource), this.filterTick]).pipe(\r\n            map(([data]) => {\r\n                const filtered = data.filter(entry => filters.every(dropdownFilter => {\r\n                    const formValue = this.data()[dropdownFilter.formField];\r\n                    if (formValue === undefined || formValue === null || formValue === '') {\r\n                        return true;\r\n                    }\r\n                    return entry[dropdownFilter.dataField] === formValue;\r\n                }));\r\n                const values = filtered.map(entry => new DropdownValue<unknown>(entry[dropdown.valueField], this.format(entry, dropdown.textField, dropdown.textFieldFormatter)));\r\n                return [\r\n                    ...this.upgradeItems(dropdown.prefixItems),\r\n                    ...values,\r\n                    ...this.upgradeItems(dropdown.postfixItems)\r\n                ];\r\n            }),\r\n            shareReplay({ bufferSize: 1, refCount: true })\r\n        );\r\n        this.dropDownCache.set(cacheKey, stream);\r\n        return stream;\r\n    }\r\n\r\n    protected onExecute(action: string): void {\r\n        this.execute.emit(action);\r\n    }\r\n\r\n    private normalizeFilters(filter: FormDropDownElement['filter']): FormDropDownFilter[] {\r\n        if (!filter) {\r\n            return [];\r\n        }\r\n        return Array.isArray(filter) ? filter : [filter];\r\n    }\r\n\r\n    private collectFilterFields(): void {\r\n        this.filterFields.clear();\r\n        this.lastFilterValues.clear();\r\n        for (const element of this.elements()) {\r\n            if (element.elementType === 'dropdown') {\r\n                for (const dropdownFilter of this.normalizeFilters(element.filter)) {\r\n                    this.filterFields.add(dropdownFilter.formField);\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    private checkFilterValues(): void {\r\n        if (this.filterFields.size === 0) {\r\n            return;\r\n        }\r\n        let changed = false;\r\n        for (const field of this.filterFields) {\r\n            const value = this.data()[field];\r\n            if (this.lastFilterValues.get(field) !== value) {\r\n                this.lastFilterValues.set(field, value);\r\n                changed = true;\r\n            }\r\n        }\r\n        if (changed) {\r\n            this.filterTick.next();\r\n        }\r\n    }\r\n\r\n    private applyDefaults(): void {\r\n        if (!this.data() || !this.elements()) {\r\n            return;\r\n        }\r\n        for (const element of this.elements() as FormDataElement[]) {\r\n            if (element.field && element.defaultValue) {\r\n                this.data()[element.field] ??= element.defaultValue;\r\n            }\r\n        }\r\n    }\r\n\r\n    private format(entry: Record<string, unknown>, field: string | string[], fieldFormatter?: string): string {\r\n        if (typeof field === 'string') {\r\n            return entry[field]?.toString() ?? '';\r\n        }\r\n        if (fieldFormatter) {\r\n            let result = fieldFormatter;\r\n            const matches = fieldFormatter.matchAll(/[^$]*(?<var>\\$+\\d+)/gm);\r\n            for (const match of matches) {\r\n                const variable = match?.groups?.['var'];\r\n                if (variable && !variable.startsWith('$$')) {\r\n                    const index = parseInt(variable.replace(/\\$/g, ''));\r\n                    result = result.replace(variable, entry[field[index]] as string);\r\n                }\r\n            }\r\n            return result;\r\n        }\r\n        return field.map(x => entry[x]).join(' ');\r\n    }\r\n\r\n    private upgradeItems(values: DropdownValue[] | undefined): DropdownValue[] {\r\n        if (!values) {\r\n            return [];\r\n        }\r\n        for (const value of values) {\r\n            value.value ??= undefined;\r\n        }\r\n        return values;\r\n    }\r\n\r\n    protected $input(element: FormElements): FormInputElement {\r\n        if (element.elementType === 'input') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'input'`);\r\n    }\r\n\r\n    protected $checkbox(element: FormElements): FormCheckboxElement {\r\n        if (element.elementType === 'checkbox') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'checkbox'`);\r\n    }\r\n\r\n    protected $area(element: FormElements): FormAreaElement {\r\n        if (element.elementType === 'area') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'area'`);\r\n    }\r\n\r\n    protected $dropdown(element: FormElements): FormDropDownElement {\r\n        if (element.elementType === 'dropdown') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'dropdown'`);\r\n    }\r\n\r\n    protected $button(element: FormElements): FormButtonElement {\r\n        if (element.elementType === 'button') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'button'`);\r\n    }\r\n\r\n    protected $label(element: FormElements): FormLabelElement {\r\n        if (element.elementType === 'label') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'label'`);\r\n    }\r\n\r\n    protected $fields(element: FormElements): FormFieldGroupElement {\r\n        if (element.elementType === 'fields') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'fields'`);\r\n    }\r\n\r\n    protected $grid(element: FormElements): FormGridElement {\r\n        if (element.elementType === 'grid') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'grid'`);\r\n    }\r\n\r\n    protected $message(element: FormElements): FormMessage | FormWarning | FormInfo | FormError {\r\n        if (element.elementType === 'message' || element.elementType === 'warning' || element.elementType === 'info' || element.elementType === 'error') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'message'`);\r\n    }\r\n\r\n    protected $header(element: FormElements): FormHeader {\r\n        if (element.elementType === 'h1' || element.elementType === 'h2' || element.elementType === 'h3' || element.elementType === 'h4' || element.elementType === 'h5' || element.elementType === 'h6') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'h1-6'`);\r\n    }\r\n}\r\n","@for (element of elements(); track element) {\n    @switch (element.elementType) {\n        @case ('input') {\n            @if ($input(element); as input) {\n                <m-field [label]=\"input.label\" [readonly]=\"input.readonly\" [class.fill]=\"element.fill\">\n                    @if (input.type !== 'number' && input.type !== 'range') {\n                        <m-input [type]=\"input.type\" [(value)]=\"anyData()[input.field]\"></m-input>\n                    }\n                    @if (input.type === 'number' || input.type === 'range') {\n                        <m-numeric-input [range]=\"input.type === 'range'\" [(value)]=\"anyData()[input.field]\" [min]=\"input.min\" [max]=\"input.max\" [zeroText]=\"input.zeroText\"></m-numeric-input>\n                    }\n                </m-field>\n            }\n        }\n        @case ('checkbox') {\n            @if ($checkbox(element); as checkbox) {\n                <m-field [label]=\"checkbox.label\" [readonly]=\"checkbox.readonly\" [class.fill]=\"element.fill\">\n                    <m-checkbox [(value)]=\"anyData()[checkbox.field]\"></m-checkbox>\n                </m-field>\n            }\n        }\n        @case ('area') {\n            @if ($area(element); as area) {\n                <m-field [label]=\"area.label\" [readonly]=\"area.readonly\" [class.fill]=\"element.fill\">\n                    <m-textarea [(value)]=\"anyData()[area.field]\"></m-textarea>\n                </m-field>\n            }\n        }\n        @case ('dropdown') {\n            @if ($dropdown(element); as dropdown) {\n                <m-field [label]=\"dropdown.label\" [disabled]=\"dropdown.readonly\" [class.fill]=\"element.fill\">\n                    <m-dropdown [(value)]=\"anyData()[dropdown.field]\" [items]=\"getItems(dropdown) | async\" [allowFreeText]=\"dropdown.allowFreeText\" search></m-dropdown>\n                </m-field>\n            }\n        }\n        @case ('button') {\n            @if ($button(element); as button) {\n                <m-button [color]=\"button.color\" [class.fill]=\"element.fill\" (click)=\"onExecute(button.action)\">{{ button.label }}</m-button>\n            }\n        }\n        @case ('label') {\n            @if ($label(element); as label) {\n                <label [class.fill]=\"element.fill\">{{ label.label }}</label>\n            }\n        }\n        @case ('fields') {\n            @if ($fields(element); as fields) {\n                <m-form-element-renderer [elements]=\"fields.elements\" [data]=\"data()\" [class.fill]=\"element.fill\" fields (execute)=\"onExecute($event)\"></m-form-element-renderer>\n            }\n        }\n        @case ('grid') {\n            @if ($grid(element); as grid) {\n                <m-grid [width]=\"grid.width\" [class.fill]=\"element.fill\">\n                    @for (cell of grid.cells; track cell) {\n                        <m-cell [float]=\"cell.float\" [align]=\"cell.align\" [size]=\"cell.size\">\n                            <m-form-element-renderer [elements]=\"cell.elements\" [data]=\"data()\" (execute)=\"onExecute($event)\"></m-form-element-renderer>\n                        </m-cell>\n                    }\n                </m-grid>\n            }\n        }\n        @case ('message') {\n            @if ($message(element); as message) {\n                <m-message [header]=\"message.header\" [class.fill]=\"element.fill\">{{ message.text }}</m-message>\n            }\n        }\n        @case ('warning') {\n            @if ($message(element); as message) {\n                <m-warning [class.fill]=\"element.fill\">{{ message.text }}</m-warning>\n            }\n        }\n        @case ('info') {\n            @if ($message(element); as message) {\n                <m-info [class.fill]=\"element.fill\">{{ message.text }}</m-info>\n            }\n        }\n        @case ('error') {\n            @if ($message(element); as message) {\n                <m-error [class.fill]=\"element.fill\">{{ message.text }}</m-error>\n            }\n        }\n        @case ('divider') {\n            <m-divider [class.fill]=\"element.fill\"></m-divider>\n        }\n        @case ('h1') {\n            @if ($header(element); as header) {\n                <h1 m-header [dividing]=\"header.dividing\" [class.fill]=\"element.fill\">{{ header.text }}</h1>\n            }\n        }\n        @case ('h2') {\n            @if ($header(element); as header) {\n                <h2 m-header [dividing]=\"header.dividing\" [class.fill]=\"element.fill\">{{ header.text }}</h2>\n            }\n        }\n        @case ('h3') {\n            @if ($header(element); as header) {\n                <h3 m-header [dividing]=\"header.dividing\" [class.fill]=\"element.fill\">{{ header.text }}</h3>\n            }\n        }\n        @case ('h4') {\n            @if ($header(element); as header) {\n                <h4 m-header [dividing]=\"header.dividing\" [class.fill]=\"element.fill\">{{ header.text }}</h4>\n            }\n        }\n        @case ('h5') {\n            @if ($header(element); as header) {\n                <h5 m-header [dividing]=\"header.dividing\" [class.fill]=\"element.fill\">{{ header.text }}</h5>\n            }\n        }\n        @case ('h6') {\n            @if ($header(element); as header) {\n                <h6 m-header [dividing]=\"header.dividing\" [class.fill]=\"element.fill\">{{ header.text }}</h6>\n            }\n        }\n        @default {\n            <m-form-renderer2 [element]=\"element\" [data]=\"data()\"></m-form-renderer2>\n        }\n    }\n}\n@if (!elements().length) {\n    <div>No elements configured</div>\n}\n","import { Component, computed, contentChildren, effect, input, output, signal, untracked } from '@angular/core';\nimport { DataSourceComponent } from '../data-source/data-source.component';\nimport { FillDirective } from '../flex/fill/fill.directive';\nimport { FlexDirective } from '../flex/flex.directive';\nimport { FormElementRendererComponent } from '../form-element-renderer/form-element-renderer.component';\nimport { FormComponent } from '../form/form.component';\nimport { FormLayout } from './form-layout';\n\n@Component({\n    selector: 'm-form-renderer',\n    templateUrl: './form-renderer.component.html',\n    styleUrls: ['./form-renderer.component.scss'],\n    imports: [FormComponent, FormElementRendererComponent, FlexDirective, FillDirective]\n})\nexport class FormRendererComponent {\n    public readonly layout = input<FormLayout>({ elements: [] });\n    private readonly dataSourceElements = contentChildren(DataSourceComponent);\n    public readonly dataSources = computed(() => [...this.dataSourceElements()]);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly dataInput = input<Record<string, unknown>>({}, { alias: 'data' });\n    private readonly dataState = signal<Record<string, unknown>>({});\n    public readonly data = this.dataState.asReadonly();\n    public readonly dataChange = output<unknown>();\n    public readonly execute = output<string>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.dataInput();\n            untracked(() => {\n                this.dataState.set(value);\n                if (!value) {\n                    setTimeout(() => {\n                        this.dataState.set({});\n                        this.dataChange.emit(this.dataState());\n                    });\n                }\n            });\n        });\n    }\n\n    protected onExecute(action: string): void {\n        this.execute.emit(action);\n    }\n}\n","<m-form m-flex=\"column\" m-fill>\r\n    <m-form-element-renderer m-fill [elements]=\"layout().elements\" [data]=\"data()\" [dataSources]=\"dataSources()\" (execute)=\"onExecute($event)\" />\r\n    <ng-content />\r\n</m-form>\r\n","import { Type } from '@angular/core';\r\nimport { FormRendererService } from '../form-renderer/form-renderer.service';\r\n\r\n/*\r\n    @deprecated Use provideFormElement(...) instead\r\n */\r\nexport function FormElement(name: string): (constructor: Type<unknown>) => void {\r\n    if (!name) {\r\n        throw new Error('FormElement decorator requires a name');\r\n    }\r\n    if (FormRendererService.formElements[name]) {\r\n        throw new Error('FormElement ' + name + ' decorator is already registered');\r\n    }\r\n    return function (constructor: Type<any>) {\r\n        FormRendererService.formElements[name] = constructor;\r\n    };\r\n}\r\n","import { EnvironmentProviders, makeEnvironmentProviders, Type } from '@angular/core';\r\nimport { FormElementBase } from '../form-element-renderer/form-element-base';\r\nimport { FormRendererService } from './form-renderer.service';\r\n\r\nexport function provideFormElement(\r\n    type: Type<FormElementBase>, name: string\r\n): EnvironmentProviders {\r\n    if (!name) {\r\n        throw new Error('provideFormElement requires a name');\r\n    }\r\n    if (FormRendererService.formElements[name]) {\r\n        throw new Error('FormElement ' + name + ' is already registered');\r\n    }\r\n    FormRendererService.formElements[name] = type;\r\n    return makeEnvironmentProviders([]);\r\n}\r\n","import { Component, effect, input, OnDestroy } from '@angular/core';\nimport { HeaderComponent } from './header.component';\n\n@Component({\n    selector: 'm-header-defaults',\n    template: ''\n})\nexport class HeaderDefaultsComponent implements OnDestroy {\n    private readonly previousInverted = HeaderComponent.defaults.inverted();\n    private currentInverted?: boolean;\n    public readonly inverted = input<boolean>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.inverted();\n            if (value !== undefined) {\n                this.currentInverted = value;\n                HeaderComponent.defaults.inverted.set(value);\n            }\n        });\n    }\n\n    public ngOnDestroy(): void {\n        if (this.currentInverted === HeaderComponent.defaults.inverted()) {\n            HeaderComponent.defaults.inverted.set(this.previousInverted);\n        }\n    }\n}\n","import { Component, effect, input, model, output } from '@angular/core';\nimport { ButtonBaseComponent } from '../../base/button-base.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { ButtonComponent } from '../button/button.component';\n\n@Component({\n    selector: 'm-image-upload',\n    templateUrl: './image-upload.component.html',\n    styleUrls: ['./image-upload.component.scss'],\n    providers: [...ButtonBaseComponent.providers]\n})\nexport class ImageUploadComponent extends ButtonBaseComponent {\n    public readonly previewImage = model<string>();\n    public readonly radius = input<number>();\n    public readonly previewWidth = input<number>();\n    public readonly previewHeight = input<number>();\n    public readonly width = input<number>();\n    public readonly height = input<number>();\n    public readonly hidePreview = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly forcePreviewImageChange = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly upload = output<FileList>();\n\n    public constructor() {\n        super();\n        effect(() => this.refreshInverted(ButtonComponent.defaults.inverted()));\n    }\n\n    protected onUpload(fileList: FileList | null): void {\n        if (!fileList?.length) {\n            return;\n        }\n        this.upload.emit(fileList);\n        const files = [...fileList];\n        if (!this.hidePreview() || this.forcePreviewImageChange()) {\n            this.showPreview(files[0]);\n        }\n    }\n\n    private showPreview(file: File): void {\n        const reader = new FileReader();\n        const image = new Image();\n        reader.onload = () => {\n            image.src = reader.result?.toString() ?? '';\n        };\n        image.onload = () => {\n            let width = this.width() || image.width;\n            let height = this.height() || image.height;\n            const widthRatio = image.width / width;\n            const heightRatio = image.height / height;\n            const ratio = Math.max(widthRatio, heightRatio);\n            if (!this.width()) {\n                width = image.width / ratio;\n            }\n            if (!this.height()) {\n                height = image.height / ratio;\n            }\n            const imageWidth = image.width / ratio;\n            const imageHeight = image.height / ratio;\n            const canvas = document.createElement('canvas');\n            canvas.width = width;\n            canvas.height = height;\n            const left = (width - imageWidth) / 2;\n            const top = (height - imageHeight) / 2;\n            const context = canvas.getContext('2d');\n            context?.drawImage(image, left, top, imageWidth, imageHeight);\n            const dataUrl = canvas.toDataURL('image/png', 1);\n            this.previewImage.set(dataUrl);\n        };\n        reader.readAsDataURL(file);\n    }\n}\n","@if (!hidePreview()) {\n    <div class=\"preview\" [style.width.px]=\"previewWidth() || width()\" [style.height.px]=\"previewHeight() || height()\" [style.border-radius.px]=\"radius()\">\n        <img [src]=\"previewImage()\" alt=\"\">\n    </div>\n}\n<div class=\"content\">\n    <ng-content />\n</div>\n<input type=\"file\" accept=\"image/jpeg,image/png,image/gif\" multiple (change)=\"onUpload(file.files)\" #file />\n","import { Component, computed, ElementRef, input, output, viewChild } from '@angular/core';\nimport { ButtonDirective } from '../../button/button.directive';\n\n@Component({\n    selector: 'm-file-input',\n    templateUrl: './file-input.component.html',\n    styleUrls: ['./file-input.component.scss'],\n    imports: [ButtonDirective]\n})\nexport class FileInputComponent {\n    public readonly id = `file_input_${Date.now().toString()}_${Math.floor(Math.random() * 1_000_000).toString()}`;\n    public readonly input = viewChild<ElementRef<HTMLInputElement>>('input');\n    public readonly files = computed(() => this.input()?.nativeElement.files ?? undefined);\n    public readonly accept = input<string>();\n    // eslint-disable-next-line @angular-eslint/no-output-native\n    public readonly change = output<Event>();\n\n}\n","<label [for]=\"id\" m-button>\r\n    <ng-content />\r\n</label>\r\n<input [id]=\"id\" type=\"file\" [accept]=\"accept()\" (change)=\"change.emit($event)\" #input>\r\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, ContentChild, effect, ElementRef, input, OnInit, output, signal, untracked, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FallbackForDirective } from '../../../directives/fallback-for.directive';\nimport { DateHelper } from '../../../helpers/date-helper';\nimport { IconComponent } from '../../icon/icon.component';\nimport { InputBaseComponent } from '../input-base.component';\n\n@Component({\n    selector: 'm-time-input',\n    templateUrl: './time-input.component.html',\n    styleUrls: ['./time-input.component.scss'],\n    imports: [FormsModule, IconComponent, FallbackForDirective, NgTemplateOutlet],\n    providers: [...InputBaseComponent.providers]\n})\nexport class TimeInputComponent extends InputBaseComponent implements OnInit {\n    // eslint-disable-next-line unicorn/no-null\n    protected readonly internalValue = signal<string | null>(null);\n    protected readonly valueState = signal<Date | undefined>(undefined);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly valueInput = input<Date | undefined, Date | number | string | undefined>(undefined, { alias: 'value', transform: value => TimeInputComponent.coerceDate(value) });\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly timeInput = input<Date | undefined, Date | number | string | undefined>(undefined, { alias: 'time', transform: value => TimeInputComponent.coerceDate(value) });\n    public readonly default = input(new Date(0));\n    public readonly min = input<Date>();\n    public readonly max = input<Date>();\n    public readonly value = computed(() => this.valueState());\n    public readonly time = computed(() => this.valueState() ?? this.default());\n    public readonly valueChange = output<Date | undefined>();\n    public readonly timeChange = output<Date>();\n\n    @ContentChild('input')\n    protected set contentInputElement(input: ElementRef<HTMLInputElement>) {\n        this.unbindEvents();\n        this.inputElement = input;\n        this.refreshInput();\n        this.bindEvents();\n        this.refreshFocus();\n    }\n\n    @ViewChild('input')\n    protected set viewInputElement(input: ElementRef<HTMLInputElement>) {\n        this.unbindEvents();\n        this.inputElement = input;\n        this.bindEvents();\n        this.refreshFocus();\n    }\n\n    public constructor() {\n        super();\n        this.classes.register('min', 'max', 'default', 'value', 'time');\n        // [value] flows into the shared state (normalising the display); [time] is guarded so an unbound alias can't clobber [value].\n        effect(() => {\n            const value = this.valueInput();\n            untracked(() => this.applyValue(value));\n        });\n        effect(() => {\n            const value = this.timeInput();\n            untracked(() => {\n                if (value !== undefined) {\n                    this.applyValue(value);\n                }\n            });\n        });\n    }\n\n    public override ngOnInit(): void {\n        super.ngOnInit();\n        // Set internal value on blur to ensure a invalid value is overwritten\n        this.blur.subscribe(() => this.setInternalValue(this.value()));\n    }\n\n    protected onInternalChange(rawValue: string): void {\n        // Clone the current value so the stored Date is never mutated in place (which a signal set would treat as unchanged).\n        const current = this.valueState();\n        let value = current ? new Date(current) : new Date();\n        const chunks = rawValue.split(':');\n        value.setHours(parseInt(chunks[0]) || 0, parseInt(chunks[1]) || 0, 0, 0);\n        value = DateHelper.keepInRange(this.min(), value, this.max());\n        this.valueState.set(value);\n        this.valueChange.emit(this.value());\n        this.timeChange.emit(this.time());\n    }\n\n    // Mirrors the old `value` setter: normalise the display only when the value actually changes, then store it (without emitting).\n    private applyValue(value: Date | undefined): void {\n        if (value != this.valueState()) {\n            this.setInternalValue(value);\n        }\n        this.valueState.set(value);\n    }\n\n    private static coerceDate(value: Date | number | string | undefined): Date | undefined {\n        const date = value ? new Date(value) : undefined;\n        return isNaN(date?.getDate() as any) ? undefined : date;\n    }\n\n    private setInternalValue(value: Date | null | undefined): void {\n        // Use null to avoid strange input behaviour with undefined values (e.g. input of negative values requires two minus signs to work)\n        // eslint-disable-next-line no-null/no-null\n        this.internalValue.set(value?.toISOString().split('T')[1].replace('Z', '') ?? null);\n    }\n}\n","@if (!isRight()) {\n    <ng-container [ngTemplateOutlet]=\"labelTemplate\" />\n}\n@if (buttonPosition() === 'left') {\n    <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n}\n<ng-content />\n<input *m-fallback-for=\"'input'\" type=\"time\" [placeholder]=\"placeholder() || ''\" [ngModel]=\"internalValue()\" [min]=\"min() || ''\" [max]=\"max() || ''\" [attr.name]=\"name()\" [attr.for]=\"for()\" [attr.readOnly]=\"readonly() || undefined\" [attr.disabled]=\"disabled() || undefined\" (ngModelChange)=\"onInternalChange($event)\" #input>\n@if (icon()) {\n    <m-icon [icon]=\"icon()\" [size]=\"iconSize()\" class=\"link icon\" />\n}\n@if (isRight()) {\n    <ng-container [ngTemplateOutlet]=\"labelTemplate\" />\n}\n@if (buttonPosition() === 'right') {\n    <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n}\n\n<ng-template #labelTemplate>\n    <ng-content select=\"m-label\" />\n    <ng-content select=\"m-label-dropdown\" />\n</ng-template>\n\n<ng-template #contentTemplate>\n    <ng-content select=\"m-button\" />\n    <ng-content select=\"m-icon-button\" />\n</ng-template>\n","import { Component, effect, input } from '@angular/core';\nimport { InputBaseComponent } from './input-base.component';\n\n@Component({\n    selector: 'm-input-defaults',\n    template: ''\n})\nexport class InputDefaultsComponent {\n    public readonly inverted = input<boolean>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.inverted();\n            if (value !== undefined) {\n                InputBaseComponent.defaults.inverted.set(value);\n            }\n        });\n    }\n}\n","import { Component, effect, input, OnDestroy } from '@angular/core';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\nimport { LabelDropdownComponent } from './label-dropdown.component';\n\n@Component({\n    selector: 'm-label-dropdown-defaults',\n    template: ''\n})\nexport class LabelDropdownDefaultsComponent implements OnDestroy {\n    private readonly previousDropdownIcon = LabelDropdownComponent.defaults.dropdownIcon();\n    private readonly previousDropdownIconSize = LabelDropdownComponent.defaults.dropdownIconSize();\n    private currentDropdownIcon?: IconType;\n    private currentDropdownIconSize?: IconSize;\n    public readonly dropdownIcon = input<IconType>();\n    public readonly dropdownIconSize = input<IconSize>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.dropdownIcon();\n            if (value !== undefined) {\n                this.currentDropdownIcon = value;\n                LabelDropdownComponent.defaults.dropdownIcon.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.dropdownIconSize();\n            if (value !== undefined) {\n                this.currentDropdownIconSize = value;\n                LabelDropdownComponent.defaults.dropdownIconSize.set(value);\n            }\n        });\n    }\n\n    public ngOnDestroy(): void {\n        if (this.currentDropdownIcon === LabelDropdownComponent.defaults.dropdownIcon()) {\n            LabelDropdownComponent.defaults.dropdownIcon.set(this.previousDropdownIcon);\n        }\n        if (this.currentDropdownIconSize === LabelDropdownComponent.defaults.dropdownIconSize()) {\n            LabelDropdownComponent.defaults.dropdownIconSize.set(this.previousDropdownIconSize);\n        }\n    }\n}\n","import { NgTemplateOutlet } from '@angular/common';\r\nimport { Component, inject, input, signal } from '@angular/core';\r\nimport { LayoutService } from '../../services/layout.service';\r\nimport { FooterComponent } from '../footer/footer.component';\r\nimport { IconComponent } from '../icon/icon.component';\r\nimport { IconSize } from '../icon/models/icon-size';\r\nimport { IconType } from '../icon/models/icon-type';\r\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\r\nimport { MenuComponent } from '../menu/menu.component';\r\n\r\n@Component({\r\n    selector: 'm-layout',\r\n    templateUrl: './layout.component.html',\r\n    styleUrls: ['./layout.component.scss'],\r\n    imports: [MenuComponent, MenuItemComponent, IconComponent, FooterComponent, NgTemplateOutlet]\r\n})\r\nexport class LayoutComponent {\r\n    public static readonly defaults = { menuIcon: signal<IconType>('bars'), menuIconSize: signal<IconSize>(undefined) };\r\n    protected readonly defaults = LayoutComponent.defaults;\r\n    protected readonly layoutService = inject(LayoutService);\r\n    public readonly showHamburger = input(false);\r\n    public readonly menuIcon = input<IconType>();\r\n    public readonly menuIconSize = input<IconSize>();\r\n}\r\n","<m-menu position=\"top\" fixed>\n    @if (showHamburger()) {\n        <m-menu-item>\n            <m-icon [icon]=\"menuIcon() ?? defaults.menuIcon()\" [size]=\"menuIconSize() ?? defaults.menuIconSize()\" />\n        </m-menu-item>\n    }\n    @for (template of layoutService.menuTemplates; track template) {\n        <ng-container [ngTemplateOutlet]=\"template\" />\n    }\n</m-menu>\n<ng-content />\n<m-footer>\n    @for (template of layoutService.footerTemplates; track template) {\n        <ng-container [ngTemplateOutlet]=\"template\" />\n    }\n</m-footer>\n","import { Component, effect, input, OnDestroy } from '@angular/core';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\nimport { LayoutComponent } from './layout.component';\n\n@Component({\n    selector: 'm-layout-defaults',\n    template: ''\n})\nexport class LayoutDefaultsComponent implements OnDestroy {\n    private readonly previousMenuIcon = LayoutComponent.defaults.menuIcon();\n    private readonly previousMenuIconSize = LayoutComponent.defaults.menuIconSize();\n    private currentMenuIcon?: IconType;\n    private currentMenuIconSize?: IconSize;\n    public readonly menuIcon = input<IconType>();\n    public readonly menuIconSize = input<IconSize>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.menuIcon();\n            if (value !== undefined) {\n                this.currentMenuIcon = value;\n                LayoutComponent.defaults.menuIcon.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.menuIconSize();\n            if (value !== undefined) {\n                this.currentMenuIconSize = value;\n                LayoutComponent.defaults.menuIconSize.set(value);\n            }\n        });\n    }\n\n    public ngOnDestroy(): void {\n        if (this.currentMenuIcon === LayoutComponent.defaults.menuIcon()) {\n            LayoutComponent.defaults.menuIcon.set(this.previousMenuIcon);\n        }\n        if (this.currentMenuIconSize === LayoutComponent.defaults.menuIconSize()) {\n            LayoutComponent.defaults.menuIconSize.set(this.previousMenuIconSize);\n        }\n    }\n}\n","export const localizeDictionary = new Map<string, string>();\r\n\r\nexport function localize(key: string, fallback?: string): string {\r\n    return localizeDictionary.get(key) ?? fallback ?? key;\r\n}\r\n","import { AfterViewInit, Component, ElementRef, inject, input, OnInit } from '@angular/core';\r\nimport { localizeDictionary } from './localize';\r\n\r\n@Component({\r\n    selector: 'm-localize',\r\n    templateUrl: './localize.component.html',\r\n    styleUrl: './localize.component.scss'\r\n})\r\nexport class LocalizeComponent implements AfterViewInit, OnInit {\r\n    private readonly elementRef = inject(ElementRef);\r\n    public readonly key = input.required<string>();\r\n\r\n    public ngOnInit(): void {\r\n        localizeDictionary.set(this.key(), this.elementRef.nativeElement.textContent);\r\n    }\r\n\r\n    public ngAfterViewInit(): void {\r\n        localizeDictionary.set(this.key(), this.elementRef.nativeElement.textContent);\r\n    }\r\n}\r\n","<ng-content />\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownBold extends MarkdownElement {\r\n    type: 'bold';\r\n    elements: MarkdownElement[];\r\n}\r\n\r\nexport const markdownBoldType = 'bold';\r\nexport const isMarkdownBold = (element: MarkdownElement): element is MarkdownBold => element?.type === markdownBoldType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownCode extends MarkdownElement {\r\n    type: 'code';\r\n    code: string | undefined;\r\n}\r\n\r\nexport const markdownCodeType = 'code';\r\nexport const isMarkdownCode = (element: MarkdownElement): element is MarkdownCode => element?.type === markdownCodeType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownCodeBlock extends MarkdownElement {\r\n    type: 'code-block';\r\n    language: string | undefined;\r\n    code: string | undefined;\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownCodeBlockType = 'code-block';\r\nexport const isMarkdownCodeBlock = (element: MarkdownElement): element is MarkdownCodeBlock => element?.type === markdownCodeBlockType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownCustomElement extends MarkdownElement {\r\n    type: 'custom-element';\r\n    isBlock: true;\r\n    code: string | undefined;\r\n    data: Record<string, unknown> | undefined;\r\n}\r\n\r\nexport const markdownCustomElementType = 'custom-element';\r\nexport const isMarkdownCustomElement = (element: MarkdownElement): element is MarkdownCustomElement => element?.type === markdownCustomElementType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownEmpty extends MarkdownElement {\r\n    type: 'empty';\r\n}\r\n\r\nexport const markdownEmptyType = 'empty';\r\nexport const isMarkdownElement = (element: MarkdownElement): element is MarkdownEmpty => element?.type === markdownEmptyType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownHeader1 extends MarkdownElement {\r\n    type: 'header1';\r\n    elements: MarkdownElement[];\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownHeader1Type = 'header1';\r\nexport const isMarkdownHeader1 = (element: MarkdownElement): element is MarkdownHeader1 => element?.type === markdownHeader1Type;\r\n\r\nexport interface MarkdownHeader2 extends MarkdownElement {\r\n    type: 'header2';\r\n    elements: MarkdownElement[];\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownHeader2Type = 'header2';\r\nexport const isMarkdownHeader2 = (element: MarkdownElement): element is MarkdownHeader2 => element?.type === markdownHeader2Type;\r\n\r\nexport interface MarkdownHeader3 extends MarkdownElement {\r\n    type: 'header3';\r\n    elements: MarkdownElement[];\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownHeader3Type = 'header3';\r\nexport const isMarkdownHeader3 = (element: MarkdownElement): element is MarkdownHeader3 => element?.type === markdownHeader3Type;\r\n\r\nexport interface MarkdownHeader4 extends MarkdownElement {\r\n    type: 'header4';\r\n    elements: MarkdownElement[];\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownHeader4Type = 'header4';\r\nexport const isMarkdownHeader4 = (element: MarkdownElement): element is MarkdownHeader4 => element?.type === markdownHeader4Type;\r\n\r\nexport interface MarkdownHeader5 extends MarkdownElement {\r\n    type: 'header5';\r\n    elements: MarkdownElement[];\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownHeader5Type = 'header5';\r\nexport const isMarkdownHeader5 = (element: MarkdownElement): element is MarkdownHeader5 => element?.type === markdownHeader5Type;\r\n\r\nexport interface MarkdownHeader6 extends MarkdownElement {\r\n    type: 'header6';\r\n    elements: MarkdownElement[];\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownHeader6Type = 'header6';\r\nexport const isMarkdownHeader6 = (element: MarkdownElement): element is MarkdownHeader6 => element?.type === markdownHeader6Type;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownImage extends MarkdownElement {\r\n    type: 'image';\r\n    alt: string;\r\n    url: string;\r\n}\r\n\r\nexport const markdownImageType = 'image';\r\nexport const isMarkdownImage = (element: MarkdownElement): element is MarkdownImage => element?.type === markdownImageType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownItalic extends MarkdownElement {\r\n    type: 'italic';\r\n    elements: MarkdownElement[];\r\n}\r\n\r\nexport const markdownItalicType = 'italic';\r\nexport const isMarkdownItalic = (element: MarkdownElement): element is MarkdownItalic => element?.type === markdownItalicType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownLink extends MarkdownElement {\r\n    type: 'link';\r\n    elements: MarkdownElement[];\r\n    url: string;\r\n}\r\n\r\nexport const markdownLinkType = 'link';\r\nexport const isMarkdownLink = (element: MarkdownElement): element is MarkdownLink => element?.type === markdownLinkType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownList extends MarkdownElement {\r\n    type: 'list';\r\n    style: 'unordered';\r\n    level: number;\r\n    items: MarkdownListItem[];\r\n}\r\n\r\nexport interface MarkdownListItem extends MarkdownElement {\r\n    type: 'list-item';\r\n    elements: MarkdownElement[];\r\n}\r\n\r\nexport const markdownListType = 'list';\r\nexport const isMarkdownList = (element: MarkdownElement | undefined): element is MarkdownList => element?.type === markdownListType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownParagraph extends MarkdownElement {\r\n    type: 'paragraph';\r\n    elements: MarkdownElement[];\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownParagraphType = 'paragraph';\r\nexport const isMarkdownParagraph = (element: MarkdownElement): element is MarkdownParagraph => element?.type === markdownParagraphType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownSeparator extends MarkdownElement {\r\n    type: 'separator';\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownSeparatorType = 'separator';\r\nexport const isMarkdownSeparator = (element: MarkdownElement): element is MarkdownSeparator => element?.type === markdownSeparatorType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownStrikethrough extends MarkdownElement {\r\n    type: 'strikethrough';\r\n    elements: MarkdownElement[];\r\n}\r\n\r\nexport const markdownStrikethroughType = 'strikethrough';\r\nexport const isMarkdownStrikethrough = (element: MarkdownElement): element is MarkdownStrikethrough => element?.type === markdownStrikethroughType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownText extends MarkdownElement {\r\n    type: 'text';\r\n    text: string;\r\n}\r\n\r\nexport const markdownTextType = 'text';\r\nexport const isMarkdownText = (element: MarkdownElement): element is MarkdownText => element?.type === markdownTextType;\r\n","export const cast = <T>(value: T): T => value;\r\n","import { Service, Type } from '@angular/core';\r\nimport { cast } from '../../../helpers/cast';\r\nimport { ComponentParser } from '../../dynamic-component/component-parser';\r\nimport { MarkdownBlockParser } from '../models/markdown-block-parser';\r\nimport { MarkdownBold, markdownBoldType } from '../models/markdown-bold';\r\nimport { MarkdownCode, markdownCodeType } from '../models/markdown-code';\r\nimport { MarkdownCodeBlock, markdownCodeBlockType } from '../models/markdown-code-block';\r\nimport { MarkdownCustomElement, markdownCustomElementType } from '../models/markdown-custom-element';\r\nimport { MarkdownElement } from '../models/markdown-element';\r\nimport { MarkdownEmpty, markdownEmptyType } from '../models/markdown-empty';\r\nimport { MarkdownHeader1, markdownHeader1Type, MarkdownHeader2, markdownHeader2Type, MarkdownHeader3, markdownHeader3Type, MarkdownHeader4, markdownHeader4Type, MarkdownHeader5, markdownHeader5Type, MarkdownHeader6, markdownHeader6Type } from '../models/markdown-header';\r\nimport { MarkdownImage, markdownImageType } from '../models/markdown-image';\r\nimport { MarkdownInlineParser } from '../models/markdown-inline-parser';\r\nimport { MarkdownItalic, markdownItalicType } from '../models/markdown-italic';\r\nimport { MarkdownLink, markdownLinkType } from '../models/markdown-link';\r\nimport { isMarkdownList, MarkdownList, MarkdownListItem, markdownListType } from '../models/markdown-list';\r\nimport { MarkdownParagraph } from '../models/markdown-paragraph';\r\nimport { MarkdownSeparator, markdownSeparatorType } from '../models/markdown-separator';\r\nimport { MarkdownStrikethrough, markdownStrikethroughType } from '../models/markdown-strikethrough';\r\nimport { MarkdownText, markdownTextType } from '../models/markdown-text';\r\n\r\n@Service()\r\nexport class MarkdownParser {\r\n    private readonly blockParsers: MarkdownBlockParser[] = [];\r\n    private readonly inlineParsers: MarkdownInlineParser[] = [];\r\n\r\n    public constructor() {\r\n        this.registerBlockParser({\r\n            regex: /^\\s*#(?<inline>[^#].*)$/,\r\n            factory: (result: RegExpExecArray): MarkdownHeader1 => ({\r\n                type: markdownHeader1Type,\r\n                elements: this.parseInline(result.groups?.['inline']?.trim()),\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*#{2}(?<inline>[^#].*)$/,\r\n            factory: (result: RegExpExecArray): MarkdownHeader2 => ({\r\n                type: markdownHeader2Type,\r\n                elements: this.parseInline(result.groups?.['inline']?.trim()),\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*#{3}(?<inline>[^#].*)$/,\r\n            factory: (result: RegExpExecArray): MarkdownHeader3 => ({\r\n                type: markdownHeader3Type,\r\n                elements: this.parseInline(result.groups?.['inline']?.trim()),\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*#{4}(?<inline>[^#].*)$/,\r\n            factory: (result: RegExpExecArray): MarkdownHeader4 => ({\r\n                type: markdownHeader4Type,\r\n                elements: this.parseInline(result.groups?.['inline']?.trim()),\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*#{5}(?<inline>[^#].*)$/,\r\n            factory: (result: RegExpExecArray): MarkdownHeader5 => ({\r\n                type: markdownHeader5Type,\r\n                elements: this.parseInline(result.groups?.['inline']?.trim()),\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*#{6}(?<inline>[^#].*)$/,\r\n            factory: (result: RegExpExecArray): MarkdownHeader6 => ({\r\n                type: markdownHeader6Type,\r\n                elements: this.parseInline(result.groups?.['inline']?.trim()),\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*`{3}(?<language>.*?)\\r?\\n(?<code>(.|\\r?\\n)*?)`{3}$/g,\r\n            factory: (result: RegExpExecArray): MarkdownCodeBlock => ({\r\n                type: markdownCodeBlockType,\r\n                language: result.groups?.['language'],\r\n                code: result.groups?.['code'],\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*-{3}$/,\r\n            factory: (): MarkdownSeparator => ({\r\n                type: markdownSeparatorType,\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*(?<code><([^>]+)(.+?)<\\/\\2>)$/g,\r\n            factory: (result: RegExpExecArray, data?: Record<string, unknown>): MarkdownCustomElement => ({\r\n                type: markdownCustomElementType,\r\n                code: result.groups?.['code'],\r\n                data,\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*<m-json(.+?)<\\/m-json>$/g,\r\n            factory: (): MarkdownEmpty => ({\r\n                type: markdownEmptyType\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^(?<level>\\s*)-\\s*(?<inline>.*)$/,\r\n            factory: (result: RegExpExecArray, _, previous): MarkdownList | undefined => {\r\n                const item: MarkdownListItem = {\r\n                    type: 'list-item',\r\n                    elements: this.parseInline(result.groups?.['inline'])\r\n                };\r\n                if (isMarkdownList(previous)) {\r\n                    previous.items.push(item);\r\n                    return undefined;\r\n                }\r\n                return {\r\n                    type: markdownListType,\r\n                    level: result.groups?.['level'].length ?? 0,\r\n                    style: 'unordered',\r\n                    items: [item],\r\n                    isBlock: true\r\n                };\r\n            }\r\n        });\r\n\r\n        this.registerInlineParser({\r\n            regex: /`(?<code>[^`].*?)`(?<post>.*)/,\r\n            factory: (result: RegExpExecArray): MarkdownElement[] => [\r\n                ...this.parseInline(result.input.slice(0, Math.max(0, result.index))),\r\n                cast<MarkdownCode>({\r\n                    type: markdownCodeType,\r\n                    code: result.groups?.['code']\r\n                }),\r\n                ...this.parseInline(result.groups?.['post'])\r\n            ]\r\n        });\r\n        this.registerInlineParser({\r\n            regex: /!\\[(?<alt>.*)]\\((?<url>.*)\\)(?<post>.*)/,\r\n            factory: (result: RegExpExecArray): MarkdownElement[] => [\r\n                ...this.parseInline(result.input.slice(0, Math.max(0, result.index))),\r\n                cast<MarkdownImage>({\r\n                    type: markdownImageType,\r\n                    url: result.groups?.['url'] ?? '',\r\n                    alt: result.groups?.['alt'] ?? ''\r\n                }),\r\n                ...this.parseInline(result.groups?.['post'])\r\n            ]\r\n        });\r\n        this.registerInlineParser({\r\n            regex: /\\[(?<inline>.*)]\\((?<url>.*)\\)(?<post>.*)/,\r\n            factory: (result: RegExpExecArray): MarkdownElement[] => [\r\n                ...this.parseInline(result.input.slice(0, Math.max(0, result.index))),\r\n                cast<MarkdownLink>({\r\n                    type: markdownLinkType,\r\n                    url: result.groups?.['url'] ?? '',\r\n                    elements: this.parseInline(result.groups?.['inline'])\r\n                }),\r\n                ...this.parseInline(result.groups?.['post'])\r\n            ]\r\n        });\r\n        this.registerInlineParser({\r\n            regex: /\\*(?<inline>.*?)\\*(?<post>.*)/,\r\n            factory: (result: RegExpExecArray): MarkdownElement[] => [\r\n                ...this.parseInline(result.input.slice(0, Math.max(0, result.index))),\r\n                cast<MarkdownItalic>({\r\n                    type: markdownItalicType,\r\n                    elements: this.parseInline(result.groups?.['inline'])\r\n                }),\r\n                ...this.parseInline(result.groups?.['post'])\r\n            ]\r\n        });\r\n        this.registerInlineParser({\r\n            regex: /_(?<inline>.*?)_(?<post>.*)/,\r\n            factory: (result: RegExpExecArray): MarkdownElement[] => [\r\n                ...this.parseInline(result.input.slice(0, Math.max(0, result.index))),\r\n                cast<MarkdownItalic>({\r\n                    type: markdownItalicType,\r\n                    elements: this.parseInline(result.groups?.['inline'])\r\n                }),\r\n                ...this.parseInline(result.groups?.['post'])\r\n            ]\r\n        });\r\n        this.registerInlineParser({\r\n            regex: /\\*\\*(?<inline>.*?)\\*\\*(?<post>.*)/,\r\n            factory: (result: RegExpExecArray): MarkdownElement[] => [\r\n                ...this.parseInline(result.input.slice(0, Math.max(0, result.index))),\r\n                cast<MarkdownBold>({\r\n                    type: markdownBoldType,\r\n                    elements: this.parseInline(result.groups?.['inline'])\r\n                }),\r\n                ...this.parseInline(result.groups?.['post'])\r\n            ]\r\n        });\r\n        this.registerInlineParser({\r\n            regex: /__(?<inline>.*?)__(?<post>.*)/,\r\n            factory: (result: RegExpExecArray): MarkdownElement[] => [\r\n                ...this.parseInline(result.input.slice(0, Math.max(0, result.index))),\r\n                cast<MarkdownBold>({\r\n                    type: markdownBoldType,\r\n                    elements: this.parseInline(result.groups?.['inline'])\r\n                }),\r\n                ...this.parseInline(result.groups?.['post'])\r\n            ]\r\n        });\r\n        this.registerInlineParser({\r\n            regex: /~~(?<inline>.*?)~~(?<post>.*)/,\r\n            factory: (result: RegExpExecArray): MarkdownElement[] => [\r\n                ...this.parseInline(result.input.slice(0, Math.max(0, result.index))),\r\n                cast<MarkdownStrikethrough>({\r\n                    type: markdownStrikethroughType,\r\n                    elements: this.parseInline(result.groups?.['inline'])\r\n                }),\r\n                ...this.parseInline(result.groups?.['post'])\r\n            ]\r\n        });\r\n\r\n    }\r\n\r\n    public registerBlockParser(parser: MarkdownBlockParser): void {\r\n        this.blockParsers.push(parser);\r\n    }\r\n\r\n    public registerInlineParser(parser: MarkdownInlineParser): void {\r\n        this.inlineParsers.push(parser);\r\n    }\r\n\r\n    public registerComponent(component: Type<unknown>): void {\r\n        ComponentParser.register(component);\r\n    }\r\n\r\n    public parse(value: string): MarkdownElement[] {\r\n        const data = this.parseData(value);\r\n        if (value.includes('\\n\\n')) {\r\n            const elements: MarkdownElement[] = [];\r\n            const paragraphs = value.split('\\n\\n');\r\n            for (const paragraph of paragraphs) {\r\n                elements.push(cast<MarkdownParagraph>({\r\n                    type: 'paragraph',\r\n                    elements: this.parseBlock(paragraph, data),\r\n                    isBlock: true\r\n                }));\r\n            }\r\n            return elements;\r\n        }\r\n        return this.parseBlock(value, data);\r\n    }\r\n\r\n    private parseData(value: string): Record<string, unknown> {\r\n        const data: Record<string, unknown> = {};\r\n        const regex = /<m-json>(?<json>.*?)<\\/m-json> *\\r?\\n?/gm;\r\n        let match = regex.exec(value);\r\n        while (match) {\r\n            Object.assign(data, JSON.parse(match.groups?.['json'] ?? '{}'));\r\n            match = regex.exec(value);\r\n        }\r\n        return data;\r\n    }\r\n\r\n    private parseBlock(text: string, data: Record<string, unknown>): MarkdownElement[] {\r\n        const lines = text.split('\\n');\r\n        const elements: MarkdownElement[] = [];\r\n        for (let line of lines) {\r\n            line = line?.trimEnd();\r\n            let parsed = false;\r\n            for (const parser of this.blockParsers) {\r\n                const regexResult = parser.regex.exec(line);\r\n                if (regexResult) {\r\n                    const element = parser.factory(regexResult, data, elements.at(-1));\r\n                    if (element) {\r\n                        elements.push(element);\r\n                    }\r\n                    parsed = true;\r\n                    break;\r\n                }\r\n            }\r\n            if (!parsed) {\r\n                elements.push(...this.parseInline(line));\r\n            }\r\n            const lastElement = elements.at(-1);\r\n            if (lastElement) {\r\n                lastElement.breakLine = true;\r\n            }\r\n        }\r\n        return elements;\r\n    }\r\n\r\n    private parseInline(text: string | undefined): MarkdownElement[] {\r\n        if (!text) {\r\n            return [{ type: 'empty' }];\r\n        }\r\n        const elements: MarkdownElement[] = [];\r\n        let firstResult: RegExpExecArray | undefined;\r\n        let firstParser: MarkdownInlineParser | undefined;\r\n        for (const parser of this.inlineParsers) {\r\n            const regexResult = parser.regex.exec(text);\r\n            if (regexResult && (!firstResult || regexResult.index <= firstResult.index)) {\r\n                firstResult = regexResult;\r\n                firstParser = parser;\r\n            }\r\n        }\r\n        if (firstResult && firstParser) {\r\n            elements.push(...firstParser.factory(firstResult));\r\n        }\r\n        else {\r\n            elements.push(cast<MarkdownText>({ type: markdownTextType, text }));\r\n        }\r\n        return elements;\r\n    }\r\n}\r\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, inject, input } from '@angular/core';\nimport { DynamicComponentComponent } from '../dynamic-component/dynamic-component.component';\nimport { isMarkdownBold, MarkdownBold, markdownBoldType } from './models/markdown-bold';\nimport { isMarkdownCode, MarkdownCode, markdownCodeType } from './models/markdown-code';\nimport { isMarkdownCodeBlock, MarkdownCodeBlock, markdownCodeBlockType } from './models/markdown-code-block';\nimport { isMarkdownCustomElement, MarkdownCustomElement, markdownCustomElementType } from './models/markdown-custom-element';\nimport { MarkdownElement } from './models/markdown-element';\nimport { markdownEmptyType } from './models/markdown-empty';\nimport { isMarkdownHeader1, isMarkdownHeader2, isMarkdownHeader3, isMarkdownHeader4, isMarkdownHeader5, isMarkdownHeader6, MarkdownHeader1, markdownHeader1Type, MarkdownHeader2, markdownHeader2Type, MarkdownHeader3, markdownHeader3Type, MarkdownHeader4, markdownHeader4Type, MarkdownHeader5, markdownHeader5Type, MarkdownHeader6, markdownHeader6Type } from './models/markdown-header';\nimport { isMarkdownImage, MarkdownImage, markdownImageType } from './models/markdown-image';\nimport { isMarkdownItalic, MarkdownItalic, markdownItalicType } from './models/markdown-italic';\nimport { isMarkdownLink, MarkdownLink, markdownLinkType } from './models/markdown-link';\nimport { isMarkdownList, MarkdownList, markdownListType } from './models/markdown-list';\nimport { isMarkdownParagraph, MarkdownParagraph, markdownParagraphType } from './models/markdown-paragraph';\nimport { markdownSeparatorType } from './models/markdown-separator';\nimport { isMarkdownStrikethrough, MarkdownStrikethrough, markdownStrikethroughType } from './models/markdown-strikethrough';\nimport { isMarkdownText, MarkdownText, markdownTextType } from './models/markdown-text';\nimport { MarkdownParser } from './services/markdown-parser';\n\n@Component({\n    selector: 'm-markdown-renderer',\n    imports: [NgTemplateOutlet, DynamicComponentComponent],\n    templateUrl: './markdown-renderer.component.html',\n    styleUrls: ['./markdown-renderer.component.scss']\n})\nexport class MarkdownRendererComponent {\n    private readonly parser = inject(MarkdownParser);\n    public readonly value = input<string, string | undefined>('', { transform: value => value ?? '' });\n    // Derived from value via the parser; replaces the former value setter's side effect of rebuilding the array.\n    protected readonly elements = computed<MarkdownElement[]>(() => {\n        const value = this.value();\n        return value ? this.parser.parse(value) : [];\n    });\n    protected readonly markdownParagraphType = markdownParagraphType;\n    protected readonly markdownHeader1Type = markdownHeader1Type;\n    protected readonly markdownHeader2Type = markdownHeader2Type;\n    protected readonly markdownHeader3Type = markdownHeader3Type;\n    protected readonly markdownHeader4Type = markdownHeader4Type;\n    protected readonly markdownHeader5Type = markdownHeader5Type;\n    protected readonly markdownHeader6Type = markdownHeader6Type;\n    protected readonly markdownCodeBlockType = markdownCodeBlockType;\n    protected readonly markdownSeparatorType = markdownSeparatorType;\n    protected readonly markdownCustomElementType = markdownCustomElementType;\n    protected readonly markdownCodeType = markdownCodeType;\n    protected readonly markdownImageType = markdownImageType;\n    protected readonly markdownLinkType = markdownLinkType;\n    protected readonly markdownItalicType = markdownItalicType;\n    protected readonly markdownBoldType = markdownBoldType;\n    protected readonly markdownStrikethroughType = markdownStrikethroughType;\n    protected readonly markdownTextType = markdownTextType;\n    protected readonly markdownEmptyType = markdownEmptyType;\n    protected readonly markdownListType = markdownListType;\n\n    protected $elements(elements: []): MarkdownElement[] {\n        return elements;\n    }\n\n    protected $paragraph(element: MarkdownElement): MarkdownParagraph | undefined {\n        return isMarkdownParagraph(element) ? element : undefined;\n    }\n\n    protected $header1(element: MarkdownElement): MarkdownHeader1 | undefined {\n        return isMarkdownHeader1(element) ? element : undefined;\n    }\n\n    protected $header2(element: MarkdownElement): MarkdownHeader2 | undefined {\n        return isMarkdownHeader2(element) ? element : undefined;\n    }\n\n    protected $header3(element: MarkdownElement): MarkdownHeader3 | undefined {\n        return isMarkdownHeader3(element) ? element : undefined;\n    }\n\n    protected $header4(element: MarkdownElement): MarkdownHeader4 | undefined {\n        return isMarkdownHeader4(element) ? element : undefined;\n    }\n\n    protected $header5(element: MarkdownElement): MarkdownHeader5 | undefined {\n        return isMarkdownHeader5(element) ? element : undefined;\n    }\n\n    protected $header6(element: MarkdownElement): MarkdownHeader6 | undefined {\n        return isMarkdownHeader6(element) ? element : undefined;\n    }\n\n    protected $codeBlock(element: MarkdownElement): MarkdownCodeBlock | undefined {\n        return isMarkdownCodeBlock(element) ? element : undefined;\n    }\n\n    protected $customElement(element: MarkdownElement): MarkdownCustomElement | undefined {\n        return isMarkdownCustomElement(element) ? element : undefined;\n    }\n\n    protected $code(element: MarkdownElement): MarkdownCode | undefined {\n        return isMarkdownCode(element) ? element : undefined;\n    }\n\n    protected $list(element: MarkdownElement): MarkdownList | undefined {\n        return isMarkdownList(element) ? element : undefined;\n    }\n\n    protected $image(element: MarkdownElement): MarkdownImage | undefined {\n        return isMarkdownImage(element) ? element : undefined;\n    }\n\n    protected $link(element: MarkdownElement): MarkdownLink | undefined {\n        return isMarkdownLink(element) ? element : undefined;\n    }\n\n    protected $italic(element: MarkdownElement): MarkdownItalic | undefined {\n        return isMarkdownItalic(element) ? element : undefined;\n    }\n\n    protected $bold(element: MarkdownElement): MarkdownBold | undefined {\n        return isMarkdownBold(element) ? element : undefined;\n    }\n\n    protected $strikethrough(element: MarkdownElement): MarkdownStrikethrough | undefined {\n        return isMarkdownStrikethrough(element) ? element : undefined;\n    }\n\n    protected $text(element: MarkdownElement): MarkdownText | undefined {\n        return isMarkdownText(element) ? element : undefined;\n    }\n}\n","<ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': elements() }\"></ng-container>\n\n<ng-template let-elements #elementsTemplate>\n    @for (element of $elements(elements); track element) {\n        @switch (element.type) {\n            @case (markdownParagraphType) {\n                @if ($paragraph(element); as paragraph) {\n                    <p>\n                        <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': paragraph.elements }\"></ng-container>\n                    </p>\n                }\n            }\n            @case (markdownHeader1Type) {\n                @if ($header1(element); as header1) {\n                    <h1>\n                        <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': header1.elements }\"></ng-container>\n                    </h1>\n                }\n            }\n            @case (markdownHeader2Type) {\n                @if ($header2(element); as header2) {\n                    <h2>\n                        <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': header2.elements }\"></ng-container>\n                    </h2>\n                }\n            }\n            @case (markdownHeader3Type) {\n                @if ($header3(element); as header3) {\n                    <h3>\n                        <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': header3.elements }\"></ng-container>\n                    </h3>\n                }\n            }\n            @case (markdownHeader4Type) {\n                @if ($header4(element); as header4) {\n                    <h4>\n                        <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': header4.elements }\"></ng-container>\n                    </h4>\n                }\n            }\n            @case (markdownHeader5Type) {\n                @if ($header5(element); as header5) {\n                    <h5>\n                        <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': header5.elements }\"></ng-container>\n                    </h5>\n                }\n            }\n            @case (markdownHeader6Type) {\n                @if ($header6(element); as header6) {\n                    <h6>\n                        <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': header6.elements }\"></ng-container>\n                    </h6>\n                }\n            }\n            @case (markdownCodeBlockType) {\n                <pre>@if ($codeBlock(element); as codeBlock) {\n                    <code>{{ codeBlock.code }}</code>\n                }</pre>\n            }\n            @case (markdownSeparatorType) {\n                <hr />\n            }\n            @case (markdownCustomElementType) {\n                @if ($customElement(element); as customElement) {\n                    <m-dynamic-component [code]=\"customElement.code\" />\n                }\n            }\n            @case (markdownCodeType) {\n                @if ($code(element); as code) {\n                    <code>{{ code.code }}</code>\n                }\n            }\n            @case (markdownListType) {\n                @if ($list(element); as list) {\n                    @if (list.style === 'unordered') {\n                        <ul>\n                            @for (item of list.items; track item) {\n                                <li>\n                                    <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': item.elements }\"></ng-container>\n                                </li>\n                            }\n                        </ul>\n                    }\n                }\n            }\n            @case (markdownImageType) {\n                @if ($image(element); as image) {\n                    <img [src]=\"image.url\" [alt]=\"image.alt\" />\n                }\n            }\n            @case (markdownLinkType) {\n                @if ($link(element); as link) {\n                    <a [href]=\"link.url\">\n                        <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': link.elements }\"></ng-container>\n                    </a>\n                }\n            }\n            @case (markdownItalicType) {\n                @if ($italic(element); as italic) {\n                    <i>\n                        <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': italic.elements }\"></ng-container>\n                    </i>\n                }\n            }\n            @case (markdownBoldType) {\n                @if ($bold(element); as bold) {\n                    <b>\n                        <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': bold.elements }\"></ng-container>\n                    </b>\n                }\n            }\n            @case (markdownStrikethroughType) {\n                @if ($strikethrough(element); as strikethrough) {\n                    <s>\n                        <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': strikethrough.elements }\"></ng-container>\n                    </s>\n                }\n            }\n            @case (markdownTextType) {\n                @if ($text(element); as text) {\n                    <span>{{ text.text }}</span>\n                }\n            }\n            @case (markdownEmptyType) {\n            }\n            @default {\n                <span>Unknown element '{{ element.type }}'</span>\n            }\n        }\n        @if (element.breakLine && !element.isBlock) {\n            <br>\n        }\n    }\n</ng-template>\n","import { Component } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\n\r\n@Component({\r\n    selector: 'm-menu-header',\r\n    templateUrl: './menu-header.component.html',\r\n    styleUrls: ['./menu-header.component.scss'],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class MenuHeaderComponent extends BaseComponent {\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('header', 'item');\r\n    }\r\n}\r\n","<ng-content />","import { Directive, effect, input } from '@angular/core';\r\nimport { BaseDirective } from '../../base/base.directive';\r\nimport { toBoolean } from '../../helpers/to-boolean';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\n\r\n@Directive({\r\n    selector: '[m-menu-item]',\r\n    providers: [...BaseDirective.providers]\r\n})\r\n// TODO: Implement\r\nexport class MenuItemDirective /*extends MenuItemComponent*/ extends BaseDirective {\r\n    public readonly active = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('active')\r\n            .registerFixed('item');\r\n        effect(() => this.classes.set('active', this.active()));\r\n    }\r\n}\r\n","import { Directive, inject, TemplateRef } from '@angular/core';\r\nimport { LayoutService } from '../../services/layout.service';\r\n\r\n@Directive({\r\n    selector: '[m-menu-link-template]'\r\n})\r\nexport class MenuLinkTemplateDirective {\r\n    private readonly layoutService = inject(LayoutService);\r\n    private readonly templateRef = inject<TemplateRef<unknown>>(TemplateRef);\r\n\r\n    public constructor() {\r\n        this.layoutService.menuTemplates.push(this.templateRef);\r\n    }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { TemplateTarget } from '../../models/template-target';\r\nimport { MenuLinkTemplateDirective } from './menu-link-template.directive';\r\n\r\n@Component({\r\n    selector: 'm-menu-link',\r\n    templateUrl: './menu-link.component.html',\r\n    styleUrls: ['./menu-link.component.scss'],\r\n    imports: [MenuLinkTemplateDirective]\r\n})\r\nexport class MenuLinkComponent {\r\n    public readonly target = new TemplateTarget();\r\n}\r\n","<ng-container *m-menu-link-template>\r\n    <ng-content />\r\n</ng-container>\r\n","import { Component, effect, input, OnDestroy } from '@angular/core';\nimport { IconSize } from '../icon/models/icon-size';\nimport { IconType } from '../icon/models/icon-type';\nimport { MessageComponent } from './message.component';\n\n@Component({\n    selector: 'm-message-defaults',\n    template: ''\n})\nexport class MessageDefaultsComponent implements OnDestroy {\n    private readonly previousCloseIcon = MessageComponent.defaults.closeIcon();\n    private readonly previousCloseIconSize = MessageComponent.defaults.closeIconSize();\n    private currentCloseIcon?: IconType;\n    private currentCloseIconSize?: IconType;\n    public readonly closeIcon = input<IconType>();\n    public readonly closeIconSize = input<IconSize>();\n    public readonly inverted = input<boolean>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.closeIcon();\n            if (value !== undefined) {\n                this.currentCloseIcon = value;\n                MessageComponent.defaults.closeIcon.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.closeIconSize();\n            if (value !== undefined) {\n                this.currentCloseIconSize = value;\n                MessageComponent.defaults.closeIconSize.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.inverted();\n            if (value !== undefined) {\n                MessageComponent.defaults.inverted.set(value);\n            }\n        });\n    }\n\n    public ngOnDestroy(): void {\n        if (this.currentCloseIcon === MessageComponent.defaults.closeIcon()) {\n            MessageComponent.defaults.closeIcon.set(this.previousCloseIcon);\n        }\n        if (this.currentCloseIconSize === MessageComponent.defaults.closeIconSize()) {\n            MessageComponent.defaults.closeIconSize.set(this.previousCloseIconSize);\n        }\n    }\n}\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'm-modal-footer',\r\n    template: '<ng-content />'\r\n})\r\nexport class ModalFooterComponent {}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'm-modal-header',\r\n    template: '<ng-content/>'\r\n})\r\nexport class ModalHeaderComponent {}\r\n","import { Component, computed, effect, ElementRef, input, output, signal, viewChild } from '@angular/core';\nimport { InvertibleComponent } from '../../base/invertible.component';\nimport { FallbackForDirective } from '../../directives/fallback-for.directive';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { ButtonComponent } from '../button/button.component';\nimport { DimmerComponent } from '../dimmer/dimmer.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { IconType } from '../icon/models/icon-type';\nimport { LoaderComponent } from '../loader/loader.component';\nimport { ModalFooterComponent } from './modal-footer.component';\nimport { ModalHeaderComponent } from './modal-header.component';\nimport { ModalSize } from './models/modal-size';\n\n@Component({\n    selector: 'm-modal',\n    templateUrl: './modal.component.html',\n    styleUrls: ['./modal.component.scss'],\n    imports: [DimmerComponent, ModalHeaderComponent, ModalFooterComponent, IconComponent, ButtonComponent, LoaderComponent, FallbackForDirective],\n    providers: [...InvertibleComponent.providers],\n    host: {\n        '[class.hide-dimmer]': 'hideDimmer()'\n    }\n})\nexport class ModalComponent extends InvertibleComponent {\n    public static readonly defaults = {\n        closeIcon: signal<IconType>('close'),\n        inverted: signal(false)\n    };\n    private readonly resizeObserver = new ResizeObserver(() => this.onResize());\n    protected minGrowOnlyContentHeight = 0;\n    protected readonly defaults = ModalComponent.defaults;\n    public readonly growOnly = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly contentElementRef = viewChild<ElementRef<HTMLElement>>('content');\n    public readonly basic = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly header = input<string>();\n    public readonly showClose = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly showHeaderInput = input<boolean | undefined, BooleanLike>(undefined, { alias: 'showHeader', transform: toBoolean });\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly hideHeaderInput = input<boolean | undefined, BooleanLike>(undefined, { alias: 'hideHeader', transform: toBoolean });\n    public readonly showHeader = computed(() => {\n        const hide = this.hideHeaderInput();\n        return hide === undefined ? (this.showHeaderInput() ?? true) : !hide;\n    });\n    public readonly hideHeader = computed(() => !this.showHeader());\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly showFooterInput = input<boolean | undefined, BooleanLike>(undefined, { alias: 'showFooter', transform: toBoolean });\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly hideFooterInput = input<boolean | undefined, BooleanLike>(undefined, { alias: 'hideFooter', transform: toBoolean });\n    public readonly showFooter = computed(() => {\n        const hide = this.hideFooterInput();\n        return hide === undefined ? (this.showFooterInput() ?? true) : !hide;\n    });\n    public readonly hideFooter = computed(() => !this.showFooter());\n    public readonly hideDimmer = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly visible = input<boolean, BooleanLike>(true, { transform: toBoolean });\n    public readonly imageContent = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly fullscreen = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly size = input<ModalSize>();\n    public readonly scrolling = input<boolean, BooleanLike>(true, { transform: toBoolean });\n    public readonly noPadding = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly loading = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly minContentHeight = input<string>();\n    public readonly maxContentHeight = input<string>();\n    public readonly closeIcon = input<IconType>();\n    // eslint-disable-next-line @angular-eslint/no-output-native\n    public readonly close = output();\n\n    public constructor() {\n        super(false);\n        this.classes.register('basic', 'visible', 'fullscreen', 'size', 'scrolling', 'imageContent', 'header', 'footer', 'showHeader', 'hideHeader', 'showFooter', 'hideFooter', 'hideDimmer', 'showClose', 'minContentHeight', 'maxContentHeight');\n        effect(() => this.classes.set('basic', this.basic()));\n        effect(() => this.refreshInverted(ModalComponent.defaults.inverted()));\n\n        effect(() => {\n            const growOnly = this.growOnly();\n            const ref = this.contentElementRef();\n            if (!ref) {\n                return;\n            }\n            if (growOnly) {\n                this.resizeObserver.observe(ref.nativeElement);\n                this.onResize();\n            }\n            else {\n                this.minGrowOnlyContentHeight = 0;\n                this.resizeObserver.unobserve(ref.nativeElement);\n            }\n        });\n    }\n\n    protected onClose(): void {\n        this.close.emit();\n    }\n\n    protected onDimmerClick(event: MouseEvent): void {\n        // Only close modal if dimmer was clicked\n        if ((event.target as HTMLElement).closest('.modal')) {\n            return;\n        }\n        if (this.showClose()) {\n            this.onClose();\n        }\n    }\n\n    private onResize(): void {\n        this.minGrowOnlyContentHeight = Math.max(this.minGrowOnlyContentHeight ?? 0, this.contentElementRef()?.nativeElement.clientHeight ?? 0);\n    }\n}\n","<m-dimmer page (mousedown)=\"onDimmerClick($event)\">\n  <div class=\"ui\" [class.basic]=\"basic()\" [class.active]=\"visible()\" [class.fullscreen]=\"fullscreen()\" [class.modal]=\"true\" [class.mini]=\"size() === 'mini'\" [class.tiny]=\"size() === 'tiny'\" [class.small]=\"size() === 'small'\" [class.large]=\"size() === 'large'\" [class.inverted]=\"inverted()\">\n    @if (showHeader()) {\n      <div [class.ui]=\"basic()\" [class.icon]=\"basic()\" class=\"header\">\n        <ng-content select=\"m-modal-header\" />\n        <m-modal-header *m-fallback-for=\"'m-modal-header'\">\n          {{ header() }}\n        </m-modal-header>\n        @if (showClose()) {\n          @if (closeIcon() || defaults.closeIcon()) {\n            <m-icon [icon]=\"closeIcon() ?? defaults.closeIcon()\" class=\"close\" (click)=\"onClose()\" />\n          }\n        }\n      </div>\n    }\n    <div [class.image]=\"imageContent()\" [class.scrolling]=\"scrolling()\" class=\"content\" [class.no-padding]=\"noPadding()\" [style.min-height]=\"minContentHeight()\" [style.min-height.px]=\"minGrowOnlyContentHeight\" [style.max-height]=\"maxContentHeight()\" #content>\n      <ng-content />\n      @if (loading()) {\n        <m-dimmer inverted>\n          <m-loader />\n        </m-dimmer>\n      }\n    </div>\n    @if (showFooter()) {\n      <div class=\"actions\">\n        <ng-content select=\"m-modal-footer\" />\n        <m-modal-footer *m-fallback-for=\"'m-modal-footer'\">\n          <m-button primary (click)=\"onClose()\">Close</m-button>\n        </m-modal-footer>\n      </div>\n    }\n  </div>\n</m-dimmer>\n","import { Component, effect, input, OnDestroy } from '@angular/core';\nimport { IconType } from '../icon/models/icon-type';\nimport { ModalComponent } from './modal.component';\n\n@Component({\n    selector: 'm-modal-defaults',\n    template: ''\n})\nexport class ModalDefaultsComponent implements OnDestroy {\n    private readonly previousCloseIcon = ModalComponent.defaults.closeIcon();\n    private currentCloseIcon?: IconType;\n    public readonly closeIcon = input<IconType>();\n    public readonly inverted = input<boolean>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.closeIcon();\n            if (value !== undefined) {\n                this.currentCloseIcon = value;\n                ModalComponent.defaults.closeIcon.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.inverted();\n            if (value !== undefined) {\n                ModalComponent.defaults.inverted.set(value);\n            }\n        });\n    }\n\n    public ngOnDestroy(): void {\n        if (this.currentCloseIcon === ModalComponent.defaults.closeIcon()) {\n            ModalComponent.defaults.closeIcon.set(this.previousCloseIcon);\n        }\n    }\n}\n","import { InteropObservable, Subject, Subscribable } from 'rxjs';\r\n\r\nexport class AsyncAction implements InteropObservable<void> {\r\n    private readonly subject = new Subject<void>();\r\n    public readonly event = this.subject.asObservable();\r\n\r\n    public done(): void {\r\n        this.subject.next();\r\n        this.subject.complete();\r\n    }\r\n\r\n    public error(message?: string): void {\r\n        this.subject.error(message);\r\n    }\r\n\r\n    public [Symbol.observable](): Subscribable<void> {\r\n        return this.subject;\r\n    }\r\n}\r\n","import { Notification } from './notification';\r\nimport { NotificationHandler } from './notification-handler';\r\n\r\nexport class NotificationRef<T = unknown> {\r\n    public constructor(\r\n        public readonly notification: Notification<T>,\r\n        private readonly handler: NotificationHandler\r\n    ) {\r\n    }\r\n\r\n    public close(): void {\r\n        this.handler.remove(this.notification);\r\n    }\r\n}\r\n","import { Service, signal } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { IconType } from '../../icon/models/icon-type';\r\nimport { AsyncAction } from '../models/async-action';\r\nimport { Notification } from '../models/notification';\r\nimport { NotificationHandler } from '../models/notification-handler';\r\nimport { NotificationRef as NotificationReference } from '../models/notification-ref';\r\n\r\n@Service()\r\nexport class NotificationService implements NotificationHandler {\r\n    public static readonly defaults = {\r\n        successIcon: signal<IconType>('check')\r\n    };\r\n    private readonly addedSubject = new Subject<Notification>();\r\n    private readonly removedSubject = new Subject<Notification>();\r\n    private readonly erroredSubject = new Subject<Notification>();\r\n    private readonly warnedSubject = new Subject<Notification>();\r\n    private readonly succeededSubject = new Subject<Notification>();\r\n    private readonly positivedSubject = new Subject<Notification>();\r\n    private readonly informedSubject = new Subject<Notification>();\r\n    private readonly messages: Record<string, Notification[]> = {\r\n        all: [],\r\n        empty: []\r\n    };\r\n    public readonly added = this.addedSubject.asObservable();\r\n    public readonly removed = this.removedSubject.asObservable();\r\n    public readonly errored = this.erroredSubject.asObservable();\r\n    public readonly warned = this.warnedSubject.asObservable();\r\n    public readonly succeeded = this.succeededSubject.asObservable();\r\n    public readonly positived = this.positivedSubject.asObservable();\r\n    public readonly informed = this.informedSubject.asObservable();\r\n\r\n    public get(group?: 'all' | 'empty' | string): Notification[] {\r\n        group ||= 'all';\r\n        if (!this.messages[group]) {\r\n            this.messages[group] = [];\r\n        }\r\n        return this.messages[group];\r\n    }\r\n\r\n    public add(notification: Notification): NotificationReference {\r\n        this.messages['all'].push(notification);\r\n        if (notification.group) {\r\n            this.get(notification.group).push(notification);\r\n        }\r\n        else {\r\n            this.messages['empty'].push(notification);\r\n        }\r\n        this.addedSubject.next(notification);\r\n        if (notification?.timeout && notification.timeout > 0) {\r\n            setTimeout(() => this.remove(notification), notification.timeout);\r\n        }\r\n        return new NotificationReference(notification, this);\r\n    }\r\n\r\n    public remove(notification: Notification): void {\r\n        const index = this.messages['all'].indexOf(notification);\r\n        if (index !== -1) {\r\n            this.messages['all'].splice(index, 1);\r\n        }\r\n        if (notification.group) {\r\n            const groupIndex = this.messages[notification.group].indexOf(notification);\r\n            if (groupIndex !== -1) {\r\n                this.messages[notification.group].splice(groupIndex, 1);\r\n            }\r\n        }\r\n        else {\r\n            const groupIndex = this.messages['empty'].indexOf(notification);\r\n            if (groupIndex !== -1) {\r\n                this.messages['empty'].splice(groupIndex, 1);\r\n            }\r\n        }\r\n        this.removedSubject.next(notification);\r\n    }\r\n\r\n    public async(processingText: string, doneText: string, errorText?: string): AsyncAction {\r\n        const action = new AsyncAction();\r\n        const loadingMessage: Notification = { type: 'none', text: processingText, loading: true, group: 'content' };\r\n        this.add(loadingMessage);\r\n        action.event.subscribe({\r\n            next: () => {\r\n                this.remove(loadingMessage);\r\n                this.success(doneText, { icon: NotificationService.defaults.successIcon(), group: 'content' });\r\n            },\r\n            error: (error: string | undefined, options?: { timeout: 10_000 } | Partial<Notification>) => {\r\n                this.remove(loadingMessage);\r\n                this.error(error ?? errorText ?? 'Could not execute action due to an unexpected network issue. Please retry or contact the support team.', options);\r\n            }\r\n        });\r\n        return action;\r\n    }\r\n\r\n    public error(message: { timeout: 0 } | Partial<Notification>): NotificationReference\r\n    public error(text: string, options?: { timeout: 0 } | Partial<Notification>): NotificationReference\r\n    public error(textOrOptions: string | Partial<Notification>, optionsFallback?: Partial<Notification>): NotificationReference {\r\n        const options: Partial<Notification> = typeof textOrOptions === 'object' ? textOrOptions : optionsFallback ?? {};\r\n        const text = typeof textOrOptions === 'string' ? textOrOptions : options.text;\r\n        const notification: Notification = { timeout: 0, ...options, type: 'error', text };\r\n        const reference = this.add(notification);\r\n        this.erroredSubject.next(notification);\r\n        return reference;\r\n    }\r\n\r\n    public warning(message: { timeout: 2000 } | Partial<Notification>): NotificationReference\r\n    public warning(text: string, options?: { timeout: 2000 } | Partial<Notification>): NotificationReference\r\n    public warning(textOrOptions: string | Partial<Notification>, optionsFallback?: Partial<Notification>): NotificationReference {\r\n        const options: Partial<Notification> = typeof textOrOptions === 'object' ? textOrOptions : optionsFallback ?? {};\r\n        const text = typeof textOrOptions === 'string' ? textOrOptions : options.text;\r\n        const notification: Notification = { timeout: 2000, ...options, type: 'warning', text };\r\n        const reference = this.add(notification);\r\n        this.warnedSubject.next(notification);\r\n        return reference;\r\n    }\r\n\r\n    public success(message: { timeout: 2000 } | Partial<Notification>): NotificationReference\r\n    public success(text: string, options?: { timeout: 2000 } | Partial<Notification>): NotificationReference\r\n    public success(textOrOptions: string | Partial<Notification>, optionsFallback?: Partial<Notification>): NotificationReference {\r\n        const options: Partial<Notification> = typeof textOrOptions === 'object' ? textOrOptions : optionsFallback ?? {};\r\n        const text = typeof textOrOptions === 'string' ? textOrOptions : options.text;\r\n        const notification: Notification = { timeout: 2000, ...options, type: 'success', text };\r\n        const reference = this.add(notification);\r\n        this.succeededSubject.next(notification);\r\n        return reference;\r\n    }\r\n\r\n    public positive(message: { timeout: 2000 } | Partial<Notification>): NotificationReference\r\n    public positive(text: string, options?: { timeout: 2000 } | Partial<Notification>): NotificationReference\r\n    public positive(textOrOptions: string | Partial<Notification>, optionsFallback?: Partial<Notification>): NotificationReference {\r\n        const options: Partial<Notification> = typeof textOrOptions === 'object' ? textOrOptions : optionsFallback ?? {};\r\n        const text = typeof textOrOptions === 'string' ? textOrOptions : options.text;\r\n        const notification: Notification = { timeout: 2000, ...options, type: 'positive', text };\r\n        const reference = this.add(notification);\r\n        this.positivedSubject.next(notification);\r\n        return reference;\r\n    }\r\n\r\n    public info(message: { timeout: 2000 } | Partial<Notification>): NotificationReference\r\n    public info(text: string, options?: { timeout: 2000 } | Partial<Notification>): NotificationReference\r\n    public info(textOrOptions: string | Partial<Notification>, optionsFallback?: Partial<Notification>): NotificationReference {\r\n        const options: Partial<Notification> = typeof textOrOptions === 'object' ? textOrOptions : optionsFallback ?? {};\r\n        const text = typeof textOrOptions === 'string' ? textOrOptions : options.text;\r\n        const notification: Notification = { timeout: 2000, ...options, type: 'info', text };\r\n        const reference = this.add(notification);\r\n        this.positivedSubject.next(notification);\r\n        return reference;\r\n    }\r\n}\r\n","import { Component, effect, input, OnDestroy } from '@angular/core';\r\nimport { IconType } from '../icon/models/icon-type';\r\nimport { NotificationService } from './services/notification.service';\r\n\r\n@Component({\r\n    selector: 'm-notification-defaults',\r\n    template: ''\r\n})\r\nexport class NotificationDefaultsComponent implements OnDestroy {\r\n    private readonly previousSuccessIcon = NotificationService.defaults.successIcon();\r\n    private currentSuccessIcon?: IconType;\r\n    public readonly successIcon = input<IconType>();\r\n\r\n    public constructor() {\r\n        effect(() => {\r\n            const value = this.successIcon();\r\n            if (value !== undefined) {\r\n                this.currentSuccessIcon = value;\r\n                NotificationService.defaults.successIcon.set(value);\r\n            }\r\n        });\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        if (this.currentSuccessIcon === NotificationService.defaults.successIcon()) {\r\n            NotificationService.defaults.successIcon.set(this.previousSuccessIcon);\r\n        }\r\n    }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { Notification } from './notification';\r\n\r\nexport const notificationToken = new InjectionToken<Notification>('Notification');\r\n","import { inject, Injector, Pipe, PipeTransform } from '@angular/core';\r\nimport { Notification } from './models/notification';\r\nimport { notificationToken } from './models/notification-token';\r\n\r\n@Pipe({\r\n    name: 'notificationInjector'\r\n})\r\nexport class NotificationInjectorPipe implements PipeTransform {\r\n    private readonly injector = inject(Injector);\r\n\r\n    public transform(message: Notification): Injector {\r\n        return Injector.create({\r\n            parent: this.injector,\r\n            providers: [\r\n                { provide: notificationToken, useValue: message }\r\n            ]\r\n        });\r\n    }\r\n\r\n}\r\n","import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { Component, effect, inject, input, model } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { MessageComponent } from '../message/message.component';\nimport { MessageAttached } from '../message/models/message-attached';\nimport { Notification } from './models/notification';\nimport { NotificationInjectorPipe } from './notification-injector.pipe';\nimport { NotificationService } from './services/notification.service';\n\n@Component({\n    selector: 'm-notification',\n    templateUrl: './notification.component.html',\n    styleUrls: ['./notification.component.scss'],\n    imports: [MessageComponent, NotificationInjectorPipe, NgTemplateOutlet, NgComponentOutlet],\n    providers: [...BaseComponent.providers]\n})\nexport class NotificationComponent extends BaseComponent {\n    private readonly notificationService = inject(NotificationService);\n    public readonly fromService = input<string>();\n    public readonly messages = model<Notification[]>([]);\n    public readonly mode = input<'overlap' | 'stack'>('stack');\n    public readonly attached = input<MessageAttached>();\n\n    public constructor() {\n        super();\n        this.classes.register('fromService', 'mode');\n        const refresh = (): void => {\n            const value = this.fromService();\n            if (value) {\n                this.messages.set([...this.notificationService.get(value)]);\n            }\n        };\n        effect(refresh);\n        this.notificationService.added.pipe(this.takeUntilDestroy()).subscribe(refresh);\n        this.notificationService.removed.pipe(this.takeUntilDestroy()).subscribe(refresh);\n    }\n\n    public close(message: Notification, event: MouseEvent): void {\n        if (event.defaultPrevented) {\n            return;\n        }\n        this.notificationService.remove(message);\n    }\n\n    protected $message(message: unknown): Notification {\n        return message as Notification;\n    }\n}\n","@if (messages().length && mode() === 'overlap') {\n    <ng-container [ngTemplateOutlet]=\"messageTemplate\" [ngTemplateOutletContext]=\"{ $implicit: messages()[0] }\" />\n}\n@if (mode() === 'stack') {\n    @for (message of messages(); track message) {\n        <ng-container [ngTemplateOutlet]=\"messageTemplate\" [ngTemplateOutletContext]=\"{ $implicit: message }\" />\n    }\n}\n\n<ng-template let-message #messageTemplate>\n    @if ($message(message); as message) {\n        <m-message\n            [error]=\"message.type === 'error'\" [warning]=\"message.type === 'warning'\" [success]=\"message.type === 'success'\" [positive]=\"message.type === 'positive'\" [info]=\"message.type === 'info'\"\n            [header]=\"message.title\" [icon]=\"message.icon\" closable [showClose]=\"message.type === 'error'\" [attached]=\"attached()\" [loading]=\"message.loading\" (close)=\"close(message, $event)\">\n            @if (message.component) {\n                <ng-container *ngComponentOutlet=\"message.component; injector: message | notificationInjector\" />\n            } @else {\n                {{ message.text }}\n            }\n        </m-message>\n    }\n</ng-template>\n\n\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'm-or',\n    template: '',\n    host: {\n        class: 'or'\n    }\n})\nexport class OrComponent {}\n","import { Component, effect, input } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { FieldSize, ParsableFieldSize, parseFieldSize } from '../../models/field-size';\n\n@Component({\n    selector: 'm-row',\n    templateUrl: './row.component.html',\n    styleUrls: ['./row.component.scss'],\n    providers: [...BaseComponent.providers],\n    host: {\n        '[class.stretched]': 'stretched()'\n    }\n})\nexport class RowComponent extends BaseComponent {\n    public readonly columns = input<FieldSize | undefined, ParsableFieldSize>(undefined, { transform: parseFieldSize });\n    public readonly stretched = input<boolean, BooleanLike>(false, { transform: toBoolean });\n\n    public constructor() {\n        super(false);\n        this.classes.register('columns', 'column', 'stretched')\n            .registerFixed('row');\n        effect(() => {\n            const columns = this.columns();\n            this.classes.set('columns', columns);\n            this.classes.set('column', !!columns);\n        });\n    }\n\n}\n","<ng-content />","import { Component, computed, effect, input, signal } from '@angular/core';\nimport { InvertibleComponent } from '../../base/invertible.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { ColorName } from '../../models/color';\nimport { SegmentAttached } from './models/segment-attached';\n\n@Component({\n    selector: 'm-segment',\n    templateUrl: './segment.component.html',\n    styleUrls: ['./segment.component.scss'],\n    providers: SegmentComponent.providers\n})\nexport class SegmentComponent extends InvertibleComponent {\n    public static readonly defaults = {\n        inverted: signal(false),\n        raised: signal(false)\n    };\n    protected static override readonly providers = [...InvertibleComponent.providers];\n    private readonly raisedDefault = signal(false);\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    public readonly raisedInput = input<boolean | undefined, BooleanLike>(undefined, { alias: 'raised', transform: toBoolean });\n    public readonly raised = computed(() => this.raisedInput() ?? this.raisedDefault());\n    public readonly vertical = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly placeholder = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly secondary = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly tertiary = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly attached = input<SegmentAttached | undefined>();\n    public readonly noPadding = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly noMargin = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly basic = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly color = input<ColorName | undefined>(undefined);\n    public readonly loading = input<boolean, BooleanLike>(false, { transform: toBoolean });\n\n    public constructor() {\n        super();\n        this.classes.register('basic', 'color', 'loading', 'raised', 'vertical', 'placeholder', 'secondary', 'tertiary', 'attached', 'attachedValue', 'noPadding', 'noMargin')\n            .registerFixed('segment');\n        effect(() => this.classes.set('basic', this.basic()));\n        effect(() => this.classes.set('color', this.color()));\n        effect(() => this.classes.set('loading', this.loading()));\n        effect(() => this.classes.set('raised', this.raised()));\n        effect(() => this.classes.set('vertical', this.vertical()));\n        effect(() => this.classes.set('placeholder', this.placeholder()));\n        effect(() => this.classes.set('secondary', this.secondary()));\n        effect(() => this.classes.set('tertiary', this.tertiary()));\n        effect(() => {\n            const value = this.attached();\n            this.classes.set('attachedValue', value);\n            this.classes.set('attached', !!value);\n        });\n        effect(() => this.classes.set('noPadding', this.noPadding() ? 'no-padding' : undefined));\n        effect(() => this.classes.set('noMargin', this.noMargin() ? 'no-margin' : undefined));\n        effect(() => this.refreshInverted(SegmentComponent.defaults.inverted()));\n        effect(() => this.refreshRaised(SegmentComponent.defaults.raised()));\n    }\n\n    private refreshRaised(value: boolean): void {\n        this.raisedDefault.set(value);\n    }\n}\n","<ng-content />","import { Component, effect, input, OnDestroy } from '@angular/core';\nimport { SegmentComponent } from './segment.component';\n\n@Component({\n    selector: 'm-segment-defaults',\n    template: ''\n})\nexport class SegmentDefaultsComponent implements OnDestroy {\n    private readonly previousInverted = SegmentComponent.defaults.inverted();\n    private readonly previousRaised = SegmentComponent.defaults.raised();\n    private currentInverted?: boolean;\n    private currentRaised?: boolean;\n    public readonly inverted = input<boolean>();\n    public readonly raised = input<boolean>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.inverted();\n            if (value !== undefined) {\n                this.currentInverted = value;\n                SegmentComponent.defaults.inverted.set(value);\n            }\n        });\n        effect(() => {\n            const value = this.raised();\n            if (value !== undefined) {\n                this.currentRaised = value;\n                SegmentComponent.defaults.raised.set(value);\n            }\n        });\n    }\n\n    public ngOnDestroy(): void {\n        if (this.currentInverted === SegmentComponent.defaults.inverted()) {\n            SegmentComponent.defaults.inverted.set(this.previousInverted);\n        }\n        if (this.currentRaised === SegmentComponent.defaults.raised()) {\n            SegmentComponent.defaults.raised.set(this.previousRaised);\n        }\n    }\n}\n","import { Component, input } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { toBoolean } from '../../helpers/to-boolean';\n\n@Component({\n    selector: 'm-segment-group',\n    templateUrl: './segment-group.component.html',\n    styleUrls: ['./segment-group.component.scss'],\n    providers: [...BaseComponent.providers],\n    host: {\n        '[class.horizontal]': 'horizontal()'\n    }\n})\nexport class SegmentGroupComponent extends BaseComponent {\n    public readonly horizontal = input<boolean, BooleanLike>(false, { transform: toBoolean });\n\n    public constructor() {\n        super();\n        this.classes.register('horizontal')\n            .registerFixed('segments');\n    }\n\n}\n","<ng-content />","import { Component, effect, input, model } from '@angular/core';\nimport { BaseComponent } from '../../base/base.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { SidebarPosition } from './models/sidebar-position';\nimport { SidebarWidth } from './models/sidebar-width';\n\n@Component({\n    selector: 'm-sidebar',\n    templateUrl: './sidebar.component.html',\n    styleUrls: ['./sidebar.component.scss'],\n    providers: [...BaseComponent.providers],\n    host: {\n        '[class.no-scrolling]': 'noScrolling()'\n    }\n})\nexport class SidebarComponent extends BaseComponent {\n    public readonly visible = model<boolean>(true);\n    public readonly width = input<SidebarWidth>();\n    public readonly position = input<SidebarPosition>('left');\n    public readonly noScrolling = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly inverted = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly fluid = input<boolean, BooleanLike>(false, { transform: toBoolean });\n\n    public constructor() {\n        super();\n        this.classes.register('inverted', 'fluid', 'width', 'position', 'visible', 'noScrolling')\n            .registerFixed('sidebar');\n        effect(() => this.classes.set('inverted', this.inverted()));\n        effect(() => this.classes.set('fluid', this.fluid()));\n        effect(() => this.classes.set('visible', this.visible()));\n        effect(() => this.classes.set('width', this.width()));\n        effect(() => this.classes.set('position', this.position()));\n        this.refreshClasses();\n    }\n\n    public show(): void {\n        this.visible.set(true);\n    }\n\n    public hide(): void {\n        this.visible.set(false);\n    }\n}\n","<ng-content />\r\n","import { Component, inject } from '@angular/core';\nimport { ButtonBaseComponent } from '../../base/button-base.component';\nimport { Key } from '../../models/key';\nimport { FormComponent } from '../form/form.component';\n\n@Component({\n    selector: 'm-submit',\n    templateUrl: './submit.component.html',\n    styleUrls: ['./submit.component.scss'],\n    imports: [],\n    providers: [...ButtonBaseComponent.providers],\n    host: {\n        '(click)': 'onClick()',\n        '(keydown)': 'onKeyDown($event)'\n    }\n})\nexport class SubmitComponent extends ButtonBaseComponent {\n    private readonly form = inject(FormComponent, { optional: true });\n\n    public constructor() {\n        super();\n    }\n\n    protected onClick(): void {\n        this.submit();\n    }\n\n    protected onKeyDown(event: KeyboardEvent): void {\n        if (Key.is(event, Key.space, Key.enter)) {\n            this.submit();\n            event.preventDefault();\n        }\n    }\n\n    protected submit(): void {\n        if (!this.form) {\n            return;\n        }\n        this.form.validateAndSubmit();\n    }\n}\n","<ng-content />","import { Component, effect, input, signal } from '@angular/core';\nimport { InvertibleComponent } from '../../base/invertible.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { Align } from './models/align';\n\n@Component({\n    selector: 'm-table',\n    templateUrl: './table.component.html',\n    styleUrls: ['./table.component.scss'],\n    providers: [...InvertibleComponent.providers]\n})\nexport class TableComponent extends InvertibleComponent {\n    public static readonly defaults = {\n        inverted: signal(false)\n    };\n    public readonly notCelled = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly very = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly unstackable = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly aligned = input<Align>('middle');\n    public readonly definition = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly collapsing = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly basic = input<boolean, BooleanLike>(false, { transform: toBoolean });\n\n    public constructor() {\n        super();\n        this.classes.register('celled', 'notCelled', 'very', 'basic', 'unstackable', 'aligned', 'definition', 'collapsing')\n            .registerFixed('table');\n        effect(() => this.classes.set('aligned', this.aligned()));\n        effect(() => this.classes.set('basic', this.basic()));\n        effect(() => this.classes.set('celled', !this.notCelled()));\n        effect(() => this.classes.set('very', this.very()));\n        effect(() => this.classes.set('unstackable', this.unstackable()));\n        effect(() => this.classes.set('definition', this.definition()));\n        effect(() => this.classes.set('collapsing', this.collapsing()));\n        effect(() => this.refreshInverted(TableComponent.defaults.inverted()));\n    }\n}\n","<ng-content />\r\n","import { Component, effect, input, OnDestroy } from '@angular/core';\nimport { TableComponent } from './table.component';\n\n@Component({\n    selector: 'm-table-defaults',\n    template: ''\n})\nexport class TableDefaultsComponent implements OnDestroy {\n    private readonly previousInverted = TableComponent.defaults.inverted();\n    private currentInverted?: boolean;\n    public readonly inverted = input<boolean>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.inverted();\n            if (value !== undefined) {\n                this.currentInverted = value;\n                TableComponent.defaults.inverted.set(value);\n            }\n        });\n    }\n\n    public ngOnDestroy(): void {\n        if (this.currentInverted === TableComponent.defaults.inverted()) {\n            TableComponent.defaults.inverted.set(this.previousInverted);\n        }\n    }\n}\n","import { NgIfContext, NgTemplateOutlet } from '@angular/common';\r\nimport { Component, input, output, TemplateRef } from '@angular/core';\r\nimport { SortedClassesService } from '../../services/sorted-classes.service';\r\nimport { IconSize } from '../icon/models/icon-size';\r\nimport { IconType } from '../icon/models/icon-type';\r\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\r\n\r\n@Component({\r\n    selector: 'm-tab',\r\n    templateUrl: './tab.component.html',\r\n    styleUrls: ['./tab.component.scss'],\r\n    imports: [NgTemplateOutlet],\r\n    providers: [SortedClassesService]\r\n})\r\nexport class TabComponent extends MenuItemComponent {\r\n    public readonly name = input<string>();\r\n    public readonly label = input<string>();\r\n    public readonly icon = input<IconType>();\r\n    public readonly iconSize = input<IconSize>();\r\n    // eslint-disable-next-line unicorn/no-null\r\n    public readonly template = input<TemplateRef<NgIfContext<boolean>> | null>(null);\r\n    public readonly activate = output();\r\n    public readonly deactivate = output();\r\n\r\n    public constructor() {\r\n        super(false);\r\n        this.classes.register('name', 'label', 'icon');\r\n    }\r\n\r\n    public changeState(value: boolean | undefined): void {\r\n        if (value === undefined || value === this.active()) {\r\n            return;\r\n        }\r\n        this.active.set(value);\r\n        if (value) {\r\n            this.activate.emit();\r\n        }\r\n        else {\r\n            this.deactivate.emit();\r\n        }\r\n    }\r\n}\r\n","@if (active()) {\r\n    @if (template()) {\r\n        <ng-container [ngTemplateOutlet]=\"template()\" />\r\n    } @else {\r\n        <ng-content />\r\n    }\r\n}\r\n","import { UrlSegment } from '@angular/router';\r\n\r\nexport class NamedUrlSegment extends UrlSegment {\r\n    public constructor(\r\n        public readonly name: string,\r\n        segment: UrlSegment\r\n    ) {\r\n        super(segment.path, segment.parameters);\r\n        Object.assign(this, segment);\r\n    }\r\n}","import { NgTemplateOutlet } from '@angular/common';\nimport { AfterViewInit, Component, computed, contentChildren, effect, inject, input, model, OnInit, signal, untracked } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router, Routes } from '@angular/router';\nimport { takeUntil } from 'rxjs/operators';\nimport { InvertibleComponent } from '../../base/invertible.component';\nimport { toBoolean } from '../../helpers/to-boolean';\nimport { BooleanLike } from '../../models/boolean-like';\nimport { IconComponent } from '../icon/icon.component';\nimport { MenuComponent } from '../menu/menu.component';\nimport { MenuPosition } from '../menu/models/menu-position';\nimport { SegmentComponent } from '../segment/segment.component';\nimport { TabComponent } from '../tab/tab.component';\nimport { NamedRoute } from './models/named-route';\nimport { NamedUrlSegment } from './models/named-url-segment';\n\n@Component({\n    selector: 'm-tab-group',\n    templateUrl: './tab-group.component.html',\n    styleUrls: ['./tab-group.component.scss'],\n    imports: [SegmentComponent, MenuComponent, IconComponent, NgTemplateOutlet],\n    providers: [...InvertibleComponent.providers],\n    host: {\n        '[class]': 'menuPosition()',\n        '[class.horizontal]': 'horizontal()'\n    }\n})\nexport class TabGroupComponent extends InvertibleComponent implements OnInit, AfterViewInit {\n    public static readonly defaults = {\n        inverted: signal(false)\n    };\n    private readonly route = inject(ActivatedRoute);\n    private readonly router = inject(Router);\n    private routes: NamedRoute[] = [];\n    public readonly menu = input<MenuPosition>('top');\n    public readonly pointing = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly secondary = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly loading = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly noPadding = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    public readonly scrollable = input<boolean, BooleanLike>(false, { transform: toBoolean });\n    // Undefined default (not '') so an absent attribute stays inactive, while the bare attribute resolves to ''.\n    public readonly selectByRoute = input<string | undefined>(undefined);\n    public readonly selectedIndex = model<number | undefined>(undefined);\n    protected readonly tabs = contentChildren(TabComponent);\n    private readonly isSelectByRoute = computed(() => {\n        const value = this.selectByRoute();\n        return value === '' || !!value;\n    });\n    private readonly routeParameterName = computed(() => this.selectByRoute() || 'tab');\n    protected readonly menuPosition = computed(() => 'menu-' + this.menu());\n    protected readonly horizontal = computed(() => {\n        const menu = this.menu();\n        return menu === 'left' || menu === 'right';\n    });\n\n    public constructor() {\n        super(false);\n        this.noClasses = true;\n        this.classes.register('pointing', 'secondary', 'position', 'selectByRoute', 'routeParameterName', 'noPadding', 'menu', 'loading', 'scrollable');\n        effect(() => this.refreshInverted(TabGroupComponent.defaults.inverted()));\n        // Replaces the former selectedIndex setter side effect; tabs are read untracked so it only reacts to the index.\n        effect(() => {\n            const value = this.selectedIndex();\n            untracked(() => {\n                for (const [index, tab] of this.tabs().entries()) {\n                    tab.changeState(index === value);\n                }\n            });\n        });\n        // Replaces the former tabs setter subscription to QueryList.changes.\n        effect(() => {\n            this.tabs();\n            untracked(() => this.refreshTab());\n        });\n    }\n\n    public override ngOnInit(): void {\n        super.ngOnInit();\n        this.routes = this.parseRoutes(this.router.config, []);\n        this.router.events.pipe(takeUntil(this.destroy)).subscribe(event => {\n            if (event instanceof NavigationEnd) {\n                this.refreshTab();\n            }\n        });\n    }\n\n    public ngAfterViewInit(): void {\n        const tabs = this.tabs();\n        if (tabs.length > 0 && tabs.every(tab => !tab.active())) {\n            setTimeout(() => {\n                for (const [index, tab] of this.tabs().entries()) {\n                    tab.changeState(index === (this.selectedIndex() || 0));\n                }\n            });\n        }\n        this.refreshTab();\n    }\n\n    private refreshTab(): void {\n        if (!this.isSelectByRoute()) {\n            return;\n        }\n        const routeParameterName = this.routeParameterName();\n        let selectedTabName = this.route.snapshot.params[routeParameterName];\n        const selectedTabIndex = Number.parseInt(selectedTabName, 10);\n        let found: TabComponent | undefined;\n        if (selectedTabName) {\n            selectedTabName = selectedTabName.toLowerCase();\n            found = this.tabs().find((tab, index) => {\n                const name = tab.name();\n                if (name) {\n                    return name.toLocaleLowerCase() === selectedTabName || selectedTabIndex === index;\n                }\n                return this.toName(tab.label()) === selectedTabName || selectedTabIndex === index;\n            });\n\n        }\n        else {\n            found = this.tabs().find((_, index) => index === selectedTabIndex) || this.tabs().find((_, index) => index === 0);\n        }\n        if (found) {\n            const found2 = found;\n            setTimeout(() => this.activate(found2));\n        }\n    }\n\n    protected activate(tab: TabComponent): void {\n        for (const activeTab of this.tabs().filter(t => t.active())) {\n            activeTab.changeState(false);\n        }\n        tab.changeState(true);\n        // selectedIndex.set emits selectedIndexChange itself (model two-way semantics).\n        this.selectedIndex.set(this.tabs().indexOf(tab));\n        if (this.isSelectByRoute()) {\n            const routeParameterName = this.routeParameterName();\n            const name = tab.name() || this.toName(tab.label());\n            const urlSegments = this.getActiveRouteSegments();\n            const segment = urlSegments.find(s => s.name === ':' + routeParameterName);\n            if (segment?.path === name) {\n                return;\n            }\n            if (segment) {\n                const replaceUrl = !segment.path;\n                segment.path = name;\n                void this.router.navigate(urlSegments.map(s => s.path), { replaceUrl });\n                return;\n            }\n            const activePath = urlSegments.map(segment => segment.name).join('/');\n            const parameters = [\n                ...urlSegments.filter(segment => segment.name.startsWith(':')).map(segment => segment.name.slice(1)),\n                routeParameterName\n            ];\n            const possibleRoutes = this.routes.filter(route => route.fullPath.startsWith(activePath) && parameters.every(parameter => route.parameters.includes(parameter)))\n                .sort((leftRoute, rightRoute) => leftRoute.parameters < rightRoute.parameters ? -1 : leftRoute.parameters > rightRoute.parameters ? 1 : 0);\n\n            if (possibleRoutes.length === 0) {\n                console.warn(`tab-group selectByRoute is set, but the route does not have a :${routeParameterName} parameter like { path: '/${urlSegments.map(s => s.path).join('/')}/:${routeParameterName}', component: ... }`);\n                return;\n            }\n            const route = possibleRoutes[0];\n            let fullPath = route.fullPath.replace(':' + routeParameterName, name);\n            for (const parameterName of route.parameters) {\n                const segmentValue = urlSegments.find(segment => segment.name === ':' + parameterName)?.path;\n                fullPath = fullPath.replace(':' + parameterName, segmentValue ?? '');\n            }\n            void this.router.navigate(['/' + fullPath], { replaceUrl: true });\n        }\n    }\n\n    private toName(value: string | undefined): string {\n        return value ? value.toLocaleLowerCase().replaceAll(/[^a-zA-Z0-9]/g, '-').replaceAll(/-+/g, '-') : '';\n    }\n\n    private getActiveRouteSegments(): NamedUrlSegment[] {\n        const segments: NamedUrlSegment[] = [];\n        let current: ActivatedRoute | null = this.route;\n        do {\n            if (current?.snapshot?.routeConfig) {\n                const names = current.routeConfig?.path?.split('/').reverse();\n                for (const segment of [...current.snapshot.url].reverse()) {\n                    segments.unshift(new NamedUrlSegment(names?.shift() ?? '', segment));\n                }\n            }\n            current = current?.parent;\n        }\n        while (current);\n        return segments;\n    }\n\n    private parseRoutes(routes: Routes, path: string[]): NamedRoute[] {\n        const namedRoutes: NamedRoute[] = [];\n        for (const route of routes) {\n            const fullPath = [...path, route.path ?? ''].filter(path => !!path);\n            namedRoutes.push({\n                fullPath: fullPath.join('/'),\n                parameters: fullPath.join('/').split('/').filter(parameter => parameter.startsWith(':')).map(parameter => parameter.slice(1)),\n                ...route\n            });\n            if (route.children) {\n                namedRoutes.push(...this.parseRoutes(route.children, fullPath));\n            }\n        }\n        return namedRoutes;\n    }\n}\n","@if (menu() === 'top' || menu() === 'left') {\n    <ng-container [ngTemplateOutlet]=\"menuTemplate\" />\n}\n\n<m-segment class=\"active tab\" [basic]=\"secondary()\" [noPadding]=\"noPadding()\" [loading]=\"loading()\" [class.scrollable]=\"scrollable()\">\n    <ng-content />\n</m-segment>\n\n@if (menu() === 'bottom' || menu() === 'right') {\n    <ng-container [ngTemplateOutlet]=\"menuTemplate\" />\n}\n\n<ng-template #menuTemplate>\n    <m-menu [pointing]=\"pointing()\" [secondary]=\"secondary()\" [attached]=\"menu()\" tabular [vertical]=\"horizontal()\" [inverted]=\"inverted()\">\n        @for (tab of tabs(); track tab) {\n            <a class=\"item\" [class.active]=\"tab.active()\" (click)=\"activate(tab)\">\n                @if (tab.icon()) {\n                    <m-icon [icon]=\"tab.icon()\" [size]=\"tab.iconSize()\" />\n                }\n                {{ tab.label() }}\n            </a>\n        }\n    </m-menu>\n</ng-template>\n","import { Component, effect, input, OnDestroy } from '@angular/core';\nimport { TabGroupComponent } from './tab-group.component';\n\n@Component({\n    selector: 'm-tab-group-defaults',\n    template: ''\n})\nexport class TabGroupDefaultsComponent implements OnDestroy {\n    private readonly previousInverted = TabGroupComponent.defaults.inverted();\n    private currentInverted?: boolean;\n    public readonly inverted = input<boolean>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.inverted();\n            if (value !== undefined) {\n                this.currentInverted = value;\n                TabGroupComponent.defaults.inverted.set(value);\n            }\n        });\n    }\n\n    public ngOnDestroy(): void {\n        if (this.currentInverted === TabGroupComponent.defaults.inverted()) {\n            TabGroupComponent.defaults.inverted.set(this.previousInverted);\n        }\n    }\n}\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, distinctUntilChanged, Observable, ReplaySubject, Subject } from 'rxjs';\r\nimport { Template } from '../models/template';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class TemplateService {\r\n    private readonly subscriptions = new Map<string, Subject<Template | undefined>>();\r\n    private readonly templates = new Map<string, Template[]>();\r\n\r\n    public show(names: string | string[], template: Template): void {\r\n        names = typeof names === 'string' ? [names] : names ?? [];\r\n        const subscriptionSubject = new BehaviorSubject<Template | undefined>(template);\r\n        for (const name of names) {\r\n            let list = this.templates.get(name);\r\n            if (!list) {\r\n                list = [];\r\n                this.templates.set(name, list);\r\n            }\r\n            let index = list.indexOf(template);\r\n            if (index >= 0) {\r\n                list.splice(index, 1);\r\n            }\r\n            for (const entry of list.slice()) {\r\n                if (!entry.autoHide) {\r\n                    continue;\r\n                }\r\n                entry.visible.set(false);\r\n                index = list.indexOf(entry);\r\n                if (index >= 0) {\r\n                    list.splice(index, 1);\r\n                }\r\n            }\r\n            list.push(template);\r\n            template.visible.set(true);\r\n            this.notify(name, template, subscriptionSubject);\r\n        }\r\n    }\r\n\r\n    public hide(names: string | string[], template: Template): void {\r\n        names = typeof names === 'string' ? [names] : names ?? [];\r\n        for (const name of names) {\r\n            const list = this.templates.get(name);\r\n            if (!list) {\r\n                continue;\r\n            }\r\n            const index = list.indexOf(template);\r\n            if (index >= 0) {\r\n                const template = list.splice(index, 1)[0];\r\n                template.visible.set(false);\r\n            }\r\n            const lastTemplate = list[list.length - 1];\r\n            lastTemplate?.visible.set(true);\r\n            this.notify(name, lastTemplate);\r\n        }\r\n    }\r\n\r\n    public toggle(names: string | string[], template: Template): void {\r\n        names = typeof names === 'string' ? [names] : names ?? [];\r\n        for (const name of names) {\r\n            const list = this.templates.get(name);\r\n            const index = list?.indexOf(template);\r\n            if (list && index !== undefined && index >= 0) {\r\n                this.hide(name, template);\r\n            }\r\n            else {\r\n                this.show(name, template);\r\n            }\r\n        }\r\n    }\r\n\r\n    public get(names: string | string[]): Observable<Template | undefined> {\r\n        names = typeof names === 'string' ? [names] : names ?? [];\r\n        const existingSubject = names.map(name => this.subscriptions.get(name)).find(subscription => subscription);\r\n        const subject = existingSubject ?? new ReplaySubject<Template | undefined>(1);\r\n        for (const name of names) {\r\n            this.subscriptions.set(name, subject);\r\n        }\r\n        return subject.pipe(distinctUntilChanged());\r\n    }\r\n\r\n    private notify(name: string, template: Template | undefined, fallbackSubscriptionSubject?: BehaviorSubject<Template | undefined>): void {\r\n        if (this.subscriptions.has(name)) {\r\n            this.subscriptions.get(name)?.next(template);\r\n        }\r\n        else if (fallbackSubscriptionSubject) {\r\n            this.subscriptions.set(name, fallbackSubscriptionSubject);\r\n        }\r\n    }\r\n}\r\n","import { Component, effect, inject, input, model, OnDestroy, TemplateRef, untracked, viewChild } from '@angular/core';\r\nimport { toBoolean } from '../../helpers/to-boolean';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { Template } from '../../models/template';\r\nimport { TemplateService } from '../../services/template.service';\r\n\r\n@Component({\r\n    selector: 'm-template',\r\n    imports: [],\r\n    templateUrl: './template.component.html',\r\n    styleUrl: './template.component.scss'\r\n})\r\nexport class TemplateComponent implements OnDestroy {\r\n    private readonly templateService = inject(TemplateService);\r\n    private template: Template | undefined;\r\n    protected readonly contentTemplate = viewChild<TemplateRef<unknown>>('contentTemplate');\r\n    public readonly name = input.required<string | string[]>();\r\n    public readonly class = input<string>();\r\n    public readonly visible = model(true);\r\n\r\n    /**\r\n     * When used, it sets the default visibility of the template to false.\r\n     * @example\r\n     * ```html\r\n     * <m-template hidden />\r\n     * ```\r\n     */\r\n    public readonly hidden = input<boolean, '' | undefined>(false, { transform: toBoolean });\r\n\r\n    /* When set to true, it set its visible state to false when another template is shown in the same outlet */\r\n    public readonly autoHide = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n\r\n    public constructor() {\r\n        effect(() => {\r\n            const ref = this.contentTemplate();\r\n            untracked(() => {\r\n                if (this.template) {\r\n                    this.templateService.hide(this.name(), this.template);\r\n                }\r\n                this.template = ref ? { ref, class: this.class(), visible: this.visible, autoHide: this.autoHide() } : undefined;\r\n                if (this.template && this.visible()) {\r\n                    this.templateService.show(this.name(), this.template);\r\n                }\r\n            });\r\n        });\r\n        effect(() => this.visible.update(value => this.hidden() ? false : value));\r\n        effect(() => {\r\n            const isVisible = this.visible();\r\n            if (!this.template) {\r\n                return;\r\n            }\r\n            if (isVisible) {\r\n                this.templateService.show(this.name(), this.template);\r\n            }\r\n            else {\r\n                this.templateService.hide(this.name(), this.template);\r\n            }\r\n        });\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        if (this.template) {\r\n            this.templateService.hide(this.name(), this.template);\r\n        }\r\n    }\r\n\r\n    public show(): void {\r\n        if (this.template) {\r\n            this.templateService.show(this.name(), this.template);\r\n        }\r\n    }\r\n\r\n    public hide(): void {\r\n        if (this.template) {\r\n            this.templateService.hide(this.name(), this.template);\r\n        }\r\n    }\r\n\r\n    public toggle(): void {\r\n        if (this.template) {\r\n            this.templateService.toggle(this.name(), this.template);\r\n        }\r\n    }\r\n}\r\n","<ng-template #contentTemplate>\r\n    <ng-content/>\r\n</ng-template>\r\n","import { NgTemplateOutlet } from '@angular/common';\r\nimport { Component, effect, inject, input, signal } from '@angular/core';\r\nimport { race, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Destroyable } from '../../base/destroyable';\r\nimport { Template } from '../../models/template';\r\nimport { TemplateService } from '../../services/template.service';\r\n\r\n@Component({\r\n    selector: 'm-template-outlet',\r\n    imports: [NgTemplateOutlet],\r\n    templateUrl: './template-outlet.component.html',\r\n    styleUrl: './template-outlet.component.scss',\r\n    host: {\r\n        '[class]': 'template()?.class'\r\n    }\r\n})\r\nexport class TemplateOutletComponent extends Destroyable {\r\n    private readonly templateService = inject(TemplateService);\r\n    private readonly nextNameSubject = new Subject<void>();\r\n    protected readonly template = signal<Template | undefined>(undefined);\r\n    public readonly name = input.required<string | string[]>();\r\n\r\n    public constructor() {\r\n        super();\r\n        effect(() => {\r\n            this.nextNameSubject.next();\r\n            this.templateService.get(this.name()).pipe(takeUntil(race(this.destroy, this.nextNameSubject))).subscribe(template => this.template.set(template));\r\n        });\r\n    }\r\n}\r\n","<ng-content />\n@if (template(); as template) {\n    <ng-container [ngTemplateOutlet]=\"template.ref\" />\n}\n","import { Component, effect, input } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { toBoolean } from '../../helpers/to-boolean';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\n\r\n@Component({\r\n    selector: 'm-text-container',\r\n    templateUrl: './text-container.component.html',\r\n    styleUrls: ['./text-container.component.scss'],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class TextContainerComponent extends BaseComponent {\r\n    public readonly fluid = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('fluid')\r\n            .registerFixed('text', 'container');\r\n        effect(() => this.classes.set('fluid', this.fluid()));\r\n    }\r\n}\r\n","<ng-content />","import { Component, effect, input, OnDestroy } from '@angular/core';\nimport { TextareaComponent } from './textarea.component';\n\n@Component({\n    selector: 'm-textarea-defaults',\n    template: ''\n})\nexport class TextareaDefaultsComponent implements OnDestroy {\n    private readonly previousInverted = TextareaComponent.defaults.inverted();\n    private currentInverted?: boolean;\n    public readonly inverted = input<boolean>();\n\n    public constructor() {\n        effect(() => {\n            const value = this.inverted();\n            if (value !== undefined) {\n                this.currentInverted = value;\n                TextareaComponent.defaults.inverted.set(value);\n            }\n        });\n    }\n\n    public ngOnDestroy(): void {\n        if (this.currentInverted === TextareaComponent.defaults.inverted()) {\n            TextareaComponent.defaults.inverted.set(this.previousInverted);\n        }\n    }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\r\nimport { RouterStateSnapshot, TitleStrategy } from '@angular/router';\r\nimport { ManticTitleStrategyCondition } from './mantic-title-strategy-condition';\r\nimport { ManticTitleStrategyConfiguration } from './mantic-title-strategy-configuration';\r\n\r\nexport const manticTitleStrategyConfigurationToken = new InjectionToken<string>('manticTitleStrategyConfiguration');\r\n\r\n@Injectable()\r\nexport class ManticTitleStrategy extends TitleStrategy {\r\n    public constructor(\r\n        @Inject(manticTitleStrategyConfigurationToken) public readonly configuration: ManticTitleStrategyConfiguration = {}\r\n    ) {\r\n        super();\r\n        this.configuration ??= {};\r\n    }\r\n\r\n    public override updateTitle(snapshot: RouterStateSnapshot): void {\r\n        const condition = this.configuration.conditions?.find(condition => this.matches(condition, snapshot.url));\r\n        const title = this.buildTitle(snapshot);\r\n        const prefix = condition?.showPrefixOnFallback || this.configuration.showPrefixOnFallback || title ? condition?.prefix ?? this.configuration.prefix ?? '' : '';\r\n        const postfix = condition?.showPostfixOnFallback || this.configuration.showPostfixOnFallback || title ? condition?.postfix ?? this.configuration.postfix ?? '' : '';\r\n        document.title = prefix + (title ?? condition?.fallback ?? this.configuration.fallback ?? '') + postfix;\r\n    }\r\n\r\n    public addCondition(condition: ManticTitleStrategyCondition): void {\r\n        this.configuration.conditions ??= [];\r\n        this.configuration.conditions.push(condition);\r\n    }\r\n\r\n    private matches(condition: ManticTitleStrategyCondition, url: string): boolean {\r\n        if (typeof condition.condition === 'string') {\r\n            return url?.toLowerCase()?.startsWith(condition.condition);\r\n        }\r\n        return !!condition.condition.exec(url);\r\n    }\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { TitleStrategy } from '@angular/router';\r\nimport { ManticTitleStrategy } from './mantic-title-strategy';\r\n\r\nconst titleStrategy = new ManticTitleStrategy();\r\n\r\n@NgModule({\r\n    declarations: [],\r\n    imports: [],\r\n    providers: [\r\n        { provide: TitleStrategy, useValue: titleStrategy },\r\n        { provide: ManticTitleStrategy, useValue: titleStrategy }\r\n    ]\r\n})\r\nexport class ManticTitleStrategyModule {}\r\n","import { ManticTitleStrategyConfiguration } from './mantic-title-strategy-configuration';\r\nimport { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\r\nimport { TitleStrategy } from '@angular/router';\r\nimport { ManticTitleStrategy } from './mantic-title-strategy';\r\n\r\nexport function provideManticTitleStrategy(\r\n    configuration: ManticTitleStrategyConfiguration\r\n): EnvironmentProviders {\r\n    const titleStrategy = new ManticTitleStrategy(configuration);\r\n    return makeEnvironmentProviders([\r\n        { provide: TitleStrategy, useValue: titleStrategy },\r\n        { provide: ManticTitleStrategy, useValue: titleStrategy }\r\n    ]);\r\n}\r\n","import { Directive, effect, inject, input, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { race, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Destroyable } from '../base/destroyable';\r\nimport { TemplateService } from '../services/template.service';\r\n\r\n@Directive({\r\n    selector: '[mHideOnEmptyTemplate]',\r\n    })\r\nexport class HideOnEmptyTemplateDirective extends Destroyable {\r\n    private readonly templateService = inject(TemplateService);\r\n    private readonly template = inject(TemplateRef<unknown>);\r\n    private readonly viewContainerRef = inject(ViewContainerRef);\r\n    private readonly nextNameSubject = new Subject<void>();\r\n    private hasTemplate = false;\r\n\r\n    public readonly name = input.required<string | string[]>({ alias: 'mHideOnEmptyTemplate' });\r\n\r\n    public constructor() {\r\n        super();\r\n        effect(() => {\r\n            this.nextNameSubject.next();\r\n            this.templateService.get(this.name()).pipe(takeUntil(race(this.destroy, this.nextNameSubject))).subscribe(template => {\r\n                this.hasTemplate = !!template;\r\n                this.refreshView();\r\n            });\r\n        });\r\n    }\r\n\r\n    private refreshView(): void {\r\n        this.viewContainerRef.clear();\r\n        if (this.hasTemplate) {\r\n            this.viewContainerRef.createEmbeddedView(this.template);\r\n        }\r\n    }\r\n}\r\n","import { Directive, effect, inject, input, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { race, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Destroyable } from '../base/destroyable';\r\nimport { TemplateService } from '../services/template.service';\r\n\r\n@Directive({\r\n    selector: '[mHideOnExistingTemplate]',\r\n    })\r\nexport class HideOnExistingTemplateDirective extends Destroyable {\r\n    private readonly templateService = inject(TemplateService);\r\n    private readonly template = inject(TemplateRef<unknown>);\r\n    private readonly viewContainerRef = inject(ViewContainerRef);\r\n    private readonly nextNameSubject = new Subject<void>();\r\n    private hasTemplate = false;\r\n\r\n    public readonly name = input.required<string | string[]>({ alias: 'mHideOnExistingTemplate' });\r\n\r\n    public constructor() {\r\n        super();\r\n        effect(() => {\r\n            this.nextNameSubject.next();\r\n            this.templateService.get(this.name()).pipe(takeUntil(race(this.destroy, this.nextNameSubject))).subscribe(template => {\r\n                this.hasTemplate = !!template;\r\n                this.refreshView();\r\n            });\r\n        });\r\n    }\r\n\r\n    private refreshView(): void {\r\n        this.viewContainerRef.clear();\r\n        if (!this.hasTemplate) {\r\n            this.viewContainerRef.createEmbeddedView(this.template);\r\n        }\r\n    }\r\n}\r\n","import { Directive, effect, input, TemplateRef } from '@angular/core';\nimport { TemplateTarget } from '../models/template-target';\n\n@Directive({\n    selector: '[m-to-template]'\n})\nexport class ToTemplateDirective {\n    public readonly toTemplate = input.required<TemplateTarget>({ alias: 'm-to-template' });\n\n    public constructor(\n        private readonly template: TemplateRef<unknown>\n    ) {\n        effect(() => {\n            this.toTemplate().template = this.template;\n        });\n    }\n}\n","import { AfterViewInit, Directive, ElementRef, OnDestroy, input } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[m-position-absolute]',\r\n    })\r\nexport class PositionAbsoluteDirective implements AfterViewInit, OnDestroy {\r\n    private readonly observer = new MutationObserver(() => this.refresh());\r\n    private parent: HTMLElement | undefined;\r\n\r\n    public readonly position = input<'top-left' | 'top-center' | 'top-right' | 'middle-left' | 'middle-center' | 'middle-right' | 'bottom-left' | 'bottom-center' | 'bottom-right'>(undefined, { alias: \"m-position-absolute\" });\r\n\r\n    public readonly attach = input<'left' | 'middle' | 'right'>('left');\r\n\r\n    public readonly parentWidth = input<'none' | 'exact' | 'min' | 'max'>('none');\r\n\r\n    public readonly minLeft = input<number | 'parent-left' | 'parent-center' | 'parent-right'>();\r\n\r\n    public constructor(\r\n        private readonly elementRef: ElementRef<HTMLElement>\r\n    ) {\r\n    }\r\n\r\n    public ngAfterViewInit(): void {\r\n        this.parent = this.elementRef.nativeElement.parentElement ?? undefined;\r\n        if (this.parent) {\r\n            this.observer.observe(this.parent, { attributes: true });\r\n        }\r\n        setTimeout(() => this.refresh());\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        this.observer.disconnect();\r\n    }\r\n\r\n    private refresh(): void {\r\n        if (!this.elementRef.nativeElement.style.position) {\r\n            this.elementRef.nativeElement.style.position = 'fixed';//'absolute';\r\n        }\r\n\r\n        const rect = this.parent?.getBoundingClientRect();\r\n        switch (this.parentWidth()) {\r\n            case 'min':\r\n                this.setMinWidth(rect?.width ?? 0);\r\n                break;\r\n            case 'max':\r\n                this.setMaxWidth(rect?.width ?? 0);\r\n                break;\r\n            case 'exact':\r\n                this.setWidth(rect?.width ?? 0);\r\n                break;\r\n        }\r\n        const position = this.position();\n        switch (position) {\r\n            case 'top-left':\r\n            case 'top-center':\r\n            case 'top-right':\r\n                this.setTop(rect?.top ?? 0);\r\n                break;\r\n            case 'middle-left':\r\n            case 'middle-center':\r\n            case 'middle-right':\r\n                this.setTop(rect ? rect.top + rect.height / 2 : undefined);\r\n                break;\r\n            case 'bottom-left':\r\n            case 'bottom-center':\r\n            case 'bottom-right':\r\n                this.setTop(rect?.bottom);\r\n                break;\r\n        }\r\n        switch (position) {\r\n            case 'top-left':\r\n            case 'middle-left':\r\n            case 'bottom-left':\r\n                this.setLeft(rect?.left);\r\n                break;\r\n            case 'top-center':\r\n            case 'middle-center':\r\n            case 'bottom-center':\r\n                this.setLeft(rect ? rect.left + rect.width / 2 : undefined);\r\n                break;\r\n            case 'top-right':\r\n            case 'middle-right':\r\n            case 'bottom-right':\r\n                this.setLeft(rect?.right);\r\n                break;\r\n        }\r\n    }\r\n\r\n    private setTop(top: number | undefined): void {\r\n        const style = this.elementRef.nativeElement.style;\r\n        style.top = top === undefined ? '' : top + 'px';\r\n        style.maxHeight = `calc(100vh - ${top}px)`;\r\n    }\r\n\r\n    private setLeft(left: number | undefined): void {\r\n        const rect = this.elementRef.nativeElement.getBoundingClientRect();\r\n        const parentRect = this.parent?.getBoundingClientRect();\r\n        const style = this.elementRef.nativeElement.style;\r\n        style.right = '';\r\n        style.right = '';\r\n        if (left !== undefined && parentRect !== undefined) {\r\n            const attach = this.attach();\n            if (attach === 'middle') {\r\n                left -= rect.width / 2;\r\n            }\r\n            if (attach === 'right') {\r\n                left -= rect.width;\r\n            }\r\n            left = Math.max(0, left);\r\n            const minLeft = this.minLeft();\n            if (minLeft === 'parent-left') {\r\n                left = Math.max(left, parentRect.left);\r\n            } else if (minLeft === 'parent-center') {\r\n                left = Math.max(left, parentRect.left + parentRect.width / 2);\r\n            } else if (minLeft === 'parent-right') {\r\n                left = Math.max(left, parentRect.right);\r\n            } else if (typeof minLeft === 'number') {\r\n                left = Math.max(left, minLeft);\r\n            }\r\n        }\r\n        if (left && rect.width > 0 && left + rect.width > window.innerWidth) {\r\n            style.right = '0px';\r\n            style.left = '';\r\n        } else {\r\n            style.left = left === undefined ? '' : left + 'px';\r\n        }\r\n    }\r\n\r\n    private setWidth(width: number): void {\r\n        const style = this.elementRef.nativeElement.style;\r\n        style.width = width === undefined ? '' : width + 'px';\r\n    }\r\n\r\n    private setMinWidth(width: number): void {\r\n        const style = this.elementRef.nativeElement.style;\r\n        style.minWidth = width === undefined ? '' : width + 'px';\r\n    }\r\n\r\n    private setMaxWidth(width: number): void {\r\n        const style = this.elementRef.nativeElement.style;\r\n        style.maxWidth = width === undefined ? '' : width + 'px';\r\n    }\r\n}\r\n","import { Directive, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ExternalRouteData } from './external-route-data';\r\n\r\n@Directive()\r\nexport abstract class ExternalRouteComponent implements OnInit {\r\n\r\n    protected constructor(\r\n        private readonly route: ActivatedRoute\r\n    ) { }\r\n\r\n    public ngOnInit(): void {\r\n        const data = this.route.snapshot.data as ExternalRouteData;\r\n        if (data && data.redirectTo) {\r\n            window.location.href = data.redirectTo;\r\n        }\r\n    }\r\n\r\n}\r\n","import { DefaultUrlSerializer, UrlTree } from '@angular/router';\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class LowerCaseUrlSerializer extends DefaultUrlSerializer {\r\n    public override parse(url: string): UrlTree {\r\n        return super.parse(url ? url.toLowerCase() : url);\r\n    }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { UrlSerializer } from '@angular/router';\r\nimport { LowerCaseUrlSerializer } from './lower-case-url-serializer';\r\n\r\n@NgModule({\r\n    declarations: [],\r\n    providers: [\r\n        {\r\n            provide: UrlSerializer,\r\n            useClass: LowerCaseUrlSerializer\r\n        }\r\n    ],\r\n    imports: []\r\n})\r\nexport class LowerCaseUrlSerializerModule {}\r\n","export const mantic = Object.freeze({\r\n    pipes: {\r\n        isEmail: {\r\n            message: 'mantic.pipes.isEmail.message'\r\n        },\r\n        isFilled: {\r\n            message: 'mantic.pipes.isFilled.message'\r\n        },\r\n        allowedChars: {\r\n            message: 'mantic.pipes.allowedChars.message'\r\n        }\r\n    }\r\n});\r\n","import { map } from 'rxjs/operators';\r\n\r\nexport const mapVoid = () => {\r\n    return map(() => void 0);\r\n}\r\n","import { EnvironmentProviders, LOCALE_ID, makeEnvironmentProviders } from '@angular/core';\r\nimport { registerLocaleData } from '@angular/common';\r\n\r\n/**\r\n * Register global data to be used internally by Angular. See the\r\n * [\"I18n guide\"](guide/i18n-common-format-data-locale) to know how to import additional locale\r\n * data.\r\n */\r\nexport function provideLocale(locale: any, localeId: string, localeExtra: any): EnvironmentProviders {\r\n    registerLocaleData(locale, localeId, localeExtra);\r\n    return makeEnvironmentProviders([\r\n        { provide: LOCALE_ID, useValue: localeId }\r\n    ]);\r\n}\r\n","export interface FormValidation {\r\n    label?: string;\r\n    message: string | undefined;\r\n    valid: boolean;\r\n    value: unknown;\r\n}\r\n\r\nexport function isFormValidation(value: unknown): value is FormValidation {\r\n    const validation = value as FormValidation;\r\n    return validation && typeof validation.valid === 'boolean';\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { localize } from '../components/localize/localize';\r\nimport { mantic } from '../helpers/mantic';\r\nimport { FormValidation, isFormValidation } from '../models/form-validation';\r\nimport { ValidationPipe } from './validation.pipe';\r\n\r\n@Pipe({\r\n    name: 'mAllowedChars',\r\n    })\r\nexport class AllowedCharsPipe implements ValidationPipe, PipeTransform {\r\n\r\n    public transform(value: unknown | FormValidation, allowedChars: string, message?: string): FormValidation {\r\n        const result = isFormValidation(value) ? value : { value, message: undefined, valid: true };\r\n        if (!result.valid) {\r\n            return result;\r\n        }\r\n        result.valid = this.isValid(result.value, allowedChars);\r\n        result.message = result.valid ? undefined : message || localize(mantic.pipes.allowedChars.message, `forbidden characters found`);\r\n        return result;\r\n    }\r\n\r\n    private isValid(value: unknown, allowedChars: string): boolean {\r\n        return typeof value === 'string' && new RegExp(`^${allowedChars}$`).test(value);\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'mArray'\r\n})\r\nexport class ArrayPipe implements PipeTransform {\r\n\r\n    public transform(length: number): number[] {\r\n        return new Array(Math.round(length)).fill(0).map((_, index) => index);\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'mCeil',\r\n    })\r\nexport class CeilPipe implements PipeTransform {\r\n\r\n    public transform(value: number, decimals = 0): number {\r\n        const factor = Math.pow(10, decimals);\r\n        return Math.ceil(value * factor) / factor;\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'debug',\r\n    })\r\nexport class DebugPipe implements PipeTransform {\r\n\r\n    public transform(value: unknown, ...args: unknown[]): unknown {\r\n        // eslint-disable-next-line no-debugger\r\n        debugger;\r\n        return value;\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'debugger'\r\n})\r\nexport class DebuggerPipe implements PipeTransform {\r\n\r\n    public transform(value: unknown, ...args: unknown[]): unknown {\r\n        // eslint-disable-next-line no-debugger\r\n        debugger;\r\n        return value;\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'mFloor',\r\n    })\r\nexport class FloorPipe implements PipeTransform {\r\n\r\n    public transform(value: number, decimals = 0): number {\r\n        const factor = Math.pow(10, decimals);\r\n        return Math.floor(value * factor) / factor;\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { localize } from '../components/localize/localize';\r\nimport { mantic } from '../helpers/mantic';\r\nimport { FormValidation, isFormValidation } from '../models/form-validation';\r\nimport { ValidationPipe } from './validation.pipe';\r\n\r\n@Pipe({\r\n    name: 'mIsEmail',\r\n    })\r\nexport class IsEmailPipe implements ValidationPipe, PipeTransform {\r\n\r\n    public transform(value: unknown | FormValidation, message?: string): FormValidation {\r\n        const result = isFormValidation(value) ? value : { value, message: undefined, valid: true };\r\n        if (!result.valid) {\r\n            return result;\r\n        }\r\n        result.valid = this.isEmail(result.value);\r\n        result.message = result.valid ? undefined : message || localize(mantic.pipes.isEmail.message, `no valid email address`);\r\n        return result;\r\n    }\r\n\r\n    private isEmail(value: unknown): boolean {\r\n        return typeof value === 'string' && /^[^@]+@[^@]+\\.[a-zA-Z0-9]+$/.test(value);\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { localize } from '../components/localize/localize';\r\nimport { mantic } from '../helpers/mantic';\r\nimport { FormValidation, isFormValidation } from '../models/form-validation';\r\nimport { ValidationPipe } from './validation.pipe';\r\n\r\n@Pipe({\r\n    name: 'mIsFilled',\r\n    })\r\nexport class IsFilledPipe implements ValidationPipe, PipeTransform {\r\n    public transform(value: unknown | FormValidation, message?: string): FormValidation {\r\n        const result = isFormValidation(value) ? value : { value, message: undefined, valid: true };\r\n        if (!result.valid) {\r\n            return result;\r\n        }\r\n        result.valid = !!result.value;\r\n        result.message = result.valid ? undefined : message || localize(mantic.pipes.isFilled.message, `has to be filled`);\r\n        return result;\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'log',\r\n    })\r\nexport class LogPipe implements PipeTransform {\r\n\r\n    public transform<T>(value: T, ...args: unknown[]): T {\r\n        if (args && args.length > 0) {\r\n            console.log(args[0], value);\r\n        } else {\r\n            console.log(value);\r\n        }\r\n        return value;\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'mPadEnd',\r\n    })\r\nexport class PadEndPipe implements PipeTransform {\r\n    public transform(value: unknown, maxLength: number, fillString?: string): string | undefined {\r\n        const text = value?.toString();\r\n        return text?.padEnd(maxLength, fillString);\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'mPadStart',\r\n    })\r\nexport class PadStartPipe implements PipeTransform {\r\n    public transform(value: unknown, maxLength: number, fillString?: string): string | undefined {\r\n        const text = value?.toString();\r\n        return text?.padStart(maxLength, fillString);\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'mRound',\r\n    })\r\nexport class RoundPipe implements PipeTransform {\r\n\r\n    public transform(value: number, decimals = 0): number {\r\n        const factor = Math.pow(10, decimals);\r\n        return Math.round(value * factor) / factor;\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n    name: 'mSafe',\r\n    })\r\nexport class SafePipe implements PipeTransform {\r\n    public constructor(\r\n        private readonly sanitizer: DomSanitizer\r\n    ) {\r\n    }\r\n\r\n    public transform(url: string): SafeResourceUrl {\r\n        return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/**\r\n * Returns a copy of a section of an array.\r\n * For both start and end, a negative index can be used to indicate an offset from the end of the array.\r\n * For example, -2 refers to the second to last element of the array.\r\n * @param start The beginning index of the specified portion of the array.\r\n * If start is undefined, then the slice begins at index 0.\r\n * @param end The end index of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n * If end is undefined, then the slice extends to the end of the array.\r\n */\r\n@Pipe({\r\n    name: 'mSlice',\r\n    })\r\nexport class SlicePipe implements PipeTransform {\r\n    public transform<T>(array: T[], from?: number, to?: number): T[] {\r\n        return array.slice(from, to);\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { FormValidation, isFormValidation } from '../models/form-validation';\r\nimport { ValidationPipe } from './validation.pipe';\r\n\r\n@Pipe({\r\n    name: 'mTitle',\r\n    })\r\nexport class TitlePipe implements ValidationPipe, PipeTransform {\r\n\r\n    public transform(value: unknown | FormValidation, label?: string): FormValidation {\r\n        if (isFormValidation(value)) {\r\n            value.label = label;\r\n            return value;\r\n        }\r\n        return { valid: true, value, label, message: undefined };\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { toBoolean } from '../helpers/to-boolean';\r\nimport { BooleanLike } from '../models/boolean-like';\r\n\r\n@Pipe({\r\n    name: 'toBoolean'\r\n})\r\nexport class ToBooleanPipe implements PipeTransform {\r\n    public transform(value: BooleanLike): boolean {\r\n        return toBoolean(value);\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class BaseHrefService {\r\n\r\n    public get(): string {\r\n        return document.head.querySelector('base')?.href ?? '';\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class EnvironmentService {\r\n    private baseUrl?: string;\r\n\r\n    public getBaseUrl(): string {\r\n        if (this.baseUrl === undefined) {\r\n            const baseElement = document.getElementsByTagName('base')[0];\r\n            this.baseUrl = baseElement ? baseElement.attributes.getNamedItem('href')?.value || '' : '';\r\n            this.baseUrl = this.baseUrl.replace(/\\/+$/, '');\r\n        }\r\n        return this.baseUrl;\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class FaviconService {\r\n    private canvasElement: HTMLCanvasElement | undefined;\r\n    private faviconElement: HTMLLinkElement | undefined;\r\n\r\n    public getContext(): CanvasRenderingContext2D | undefined {\r\n        return this.getCanvas().getContext('2d') ?? undefined;\r\n    }\r\n\r\n    private getCanvas(): HTMLCanvasElement {\r\n        if (!this.canvasElement) {\r\n            this.canvasElement = document.createElement('canvas');\r\n            this.canvasElement.style.display = 'none';\r\n            this.canvasElement.width = 16;\r\n            this.canvasElement.height = 16;\r\n            document.body.appendChild(this.canvasElement);\r\n        }\r\n        return this.canvasElement;\r\n    }\r\n\r\n    public update(): void {\r\n        this.faviconElement ??= this.getFaviconElement();\r\n        if (this.faviconElement) {\r\n            this.faviconElement.href = this.canvasElement?.toDataURL('image/png') ?? '';\r\n        }\r\n    }\r\n\r\n    private getFaviconElement(): HTMLLinkElement | undefined {\r\n        const foundElement = document.querySelector('link[rel*=\"icon\"][sizes=\"16x16\"][type=\"image/png\"]')\r\n            ?? document.querySelector('link[rel*=\"icon\"][type=\"image/png\"]')\r\n            ?? document.querySelector('link[rel*=\"icon\"]');\r\n        return foundElement instanceof HTMLLinkElement ? foundElement : undefined;\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class ThemeService {\r\n    private readonly versionSubject = new ReplaySubject<string>(1);\r\n    public version = this.versionSubject.asObservable();\r\n\r\n    public setVersion(version: string): void {\r\n        this.versionSubject.next(version);\r\n    }\r\n\r\n    public prefersDark(): boolean {\r\n        return matchMedia('(prefers-color-scheme: dark)').matches;\r\n    }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","NotificationReference"],"mappings":"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"}