@yuuvis/client-framework 2.1.34 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/lib/services/layout-settings/layout-settings.service.d.ts +3 -2
- package/fesm2022/yuuvis-client-framework-common.mjs +9 -6
- package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-details.mjs +93 -22
- package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-form.mjs +14 -8
- package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework.mjs +88 -2
- package/fesm2022/yuuvis-client-framework.mjs.map +1 -1
- package/index.d.ts +2 -0
- package/lib/services/snack-bar/snack-bar.interface.d.ts +14 -0
- package/lib/services/snack-bar/snack-bar.service.d.ts +22 -0
- package/metadata-form/lib/metadata-form-field/metadata-form-field.component.d.ts +2 -2
- package/metadata-form/lib/metadata-form-field/metadata-form-field.interface.d.ts +7 -1
- package/object-details/lib/object-details-shell/object-details-shell.component.d.ts +5 -1
- package/object-details/lib/object-details.component.d.ts +5 -1
- package/object-details/lib/object-metadata/object-metadata-section/object-metadata-section.component.d.ts +15 -0
- package/object-details/lib/object-metadata/object-metadata-section/object-metadata-section.interface.d.ts +9 -0
- package/object-details/lib/object-metadata/object-metadata.component.d.ts +5 -9
- package/object-form/index.d.ts +1 -0
- package/object-form/lib/object-form-element/object-form-element.component.d.ts +1 -1
- package/object-form/lib/object-form.service.d.ts +2 -1
- package/package.json +8 -8
|
@@ -9,8 +9,9 @@ import * as i0 from "@angular/core";
|
|
|
9
9
|
export declare class LayoutSettingsService {
|
|
10
10
|
#private;
|
|
11
11
|
DEFAULT_SPLIT_VIEW_GUTTER_SIZE: number;
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
themeMode: import("@angular/core").WritableSignal<LayoutMode>;
|
|
13
|
+
mode: import("@angular/core").Signal<LayoutMode>;
|
|
14
|
+
init(): void;
|
|
14
15
|
setMode(mode: LayoutMode): void;
|
|
15
16
|
saveSettings(key: string, settings: unknown): boolean;
|
|
16
17
|
getSettings(key: string): unknown | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, ChangeDetectionStrategy, Component, inject, ElementRef, Input, Directive, computed, EnvironmentInjector, ApplicationRef, createComponent, HostBinding, EventEmitter, HostListener, Output, NgZone, output, contentChildren, forwardRef, NgModule,
|
|
2
|
+
import { input, ChangeDetectionStrategy, Component, inject, ElementRef, Input, Directive, computed, EnvironmentInjector, ApplicationRef, createComponent, HostBinding, EventEmitter, HostListener, Output, NgZone, output, contentChildren, forwardRef, NgModule, signal, Injectable } from '@angular/core';
|
|
3
3
|
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
4
4
|
import { MatButtonModule } from '@angular/material/button';
|
|
5
5
|
import * as i1 from '@angular/material/dialog';
|
|
@@ -950,13 +950,16 @@ function getFirstFocusableChild(element) {
|
|
|
950
950
|
* dependent on the current device.
|
|
951
951
|
*/
|
|
952
952
|
class LayoutSettingsService {
|
|
953
|
-
#STORAGE_PREFIX;
|
|
954
|
-
#MODE_STORAGE_KEY;
|
|
955
953
|
constructor() {
|
|
956
954
|
this.#STORAGE_PREFIX = 'yuv.layout:';
|
|
957
955
|
this.#MODE_STORAGE_KEY = 'app.layout.mode';
|
|
958
956
|
this.DEFAULT_SPLIT_VIEW_GUTTER_SIZE = 16;
|
|
959
|
-
this.
|
|
957
|
+
this.themeMode = signal('system');
|
|
958
|
+
this.mode = this.themeMode.asReadonly();
|
|
959
|
+
}
|
|
960
|
+
#STORAGE_PREFIX;
|
|
961
|
+
#MODE_STORAGE_KEY;
|
|
962
|
+
init() {
|
|
960
963
|
// set configured mode
|
|
961
964
|
const modeSettings = this.getSettings(this.#MODE_STORAGE_KEY);
|
|
962
965
|
this.applyLayoutMode(modeSettings?.mode || undefined);
|
|
@@ -998,7 +1001,7 @@ class LayoutSettingsService {
|
|
|
998
1001
|
applyLayoutMode(mode) {
|
|
999
1002
|
const body = document.getElementsByTagName('body')[0];
|
|
1000
1003
|
body.style.colorScheme = mode === 'dark' || mode === 'light' ? mode : 'inherit';
|
|
1001
|
-
this.mode
|
|
1004
|
+
this.themeMode.set(mode || 'system');
|
|
1002
1005
|
}
|
|
1003
1006
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: LayoutSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1004
1007
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: LayoutSettingsService, providedIn: 'root' }); }
|
|
@@ -1008,7 +1011,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
1008
1011
|
args: [{
|
|
1009
1012
|
providedIn: 'root'
|
|
1010
1013
|
}]
|
|
1011
|
-
}]
|
|
1014
|
+
}] });
|
|
1012
1015
|
|
|
1013
1016
|
/**
|
|
1014
1017
|
* Providing an error message when a translation string for an object wasn't found
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yuuvis-client-framework-common.mjs","sources":["../../../../../libs/yuuvis/client-framework/common/src/lib/components/dialog/dialog.component.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/confirm/confirm.component.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/confirm/confirm.component.html","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/autofocus-child.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/autofocus-delayed.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/busy-overlay.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/click-double.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/container-size.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/drag-scroll.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/drag-select.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/file-drop-zone/file-drop-zone.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/focus-within.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/light-dismiss.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/longpress.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/noop-value-accessor.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/common.module.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/common.utils.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/services/layout-settings/layout-settings.service.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/services/form-translate/form-translate.service.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/mat-form-field.abstract.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/dialog/dialog.options.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/retention-badge/retention-badge.component.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/retention-badge/retention-badge.component.html","../../../../../libs/yuuvis/client-framework/common/src/lib/components/confirm/confirm.service.ts","../../../../../libs/yuuvis/client-framework/common/src/yuuvis-client-framework-common.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { MatDialogActions, MatDialogContent, MatDialogTitle } from '@angular/material/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'yuv-dialog',\n imports: [TranslateModule, MatDialogActions, MatDialogTitle, MatDialogContent],\n template: `\n @let title = headertitel();\n @if (title) {\n <h2 mat-dialog-title>{{ title }}</h2>\n }\n <mat-dialog-content>\n <ng-content select=\"main\"></ng-content>\n </mat-dialog-content>\n\n <mat-dialog-actions align=\"end\" class=\"footer\">\n <ng-content select=\"footer\"></ng-content>\n </mat-dialog-actions>\n `,\n styleUrl: './dialog.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DialogComponent {\n headertitel = input<string | null>(null);\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { ConfirmOverlayData } from './confirm.interface';\nimport { DialogComponent } from '../dialog/dialog.component';\nimport { YmtButtonDirective } from '@yuuvis/material';\n\n@Component({\n selector: 'yuv-confirm',\n imports: [CommonModule, MatButtonModule, MatDialogModule, DialogComponent, YmtButtonDirective],\n templateUrl: './confirm.component.html',\n styleUrl: './confirm.component.scss'\n})\nexport class ConfirmComponent {\n readonly dialogData = inject<ConfirmOverlayData>(MAT_DIALOG_DATA);\n // readonly #dialogRef = inject(MatDialogRef<ConfirmComponent>);\n}\n","<yuv-dialog [headertitel]=\"dialogData.title || ''\">\n <main>{{ dialogData.message }}</main>\n <footer>\n @if (!dialogData.hideCancelButton) {\n <button ymtButton=\"secondary\" mat-dialog-close type=\"button\">\n {{ dialogData.cancelLabel || 'Cancel' }}\n </button>\n }\n <button ymtButton=\"primary\" type=\"button\" [mat-dialog-close]=\"true\">{{ dialogData.confirmLabel || 'Confirm' }}</button>\n </footer>\n</yuv-dialog>\n","import { AfterViewInit, Directive, ElementRef, inject, Input } from '@angular/core';\n\n/**\n * Directive putting focus on a 'focusable' child element.\n * By default the first focusable child will receive focus.\n */\n@Directive({\n selector: '[yuvAutofocusChild]',\n standalone: true\n})\nexport class AutofocusChildDirective implements AfterViewInit {\n #elRef = inject(ElementRef);\n\n #targetIndex = 0;\n @Input() set yuvAutofocusChild(s: string) {\n const i = parseInt(s);\n this.#targetIndex = !isNaN(i) ? i : 0;\n }\n\n #getFirstFocusableChild(): HTMLElement {\n const focusableElements = [\n ...this.#elRef.nativeElement.querySelectorAll('a[href], button, input, textarea, select, details,[tabindex]:not([tabindex=\"-1\"])')\n ].filter((el) => !el.hasAttribute('disabled') && !el.getAttribute('aria-hidden'));\n return focusableElements[this.#targetIndex];\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n const focusEl = this.#getFirstFocusableChild();\n if (focusEl) focusEl.focus();\n });\n }\n}\n","import { AfterViewInit, computed, Directive, ElementRef, inject, input, Input } from '@angular/core';\n\n/**\n * Directive putting delayed focus on an element. If no\n * delay is set, the focus will be set immediately.\n *\n * You have to ensure that the element is focusable when adding this directive to it.\n */\n@Directive({\n selector: '[yuvAutofocusDelayed]',\n standalone: true\n})\nexport class AutofocusDelayedDirective implements AfterViewInit {\n #elRef = inject(ElementRef);\n\n /**\n * Sets the delay in milliseconds. If no delay is set, the focus will be set immediately.\n */\n yuvAutofocusDelayed = input<number | string>(0);\n #delay = computed<number>(() => {\n const d = this.yuvAutofocusDelayed();\n return typeof d === 'string' ? parseInt(d) : d;\n });\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.#elRef.nativeElement.focus();\n }, this.#delay());\n }\n}\n","import { Directive, ElementRef, HostBinding, Input, OnInit, inject, createComponent, EnvironmentInjector, ApplicationRef, input } from '@angular/core';\nimport { Utils } from '@yuuvis/client-core';\nimport { MatProgressSpinner, ProgressSpinnerMode } from '@angular/material/progress-spinner';\n\n\nexport interface BusyOverlayConfig {\n // color token to use for the backdrop. Defaults to 'ymt-surface-app'\n backdropColor?: string;\n // whether to blur the background of the backdrop\n blur?: boolean;\n}\n\n/**\n * A directive that will overlay its host component with a translucent background\n * and a loading spinner once the condition resolves with true. This is useful for example to\n * prevent user intercation while component data is loading or some processing is done.\n *\n * It'll also set the `inert` attribute on the host element. This will disable the host and\n * all elements inside (like buttons, inputs etc.)\n *\n * @example\n * <div class=\"result-list\" [yuvBusyOverlay]=\"waitingForServerResponse\">...</div>\n *\n */\n@Directive({\n selector: '[yuvBusyOverlay]',\n standalone: true\n})\nexport class BusyOverlayDirective implements OnInit {\n @HostBinding('style.position') stylePosition = 'initial';\n\n #elRef = inject(ElementRef);\n #environmentInjector = inject(EnvironmentInjector);\n #applicationRef = inject(ApplicationRef);\n\n #overlayId: string | null = null;\n /**\n * The Boolean expression to evaluate as the condition for showing the busy overlay\n */\n @Input() set yuvBusyOverlay(b: boolean) {\n if (b === true) {\n this.#addBusyOverlay();\n } else if (this.#overlayId) {\n this.#removeBusyOverlay();\n }\n }\n\n yuvBusyOverlayConfig = input<BusyOverlayConfig>();\n\n #createSpinner(mode: ProgressSpinnerMode = 'indeterminate', value: MatProgressSpinner['value'] = 0) {\n const componentRef = createComponent(MatProgressSpinner, {\n environmentInjector: this.#environmentInjector\n });\n this.#applicationRef.attachView(componentRef.hostView);\n componentRef.changeDetectorRef.detectChanges();\n componentRef.setInput('mode', mode);\n componentRef.setInput('value', value);\n (componentRef.location.nativeElement as HTMLElement).classList.add('ymt-progress-spinner--giant');\n return componentRef;\n }\n\n #addBusyOverlay() {\n this.stylePosition = 'relative';\n const overlay = document.createElement('div');\n overlay.style.position = 'absolute';\n overlay.style.transition = 'opacity 200ms';\n overlay.style.opacity = '0';\n overlay.style.inset = '0';\n overlay.style.display = 'grid';\n overlay.style.alignItems = 'center';\n overlay.style.justifyContent = 'center';\n overlay.style.zIndex = '5';\n const backdropBackground = this.yuvBusyOverlayConfig()?.backdropColor || 'var(--ymt-surface-app)';\n overlay.style.backgroundColor = `rgb(from ${backdropBackground} r g b / .5)`;\n if (this.yuvBusyOverlayConfig()?.blur) {\n overlay.style.backdropFilter = 'blur(2px)';\n }\n\n this.#overlayId = `p${Utils.uuid()}`;\n overlay.setAttribute('id', this.#overlayId);\n overlay.append(this.#createSpinner('indeterminate').location.nativeElement);\n const el = this.#elRef.nativeElement as HTMLElement;\n el.setAttribute('inert', '');\n el.append(overlay);\n setTimeout(() => {\n overlay.style.opacity = '1';\n });\n }\n\n #removeBusyOverlay() {\n const el = this.#elRef.nativeElement.querySelector(`#${this.#overlayId}`);\n if (el) {\n el.style.opacity = '0';\n setTimeout(() => {\n el.remove();\n }, 200);\n }\n this.#elRef.nativeElement.removeAttribute('inert');\n this.#overlayId = null;\n }\n\n ngOnInit() {\n this.stylePosition = getComputedStyle(this.#elRef.nativeElement).position;\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n/**\n * Fixes the issue of 'click' event beeing triggered on 'doubleclick' by defining new outputs that\n * distinguish between single and double click.\n */\n@Directive({\n selector: '[click.single],[click.double]',\n standalone: true\n})\nexport class ClickDoubleDirective {\n @Input() debounceTime = 200;\n @Output('click.double') doubleClick = new EventEmitter();\n @Output('click.single') singleClick = new EventEmitter();\n\n private clicksSubject = new Subject<MouseEvent>();\n\n constructor() {\n this.clicksSubject.pipe(takeUntilDestroyed(), debounceTime(this.debounceTime)).subscribe({\n next: (event) => {\n if (event.type === 'click') {\n this.singleClick.emit(event);\n } else {\n this.doubleClick.emit(event);\n }\n }\n });\n }\n\n @HostListener('click', ['$event'])\n clickEvent(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.clicksSubject.next(event);\n }\n @HostListener('dblclick', ['$event'])\n doubleClickEvent(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.clicksSubject.next(event);\n }\n}\n","import { Directive, ElementRef, NgZone, OnDestroy, inject, output } from '@angular/core';\n\n/**\n * Directive to watch the size of an element inside the DOM. Usefull for example to provide\n * a different layout (different components) depending on the available screen estate. You\n * should first try to use CSS container queries but somtimes you need a different set of\n * components to be loaded for a certain component size.\n *\n * Let's say you have components designed for bigger screens. You do not want to load them\n * if there is not enough space for them. So you rather load components that are designed to\n * take less space by providing the best user experience on smaller devices.\n *\n * ```html\n * <div yuvContainerSize (containerHeight)=\"onContainerResize($event)\" (containerWidth)=\"onContainerResize($event)\"></div>\n * ```\n *\n */\n@Directive({\n selector: '[yuvContainerSize]',\n standalone: true\n})\nexport class ContainerSizeDirective implements OnDestroy {\n private elRef = inject(ElementRef);\n private ngZone = inject(NgZone);\n\n containerHeight = output<number>();\n containerWidth = output<number>();\n\n private _size?: ResizeObserverSize;\n private _resizeObserver = new ResizeObserver((entries) => {\n const size = entries[0].borderBoxSize[0];\n if (!this._size || size.blockSize !== this._size.blockSize) {\n this._emit(size.blockSize, true);\n }\n if (!this._size || size.inlineSize !== this._size.inlineSize) {\n this._emit(size.inlineSize);\n }\n this._size = size;\n });\n\n constructor() {\n this._resizeObserver.observe(this.elRef.nativeElement);\n }\n\n private _emit(value: number, isHeight = false) {\n // ResizeObserver callback is not covered by change detection\n // so it has to be executed withing ngZone\n this.ngZone.run(() => {\n (isHeight ? this.containerHeight : this.containerWidth).emit(value);\n });\n }\n\n ngOnDestroy(): void {\n this._resizeObserver.unobserve(this.elRef.nativeElement);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, Directive, ElementRef, inject } from '@angular/core';\nimport { fromEvent, Observable } from 'rxjs';\nimport { filter, map, switchMap, takeUntil, tap } from 'rxjs/operators';\n\n/**\n * Directive for adding drag scroll behaviour to a container element. Elements that overlow will then\n * be 'scrollable' by dragging the list of children.\n *\n * @example\n * <div yuvDragScroll>\n * <div class=\"tile\">#1</div>\n * <div class=\"tile\">#2</div>\n * <div class=\"tile\">#3</div>\n * ...\n * </div>\n */\n@Directive({\n selector: '[yuvDragScroll]'\n})\nexport class DragScrollDirective implements AfterViewInit {\n readonly #document = inject(DOCUMENT);\n readonly #element = inject(ElementRef);\n #dragging = false;\n\n #applyDraggingStyles(el: HTMLElement, remove?: boolean) {\n const draggingStyles: { [property: string]: string } = {\n cursor: 'grabbing'\n };\n Object.keys(draggingStyles).forEach((property) => {\n if (remove) {\n el.style.removeProperty(property);\n } else {\n el.style.setProperty(property, draggingStyles[property]);\n }\n });\n }\n\n ngAfterViewInit(): void {\n const nativeElement: HTMLElement = this.#element.nativeElement;\n const mouseDown$: Observable<MouseEvent> = fromEvent<MouseEvent>(nativeElement, 'mousedown');\n const mouseMove$: Observable<MouseEvent> = fromEvent<MouseEvent>(this.#document, 'mousemove');\n const mouseUp$: Observable<MouseEvent> = fromEvent<MouseEvent>(this.#document, 'mouseup').pipe(\n tap((e: MouseEvent) => {\n if (this.#dragging) {\n e.preventDefault();\n e.stopPropagation();\n this.#dragging = false;\n this.#applyDraggingStyles(nativeElement, true);\n }\n })\n );\n\n const dragMove$ = mouseDown$.pipe(\n filter(\n () =>\n // only calculate new scroll position if the container is actually overflowing\n nativeElement.scrollHeight > nativeElement.clientHeight || nativeElement.scrollWidth > nativeElement.clientWidth\n ),\n tap((startEvent: MouseEvent) => {\n this.#applyDraggingStyles(nativeElement);\n startEvent.preventDefault();\n startEvent.stopPropagation();\n }),\n switchMap((startEvent: MouseEvent) => {\n this.#dragging = true;\n const scrollPos = {\n left: nativeElement.scrollLeft,\n top: nativeElement.scrollTop\n };\n return mouseMove$.pipe(\n map((moveEvent: MouseEvent) => {\n moveEvent.preventDefault();\n moveEvent.stopPropagation();\n return {\n startEvent,\n moveEvent,\n scrollPos\n };\n }),\n takeUntil(mouseUp$)\n );\n }),\n\n tap(({ startEvent, moveEvent, scrollPos }) => {\n const diffX = moveEvent.clientX - startEvent.clientX;\n const diffY = moveEvent.clientY - startEvent.clientY;\n nativeElement.scrollLeft = scrollPos.left - diffX;\n nativeElement.scrollTop = scrollPos.top - diffY;\n })\n );\n dragMove$.subscribe();\n }\n}\n","import { computed, contentChildren, Directive, ElementRef, HostListener, inject, input, output } from '@angular/core';\n\ninterface SelectableRect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface DragSelectOptions {\n disabled?: boolean;\n selectorColor?: string;\n}\n\n@Directive({\n selector: '[yuvDragSelect]',\n standalone: true\n})\nexport class DragSelectDirective {\n #selector?: HTMLDivElement;\n #selectStartX = 0;\n #selectStartY = 0;\n\n #selection: number[] = [];\n\n @HostListener('pointerdown', ['$event']) onPointerDown(event: PointerEvent) {\n if (this.yuvDragSelect()?.disabled || (event.target as HTMLElement).tagName === 'BUTTON') return;\n event.preventDefault();\n this.#selectStartX = event.pageX;\n this.#selectStartY = event.pageY;\n\n const div = document.createElement('div');\n div.style.position = 'absolute';\n div.style.width = '0';\n div.style.height = '0';\n div.style.left = this.#selectStartX + 'px';\n div.style.top = this.#selectStartY + 'px';\n div.classList.add('drag-select');\n this.#selector = div;\n document.body.append(this.#selector);\n\n this.#selection = [];\n addEventListener('pointermove', this.#resize);\n addEventListener('pointerup', this.#onPointerUp);\n }\n\n items = contentChildren(DragSelectItemDirective);\n #selectables = computed(() => this.items().map((item) => item.el));\n\n yuvDragSelect = input<DragSelectOptions>();\n dragSelectChange = output<number[]>();\n dragSelect = output<number[]>();\n\n #onPointerUp = () => {\n removeEventListener('pointermove', this.#resize);\n removeEventListener('pointerup', this.#onPointerUp);\n if (this.#selection.length) this.dragSelect.emit(this.#selection);\n if (this.#selector) this.#selector.remove();\n };\n\n #resize = (event: PointerEvent) => {\n if (!this.#selector) return;\n const diffX = event.pageX - this.#selectStartX;\n const diffY = event.pageY - this.#selectStartY;\n this.#selector.style.left = diffX < 0 ? this.#selectStartX + diffX + 'px' : this.#selectStartX + 'px';\n this.#selector.style.top = diffY < 0 ? this.#selectStartY + diffY + 'px' : this.#selectStartY + 'px';\n this.#selector.style.height = Math.abs(diffY) + 'px';\n this.#selector.style.width = Math.abs(diffX) + 'px';\n\n this.#selector.style.border = `1px solid ${this.yuvDragSelect()?.selectorColor || 'var(--ymt-primary'}`;\n this.#checkSelected();\n };\n\n #checkSelected = () => {\n if (!this.#selector) return;\n const select = this.#selector.getBoundingClientRect();\n const { x, y, height, width } = select;\n if (!height || !width) return;\n\n const currSelectionLength = this.#selection.length;\n this.#selectables().forEach((selectable, idx) => {\n const r1: SelectableRect = { x: x + window.scrollX, y: y + window.scrollY, height, width };\n const r2: SelectableRect = selectable.getBoundingClientRect();\n this.#selection = this.#selection.filter((s) => s !== idx);\n if (this.#checkRectIntersection(r1, r2)) {\n this.#selection.push(idx);\n }\n });\n\n if (currSelectionLength !== this.#selection.length) {\n this.dragSelectChange.emit(this.#selection);\n }\n };\n\n #checkRectIntersection = (r1: SelectableRect, r2: SelectableRect) => {\n return !(r1.x + r1.width < r2.x || r2.x + r2.width < r1.x || r1.y + r1.height < r2.y || r2.y + r2.height < r1.y);\n };\n}\n\n@Directive({\n selector: '[yuvDragSelectItem]',\n standalone: true\n})\nexport class DragSelectItemDirective {\n #elRef = inject(ElementRef);\n el = this.#elRef.nativeElement as HTMLElement;\n}\n","import { Directive, ElementRef, HostListener, inject, input, output } from '@angular/core';\nimport { Utils } from '@yuuvis/client-core';\nimport { FileDropZoneOptions } from './file-drop-zone.interface';\n\n@Directive({\n selector: '[yuvFileDropZone]',\n standalone: true\n})\nexport class FileDropZoneDirective {\n #elRef = inject(ElementRef);\n\n #coverElement?: HTMLElement;\n\n #fileOver = false;\n set fileOver(fo: boolean) {\n if (fo !== this.#fileOver) {\n this.#fileOver = fo;\n this.fileDropOver.emit(fo);\n this.#toggleCover();\n }\n }\n get fileOver() {\n return this.#fileOver;\n }\n\n #defaultDragOverCoverStyles: Record<string, string> = {\n outline: '2px dashed var(--ymt-primary)',\n display: 'flex',\n transition: 'background-color .3s ease-in-out',\n 'z-index': '500',\n 'align-items': 'center',\n 'justify-content': 'center',\n 'outline-offset': '-2px',\n 'background-color': 'rgb(from var(--ymt-primary) r g b / .5)'\n };\n\n #defaultDragOverCoverLabelStyles: Record<string, string> = {\n outline: '1px solid var(--ymt-primary)',\n\n padding: 'var(--ymt-spacing-m, 16px)',\n 'background-color': 'rgb(from var(--ymt-primary) r g b / 0.9)',\n color: 'var(--ymt-on-primary)'\n };\n\n yuvFileDropZone = input<FileDropZoneOptions>();\n fileDropDisabled = input<boolean>(false);\n\n fileDrop = output<File[]>();\n fileDropOver = output<boolean>();\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n if (this.fileDropDisabled()) return;\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = false;\n\n const dataTransfer: DataTransfer | null = event.dataTransfer;\n\n if (dataTransfer) {\n if (dataTransfer?.items) {\n const files: File[] = [];\n for (let i = 0; i < dataTransfer.items.length; i++) {\n // If dropped items aren't files, reject them\n if (dataTransfer.items[i].kind === 'file') {\n const file = dataTransfer.items[i].getAsFile();\n if (file) files.push(file);\n }\n }\n dataTransfer.items.clear();\n this.fileDrop.emit(files);\n } else {\n const files = dataTransfer.files;\n dataTransfer.clearData();\n this.fileDrop.emit(Array.from(files));\n }\n }\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n if (this.fileDropDisabled()) return;\n event.stopPropagation();\n event.preventDefault();\n this.fileOver = true;\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n if (this.fileDropDisabled()) return;\n if ((event.target as HTMLElement).getAttribute('id') === this.#coverElement?.getAttribute('id')) {\n this.fileOver = false;\n }\n }\n\n @HostListener('body:dragover', ['$event'])\n onBodyDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n @HostListener('body:drop', ['$event'])\n onBodyDrop(event: DragEvent) {\n event.preventDefault();\n }\n\n #toggleCover() {\n const el: HTMLElement = this.#elRef.nativeElement as HTMLElement;\n\n if (this.#coverElement) {\n el.style.position = 'initial';\n this.#coverElement.remove();\n this.#coverElement = undefined;\n }\n if (this.#fileOver) {\n el.style.position = 'relative';\n this.#coverElement = this.#createCoverElement();\n el.append(this.#coverElement);\n }\n }\n\n #createCoverElement(): HTMLElement {\n const coverElement = document.createElement('div');\n coverElement.setAttribute('id', Utils.uuid());\n coverElement.style.position = 'absolute';\n coverElement.style.inset = '0';\n const styles = this.yuvFileDropZone()?.coverStyles || this.#defaultDragOverCoverStyles;\n Object.keys(styles).forEach((k: string) => {\n (coverElement.style as any)[k] = styles[k];\n });\n\n const label = this.yuvFileDropZone()?.label;\n if (label) {\n const coverLabelElement = document.createElement('div');\n coverLabelElement.innerText = label;\n const labelStyles = this.yuvFileDropZone()?.coverLabelStyles || this.#defaultDragOverCoverLabelStyles;\n Object.keys(labelStyles).forEach((k: string) => {\n (coverLabelElement.style as any)[k] = labelStyles[k];\n });\n coverLabelElement.style.pointerEvents = 'none';\n coverElement.append(coverLabelElement);\n }\n return coverElement;\n }\n}\n","import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Output } from '@angular/core';\n/**\n * Directive keeping track of the focus beeing within a component. Once the component or\n * any of its child components gain focus, a class of `focusWithin` will be set on the\n * host component in order to allow styling it while beeing focused. Furthermore you can\n * register callbacks once the component gets or looses focus.\n *\n * @example\n * // just set the css class\n * <some-component yuvFocusWithin></some-component>\n * // set the css class and listen to focus changes\n * <some-component (yuvFocusWithin)=\"onFocusEnter()\" (yuvFocusWithinBlur)=\"onFocusLeave()\"></some-component>\n */\n@Directive({\n selector: '[yuvFocusWithin]',\n standalone: true\n})\nexport class FocusWithinDirective {\n private eventCount = 0;\n @HostBinding('class.focusWithin') hasFocusWithin = false;\n @HostListener('focusin', ['$event']) onFocusIn(evt: FocusEvent) {\n const hadFocusWithin = this.hasFocusWithin;\n this.hasFocusWithin = this.matchesFocusWithin();\n if (!hadFocusWithin && this.hasFocusWithin) {\n this.yuvFocusWithin.emit();\n }\n }\n @HostListener('focusout', ['$event']) onFocusOut(evt: FocusEvent) {\n const hadFocusWithin = this.hasFocusWithin;\n this.hasFocusWithin = this.matchesFocusWithin();\n if (hadFocusWithin && !this.hasFocusWithin) {\n this.yuvFocusWithinBlur.emit();\n }\n }\n\n /**\n * Emitted once the component or any of its child components gains focus.\n */\n @Output() yuvFocusWithin = new EventEmitter();\n /**\n * Emitted once the component (incl. any of its child components) looses focus.\n */\n @Output() yuvFocusWithinBlur = new EventEmitter();\n\n /**\n * @ignore\n */\n\n constructor(private elRef: ElementRef) { }\n\n // Determine if the given node matches the given selector.\n // @see: https://www.bennadel.com/blog/3476-checking-to-see-if-an-element-has-a-css-pseudo-class-in-javascript.htm\n private matchesFocusWithin(): boolean {\n const node = this.elRef.nativeElement;\n const nativeMatches = node.matches || node.msMatchesSelector;\n try {\n return nativeMatches.call(node, ':focus-within');\n } catch (error) {\n return false;\n }\n }\n}\n","import { Directive, ElementRef, HostListener, inject, output } from '@angular/core';\n\n/**\n * Directive for applying light dismiss actions. Adding this directive will trigger\n * the given function when the user clicks outside the component or hits escape.\n *\n * ```ts\n * <div class=\"notifications\" (yuvLightDismiss)=\"close()\">\n * ...\n * </div>\n * ```\n */\n@Directive({\n selector: '[yuvLightDismiss]',\n standalone: true\n})\nexport class LightDismissDirective {\n private elRef = inject(ElementRef);\n\n @HostListener('document:keydown.escape', ['$event'])\n onKeydownHandler(event: KeyboardEvent) {\n if (!event.defaultPrevented) {\n this.yuvLightDismiss.emit();\n }\n }\n\n @HostListener('document:mousedown', ['$event'])\n onMousedown(event: MouseEvent) {\n if (!this.elRef.nativeElement.contains(event.target)) {\n this.yuvLightDismiss.emit();\n }\n }\n\n yuvLightDismiss = output();\n}\n","import { Directive, ElementRef, inject, input, output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent, merge, of, timer } from 'rxjs';\nimport { filter, map, switchMap } from 'rxjs/operators';\n\n@Directive({\n selector: '[yuvLongPress]',\n standalone: true\n})\nexport class LongPressDirective {\n private elRef = inject(ElementRef);\n\n threshold = 500;\n\n yuvLongPress = input<LongPressDirectiveOptions>({\n enabled: false\n });\n longpress = output();\n\n constructor() {\n const mousedown = fromEvent<MouseEvent>(this.elRef.nativeElement, 'mousedown').pipe(\n takeUntilDestroyed(),\n filter((event) => event.button == 0), // Only allow left button (Primary button)\n map(() => true) // turn on threshold counter\n );\n const touchstart = fromEvent(this.elRef.nativeElement, 'touchstart').pipe(\n takeUntilDestroyed(),\n map(() => true)\n );\n const touchEnd = fromEvent(this.elRef.nativeElement, 'touchend').pipe(\n takeUntilDestroyed(),\n map(() => false)\n );\n const mouseup = fromEvent<MouseEvent>(window, 'mouseup').pipe(\n takeUntilDestroyed(),\n filter((event) => event.button == 0), // Only allow left button (Primary button)\n map(() => false) // reset threshold counter\n );\n merge(mousedown, mouseup, touchstart, touchEnd)\n .pipe(\n takeUntilDestroyed(),\n switchMap((state) => (state ? timer(this.threshold, 100) : of(null))),\n filter((value) => !!value)\n )\n .subscribe(() => this.longpress.emit());\n }\n}\n\nexport interface LongPressDirectiveOptions {\n enabled: boolean;\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport { Directive, forwardRef, inject } from '@angular/core';\nimport { ControlValueAccessor, FormControlDirective, FormControlName, NG_VALUE_ACCESSOR, NgControl, NgModel } from '@angular/forms';\n\n// @see: https://netbasal.com/forwarding-form-controls-to-custom-control-components-in-angular-701e8406cc55\n@Directive({\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => NoopValueAccessorDirective)\n }\n ]\n})\nexport class NoopValueAccessorDirective implements ControlValueAccessor {\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n}\n\nexport function injectNgControl(cva?: ControlValueAccessor): NgControl | null {\n const ngControl = inject(NgControl, { self: true, optional: true });\n\n if (!ngControl) return null;\n\n if (ngControl instanceof FormControlDirective || ngControl instanceof FormControlName || ngControl instanceof NgModel) {\n if (cva) ngControl.valueAccessor = cva;\n return ngControl;\n }\n\n throw new Error('...');\n}\n","import { NgModule } from '@angular/core';\nimport { ConfirmComponent } from './components/confirm/confirm.component';\nimport {\n AutofocusChildDirective,\n AutofocusDelayedDirective,\n BusyOverlayDirective,\n ClickDoubleDirective,\n ContainerSizeDirective,\n DragScrollDirective,\n DragSelectDirective,\n FileDropZoneDirective,\n FocusWithinDirective,\n LightDismissDirective,\n LongPressDirective,\n NoopValueAccessorDirective\n} from './directives';\n\nconst directives = [\n BusyOverlayDirective,\n FocusWithinDirective,\n FileDropZoneDirective,\n ClickDoubleDirective,\n LightDismissDirective,\n ContainerSizeDirective,\n LongPressDirective,\n DragSelectDirective,\n DragScrollDirective,\n NoopValueAccessorDirective,\n AutofocusChildDirective,\n AutofocusDelayedDirective\n];\n\nconst components = [ConfirmComponent];\n\n@NgModule({\n imports: [...directives, ...components],\n exports: [...directives, ...components]\n})\nexport class YuvCommonModule {}\n","export function getFocusableChildren(element: HTMLElement): HTMLElement[] {\n return [...Array.from(element.querySelectorAll('a[href], button, input, textarea, select, details,[tabindex]:not([tabindex=\"-1\"])'))].filter(\n (el) => !el.hasAttribute('disabled') && !el.getAttribute('aria-hidden')\n ) as HTMLElement[];\n}\n\nexport function getFirstFocusableChild(element: HTMLElement): HTMLElement {\n return getFocusableChildren(element)[0] as HTMLElement;\n}\n","import { Injectable } from '@angular/core';\nimport { LayoutMode } from './layout-settings.interface';\n\n/**\n * Service to store and retrieve layout settings. Those\n * settings are stored on the users device because in\n * general layout settings like panel widths are highly\n * dependent on the current device.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class LayoutSettingsService {\n #STORAGE_PREFIX = 'yuv.layout:';\n #MODE_STORAGE_KEY = 'app.layout.mode';\n\n DEFAULT_SPLIT_VIEW_GUTTER_SIZE = 16;\n mode: LayoutMode = 'system';\n\n constructor() {\n // set configured mode\n const modeSettings = this.getSettings(this.#MODE_STORAGE_KEY) as {mode: LayoutMode} | undefined;\n this.applyLayoutMode(modeSettings?.mode || undefined);\n }\n\n setMode(mode: LayoutMode) {\n this.saveSettings(this.#MODE_STORAGE_KEY, {mode});\n }\n\n saveSettings(key: string, settings: unknown): boolean {\n if (typeof settings === 'object') {\n localStorage.setItem(this.#getKey(key), JSON.stringify(settings));\n return true;\n } else return false;\n }\n\n getSettings(key: string): unknown | undefined {\n try {\n const v = localStorage.getItem(this.#getKey(key));\n return v ? JSON.parse(v) : undefined;\n } catch (e) {\n console.error('Error while parsing layout settings', e);\n return undefined;\n }\n }\n\n #getKey(key: string) {\n return `${this.#STORAGE_PREFIX}${key}`;\n }\n\n /**\n * Clears all layout settings.\n */\n clearSettings(): void {\n Object.keys(localStorage).forEach((key) => {\n if (key.startsWith(this.#STORAGE_PREFIX)) {\n localStorage.removeItem(key);\n }\n });\n }\n\n applyLayoutMode(mode?: LayoutMode) {\n const body: HTMLBodyElement = document.getElementsByTagName('body')[0];\n body.style.colorScheme = mode === 'dark' || mode === 'light' ? mode : 'inherit';\n this.mode = mode || 'system';\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n/**\n * Providing an error message when a translation string for an object wasn't found\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class FormTranslateService {\n private translate = inject(TranslateService);\n\n /**\n * Set the error label if a translation for this string wasn't provided\n * @param error - error message about a missed translation key\n * @param params\n */\n getErrorLabel(error: string, params?: any) {\n switch (error) {\n case 'daterange':\n return this.translate.instant('yuv.object-form-element.error.daterange.invalid', params);\n case 'daterangeorder':\n return this.translate.instant('yuv.object-form-element.error.daterangeorder.invalid', params);\n case 'numberrange':\n return this.translate.instant('yuv.object-form-element.error.numberrange.invalid', params);\n case 'numberrangeorder':\n return this.translate.instant('yuv.object-form-element.error.numberrangeorder.invalid', params);\n case 'number':\n return this.translate.instant('yuv.object-form-element.error.number', params);\n case 'precision':\n return this.translate.instant('yuv.object-form-element.error.number.precision', params);\n case 'scale':\n return this.translate.instant('yuv.object-form-element.error.number.scale', params);\n case 'regex':\n return this.translate.instant('yuv.object-form-element.error.string.regex.nomatch', params);\n case 'pattern':\n return this.translate.instant('yuv.object-form-element.error.string.regex.nomatch', params);\n case 'classificationemail':\n return this.translate.instant('yuv.object-form-element.error.string.classification.email', params);\n case 'classificationphone':\n return this.translate.instant('yuv.object-form-element.error.string.classification.phone', params);\n case 'classificationurl':\n return this.translate.instant('yuv.object-form-element.error.string.classification.url', params);\n case 'onlyWhitespaces':\n return this.translate.instant('yuv.object-form-element.error.string.whitespaces', params);\n case 'datecontrol':\n return this.translate.instant('yuv.object-form-element.error.date.invalid', params);\n case 'required':\n return this.translate.instant('yuv.object-form-element.error.required', params);\n case 'maxlength':\n return this.translate.instant('yuv.object-form-element.error.maxlength', params);\n case 'minlength':\n return this.translate.instant('yuv.object-form-element.error.minlength', params);\n case 'minmax':\n return this.translate.instant('yuv.object-form-element.error.minmax', params);\n case 'minvalue':\n return this.translate.instant('yuv.object-form-element.error.minvalue', params);\n case 'maxvalue':\n return this.translate.instant('yuv.object-form-element.error.maxvalue', params);\n default:\n return this.translate.instant(error, params);\n }\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Component, ElementRef, HostListener, inject, Input, signal } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { Subject } from 'rxjs';\nimport { getFocusableChildren } from './common.utils';\n@Component({ template: '' })\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport abstract class AbstractMatFormField<T> implements MatFormFieldControl<T> {\n stateChanges = new Subject<void>();\n protected elRef = inject(ElementRef);\n\n @HostListener('focusin') onFocusIn() {\n this.focused = true;\n }\n @HostListener('focusout') onFocusout() {\n this.focused = false;\n }\n\n #value = signal<T | null>(null);\n set value(v: T | null) {\n this.#value.set(v);\n this.empty = !v;\n this.stateChanges.next();\n }\n get value(): T | null {\n return this.#value();\n }\n\n #id = signal<string>('');\n set id(v: string) {\n this.#id.set(v);\n this.stateChanges.next();\n }\n get id(): string {\n return this.#id();\n }\n #placeholder = signal<string>('');\n @Input() set placeholder(v: string) {\n this.#placeholder.set(v);\n this.stateChanges.next();\n }\n get placeholder(): string {\n return this.#placeholder();\n }\n ngControl: NgControl | null = null;\n\n #focused = signal<boolean>(false);\n set focused(f: boolean) {\n this.#focused.set(f);\n this.stateChanges.next();\n }\n get focused(): boolean {\n return this.#focused();\n }\n\n // #shouldLabelFloat = signal<boolean>(false);\n // set shouldLabelFloat(f: boolean) {\n // this.#shouldLabelFloat.set(f);\n // this.stateChanges.next();\n // }\n get shouldLabelFloat(): boolean {\n return this.focused || !this.empty || !!this.ngControl?.invalid;\n }\n\n #empty = signal<boolean>(false);\n set empty(f: boolean) {\n this.#empty.set(f);\n this.stateChanges.next();\n }\n get empty(): boolean {\n return this.#empty();\n }\n\n #required = signal<boolean>(false);\n @Input() set required(f: BooleanInput) {\n this.#required.set(coerceBooleanProperty(f));\n this.stateChanges.next();\n }\n get required(): boolean {\n return this.#required();\n }\n\n #disabled = signal<boolean>(false);\n @Input() set disabled(f: BooleanInput) {\n this.#disabled.set(coerceBooleanProperty(f));\n this.stateChanges.next();\n }\n get disabled(): boolean {\n return this.#disabled();\n }\n\n protected focusHandled = signal<boolean>(false);\n \n #errorState = signal<boolean>(false);\n set errorState(f: BooleanInput) {\n this.#errorState.set(coerceBooleanProperty(f));\n this.stateChanges.next();\n }\n get errorState(): boolean {\n return this.#errorState();\n }\n\n readonly controlType?: string;\n readonly autofilled?: boolean;\n readonly userAriaDescribedBy?: string;\n readonly disableAutomaticLabeling?: boolean;\n\n setDescribedByIds(ids: string[]): void {\n // this.describedBy = ids.join(' ');\n }\n\n onContainerClick(event: MouseEvent): void {\n if(this.focusHandled()) return;\n const fe: HTMLElement[] = getFocusableChildren(this.elRef.nativeElement);\n if (fe[0] && !fe.includes(event.target as HTMLElement)) {\n fe[0].focus();\n }\n }\n\n onNgOnDestroy(): void {\n this.stateChanges.complete();\n }\n}\n","export enum DialogSize {\n SMALL = 'small',\n MEDIUM = 'medium',\n LARGE = 'large',\n EXTRA_LARGE = 'extra-large',\n FULL_SCREEN = 'full-screen'\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, inject, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DmsObject, LocaleDatePipe, RetentionService, RetentionState, TranslateModule } from '@yuuvis/client-core';\n\n@Component({\n selector: 'yuv-retention-badge',\n standalone: true,\n imports: [CommonModule, TranslateModule, LocaleDatePipe, MatIconModule],\n templateUrl: './retention-badge.component.html',\n styleUrl: './retention-badge.component.scss'\n})\nexport class RetentionBadgeComponent {\n #retention = inject(RetentionService);\n\n dmsObject = input.required<DmsObject>();\n retentionData = computed<RetentionState>(() => {\n return this.#retention.getRetentionState(this.dmsObject());\n });\n}\n","@let rd = retentionData();\n@if (rd.underRetention) {\n <div class=\"badge\">\n <span class=\"badge__icon\">\n <mat-icon class=\"ymt-icon--size-s\">lock_clock</mat-icon>\n </span>\n <span class=\"badge__label\">\n <span class=\"badge__label-truncated\">\n {{\n 'yuv.retention-badge.retain'\n | translate\n : {\n from: rd.start | localeDate: 'shortDate',\n until: rd.end | localeDate: 'shortDate'\n }\n }}\n </span>\n </span>\n </div>\n}\n","import { inject, Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmComponent } from './confirm.component';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ConfirmOverlayData } from './confirm.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfirmService {\n #dialog = inject(MatDialog);\n\n confirm(data: ConfirmOverlayData): Observable<boolean> {\n return this.#dialog\n .open(ConfirmComponent, { data })\n .afterClosed()\n .pipe(map((result) => !!result));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TranslateModule","i1"],"mappings":";;;;;;;;;;;;;;;;;;;MAuBa,eAAe,CAAA;AAnB5B,IAAA,WAAA,GAAA;AAoBE,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAgB,IAAI,CAAC;AACzC;+GAFY,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAhBhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wiCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAbS,eAAe,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,EAAE,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,cAAc,+HAAE,gBAAgB,EAAA,QAAA,EAAA,8DAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAiBlE,eAAe,EAAA,UAAA,EAAA,CAAA;kBAnB3B,SAAS;+BACE,YAAY,EAAA,OAAA,EACb,CAAC,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,CAAC,EACpE,QAAA,EAAA;;;;;;;;;;;;GAYT,EAEgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,wiCAAA,CAAA,EAAA;;;MCPpC,gBAAgB,CAAA;AAN7B,IAAA,WAAA,GAAA;AAOW,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAqB,eAAe,CAAC;AAElE;+GAHY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECd7B,0cAWA,EAAA,MAAA,EAAA,CAAA,mEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDDY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,UAAA,EAAA,eAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAIlF,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;+BACE,aAAa,EAAA,OAAA,EACd,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,0cAAA,EAAA,MAAA,EAAA,CAAA,mEAAA,CAAA,EAAA;;;AERhG;;;AAGG;MAKU,uBAAuB,CAAA;AAClC,IAAA,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;IAE3B,YAAY,GAAG,CAAC;IAChB,IAAa,iBAAiB,CAAC,CAAS,EAAA;AACtC,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;;IAGvC,uBAAuB,GAAA;AACrB,QAAA,MAAM,iBAAiB,GAAG;YACxB,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,mFAAmF;SAClI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;AACjF,QAAA,OAAO,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC;;IAG7C,eAAe,GAAA;QACb,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,EAAE;AAC9C,YAAA,IAAI,OAAO;gBAAE,OAAO,CAAC,KAAK,EAAE;AAC9B,SAAC,CAAC;;+GApBO,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE;AACb,iBAAA;8BAKc,iBAAiB,EAAA,CAAA;sBAA7B;;;ACZH;;;;;AAKG;MAKU,yBAAyB,CAAA;AAJtC,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AAE3B;;AAEG;AACH,QAAA,IAAA,CAAA,mBAAmB,GAAG,KAAK,CAAkB,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAS,MAAK;AAC7B,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE;AACpC,YAAA,OAAO,OAAO,CAAC,KAAK,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;AAChD,SAAC,CAAC;AAOH;AAhBC,IAAA,MAAM;AAMN,IAAA,MAAM;IAKN,eAAe,GAAA;QACb,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE;AACnC,SAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;;+GAfR,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACCD;;;;;;;;;;;AAWG;MAKU,oBAAoB,CAAA;AAJjC,IAAA,WAAA,GAAA;QAKiC,IAAa,CAAA,aAAA,GAAG,SAAS;AAExD,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AAC3B,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAClD,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC;QAExC,IAAU,CAAA,UAAA,GAAkB,IAAI;QAYhC,IAAoB,CAAA,oBAAA,GAAG,KAAK,EAAqB;AAyDlD;AAzEC,IAAA,MAAM;AACN,IAAA,oBAAoB;AACpB,IAAA,eAAe;AAEf,IAAA,UAAU;AACV;;AAEG;IACH,IAAa,cAAc,CAAC,CAAU,EAAA;AACpC,QAAA,IAAI,CAAC,KAAK,IAAI,EAAE;YACd,IAAI,CAAC,eAAe,EAAE;;AACjB,aAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YAC1B,IAAI,CAAC,kBAAkB,EAAE;;;AAM7B,IAAA,cAAc,CAAC,IAAA,GAA4B,eAAe,EAAE,QAAqC,CAAC,EAAA;AAChG,QAAA,MAAM,YAAY,GAAG,eAAe,CAAC,kBAAkB,EAAE;YACvD,mBAAmB,EAAE,IAAI,CAAC;AAC3B,SAAA,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC;AACtD,QAAA,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE;AAC9C,QAAA,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;AACnC,QAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;QACpC,YAAY,CAAC,QAAQ,CAAC,aAA6B,CAAC,SAAS,CAAC,GAAG,CAAC,6BAA6B,CAAC;AACjG,QAAA,OAAO,YAAY;;IAGrB,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU;QAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC7C,QAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AACnC,QAAA,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,eAAe;AAC1C,QAAA,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AAC3B,QAAA,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG;AACzB,QAAA,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AAC9B,QAAA,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ;AACnC,QAAA,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,QAAQ;AACvC,QAAA,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;QAC1B,MAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,EAAE,EAAE,aAAa,IAAI,wBAAwB;QACjG,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,CAAY,SAAA,EAAA,kBAAkB,cAAc;AAC5E,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE;AACrC,YAAA,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,WAAW;;QAG5C,IAAI,CAAC,UAAU,GAAG,CAAA,CAAA,EAAI,KAAK,CAAC,IAAI,EAAE,CAAA,CAAE;QACpC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;AAC3C,QAAA,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC3E,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,aAA4B;AACnD,QAAA,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;AAC5B,QAAA,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;QAClB,UAAU,CAAC,MAAK;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AAC7B,SAAC,CAAC;;IAGJ,kBAAkB,GAAA;AAChB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,UAAU,CAAA,CAAE,CAAC;QACzE,IAAI,EAAE,EAAE;AACN,YAAA,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;YACtB,UAAU,CAAC,MAAK;gBACd,EAAE,CAAC,MAAM,EAAE;aACZ,EAAE,GAAG,CAAC;;QAET,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC;AAClD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;;IAGxB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ;;+GA1EhE,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE;AACb,iBAAA;8BAEgC,aAAa,EAAA,CAAA;sBAA3C,WAAW;uBAAC,gBAAgB;gBAUhB,cAAc,EAAA,CAAA;sBAA1B;;;AClCH;;;AAGG;MAKU,oBAAoB,CAAA;AAO/B,IAAA,WAAA,GAAA;QANS,IAAY,CAAA,YAAA,GAAG,GAAG;AACH,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE;AAChC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE;AAEhD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAc;AAG/C,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;AACvF,YAAA,IAAI,EAAE,CAAC,KAAK,KAAI;AACd,gBAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC1B,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;qBACvB;AACL,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAGjC,SAAA,CAAC;;AAIJ,IAAA,UAAU,CAAC,KAAiB,EAAA;QAC1B,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;;AAGhC,IAAA,gBAAgB,CAAC,KAAiB,EAAA;QAChC,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;;+GA7BrB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,cAAA,EAAA,WAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE;AACb,iBAAA;wDAEU,YAAY,EAAA,CAAA;sBAApB;gBACuB,WAAW,EAAA,CAAA;sBAAlC,MAAM;uBAAC,cAAc;gBACE,WAAW,EAAA,CAAA;sBAAlC,MAAM;uBAAC,cAAc;gBAiBtB,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBAOjC,gBAAgB,EAAA,CAAA;sBADf,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;;;ACpCtC;;;;;;;;;;;;;;AAcG;MAKU,sBAAsB,CAAA;AAmBjC,IAAA,WAAA,GAAA;AAlBQ,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE/B,IAAe,CAAA,eAAA,GAAG,MAAM,EAAU;QAClC,IAAc,CAAA,cAAA,GAAG,MAAM,EAAU;AAGzB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,KAAI;YACvD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AACxC,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBAC1D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;;AAElC,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AAC5D,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;AAE7B,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACnB,SAAC,CAAC;QAGA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;;AAGhD,IAAA,KAAK,CAAC,KAAa,EAAE,QAAQ,GAAG,KAAK,EAAA;;;AAG3C,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACnB,YAAA,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC;AACrE,SAAC,CAAC;;IAGJ,WAAW,GAAA;QACT,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;;+GAhC/C,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACfD;;;;;;;;;;;AAWG;MAIU,mBAAmB,CAAA;AACrB,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,IAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;IACtC,SAAS,GAAG,KAAK;IAEjB,oBAAoB,CAAC,EAAe,EAAE,MAAgB,EAAA;AACpD,QAAA,MAAM,cAAc,GAAmC;AACrD,YAAA,MAAM,EAAE;SACT;QACD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;YAC/C,IAAI,MAAM,EAAE;AACV,gBAAA,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;;iBAC5B;AACL,gBAAA,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;;AAE5D,SAAC,CAAC;;IAGJ,eAAe,GAAA;AACb,QAAA,MAAM,aAAa,GAAgB,IAAI,CAAC,QAAQ,CAAC,aAAa;QAC9D,MAAM,UAAU,GAA2B,SAAS,CAAa,aAAa,EAAE,WAAW,CAAC;QAC5F,MAAM,UAAU,GAA2B,SAAS,CAAa,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;AAC7F,QAAA,MAAM,QAAQ,GAA2B,SAAS,CAAa,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,IAAI,CAC5F,GAAG,CAAC,CAAC,CAAa,KAAI;AACpB,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,CAAC,CAAC,cAAc,EAAE;gBAClB,CAAC,CAAC,eAAe,EAAE;AACnB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,gBAAA,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,IAAI,CAAC;;SAEjD,CAAC,CACH;QAED,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAC/B,MAAM,CACJ;;QAEE,aAAa,CAAC,YAAY,GAAG,aAAa,CAAC,YAAY,IAAI,aAAa,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CACnH,EACD,GAAG,CAAC,CAAC,UAAsB,KAAI;AAC7B,YAAA,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;YACxC,UAAU,CAAC,cAAc,EAAE;YAC3B,UAAU,CAAC,eAAe,EAAE;AAC9B,SAAC,CAAC,EACF,SAAS,CAAC,CAAC,UAAsB,KAAI;AACnC,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,MAAM,SAAS,GAAG;gBAChB,IAAI,EAAE,aAAa,CAAC,UAAU;gBAC9B,GAAG,EAAE,aAAa,CAAC;aACpB;YACD,OAAO,UAAU,CAAC,IAAI,CACpB,GAAG,CAAC,CAAC,SAAqB,KAAI;gBAC5B,SAAS,CAAC,cAAc,EAAE;gBAC1B,SAAS,CAAC,eAAe,EAAE;gBAC3B,OAAO;oBACL,UAAU;oBACV,SAAS;oBACT;iBACD;AACH,aAAC,CAAC,EACF,SAAS,CAAC,QAAQ,CAAC,CACpB;AACH,SAAC,CAAC,EAEF,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,KAAI;YAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO;YACpD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO;YACpD,aAAa,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,GAAG,KAAK;YACjD,aAAa,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,GAAG,KAAK;SAChD,CAAC,CACH;QACD,SAAS,CAAC,SAAS,EAAE;;+GAvEZ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;AACX,iBAAA;;;MCDY,mBAAmB,CAAA;AAJhC,IAAA,WAAA,GAAA;QAME,IAAa,CAAA,aAAA,GAAG,CAAC;QACjB,IAAa,CAAA,aAAA,GAAG,CAAC;QAEjB,IAAU,CAAA,UAAA,GAAa,EAAE;AAuBzB,QAAA,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,uBAAuB,CAAC;QAChD,IAAY,CAAA,YAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QAElE,IAAa,CAAA,aAAA,GAAG,KAAK,EAAqB;QAC1C,IAAgB,CAAA,gBAAA,GAAG,MAAM,EAAY;QACrC,IAAU,CAAA,UAAA,GAAG,MAAM,EAAY;QAE/B,IAAY,CAAA,YAAA,GAAG,MAAK;AAClB,YAAA,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC;AAChD,YAAA,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC;AACnD,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM;gBAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACjE,IAAI,IAAI,CAAC,SAAS;AAAE,gBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AAC7C,SAAC;AAED,QAAA,IAAA,CAAA,OAAO,GAAG,CAAC,KAAmB,KAAI;YAChC,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE;YACrB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa;YAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa;AAC9C,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI;AACrG,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI;AACpG,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI;AACpD,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI;AAEnD,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,UAAA,EAAa,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa,IAAI,mBAAmB,EAAE;YACvG,IAAI,CAAC,cAAc,EAAE;AACvB,SAAC;QAED,IAAc,CAAA,cAAA,GAAG,MAAK;YACpB,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE;YACrB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;YACrD,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM;AACtC,YAAA,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK;gBAAE;AAEvB,YAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM;YAClD,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,GAAG,KAAI;gBAC9C,MAAM,EAAE,GAAmB,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;AAC1F,gBAAA,MAAM,EAAE,GAAmB,UAAU,CAAC,qBAAqB,EAAE;AAC7D,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC;gBAC1D,IAAI,IAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;AACvC,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE7B,aAAC,CAAC;YAEF,IAAI,mBAAmB,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBAClD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;;AAE/C,SAAC;AAED,QAAA,IAAA,CAAA,sBAAsB,GAAG,CAAC,EAAkB,EAAE,EAAkB,KAAI;YAClE,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;AAClH,SAAC;AACF;AA9EC,IAAA,SAAS;AACT,IAAA,aAAa;AACb,IAAA,aAAa;AAEb,IAAA,UAAU;AAE+B,IAAA,aAAa,CAAC,KAAmB,EAAA;AACxE,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,QAAQ,IAAK,KAAK,CAAC,MAAsB,CAAC,OAAO,KAAK,QAAQ;YAAE;QAC1F,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK;AAChC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK;QAEhC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACzC,QAAA,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AAC/B,QAAA,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG;AACrB,QAAA,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;QACtB,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI;QAC1C,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI;AACzC,QAAA,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG;QACpB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AAEpC,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACpB,QAAA,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC;AAC7C,QAAA,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC;;AAIlD,IAAA,YAAY;AAMZ,IAAA,YAAY;AAOZ,IAAA,OAAO;AAaP,IAAA,cAAc;AAqBd,IAAA,sBAAsB;+GA5EX,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,2YA4BN,uBAAuB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FA5BpC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE;AACb,iBAAA;8BAQ0C,aAAa,EAAA,CAAA;sBAArD,YAAY;uBAAC,aAAa,EAAE,CAAC,QAAQ,CAAC;;MA8E5B,uBAAuB,CAAA;AAJpC,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AAC3B,QAAA,IAAA,CAAA,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,aAA4B;AAC9C;AAFC,IAAA,MAAM;+GADK,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MC9FY,qBAAqB,CAAA;AAJlC,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;QAI3B,IAAS,CAAA,SAAA,GAAG,KAAK;AAYjB,QAAA,IAAA,CAAA,2BAA2B,GAA2B;AACpD,YAAA,OAAO,EAAE,+BAA+B;AACxC,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,kCAAkC;AAC9C,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,iBAAiB,EAAE,QAAQ;AAC3B,YAAA,gBAAgB,EAAE,MAAM;AACxB,YAAA,kBAAkB,EAAE;SACrB;AAED,QAAA,IAAA,CAAA,gCAAgC,GAA2B;AACzD,YAAA,OAAO,EAAE,8BAA8B;AAEvC,YAAA,OAAO,EAAE,4BAA4B;AACrC,YAAA,kBAAkB,EAAE,0CAA0C;AAC9D,YAAA,KAAK,EAAE;SACR;QAED,IAAe,CAAA,eAAA,GAAG,KAAK,EAAuB;AAC9C,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAU,KAAK,CAAC;QAExC,IAAQ,CAAA,QAAA,GAAG,MAAM,EAAU;QAC3B,IAAY,CAAA,YAAA,GAAG,MAAM,EAAW;AA+FjC;AAtIC,IAAA,MAAM;AAEN,IAAA,aAAa;AAEb,IAAA,SAAS;IACT,IAAI,QAAQ,CAAC,EAAW,EAAA;AACtB,QAAA,IAAI,EAAE,KAAK,IAAI,CAAC,SAAS,EAAE;AACzB,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,EAAE;;;AAGvB,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;AAGvB,IAAA,2BAA2B;AAW3B,IAAA,gCAAgC;AAehC,IAAA,MAAM,CAAC,KAAgB,EAAA;QACrB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAAE;QAC7B,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AAErB,QAAA,MAAM,YAAY,GAAwB,KAAK,CAAC,YAAY;QAE5D,IAAI,YAAY,EAAE;AAChB,YAAA,IAAI,YAAY,EAAE,KAAK,EAAE;gBACvB,MAAM,KAAK,GAAW,EAAE;AACxB,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;;oBAElD,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;wBACzC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;AAC9C,wBAAA,IAAI,IAAI;AAAE,4BAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;;AAG9B,gBAAA,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE;AAC1B,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;iBACpB;AACL,gBAAA,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK;gBAChC,YAAY,CAAC,SAAS,EAAE;AACxB,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;;;AAM3C,IAAA,UAAU,CAAC,KAAgB,EAAA;QACzB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAAE;QAC7B,KAAK,CAAC,eAAe,EAAE;QACvB,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;AAItB,IAAA,WAAW,CAAC,KAAgB,EAAA;QAC1B,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAAE;AAC7B,QAAA,IAAK,KAAK,CAAC,MAAsB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE;AAC/F,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;;;AAKzB,IAAA,cAAc,CAAC,KAAgB,EAAA;QAC7B,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;;AAGzB,IAAA,UAAU,CAAC,KAAgB,EAAA;QACzB,KAAK,CAAC,cAAc,EAAE;;IAGxB,YAAY,GAAA;AACV,QAAA,MAAM,EAAE,GAAgB,IAAI,CAAC,MAAM,CAAC,aAA4B;AAEhE,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;AAC3B,YAAA,IAAI,CAAC,aAAa,GAAG,SAAS;;AAEhC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AAC9B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAC/C,YAAA,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;;;IAIjC,mBAAmB,GAAA;QACjB,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QAClD,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AAC7C,QAAA,YAAY,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AACxC,QAAA,YAAY,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG;AAC9B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,WAAW,IAAI,IAAI,CAAC,2BAA2B;QACtF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAS,KAAI;YACvC,YAAY,CAAC,KAAa,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AAC5C,SAAC,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK;QAC3C,IAAI,KAAK,EAAE;YACT,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACvD,YAAA,iBAAiB,CAAC,SAAS,GAAG,KAAK;AACnC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,gBAAgB,IAAI,IAAI,CAAC,gCAAgC;YACrG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAS,KAAI;gBAC5C,iBAAiB,CAAC,KAAa,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;AACtD,aAAC,CAAC;AACF,YAAA,iBAAiB,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM;AAC9C,YAAA,YAAY,CAAC,MAAM,CAAC,iBAAiB,CAAC;;AAExC,QAAA,OAAO,YAAY;;+GArIV,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE;AACb,iBAAA;8BA4CC,MAAM,EAAA,CAAA;sBADL,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;gBA8BhC,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;gBASpC,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;gBASrC,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;gBAMzC,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;;;ACnGvC;;;;;;;;;;;AAWG;MAKU,oBAAoB,CAAA;AAGM,IAAA,SAAS,CAAC,GAAe,EAAA;AAC5D,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc;AAC1C,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAC/C,QAAA,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE;AAC1C,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;;;AAGQ,IAAA,UAAU,CAAC,GAAe,EAAA;AAC9D,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc;AAC1C,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAC/C,QAAA,IAAI,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AAC1C,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;;;AAalC;;AAEG;AAEH,IAAA,WAAA,CAAoB,KAAiB,EAAA;QAAjB,IAAK,CAAA,KAAA,GAAL,KAAK;QA9BjB,IAAU,CAAA,UAAA,GAAG,CAAC;QACY,IAAc,CAAA,cAAA,GAAG,KAAK;AAgBxD;;AAEG;AACO,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE;AAC7C;;AAEG;AACO,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE;;;;IAUzC,kBAAkB,GAAA;AACxB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa;QACrC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,iBAAiB;AAC5D,QAAA,IAAI;YACF,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC;;QAChD,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,KAAK;;;+GAzCL,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE;AACb,iBAAA;+EAGmC,cAAc,EAAA,CAAA;sBAA/C,WAAW;uBAAC,mBAAmB;gBACK,SAAS,EAAA,CAAA;sBAA7C,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;gBAOG,UAAU,EAAA,CAAA;sBAA/C,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;gBAW1B,cAAc,EAAA,CAAA;sBAAvB;gBAIS,kBAAkB,EAAA,CAAA;sBAA3B;;;ACxCH;;;;;;;;;AASG;MAKU,qBAAqB,CAAA;AAJlC,IAAA,WAAA,GAAA;AAKU,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;QAgBlC,IAAe,CAAA,eAAA,GAAG,MAAM,EAAE;AAC3B;AAdC,IAAA,gBAAgB,CAAC,KAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;AAC3B,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;;;AAK/B,IAAA,WAAW,CAAC,KAAiB,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACpD,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;;;+GAbpB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,yBAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE;AACb,iBAAA;8BAKC,gBAAgB,EAAA,CAAA;sBADf,YAAY;uBAAC,yBAAyB,EAAE,CAAC,QAAQ,CAAC;gBAQnD,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC;;;MCjBnC,kBAAkB,CAAA;AAU7B,IAAA,WAAA,GAAA;AATQ,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;QAElC,IAAS,CAAA,SAAA,GAAG,GAAG;QAEf,IAAY,CAAA,YAAA,GAAG,KAAK,CAA4B;AAC9C,YAAA,OAAO,EAAE;AACV,SAAA,CAAC;QACF,IAAS,CAAA,SAAA,GAAG,MAAM,EAAE;AAGlB,QAAA,MAAM,SAAS,GAAG,SAAS,CAAa,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,IAAI,CACjF,kBAAkB,EAAE,EACpB,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;AACpC,QAAA,GAAG,CAAC,MAAM,IAAI,CAAC;SAChB;QACD,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,IAAI,CACvE,kBAAkB,EAAE,EACpB,GAAG,CAAC,MAAM,IAAI,CAAC,CAChB;QACD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,IAAI,CACnE,kBAAkB,EAAE,EACpB,GAAG,CAAC,MAAM,KAAK,CAAC,CACjB;AACD,QAAA,MAAM,OAAO,GAAG,SAAS,CAAa,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CAC3D,kBAAkB,EAAE,EACpB,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;AACpC,QAAA,GAAG,CAAC,MAAM,KAAK,CAAC;SACjB;QACD,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ;aAC3C,IAAI,CACH,kBAAkB,EAAE,EACpB,SAAS,CAAC,CAAC,KAAK,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EACrE,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;aAE3B,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;;+GAnChC,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACRD;AACA;AAIA;MAWa,0BAA0B,CAAA;IACrC,UAAU,CAAC,GAAQ,EAAA;IACnB,gBAAgB,CAAC,EAAO,EAAA;IACxB,iBAAiB,CAAC,EAAO,EAAA;+GAHd,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAR1B,YAAA,EAAA,IAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,0BAA0B;AACzD;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEU,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAVtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,WAAW,EAAE,UAAU,CAAC,gCAAgC;AACzD;AACF;AACF,iBAAA;;AAOK,SAAU,eAAe,CAAC,GAA0B,EAAA;AACxD,IAAA,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAEnE,IAAA,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,IAAI;AAE3B,IAAA,IAAI,SAAS,YAAY,oBAAoB,IAAI,SAAS,YAAY,eAAe,IAAI,SAAS,YAAY,OAAO,EAAE;AACrH,QAAA,IAAI,GAAG;AAAE,YAAA,SAAS,CAAC,aAAa,GAAG,GAAG;AACtC,QAAA,OAAO,SAAS;;AAGlB,IAAA,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC;AACxB;;AChBA,MAAM,UAAU,GAAG;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;IACtB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,0BAA0B;IAC1B,uBAAuB;IACvB;CACD;AAED,MAAM,UAAU,GAAG,CAAC,gBAAgB,CAAC;MAMxB,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YApB1B,oBAAoB;YACpB,oBAAoB;YACpB,qBAAqB;YACrB,oBAAoB;YACpB,qBAAqB;YACrB,sBAAsB;YACtB,kBAAkB;YAClB,mBAAmB;YACnB,mBAAmB;YACnB,0BAA0B;YAC1B,uBAAuB;YACvB,yBAAyB,EAGP,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAdlC,oBAAoB;YACpB,oBAAoB;YACpB,qBAAqB;YACrB,oBAAoB;YACpB,qBAAqB;YACrB,sBAAsB;YACtB,kBAAkB;YAClB,mBAAmB;YACnB,mBAAmB;YACnB,0BAA0B;YAC1B,uBAAuB;AACvB,YAAA,yBAAyB,EAGP,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAMvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAHE,UAAU,CAAA,EAAA,CAAA,CAAA;;4FAG3B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC;AACvC,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU;AACvC,iBAAA;;;ACrCK,SAAU,oBAAoB,CAAC,OAAoB,EAAA;AACvD,IAAA,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,mFAAmF,CAAC,CAAC,CAAC,CAAC,MAAM,CAC1I,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CACvD;AACpB;AAEM,SAAU,sBAAsB,CAAC,OAAoB,EAAA;AACzD,IAAA,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAgB;AACxD;;ACLA;;;;;AAKG;MAIU,qBAAqB,CAAA;AAChC,IAAA,eAAe;AACf,IAAA,iBAAiB;AAKjB,IAAA,WAAA,GAAA;QANA,IAAe,CAAA,eAAA,GAAG,aAAa;QAC/B,IAAiB,CAAA,iBAAA,GAAG,iBAAiB;QAErC,IAA8B,CAAA,8BAAA,GAAG,EAAE;QACnC,IAAI,CAAA,IAAA,GAAe,QAAQ;;QAIzB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAmC;QAC/F,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,IAAI,SAAS,CAAC;;AAGvD,IAAA,OAAO,CAAC,IAAgB,EAAA;QACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAC,IAAI,EAAC,CAAC;;IAGnD,YAAY,CAAC,GAAW,EAAE,QAAiB,EAAA;AACzC,QAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChC,YAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACjE,YAAA,OAAO,IAAI;;;AACN,YAAA,OAAO,KAAK;;AAGrB,IAAA,WAAW,CAAC,GAAW,EAAA;AACrB,QAAA,IAAI;AACF,YAAA,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACjD,YAAA,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS;;QACpC,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,CAAC,CAAC;AACvD,YAAA,OAAO,SAAS;;;AAIpB,IAAA,OAAO,CAAC,GAAW,EAAA;AACjB,QAAA,OAAO,GAAG,IAAI,CAAC,eAAe,CAAG,EAAA,GAAG,EAAE;;AAGxC;;AAEG;IACH,aAAa,GAAA;QACX,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YACxC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;AACxC,gBAAA,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;;AAEhC,SAAC,CAAC;;AAGJ,IAAA,eAAe,CAAC,IAAiB,EAAA;QAC/B,MAAM,IAAI,GAAoB,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,GAAG,IAAI,GAAG,SAAS;AAC/E,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,QAAQ;;+GApDnB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACTD;;AAEG;MAIU,oBAAoB,CAAA;AAHjC,IAAA,WAAA,GAAA;AAIU,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAqD7C;AAnDC;;;;AAIG;IACH,aAAa,CAAC,KAAa,EAAE,MAAY,EAAA;QACvC,QAAQ,KAAK;AACX,YAAA,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iDAAiD,EAAE,MAAM,CAAC;AAC1F,YAAA,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,sDAAsD,EAAE,MAAM,CAAC;AAC/F,YAAA,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,mDAAmD,EAAE,MAAM,CAAC;AAC5F,YAAA,KAAK,kBAAkB;gBACrB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wDAAwD,EAAE,MAAM,CAAC;AACjG,YAAA,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,sCAAsC,EAAE,MAAM,CAAC;AAC/E,YAAA,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gDAAgD,EAAE,MAAM,CAAC;AACzF,YAAA,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,4CAA4C,EAAE,MAAM,CAAC;AACrF,YAAA,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,oDAAoD,EAAE,MAAM,CAAC;AAC7F,YAAA,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,oDAAoD,EAAE,MAAM,CAAC;AAC7F,YAAA,KAAK,qBAAqB;gBACxB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2DAA2D,EAAE,MAAM,CAAC;AACpG,YAAA,KAAK,qBAAqB;gBACxB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2DAA2D,EAAE,MAAM,CAAC;AACpG,YAAA,KAAK,mBAAmB;gBACtB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,yDAAyD,EAAE,MAAM,CAAC;AAClG,YAAA,KAAK,iBAAiB;gBACpB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kDAAkD,EAAE,MAAM,CAAC;AAC3F,YAAA,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,4CAA4C,EAAE,MAAM,CAAC;AACrF,YAAA,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wCAAwC,EAAE,MAAM,CAAC;AACjF,YAAA,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,yCAAyC,EAAE,MAAM,CAAC;AAClF,YAAA,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,yCAAyC,EAAE,MAAM,CAAC;AAClF,YAAA,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,sCAAsC,EAAE,MAAM,CAAC;AAC/E,YAAA,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wCAAwC,EAAE,MAAM,CAAC;AACjF,YAAA,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wCAAwC,EAAE,MAAM,CAAC;AACjF,YAAA;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;;;+GAnDvC,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACAD;MACsB,oBAAoB,CAAA;AAF1C,IAAA,WAAA,GAAA;AAGE,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ;AACxB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AASpC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAW,IAAI,CAAC;AAU/B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAS,EAAE,CAAC;AAQxB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAS,EAAE,CAAC;QAQjC,IAAS,CAAA,SAAA,GAAqB,IAAI;AAElC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAU,KAAK,CAAC;AAkBjC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAU,KAAK,CAAC;AAS/B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAU,KAAK,CAAC;AASlC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAU,KAAK,CAAC;AASxB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAU,KAAK,CAAC;AAE/C,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAU,KAAK,CAAC;AA6BrC;IA/G0B,SAAS,GAAA;AAChC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;;IAEK,UAAU,GAAA;AAClC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;;AAGtB,IAAA,MAAM;IACN,IAAI,KAAK,CAAC,CAAW,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;;AAE1B,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE;;AAGtB,IAAA,GAAG;IACH,IAAI,EAAE,CAAC,CAAS,EAAA;AACd,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;;AAE1B,IAAA,IAAI,EAAE,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,GAAG,EAAE;;AAEnB,IAAA,YAAY;IACZ,IAAa,WAAW,CAAC,CAAS,EAAA;AAChC,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;;AAE1B,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE;;AAI5B,IAAA,QAAQ;IACR,IAAI,OAAO,CAAC,CAAU,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;;AAE1B,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;;;;;;;AAQxB,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO;;AAGjE,IAAA,MAAM;IACN,IAAI,KAAK,CAAC,CAAU,EAAA;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;;AAE1B,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE;;AAGtB,IAAA,SAAS;IACT,IAAa,QAAQ,CAAC,CAAe,EAAA;QACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;;AAE1B,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE;;AAGzB,IAAA,SAAS;IACT,IAAa,QAAQ,CAAC,CAAe,EAAA;QACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;;AAE1B,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE;;AAKzB,IAAA,WAAW;IACX,IAAI,UAAU,CAAC,CAAe,EAAA;QAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;;AAE1B,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE;;AAQ3B,IAAA,iBAAiB,CAAC,GAAa,EAAA;;;AAI/B,IAAA,gBAAgB,CAAC,KAAiB,EAAA;QAChC,IAAG,IAAI,CAAC,YAAY,EAAE;YAAE;QACxB,MAAM,EAAE,GAAkB,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;AACxE,QAAA,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAqB,CAAC,EAAE;AACtD,YAAA,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;;;IAIjB,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;;+GAjHV,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,2OAFnB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAEH,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAFzC,SAAS;mBAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;8BAMA,SAAS,EAAA,CAAA;sBAAjC,YAAY;uBAAC,SAAS;gBAGG,UAAU,EAAA,CAAA;sBAAnC,YAAY;uBAAC,UAAU;gBAuBX,WAAW,EAAA,CAAA;sBAAvB;gBAqCY,QAAQ,EAAA,CAAA;sBAApB;gBASY,QAAQ,EAAA,CAAA;sBAApB;;;ICpFS;AAAZ,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC7B,CAAC,EANW,UAAU,KAAV,UAAU,GAMrB,EAAA,CAAA,CAAA;;MCMY,uBAAuB,CAAA;AAPpC,IAAA,WAAA,GAAA;AAQE,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAErC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAa;AACvC,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAiB,MAAK;YAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AAC5D,SAAC,CAAC;AACH;AANC,IAAA,UAAU;+GADC,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZpC,qjBAoBA,EDZY,MAAA,EAAA,CAAA,u6BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,8BAAEA,iBAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAI3D,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;+BACE,qBAAqB,EAAA,UAAA,EACnB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAED,iBAAe,EAAE,cAAc,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,qjBAAA,EAAA,MAAA,EAAA,CAAA,u6BAAA,CAAA,EAAA;;;MEE5D,cAAc,CAAA;AACzB,IAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;AAE3B,IAAA,OAAO,CAAC,IAAwB,EAAA;QAC9B,OAAO,IAAI,CAAC;AACT,aAAA,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE;AAC/B,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;;+GAPzB,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACTD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"yuuvis-client-framework-common.mjs","sources":["../../../../../libs/yuuvis/client-framework/common/src/lib/components/dialog/dialog.component.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/confirm/confirm.component.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/confirm/confirm.component.html","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/autofocus-child.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/autofocus-delayed.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/busy-overlay.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/click-double.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/container-size.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/drag-scroll.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/drag-select.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/file-drop-zone/file-drop-zone.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/focus-within.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/light-dismiss.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/longpress.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/noop-value-accessor.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/common.module.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/common.utils.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/services/layout-settings/layout-settings.service.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/services/form-translate/form-translate.service.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/mat-form-field.abstract.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/dialog/dialog.options.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/retention-badge/retention-badge.component.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/retention-badge/retention-badge.component.html","../../../../../libs/yuuvis/client-framework/common/src/lib/components/confirm/confirm.service.ts","../../../../../libs/yuuvis/client-framework/common/src/yuuvis-client-framework-common.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { MatDialogActions, MatDialogContent, MatDialogTitle } from '@angular/material/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'yuv-dialog',\n imports: [TranslateModule, MatDialogActions, MatDialogTitle, MatDialogContent],\n template: `\n @let title = headertitel();\n @if (title) {\n <h2 mat-dialog-title>{{ title }}</h2>\n }\n <mat-dialog-content>\n <ng-content select=\"main\"></ng-content>\n </mat-dialog-content>\n\n <mat-dialog-actions align=\"end\" class=\"footer\">\n <ng-content select=\"footer\"></ng-content>\n </mat-dialog-actions>\n `,\n styleUrl: './dialog.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DialogComponent {\n headertitel = input<string | null>(null);\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { ConfirmOverlayData } from './confirm.interface';\nimport { DialogComponent } from '../dialog/dialog.component';\nimport { YmtButtonDirective } from '@yuuvis/material';\n\n@Component({\n selector: 'yuv-confirm',\n imports: [CommonModule, MatButtonModule, MatDialogModule, DialogComponent, YmtButtonDirective],\n templateUrl: './confirm.component.html',\n styleUrl: './confirm.component.scss'\n})\nexport class ConfirmComponent {\n readonly dialogData = inject<ConfirmOverlayData>(MAT_DIALOG_DATA);\n // readonly #dialogRef = inject(MatDialogRef<ConfirmComponent>);\n}\n","<yuv-dialog [headertitel]=\"dialogData.title || ''\">\n <main>{{ dialogData.message }}</main>\n <footer>\n @if (!dialogData.hideCancelButton) {\n <button ymtButton=\"secondary\" mat-dialog-close type=\"button\">\n {{ dialogData.cancelLabel || 'Cancel' }}\n </button>\n }\n <button ymtButton=\"primary\" type=\"button\" [mat-dialog-close]=\"true\">{{ dialogData.confirmLabel || 'Confirm' }}</button>\n </footer>\n</yuv-dialog>\n","import { AfterViewInit, Directive, ElementRef, inject, Input } from '@angular/core';\n\n/**\n * Directive putting focus on a 'focusable' child element.\n * By default the first focusable child will receive focus.\n */\n@Directive({\n selector: '[yuvAutofocusChild]',\n standalone: true\n})\nexport class AutofocusChildDirective implements AfterViewInit {\n #elRef = inject(ElementRef);\n\n #targetIndex = 0;\n @Input() set yuvAutofocusChild(s: string) {\n const i = parseInt(s);\n this.#targetIndex = !isNaN(i) ? i : 0;\n }\n\n #getFirstFocusableChild(): HTMLElement {\n const focusableElements = [\n ...this.#elRef.nativeElement.querySelectorAll('a[href], button, input, textarea, select, details,[tabindex]:not([tabindex=\"-1\"])')\n ].filter((el) => !el.hasAttribute('disabled') && !el.getAttribute('aria-hidden'));\n return focusableElements[this.#targetIndex];\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n const focusEl = this.#getFirstFocusableChild();\n if (focusEl) focusEl.focus();\n });\n }\n}\n","import { AfterViewInit, computed, Directive, ElementRef, inject, input, Input } from '@angular/core';\n\n/**\n * Directive putting delayed focus on an element. If no\n * delay is set, the focus will be set immediately.\n *\n * You have to ensure that the element is focusable when adding this directive to it.\n */\n@Directive({\n selector: '[yuvAutofocusDelayed]',\n standalone: true\n})\nexport class AutofocusDelayedDirective implements AfterViewInit {\n #elRef = inject(ElementRef);\n\n /**\n * Sets the delay in milliseconds. If no delay is set, the focus will be set immediately.\n */\n yuvAutofocusDelayed = input<number | string>(0);\n #delay = computed<number>(() => {\n const d = this.yuvAutofocusDelayed();\n return typeof d === 'string' ? parseInt(d) : d;\n });\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.#elRef.nativeElement.focus();\n }, this.#delay());\n }\n}\n","import { Directive, ElementRef, HostBinding, Input, OnInit, inject, createComponent, EnvironmentInjector, ApplicationRef, input } from '@angular/core';\nimport { Utils } from '@yuuvis/client-core';\nimport { MatProgressSpinner, ProgressSpinnerMode } from '@angular/material/progress-spinner';\n\n\nexport interface BusyOverlayConfig {\n // color token to use for the backdrop. Defaults to 'ymt-surface-app'\n backdropColor?: string;\n // whether to blur the background of the backdrop\n blur?: boolean;\n}\n\n/**\n * A directive that will overlay its host component with a translucent background\n * and a loading spinner once the condition resolves with true. This is useful for example to\n * prevent user intercation while component data is loading or some processing is done.\n *\n * It'll also set the `inert` attribute on the host element. This will disable the host and\n * all elements inside (like buttons, inputs etc.)\n *\n * @example\n * <div class=\"result-list\" [yuvBusyOverlay]=\"waitingForServerResponse\">...</div>\n *\n */\n@Directive({\n selector: '[yuvBusyOverlay]',\n standalone: true\n})\nexport class BusyOverlayDirective implements OnInit {\n @HostBinding('style.position') stylePosition = 'initial';\n\n #elRef = inject(ElementRef);\n #environmentInjector = inject(EnvironmentInjector);\n #applicationRef = inject(ApplicationRef);\n\n #overlayId: string | null = null;\n /**\n * The Boolean expression to evaluate as the condition for showing the busy overlay\n */\n @Input() set yuvBusyOverlay(b: boolean) {\n if (b === true) {\n this.#addBusyOverlay();\n } else if (this.#overlayId) {\n this.#removeBusyOverlay();\n }\n }\n\n yuvBusyOverlayConfig = input<BusyOverlayConfig>();\n\n #createSpinner(mode: ProgressSpinnerMode = 'indeterminate', value: MatProgressSpinner['value'] = 0) {\n const componentRef = createComponent(MatProgressSpinner, {\n environmentInjector: this.#environmentInjector\n });\n this.#applicationRef.attachView(componentRef.hostView);\n componentRef.changeDetectorRef.detectChanges();\n componentRef.setInput('mode', mode);\n componentRef.setInput('value', value);\n (componentRef.location.nativeElement as HTMLElement).classList.add('ymt-progress-spinner--giant');\n return componentRef;\n }\n\n #addBusyOverlay() {\n this.stylePosition = 'relative';\n const overlay = document.createElement('div');\n overlay.style.position = 'absolute';\n overlay.style.transition = 'opacity 200ms';\n overlay.style.opacity = '0';\n overlay.style.inset = '0';\n overlay.style.display = 'grid';\n overlay.style.alignItems = 'center';\n overlay.style.justifyContent = 'center';\n overlay.style.zIndex = '5';\n const backdropBackground = this.yuvBusyOverlayConfig()?.backdropColor || 'var(--ymt-surface-app)';\n overlay.style.backgroundColor = `rgb(from ${backdropBackground} r g b / .5)`;\n if (this.yuvBusyOverlayConfig()?.blur) {\n overlay.style.backdropFilter = 'blur(2px)';\n }\n\n this.#overlayId = `p${Utils.uuid()}`;\n overlay.setAttribute('id', this.#overlayId);\n overlay.append(this.#createSpinner('indeterminate').location.nativeElement);\n const el = this.#elRef.nativeElement as HTMLElement;\n el.setAttribute('inert', '');\n el.append(overlay);\n setTimeout(() => {\n overlay.style.opacity = '1';\n });\n }\n\n #removeBusyOverlay() {\n const el = this.#elRef.nativeElement.querySelector(`#${this.#overlayId}`);\n if (el) {\n el.style.opacity = '0';\n setTimeout(() => {\n el.remove();\n }, 200);\n }\n this.#elRef.nativeElement.removeAttribute('inert');\n this.#overlayId = null;\n }\n\n ngOnInit() {\n this.stylePosition = getComputedStyle(this.#elRef.nativeElement).position;\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n/**\n * Fixes the issue of 'click' event beeing triggered on 'doubleclick' by defining new outputs that\n * distinguish between single and double click.\n */\n@Directive({\n selector: '[click.single],[click.double]',\n standalone: true\n})\nexport class ClickDoubleDirective {\n @Input() debounceTime = 200;\n @Output('click.double') doubleClick = new EventEmitter();\n @Output('click.single') singleClick = new EventEmitter();\n\n private clicksSubject = new Subject<MouseEvent>();\n\n constructor() {\n this.clicksSubject.pipe(takeUntilDestroyed(), debounceTime(this.debounceTime)).subscribe({\n next: (event) => {\n if (event.type === 'click') {\n this.singleClick.emit(event);\n } else {\n this.doubleClick.emit(event);\n }\n }\n });\n }\n\n @HostListener('click', ['$event'])\n clickEvent(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.clicksSubject.next(event);\n }\n @HostListener('dblclick', ['$event'])\n doubleClickEvent(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.clicksSubject.next(event);\n }\n}\n","import { Directive, ElementRef, NgZone, OnDestroy, inject, output } from '@angular/core';\n\n/**\n * Directive to watch the size of an element inside the DOM. Usefull for example to provide\n * a different layout (different components) depending on the available screen estate. You\n * should first try to use CSS container queries but somtimes you need a different set of\n * components to be loaded for a certain component size.\n *\n * Let's say you have components designed for bigger screens. You do not want to load them\n * if there is not enough space for them. So you rather load components that are designed to\n * take less space by providing the best user experience on smaller devices.\n *\n * ```html\n * <div yuvContainerSize (containerHeight)=\"onContainerResize($event)\" (containerWidth)=\"onContainerResize($event)\"></div>\n * ```\n *\n */\n@Directive({\n selector: '[yuvContainerSize]',\n standalone: true\n})\nexport class ContainerSizeDirective implements OnDestroy {\n private elRef = inject(ElementRef);\n private ngZone = inject(NgZone);\n\n containerHeight = output<number>();\n containerWidth = output<number>();\n\n private _size?: ResizeObserverSize;\n private _resizeObserver = new ResizeObserver((entries) => {\n const size = entries[0].borderBoxSize[0];\n if (!this._size || size.blockSize !== this._size.blockSize) {\n this._emit(size.blockSize, true);\n }\n if (!this._size || size.inlineSize !== this._size.inlineSize) {\n this._emit(size.inlineSize);\n }\n this._size = size;\n });\n\n constructor() {\n this._resizeObserver.observe(this.elRef.nativeElement);\n }\n\n private _emit(value: number, isHeight = false) {\n // ResizeObserver callback is not covered by change detection\n // so it has to be executed withing ngZone\n this.ngZone.run(() => {\n (isHeight ? this.containerHeight : this.containerWidth).emit(value);\n });\n }\n\n ngOnDestroy(): void {\n this._resizeObserver.unobserve(this.elRef.nativeElement);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, Directive, ElementRef, inject } from '@angular/core';\nimport { fromEvent, Observable } from 'rxjs';\nimport { filter, map, switchMap, takeUntil, tap } from 'rxjs/operators';\n\n/**\n * Directive for adding drag scroll behaviour to a container element. Elements that overlow will then\n * be 'scrollable' by dragging the list of children.\n *\n * @example\n * <div yuvDragScroll>\n * <div class=\"tile\">#1</div>\n * <div class=\"tile\">#2</div>\n * <div class=\"tile\">#3</div>\n * ...\n * </div>\n */\n@Directive({\n selector: '[yuvDragScroll]'\n})\nexport class DragScrollDirective implements AfterViewInit {\n readonly #document = inject(DOCUMENT);\n readonly #element = inject(ElementRef);\n #dragging = false;\n\n #applyDraggingStyles(el: HTMLElement, remove?: boolean) {\n const draggingStyles: { [property: string]: string } = {\n cursor: 'grabbing'\n };\n Object.keys(draggingStyles).forEach((property) => {\n if (remove) {\n el.style.removeProperty(property);\n } else {\n el.style.setProperty(property, draggingStyles[property]);\n }\n });\n }\n\n ngAfterViewInit(): void {\n const nativeElement: HTMLElement = this.#element.nativeElement;\n const mouseDown$: Observable<MouseEvent> = fromEvent<MouseEvent>(nativeElement, 'mousedown');\n const mouseMove$: Observable<MouseEvent> = fromEvent<MouseEvent>(this.#document, 'mousemove');\n const mouseUp$: Observable<MouseEvent> = fromEvent<MouseEvent>(this.#document, 'mouseup').pipe(\n tap((e: MouseEvent) => {\n if (this.#dragging) {\n e.preventDefault();\n e.stopPropagation();\n this.#dragging = false;\n this.#applyDraggingStyles(nativeElement, true);\n }\n })\n );\n\n const dragMove$ = mouseDown$.pipe(\n filter(\n () =>\n // only calculate new scroll position if the container is actually overflowing\n nativeElement.scrollHeight > nativeElement.clientHeight || nativeElement.scrollWidth > nativeElement.clientWidth\n ),\n tap((startEvent: MouseEvent) => {\n this.#applyDraggingStyles(nativeElement);\n startEvent.preventDefault();\n startEvent.stopPropagation();\n }),\n switchMap((startEvent: MouseEvent) => {\n this.#dragging = true;\n const scrollPos = {\n left: nativeElement.scrollLeft,\n top: nativeElement.scrollTop\n };\n return mouseMove$.pipe(\n map((moveEvent: MouseEvent) => {\n moveEvent.preventDefault();\n moveEvent.stopPropagation();\n return {\n startEvent,\n moveEvent,\n scrollPos\n };\n }),\n takeUntil(mouseUp$)\n );\n }),\n\n tap(({ startEvent, moveEvent, scrollPos }) => {\n const diffX = moveEvent.clientX - startEvent.clientX;\n const diffY = moveEvent.clientY - startEvent.clientY;\n nativeElement.scrollLeft = scrollPos.left - diffX;\n nativeElement.scrollTop = scrollPos.top - diffY;\n })\n );\n dragMove$.subscribe();\n }\n}\n","import { computed, contentChildren, Directive, ElementRef, HostListener, inject, input, output } from '@angular/core';\n\ninterface SelectableRect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface DragSelectOptions {\n disabled?: boolean;\n selectorColor?: string;\n}\n\n@Directive({\n selector: '[yuvDragSelect]',\n standalone: true\n})\nexport class DragSelectDirective {\n #selector?: HTMLDivElement;\n #selectStartX = 0;\n #selectStartY = 0;\n\n #selection: number[] = [];\n\n @HostListener('pointerdown', ['$event']) onPointerDown(event: PointerEvent) {\n if (this.yuvDragSelect()?.disabled || (event.target as HTMLElement).tagName === 'BUTTON') return;\n event.preventDefault();\n this.#selectStartX = event.pageX;\n this.#selectStartY = event.pageY;\n\n const div = document.createElement('div');\n div.style.position = 'absolute';\n div.style.width = '0';\n div.style.height = '0';\n div.style.left = this.#selectStartX + 'px';\n div.style.top = this.#selectStartY + 'px';\n div.classList.add('drag-select');\n this.#selector = div;\n document.body.append(this.#selector);\n\n this.#selection = [];\n addEventListener('pointermove', this.#resize);\n addEventListener('pointerup', this.#onPointerUp);\n }\n\n items = contentChildren(DragSelectItemDirective);\n #selectables = computed(() => this.items().map((item) => item.el));\n\n yuvDragSelect = input<DragSelectOptions>();\n dragSelectChange = output<number[]>();\n dragSelect = output<number[]>();\n\n #onPointerUp = () => {\n removeEventListener('pointermove', this.#resize);\n removeEventListener('pointerup', this.#onPointerUp);\n if (this.#selection.length) this.dragSelect.emit(this.#selection);\n if (this.#selector) this.#selector.remove();\n };\n\n #resize = (event: PointerEvent) => {\n if (!this.#selector) return;\n const diffX = event.pageX - this.#selectStartX;\n const diffY = event.pageY - this.#selectStartY;\n this.#selector.style.left = diffX < 0 ? this.#selectStartX + diffX + 'px' : this.#selectStartX + 'px';\n this.#selector.style.top = diffY < 0 ? this.#selectStartY + diffY + 'px' : this.#selectStartY + 'px';\n this.#selector.style.height = Math.abs(diffY) + 'px';\n this.#selector.style.width = Math.abs(diffX) + 'px';\n\n this.#selector.style.border = `1px solid ${this.yuvDragSelect()?.selectorColor || 'var(--ymt-primary'}`;\n this.#checkSelected();\n };\n\n #checkSelected = () => {\n if (!this.#selector) return;\n const select = this.#selector.getBoundingClientRect();\n const { x, y, height, width } = select;\n if (!height || !width) return;\n\n const currSelectionLength = this.#selection.length;\n this.#selectables().forEach((selectable, idx) => {\n const r1: SelectableRect = { x: x + window.scrollX, y: y + window.scrollY, height, width };\n const r2: SelectableRect = selectable.getBoundingClientRect();\n this.#selection = this.#selection.filter((s) => s !== idx);\n if (this.#checkRectIntersection(r1, r2)) {\n this.#selection.push(idx);\n }\n });\n\n if (currSelectionLength !== this.#selection.length) {\n this.dragSelectChange.emit(this.#selection);\n }\n };\n\n #checkRectIntersection = (r1: SelectableRect, r2: SelectableRect) => {\n return !(r1.x + r1.width < r2.x || r2.x + r2.width < r1.x || r1.y + r1.height < r2.y || r2.y + r2.height < r1.y);\n };\n}\n\n@Directive({\n selector: '[yuvDragSelectItem]',\n standalone: true\n})\nexport class DragSelectItemDirective {\n #elRef = inject(ElementRef);\n el = this.#elRef.nativeElement as HTMLElement;\n}\n","import { Directive, ElementRef, HostListener, inject, input, output } from '@angular/core';\nimport { Utils } from '@yuuvis/client-core';\nimport { FileDropZoneOptions } from './file-drop-zone.interface';\n\n@Directive({\n selector: '[yuvFileDropZone]',\n standalone: true\n})\nexport class FileDropZoneDirective {\n #elRef = inject(ElementRef);\n\n #coverElement?: HTMLElement;\n\n #fileOver = false;\n set fileOver(fo: boolean) {\n if (fo !== this.#fileOver) {\n this.#fileOver = fo;\n this.fileDropOver.emit(fo);\n this.#toggleCover();\n }\n }\n get fileOver() {\n return this.#fileOver;\n }\n\n #defaultDragOverCoverStyles: Record<string, string> = {\n outline: '2px dashed var(--ymt-primary)',\n display: 'flex',\n transition: 'background-color .3s ease-in-out',\n 'z-index': '500',\n 'align-items': 'center',\n 'justify-content': 'center',\n 'outline-offset': '-2px',\n 'background-color': 'rgb(from var(--ymt-primary) r g b / .5)'\n };\n\n #defaultDragOverCoverLabelStyles: Record<string, string> = {\n outline: '1px solid var(--ymt-primary)',\n\n padding: 'var(--ymt-spacing-m, 16px)',\n 'background-color': 'rgb(from var(--ymt-primary) r g b / 0.9)',\n color: 'var(--ymt-on-primary)'\n };\n\n yuvFileDropZone = input<FileDropZoneOptions>();\n fileDropDisabled = input<boolean>(false);\n\n fileDrop = output<File[]>();\n fileDropOver = output<boolean>();\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n if (this.fileDropDisabled()) return;\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = false;\n\n const dataTransfer: DataTransfer | null = event.dataTransfer;\n\n if (dataTransfer) {\n if (dataTransfer?.items) {\n const files: File[] = [];\n for (let i = 0; i < dataTransfer.items.length; i++) {\n // If dropped items aren't files, reject them\n if (dataTransfer.items[i].kind === 'file') {\n const file = dataTransfer.items[i].getAsFile();\n if (file) files.push(file);\n }\n }\n dataTransfer.items.clear();\n this.fileDrop.emit(files);\n } else {\n const files = dataTransfer.files;\n dataTransfer.clearData();\n this.fileDrop.emit(Array.from(files));\n }\n }\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n if (this.fileDropDisabled()) return;\n event.stopPropagation();\n event.preventDefault();\n this.fileOver = true;\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n if (this.fileDropDisabled()) return;\n if ((event.target as HTMLElement).getAttribute('id') === this.#coverElement?.getAttribute('id')) {\n this.fileOver = false;\n }\n }\n\n @HostListener('body:dragover', ['$event'])\n onBodyDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n @HostListener('body:drop', ['$event'])\n onBodyDrop(event: DragEvent) {\n event.preventDefault();\n }\n\n #toggleCover() {\n const el: HTMLElement = this.#elRef.nativeElement as HTMLElement;\n\n if (this.#coverElement) {\n el.style.position = 'initial';\n this.#coverElement.remove();\n this.#coverElement = undefined;\n }\n if (this.#fileOver) {\n el.style.position = 'relative';\n this.#coverElement = this.#createCoverElement();\n el.append(this.#coverElement);\n }\n }\n\n #createCoverElement(): HTMLElement {\n const coverElement = document.createElement('div');\n coverElement.setAttribute('id', Utils.uuid());\n coverElement.style.position = 'absolute';\n coverElement.style.inset = '0';\n const styles = this.yuvFileDropZone()?.coverStyles || this.#defaultDragOverCoverStyles;\n Object.keys(styles).forEach((k: string) => {\n (coverElement.style as any)[k] = styles[k];\n });\n\n const label = this.yuvFileDropZone()?.label;\n if (label) {\n const coverLabelElement = document.createElement('div');\n coverLabelElement.innerText = label;\n const labelStyles = this.yuvFileDropZone()?.coverLabelStyles || this.#defaultDragOverCoverLabelStyles;\n Object.keys(labelStyles).forEach((k: string) => {\n (coverLabelElement.style as any)[k] = labelStyles[k];\n });\n coverLabelElement.style.pointerEvents = 'none';\n coverElement.append(coverLabelElement);\n }\n return coverElement;\n }\n}\n","import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Output } from '@angular/core';\n/**\n * Directive keeping track of the focus beeing within a component. Once the component or\n * any of its child components gain focus, a class of `focusWithin` will be set on the\n * host component in order to allow styling it while beeing focused. Furthermore you can\n * register callbacks once the component gets or looses focus.\n *\n * @example\n * // just set the css class\n * <some-component yuvFocusWithin></some-component>\n * // set the css class and listen to focus changes\n * <some-component (yuvFocusWithin)=\"onFocusEnter()\" (yuvFocusWithinBlur)=\"onFocusLeave()\"></some-component>\n */\n@Directive({\n selector: '[yuvFocusWithin]',\n standalone: true\n})\nexport class FocusWithinDirective {\n private eventCount = 0;\n @HostBinding('class.focusWithin') hasFocusWithin = false;\n @HostListener('focusin', ['$event']) onFocusIn(evt: FocusEvent) {\n const hadFocusWithin = this.hasFocusWithin;\n this.hasFocusWithin = this.matchesFocusWithin();\n if (!hadFocusWithin && this.hasFocusWithin) {\n this.yuvFocusWithin.emit();\n }\n }\n @HostListener('focusout', ['$event']) onFocusOut(evt: FocusEvent) {\n const hadFocusWithin = this.hasFocusWithin;\n this.hasFocusWithin = this.matchesFocusWithin();\n if (hadFocusWithin && !this.hasFocusWithin) {\n this.yuvFocusWithinBlur.emit();\n }\n }\n\n /**\n * Emitted once the component or any of its child components gains focus.\n */\n @Output() yuvFocusWithin = new EventEmitter();\n /**\n * Emitted once the component (incl. any of its child components) looses focus.\n */\n @Output() yuvFocusWithinBlur = new EventEmitter();\n\n /**\n * @ignore\n */\n\n constructor(private elRef: ElementRef) { }\n\n // Determine if the given node matches the given selector.\n // @see: https://www.bennadel.com/blog/3476-checking-to-see-if-an-element-has-a-css-pseudo-class-in-javascript.htm\n private matchesFocusWithin(): boolean {\n const node = this.elRef.nativeElement;\n const nativeMatches = node.matches || node.msMatchesSelector;\n try {\n return nativeMatches.call(node, ':focus-within');\n } catch (error) {\n return false;\n }\n }\n}\n","import { Directive, ElementRef, HostListener, inject, output } from '@angular/core';\n\n/**\n * Directive for applying light dismiss actions. Adding this directive will trigger\n * the given function when the user clicks outside the component or hits escape.\n *\n * ```ts\n * <div class=\"notifications\" (yuvLightDismiss)=\"close()\">\n * ...\n * </div>\n * ```\n */\n@Directive({\n selector: '[yuvLightDismiss]',\n standalone: true\n})\nexport class LightDismissDirective {\n private elRef = inject(ElementRef);\n\n @HostListener('document:keydown.escape', ['$event'])\n onKeydownHandler(event: KeyboardEvent) {\n if (!event.defaultPrevented) {\n this.yuvLightDismiss.emit();\n }\n }\n\n @HostListener('document:mousedown', ['$event'])\n onMousedown(event: MouseEvent) {\n if (!this.elRef.nativeElement.contains(event.target)) {\n this.yuvLightDismiss.emit();\n }\n }\n\n yuvLightDismiss = output();\n}\n","import { Directive, ElementRef, inject, input, output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent, merge, of, timer } from 'rxjs';\nimport { filter, map, switchMap } from 'rxjs/operators';\n\n@Directive({\n selector: '[yuvLongPress]',\n standalone: true\n})\nexport class LongPressDirective {\n private elRef = inject(ElementRef);\n\n threshold = 500;\n\n yuvLongPress = input<LongPressDirectiveOptions>({\n enabled: false\n });\n longpress = output();\n\n constructor() {\n const mousedown = fromEvent<MouseEvent>(this.elRef.nativeElement, 'mousedown').pipe(\n takeUntilDestroyed(),\n filter((event) => event.button == 0), // Only allow left button (Primary button)\n map(() => true) // turn on threshold counter\n );\n const touchstart = fromEvent(this.elRef.nativeElement, 'touchstart').pipe(\n takeUntilDestroyed(),\n map(() => true)\n );\n const touchEnd = fromEvent(this.elRef.nativeElement, 'touchend').pipe(\n takeUntilDestroyed(),\n map(() => false)\n );\n const mouseup = fromEvent<MouseEvent>(window, 'mouseup').pipe(\n takeUntilDestroyed(),\n filter((event) => event.button == 0), // Only allow left button (Primary button)\n map(() => false) // reset threshold counter\n );\n merge(mousedown, mouseup, touchstart, touchEnd)\n .pipe(\n takeUntilDestroyed(),\n switchMap((state) => (state ? timer(this.threshold, 100) : of(null))),\n filter((value) => !!value)\n )\n .subscribe(() => this.longpress.emit());\n }\n}\n\nexport interface LongPressDirectiveOptions {\n enabled: boolean;\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport { Directive, forwardRef, inject } from '@angular/core';\nimport { ControlValueAccessor, FormControlDirective, FormControlName, NG_VALUE_ACCESSOR, NgControl, NgModel } from '@angular/forms';\n\n// @see: https://netbasal.com/forwarding-form-controls-to-custom-control-components-in-angular-701e8406cc55\n@Directive({\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => NoopValueAccessorDirective)\n }\n ]\n})\nexport class NoopValueAccessorDirective implements ControlValueAccessor {\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n}\n\nexport function injectNgControl(cva?: ControlValueAccessor): NgControl | null {\n const ngControl = inject(NgControl, { self: true, optional: true });\n\n if (!ngControl) return null;\n\n if (ngControl instanceof FormControlDirective || ngControl instanceof FormControlName || ngControl instanceof NgModel) {\n if (cva) ngControl.valueAccessor = cva;\n return ngControl;\n }\n\n throw new Error('...');\n}\n","import { NgModule } from '@angular/core';\nimport { ConfirmComponent } from './components/confirm/confirm.component';\nimport {\n AutofocusChildDirective,\n AutofocusDelayedDirective,\n BusyOverlayDirective,\n ClickDoubleDirective,\n ContainerSizeDirective,\n DragScrollDirective,\n DragSelectDirective,\n FileDropZoneDirective,\n FocusWithinDirective,\n LightDismissDirective,\n LongPressDirective,\n NoopValueAccessorDirective\n} from './directives';\n\nconst directives = [\n BusyOverlayDirective,\n FocusWithinDirective,\n FileDropZoneDirective,\n ClickDoubleDirective,\n LightDismissDirective,\n ContainerSizeDirective,\n LongPressDirective,\n DragSelectDirective,\n DragScrollDirective,\n NoopValueAccessorDirective,\n AutofocusChildDirective,\n AutofocusDelayedDirective\n];\n\nconst components = [ConfirmComponent];\n\n@NgModule({\n imports: [...directives, ...components],\n exports: [...directives, ...components]\n})\nexport class YuvCommonModule {}\n","export function getFocusableChildren(element: HTMLElement): HTMLElement[] {\n return [...Array.from(element.querySelectorAll('a[href], button, input, textarea, select, details,[tabindex]:not([tabindex=\"-1\"])'))].filter(\n (el) => !el.hasAttribute('disabled') && !el.getAttribute('aria-hidden')\n ) as HTMLElement[];\n}\n\nexport function getFirstFocusableChild(element: HTMLElement): HTMLElement {\n return getFocusableChildren(element)[0] as HTMLElement;\n}\n","import { Injectable, signal } from '@angular/core';\nimport { LayoutMode } from './layout-settings.interface';\n\n/**\n * Service to store and retrieve layout settings. Those\n * settings are stored on the users device because in\n * general layout settings like panel widths are highly\n * dependent on the current device.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class LayoutSettingsService {\n #STORAGE_PREFIX = 'yuv.layout:';\n #MODE_STORAGE_KEY = 'app.layout.mode';\n\n DEFAULT_SPLIT_VIEW_GUTTER_SIZE = 16;\n themeMode = signal<LayoutMode>('system');\n mode = this.themeMode.asReadonly();\n\n init() {\n // set configured mode\n const modeSettings = this.getSettings(this.#MODE_STORAGE_KEY) as { mode: LayoutMode } | undefined;\n this.applyLayoutMode(modeSettings?.mode || undefined);\n }\n\n setMode(mode: LayoutMode) {\n this.saveSettings(this.#MODE_STORAGE_KEY, { mode });\n }\n\n saveSettings(key: string, settings: unknown): boolean {\n if (typeof settings === 'object') {\n localStorage.setItem(this.#getKey(key), JSON.stringify(settings));\n return true;\n } else return false;\n }\n\n getSettings(key: string): unknown | undefined {\n try {\n const v = localStorage.getItem(this.#getKey(key));\n return v ? JSON.parse(v) : undefined;\n } catch (e) {\n console.error('Error while parsing layout settings', e);\n return undefined;\n }\n }\n\n #getKey(key: string) {\n return `${this.#STORAGE_PREFIX}${key}`;\n }\n\n /**\n * Clears all layout settings.\n */\n clearSettings(): void {\n Object.keys(localStorage).forEach((key) => {\n if (key.startsWith(this.#STORAGE_PREFIX)) {\n localStorage.removeItem(key);\n }\n });\n }\n\n applyLayoutMode(mode?: LayoutMode) {\n const body: HTMLBodyElement = document.getElementsByTagName('body')[0];\n body.style.colorScheme = mode === 'dark' || mode === 'light' ? mode : 'inherit';\n this.themeMode.set(mode || 'system');\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n/**\n * Providing an error message when a translation string for an object wasn't found\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class FormTranslateService {\n private translate = inject(TranslateService);\n\n /**\n * Set the error label if a translation for this string wasn't provided\n * @param error - error message about a missed translation key\n * @param params\n */\n getErrorLabel(error: string, params?: any) {\n switch (error) {\n case 'daterange':\n return this.translate.instant('yuv.object-form-element.error.daterange.invalid', params);\n case 'daterangeorder':\n return this.translate.instant('yuv.object-form-element.error.daterangeorder.invalid', params);\n case 'numberrange':\n return this.translate.instant('yuv.object-form-element.error.numberrange.invalid', params);\n case 'numberrangeorder':\n return this.translate.instant('yuv.object-form-element.error.numberrangeorder.invalid', params);\n case 'number':\n return this.translate.instant('yuv.object-form-element.error.number', params);\n case 'precision':\n return this.translate.instant('yuv.object-form-element.error.number.precision', params);\n case 'scale':\n return this.translate.instant('yuv.object-form-element.error.number.scale', params);\n case 'regex':\n return this.translate.instant('yuv.object-form-element.error.string.regex.nomatch', params);\n case 'pattern':\n return this.translate.instant('yuv.object-form-element.error.string.regex.nomatch', params);\n case 'classificationemail':\n return this.translate.instant('yuv.object-form-element.error.string.classification.email', params);\n case 'classificationphone':\n return this.translate.instant('yuv.object-form-element.error.string.classification.phone', params);\n case 'classificationurl':\n return this.translate.instant('yuv.object-form-element.error.string.classification.url', params);\n case 'onlyWhitespaces':\n return this.translate.instant('yuv.object-form-element.error.string.whitespaces', params);\n case 'datecontrol':\n return this.translate.instant('yuv.object-form-element.error.date.invalid', params);\n case 'required':\n return this.translate.instant('yuv.object-form-element.error.required', params);\n case 'maxlength':\n return this.translate.instant('yuv.object-form-element.error.maxlength', params);\n case 'minlength':\n return this.translate.instant('yuv.object-form-element.error.minlength', params);\n case 'minmax':\n return this.translate.instant('yuv.object-form-element.error.minmax', params);\n case 'minvalue':\n return this.translate.instant('yuv.object-form-element.error.minvalue', params);\n case 'maxvalue':\n return this.translate.instant('yuv.object-form-element.error.maxvalue', params);\n default:\n return this.translate.instant(error, params);\n }\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Component, ElementRef, HostListener, inject, Input, signal } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { Subject } from 'rxjs';\nimport { getFocusableChildren } from './common.utils';\n@Component({ template: '' })\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport abstract class AbstractMatFormField<T> implements MatFormFieldControl<T> {\n stateChanges = new Subject<void>();\n protected elRef = inject(ElementRef);\n\n @HostListener('focusin') onFocusIn() {\n this.focused = true;\n }\n @HostListener('focusout') onFocusout() {\n this.focused = false;\n }\n\n #value = signal<T | null>(null);\n set value(v: T | null) {\n this.#value.set(v);\n this.empty = !v;\n this.stateChanges.next();\n }\n get value(): T | null {\n return this.#value();\n }\n\n #id = signal<string>('');\n set id(v: string) {\n this.#id.set(v);\n this.stateChanges.next();\n }\n get id(): string {\n return this.#id();\n }\n #placeholder = signal<string>('');\n @Input() set placeholder(v: string) {\n this.#placeholder.set(v);\n this.stateChanges.next();\n }\n get placeholder(): string {\n return this.#placeholder();\n }\n ngControl: NgControl | null = null;\n\n #focused = signal<boolean>(false);\n set focused(f: boolean) {\n this.#focused.set(f);\n this.stateChanges.next();\n }\n get focused(): boolean {\n return this.#focused();\n }\n\n // #shouldLabelFloat = signal<boolean>(false);\n // set shouldLabelFloat(f: boolean) {\n // this.#shouldLabelFloat.set(f);\n // this.stateChanges.next();\n // }\n get shouldLabelFloat(): boolean {\n return this.focused || !this.empty || !!this.ngControl?.invalid;\n }\n\n #empty = signal<boolean>(false);\n set empty(f: boolean) {\n this.#empty.set(f);\n this.stateChanges.next();\n }\n get empty(): boolean {\n return this.#empty();\n }\n\n #required = signal<boolean>(false);\n @Input() set required(f: BooleanInput) {\n this.#required.set(coerceBooleanProperty(f));\n this.stateChanges.next();\n }\n get required(): boolean {\n return this.#required();\n }\n\n #disabled = signal<boolean>(false);\n @Input() set disabled(f: BooleanInput) {\n this.#disabled.set(coerceBooleanProperty(f));\n this.stateChanges.next();\n }\n get disabled(): boolean {\n return this.#disabled();\n }\n\n protected focusHandled = signal<boolean>(false);\n \n #errorState = signal<boolean>(false);\n set errorState(f: BooleanInput) {\n this.#errorState.set(coerceBooleanProperty(f));\n this.stateChanges.next();\n }\n get errorState(): boolean {\n return this.#errorState();\n }\n\n readonly controlType?: string;\n readonly autofilled?: boolean;\n readonly userAriaDescribedBy?: string;\n readonly disableAutomaticLabeling?: boolean;\n\n setDescribedByIds(ids: string[]): void {\n // this.describedBy = ids.join(' ');\n }\n\n onContainerClick(event: MouseEvent): void {\n if(this.focusHandled()) return;\n const fe: HTMLElement[] = getFocusableChildren(this.elRef.nativeElement);\n if (fe[0] && !fe.includes(event.target as HTMLElement)) {\n fe[0].focus();\n }\n }\n\n onNgOnDestroy(): void {\n this.stateChanges.complete();\n }\n}\n","export enum DialogSize {\n SMALL = 'small',\n MEDIUM = 'medium',\n LARGE = 'large',\n EXTRA_LARGE = 'extra-large',\n FULL_SCREEN = 'full-screen'\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, inject, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DmsObject, LocaleDatePipe, RetentionService, RetentionState, TranslateModule } from '@yuuvis/client-core';\n\n@Component({\n selector: 'yuv-retention-badge',\n standalone: true,\n imports: [CommonModule, TranslateModule, LocaleDatePipe, MatIconModule],\n templateUrl: './retention-badge.component.html',\n styleUrl: './retention-badge.component.scss'\n})\nexport class RetentionBadgeComponent {\n #retention = inject(RetentionService);\n\n dmsObject = input.required<DmsObject>();\n retentionData = computed<RetentionState>(() => {\n return this.#retention.getRetentionState(this.dmsObject());\n });\n}\n","@let rd = retentionData();\n@if (rd.underRetention) {\n <div class=\"badge\">\n <span class=\"badge__icon\">\n <mat-icon class=\"ymt-icon--size-s\">lock_clock</mat-icon>\n </span>\n <span class=\"badge__label\">\n <span class=\"badge__label-truncated\">\n {{\n 'yuv.retention-badge.retain'\n | translate\n : {\n from: rd.start | localeDate: 'shortDate',\n until: rd.end | localeDate: 'shortDate'\n }\n }}\n </span>\n </span>\n </div>\n}\n","import { inject, Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmComponent } from './confirm.component';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ConfirmOverlayData } from './confirm.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfirmService {\n #dialog = inject(MatDialog);\n\n confirm(data: ConfirmOverlayData): Observable<boolean> {\n return this.#dialog\n .open(ConfirmComponent, { data })\n .afterClosed()\n .pipe(map((result) => !!result));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TranslateModule","i1"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yuuvis-client-framework-metadata-form.mjs","sources":["../../../../../libs/yuuvis/client-framework/metadata-form/src/lib/metadata-form-element-registry.service.ts","../../../../../libs/yuuvis/client-framework/metadata-form/src/lib/object-metadata-element-label.directive.ts","../../../../../libs/yuuvis/client-framework/metadata-form/src/lib/object-metadata-element-error.directive.ts","../../../../../libs/yuuvis/client-framework/metadata-form/src/lib/object-metadata-element-template.directive.ts","../../../../../libs/yuuvis/client-framework/metadata-form/src/lib/metadata-form-field/metadata-form-field.component.ts","../../../../../libs/yuuvis/client-framework/metadata-form/src/lib/metadata-form-field/metadata-form-field.component.html","../../../../../libs/yuuvis/client-framework/metadata-form/src/yuuvis-client-framework-metadata-form.ts"],"sourcesContent":["import { Injectable, TemplateRef } from '@angular/core';\nimport { Situation } from '@yuuvis/client-core';\n\n/**\n * Object forms are used to render and edit metadata of DMS objects. Each property\n * of an object can be rendered in a diffenrent way, depending on the type of the property.\n * This service allows to register and retrieve templates for rendering these form elements.\n * \n * You can register templates for different situations like EDIT, SEARCH, and CREATE.\n * The templates will then be used to render the form elements in the object form component.\n * \n * So based on the property type you can register custom templates for rendering certain\n * form elements. This is useful if you want to render a property in a different way.\n * \n * Example:\n * Having a number property representing a rating, you might want to render it as \n * a list of stars instead of a simple input field. \n */\n@Injectable({\n providedIn: 'root'\n})\nexport class MetadataFormElementRegistry {\n private _defaults: { [propertyType: string]: TemplateRef<any> } = {};\n\n private _edit: { [propertyType: string]: TemplateRef<any> } = {};\n private _search: { [propertyType: string]: TemplateRef<any> } = {};\n private _create: { [propertyType: string]: TemplateRef<any> } = {};\n\n // registering a template by name will add this prefix to the given name\n NAME_PROPERTY_PREFIX = '@name:'\n\n /**\n * Get a template to render a certain form element\n * @param propertyType The internal type to get the template for\n * @param situation Form situation\n * @returns TemplateRef or undefined\n */\n getElementTemplate(propertyType: string, situation: string = Situation.EDIT): TemplateRef<any> | undefined {\n let cmps = { ...this._defaults, ...this._edit };\n if (situation === Situation.SEARCH) cmps = { ...this._defaults, ...this._edit, ...this._search };\n else if (situation === Situation.CREATE) cmps = { ...this._defaults, ...this._edit, ...this._create };\n\n return cmps[propertyType];\n }\n\n /**\n * Register an object form element for a certain internal type. You might add a new component\n * or overwrite an existung one.\n * @param propertyType The internal type to provide the component for\n * @param component The component\n * @param situation Form situation to provide thew form element for (defaults to EDIT)\n */\n addElementTemplate(propertyType: string, templateRef: TemplateRef<any>, situation: Situation = Situation.EDIT): void {\n if (propertyType && templateRef) {\n switch (situation) {\n case Situation.SEARCH: {\n this._search[propertyType] = templateRef;\n break;\n }\n case Situation.CREATE: {\n this._create[propertyType] = templateRef;\n break;\n }\n default: {\n this._edit[propertyType] = templateRef;\n }\n }\n }\n }\n\n /**\n * Remove a registered form element.\n * @param propertyType The internal type to remove the component for\n * @param situation Form situation to provide thew form element for (defaults to EDIT)\n */\n removeElementTemplate(propertyType: string, situation: Situation = Situation.EDIT) {\n switch (situation) {\n case Situation.SEARCH: {\n delete this._search[propertyType];\n break;\n }\n case Situation.CREATE: {\n delete this._create[propertyType];\n break;\n }\n default: {\n delete this._edit[propertyType];\n }\n }\n }\n\n /**\n * Register default form element component. Usually this will be done by the object\n * form component itself.\n * @param propertyType The internal type to provide the component for\n * @param component The default component\n */\n _addDefaultElementTemplate(propertyType: string, templateRef: TemplateRef<any>): void {\n if (propertyType && templateRef) {\n this._defaults[propertyType] = templateRef;\n }\n }\n\n /**\n * Remove a registered default form element.\n * @param propertyType The internal type to remove the component for\n */\n _removeDefaultElementTemplate(propertyType: string) {\n delete this._defaults[propertyType];\n }\n}\n","import { DestroyRef, Directive, ElementRef, inject, input, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, FormControlStatus } from '@angular/forms';\nimport { MetadataFormFieldContext } from './metadata-form-field/metadata-form-field.interface';\n\n/**\n * Directive to apply styles to an object metadata element label based on its control status.\n * Depending on the state of the control (dirty, error), it will add or remove specific classes\n * to the label element. Thes clases could then be used to style the label accordingly.\n *\n * @example\n * <mat-label [yuvObjectMetadataElementLabel]=\"myControl\">My Label</mat-label>\n */\n@Directive({\n selector: '[yuvObjectMetadataElementLabel]',\n standalone: true,\n host: {\n '[class.dirty]': 'yuvObjectMetadataElementLabel().dirty',\n '[class.error]': 'yuvObjectMetadataElementLabel().error'\n }\n})\nexport class ObjectMetadataElementLabelDirective implements OnInit {\n #elRef = inject(ElementRef);\n #dRef = inject(DestroyRef);\n\n yuvObjectMetadataElementLabel = input<MetadataFormFieldContext>();\n\n ngOnInit() {\n const input = this.yuvObjectMetadataElementLabel();\n if (input) {\n if (input.formChangedSubject) {\n input.formChangedSubject?.pipe(takeUntilDestroyed(this.#dRef)).subscribe(() => {\n this.#elRef.nativeElement.classList.toggle('yuv-label-dirty', input.ctrl!.dirty);\n });\n }\n\n if (input.ctrl) {\n input.ctrl.statusChanges.pipe(takeUntilDestroyed(this.#dRef)).subscribe((s: FormControlStatus) => {\n this.#elRef.nativeElement.classList.toggle('yuv-label-invalid', s === 'INVALID');\n });\n input.ctrl.valueChanges.pipe(takeUntilDestroyed(this.#dRef)).subscribe(() => {\n this.#elRef.nativeElement.classList.toggle('yuv-label-dirty', input.ctrl!.dirty);\n });\n }\n }\n }\n}\n","import { DestroyRef, Directive, ElementRef, inject, input, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControlStatus } from '@angular/forms';\nimport { ObjectFormControl } from '@yuuvis/client-core';\nimport { FormTranslateService } from '@yuuvis/client-framework/common';\n\n/**\n * Directive to apply an object-form related error to as inner text to an element.\n * This could be used to render objec tform related errors in a custom element like <mat-error>.\n * \n * @example\n * <mat-error [yuvObjectMetadataElementError]=\"myControl\"></mat-error>\n */\n@Directive({\n selector: '[yuvObjectMetadataElementError]',\n standalone: true\n})\nexport class ObjectMetadataElementErrorDirective implements OnInit {\n #elRef = inject(ElementRef);\n #dRef = inject(DestroyRef);\n #fts = inject(FormTranslateService);\n\n yuvObjectMetadataElementError = input<ObjectFormControl>();\n\n #getErrors(): string[] {\n const ctrl = this.yuvObjectMetadataElementError();\n\n // only show errors if the control has been touched\n const shouldShowErrors = ctrl && ctrl.errors && (ctrl.touched || ctrl.dirty);\n\n return shouldShowErrors\n ? Object.keys(ctrl.errors).map((key) => {\n return key === 'eoformScript' ? ctrl._eoFormElement.error.msg : this.#fts.getErrorLabel(key, ctrl.errors![key].params);\n })\n : [];\n }\n\n ngOnInit() {\n const ctrl = this.yuvObjectMetadataElementError();\n if (ctrl) {\n ctrl.statusChanges.pipe(takeUntilDestroyed(this.#dRef)).subscribe((s: FormControlStatus) => {\n if (s === 'INVALID') {\n const err = this.#getErrors();\n this.#elRef.nativeElement.innerText = err.length > 0 ? err[0] : '';\n }\n });\n }\n }\n}\n","import { Directive, Input, OnDestroy, OnInit, TemplateRef, inject, input } from '@angular/core';\nimport { Situation } from '@yuuvis/client-core';\nimport { MetadataFormElementRegistry } from './metadata-form-element-registry.service';\n\n/**\n * Directive to be applied to a `ng-template`. It will register the template as a\n * form element used by object-form component.\n *\n * Context is provided with the following fields:\n * - situation: form situation 'EDIT', 'CREATE', 'SEARCH'\n * - field: ObjectTypeField\n * - ngControl: Reactive FormControl\n *\n * @example\n * <ng-template yuvMetadataElementTemplate propertyType=\"boolean:switch\" let-ctx>...</ng-template>\n *\n */\n@Directive({\n selector: '[yuvMetadataElementTemplate]',\n standalone: true\n})\nexport class ObjectMetadataElementTemplateDirective implements OnInit, OnDestroy {\n #registry = inject(MetadataFormElementRegistry);\n #template = inject(TemplateRef<any>);\n\n /**\n * Bucket to register the template. Use 'default' for templates that should be\n * used across all situations.\n */\n @Input() yuvMetadataElementTemplate?: string;\n /**\n * Situation to register the template for. So only object forms for that\n * situation (CREATE, EDIT, SEARCH) will use the template. Defaults to `EDIT`.\n */\n situation = input<Situation>(Situation.EDIT);\n\n /**\n * Internal property type to get the registered template. You need to set either\n * `propertyType` or `propertyName` to get a template. Setting a name and\n * a type, the name will be used because it is more precise.\n */\n propertyType = input<string>();\n /**\n * Pick registered metadata element by name. You need to set either\n * `propertyType` or `propertyName` to get a template. Setting a name and\n * a type, the name will be used because it is more precise.\n */\n propertyName = input<string>();\n #registrationKey?: string;\n\n ngOnInit(): void {\n const pn = this.propertyName();\n this.#registrationKey = pn ? `${this.#registry.NAME_PROPERTY_PREFIX}${pn}` : this.propertyType();\n if (this.#registrationKey) {\n if (this.yuvMetadataElementTemplate === 'default') {\n this.#registry._addDefaultElementTemplate(this.#registrationKey, this.#template);\n } else this.#registry.addElementTemplate(this.#registrationKey, this.#template, this.situation());\n }\n }\n\n ngOnDestroy(): void {\n if (!this.#registrationKey) return;\n if (this.yuvMetadataElementTemplate === 'default') this.#registry._removeDefaultElementTemplate(this.#registrationKey);\n else this.#registry.removeElementTemplate(this.#registrationKey, this.situation());\n }\n}\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, effect, inject, input, signal, TemplateRef, untracked, ViewEncapsulation } from '@angular/core';\n\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\nimport { ObjectTypeField, Situation, SystemService } from '@yuuvis/client-core';\nimport { injectNgControl, NoopValueAccessorDirective } from '@yuuvis/client-framework/common';\nimport { MetadataFormElementRegistry } from '../metadata-form-element-registry.service';\nimport { MetadataFormFieldContext } from './metadata-form-field.interface';\nimport { Subject } from 'rxjs';\n\n/**\n * Component to render a metadata form field within an object form. These forms are\n * created to render and edit metadata of DMS objects. This component is used as a wrapper\n * for the actual form element, which is defined by the `formField` input.\n */\n@Component({\n selector: 'yuv-metadata-form-field',\n standalone: true,\n imports: [NgClass, NgTemplateOutlet, MatFormFieldModule],\n templateUrl: './metadata-form-field.component.html',\n styleUrl: './metadata-form-field.component.scss',\n hostDirectives: [NoopValueAccessorDirective],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'yuv-metadata-form-field'\n }\n})\nexport class MetadataFormFieldComponent {\n #registry = inject(MetadataFormElementRegistry);\n #system = inject(SystemService);\n\n #ngControl = injectNgControl();\n elementTemplate = signal<TemplateRef<any> | undefined>(undefined);\n readonly = false;\n\n formChangedSubject = input<Subject<void>>()\n formField = input.required<ObjectTypeField>({ alias: 'field' });\n #fieldEffect = effect(() => {\n const field = this.formField();\n\n untracked(() => {\n // check for template by name ...\n const templateByName = this.#registry.getElementTemplate(`${this.#registry.NAME_PROPERTY_PREFIX}${field.name}`, this.situation());\n if (templateByName) this.elementTemplate.set(templateByName);\n else {\n if (!field._internalType) field._internalType = this.#system.getInternalFormElementType(field.propertyType);\n this.elementTemplate.set(this.#registry.getElementTemplate(field._internalType, this.situation()));\n }\n // TODO: set readonly state based on ...????... schema?\n this.readonly = false;\n });\n });\n \n context = computed<MetadataFormFieldContext>(() => {\n const field = this.formField();\n field.required = this.situation() !== Situation.SEARCH ? field.required : false;\n return {\n label: field.label || field.name,\n description: field.description,\n situation: this.situation() || Situation.EDIT,\n field,\n ctrl: this.#ngControl?.control || undefined,\n formChangedSubject: this.formChangedSubject()\n };\n });\n\n /**\n * Form situation, if not set default will be 'EDIT'\n */\n situation = input<string | undefined>(Situation.EDIT);\n}\n","@let field = formField();\n@let et = elementTemplate();\n\n@if (field) {\n <div class=\"form-field t-{{ field._internalType }}\" #formField [attr.data-name]=\"field.name\" [ngClass]=\"{ disabled: !!readonly }\">\n @if (et) {\n <ng-container *ngTemplateOutlet=\"et; context: { $implicit: context() }\"></ng-container>\n } @else {\n <em>\n <strong>{{ field._internalType }}</strong>\n </em>\n }\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"yuuvis-client-framework-metadata-form.mjs","sources":["../../../../../libs/yuuvis/client-framework/metadata-form/src/lib/metadata-form-element-registry.service.ts","../../../../../libs/yuuvis/client-framework/metadata-form/src/lib/object-metadata-element-label.directive.ts","../../../../../libs/yuuvis/client-framework/metadata-form/src/lib/object-metadata-element-error.directive.ts","../../../../../libs/yuuvis/client-framework/metadata-form/src/lib/object-metadata-element-template.directive.ts","../../../../../libs/yuuvis/client-framework/metadata-form/src/lib/metadata-form-field/metadata-form-field.component.ts","../../../../../libs/yuuvis/client-framework/metadata-form/src/lib/metadata-form-field/metadata-form-field.component.html","../../../../../libs/yuuvis/client-framework/metadata-form/src/yuuvis-client-framework-metadata-form.ts"],"sourcesContent":["import { Injectable, TemplateRef } from '@angular/core';\nimport { Situation } from '@yuuvis/client-core';\n\n/**\n * Object forms are used to render and edit metadata of DMS objects. Each property\n * of an object can be rendered in a diffenrent way, depending on the type of the property.\n * This service allows to register and retrieve templates for rendering these form elements.\n * \n * You can register templates for different situations like EDIT, SEARCH, and CREATE.\n * The templates will then be used to render the form elements in the object form component.\n * \n * So based on the property type you can register custom templates for rendering certain\n * form elements. This is useful if you want to render a property in a different way.\n * \n * Example:\n * Having a number property representing a rating, you might want to render it as \n * a list of stars instead of a simple input field. \n */\n@Injectable({\n providedIn: 'root'\n})\nexport class MetadataFormElementRegistry {\n private _defaults: { [propertyType: string]: TemplateRef<any> } = {};\n\n private _edit: { [propertyType: string]: TemplateRef<any> } = {};\n private _search: { [propertyType: string]: TemplateRef<any> } = {};\n private _create: { [propertyType: string]: TemplateRef<any> } = {};\n\n // registering a template by name will add this prefix to the given name\n NAME_PROPERTY_PREFIX = '@name:'\n\n /**\n * Get a template to render a certain form element\n * @param propertyType The internal type to get the template for\n * @param situation Form situation\n * @returns TemplateRef or undefined\n */\n getElementTemplate(propertyType: string, situation: string = Situation.EDIT): TemplateRef<any> | undefined {\n let cmps = { ...this._defaults, ...this._edit };\n if (situation === Situation.SEARCH) cmps = { ...this._defaults, ...this._edit, ...this._search };\n else if (situation === Situation.CREATE) cmps = { ...this._defaults, ...this._edit, ...this._create };\n\n return cmps[propertyType];\n }\n\n /**\n * Register an object form element for a certain internal type. You might add a new component\n * or overwrite an existung one.\n * @param propertyType The internal type to provide the component for\n * @param component The component\n * @param situation Form situation to provide thew form element for (defaults to EDIT)\n */\n addElementTemplate(propertyType: string, templateRef: TemplateRef<any>, situation: Situation = Situation.EDIT): void {\n if (propertyType && templateRef) {\n switch (situation) {\n case Situation.SEARCH: {\n this._search[propertyType] = templateRef;\n break;\n }\n case Situation.CREATE: {\n this._create[propertyType] = templateRef;\n break;\n }\n default: {\n this._edit[propertyType] = templateRef;\n }\n }\n }\n }\n\n /**\n * Remove a registered form element.\n * @param propertyType The internal type to remove the component for\n * @param situation Form situation to provide thew form element for (defaults to EDIT)\n */\n removeElementTemplate(propertyType: string, situation: Situation = Situation.EDIT) {\n switch (situation) {\n case Situation.SEARCH: {\n delete this._search[propertyType];\n break;\n }\n case Situation.CREATE: {\n delete this._create[propertyType];\n break;\n }\n default: {\n delete this._edit[propertyType];\n }\n }\n }\n\n /**\n * Register default form element component. Usually this will be done by the object\n * form component itself.\n * @param propertyType The internal type to provide the component for\n * @param component The default component\n */\n _addDefaultElementTemplate(propertyType: string, templateRef: TemplateRef<any>): void {\n if (propertyType && templateRef) {\n this._defaults[propertyType] = templateRef;\n }\n }\n\n /**\n * Remove a registered default form element.\n * @param propertyType The internal type to remove the component for\n */\n _removeDefaultElementTemplate(propertyType: string) {\n delete this._defaults[propertyType];\n }\n}\n","import { DestroyRef, Directive, ElementRef, inject, input, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, FormControlStatus } from '@angular/forms';\nimport { MetadataFormFieldContext } from './metadata-form-field/metadata-form-field.interface';\n\n/**\n * Directive to apply styles to an object metadata element label based on its control status.\n * Depending on the state of the control (dirty, error), it will add or remove specific classes\n * to the label element. Thes clases could then be used to style the label accordingly.\n *\n * @example\n * <mat-label [yuvObjectMetadataElementLabel]=\"myControl\">My Label</mat-label>\n */\n@Directive({\n selector: '[yuvObjectMetadataElementLabel]',\n standalone: true,\n host: {\n '[class.dirty]': 'yuvObjectMetadataElementLabel().dirty',\n '[class.error]': 'yuvObjectMetadataElementLabel().error'\n }\n})\nexport class ObjectMetadataElementLabelDirective implements OnInit {\n #elRef = inject(ElementRef);\n #dRef = inject(DestroyRef);\n\n yuvObjectMetadataElementLabel = input<MetadataFormFieldContext>();\n\n ngOnInit() {\n const input = this.yuvObjectMetadataElementLabel();\n if (input) {\n if (input.formChangedSubject) {\n input.formChangedSubject?.pipe(takeUntilDestroyed(this.#dRef)).subscribe(() => {\n this.#elRef.nativeElement.classList.toggle('yuv-label-dirty', input.ctrl!.dirty);\n });\n }\n\n if (input.ctrl) {\n input.ctrl.statusChanges.pipe(takeUntilDestroyed(this.#dRef)).subscribe((s: FormControlStatus) => {\n this.#elRef.nativeElement.classList.toggle('yuv-label-invalid', s === 'INVALID');\n });\n input.ctrl.valueChanges.pipe(takeUntilDestroyed(this.#dRef)).subscribe(() => {\n this.#elRef.nativeElement.classList.toggle('yuv-label-dirty', input.ctrl!.dirty);\n });\n }\n }\n }\n}\n","import { DestroyRef, Directive, ElementRef, inject, input, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControlStatus } from '@angular/forms';\nimport { ObjectFormControl } from '@yuuvis/client-core';\nimport { FormTranslateService } from '@yuuvis/client-framework/common';\n\n/**\n * Directive to apply an object-form related error to as inner text to an element.\n * This could be used to render objec tform related errors in a custom element like <mat-error>.\n * \n * @example\n * <mat-error [yuvObjectMetadataElementError]=\"myControl\"></mat-error>\n */\n@Directive({\n selector: '[yuvObjectMetadataElementError]',\n standalone: true\n})\nexport class ObjectMetadataElementErrorDirective implements OnInit {\n #elRef = inject(ElementRef);\n #dRef = inject(DestroyRef);\n #fts = inject(FormTranslateService);\n\n yuvObjectMetadataElementError = input<ObjectFormControl>();\n\n #getErrors(): string[] {\n const ctrl = this.yuvObjectMetadataElementError();\n\n // only show errors if the control has been touched\n const shouldShowErrors = ctrl && ctrl.errors && (ctrl.touched || ctrl.dirty);\n\n return shouldShowErrors\n ? Object.keys(ctrl.errors).map((key) => {\n return key === 'eoformScript' ? ctrl._eoFormElement.error.msg : this.#fts.getErrorLabel(key, ctrl.errors![key].params);\n })\n : [];\n }\n\n ngOnInit() {\n const ctrl = this.yuvObjectMetadataElementError();\n if (ctrl) {\n ctrl.statusChanges.pipe(takeUntilDestroyed(this.#dRef)).subscribe((s: FormControlStatus) => {\n if (s === 'INVALID') {\n const err = this.#getErrors();\n this.#elRef.nativeElement.innerText = err.length > 0 ? err[0] : '';\n }\n });\n }\n }\n}\n","import { Directive, Input, OnDestroy, OnInit, TemplateRef, inject, input } from '@angular/core';\nimport { Situation } from '@yuuvis/client-core';\nimport { MetadataFormElementRegistry } from './metadata-form-element-registry.service';\n\n/**\n * Directive to be applied to a `ng-template`. It will register the template as a\n * form element used by object-form component.\n *\n * Context is provided with the following fields:\n * - situation: form situation 'EDIT', 'CREATE', 'SEARCH'\n * - field: ObjectTypeField\n * - ngControl: Reactive FormControl\n *\n * @example\n * <ng-template yuvMetadataElementTemplate propertyType=\"boolean:switch\" let-ctx>...</ng-template>\n *\n */\n@Directive({\n selector: '[yuvMetadataElementTemplate]',\n standalone: true\n})\nexport class ObjectMetadataElementTemplateDirective implements OnInit, OnDestroy {\n #registry = inject(MetadataFormElementRegistry);\n #template = inject(TemplateRef<any>);\n\n /**\n * Bucket to register the template. Use 'default' for templates that should be\n * used across all situations.\n */\n @Input() yuvMetadataElementTemplate?: string;\n /**\n * Situation to register the template for. So only object forms for that\n * situation (CREATE, EDIT, SEARCH) will use the template. Defaults to `EDIT`.\n */\n situation = input<Situation>(Situation.EDIT);\n\n /**\n * Internal property type to get the registered template. You need to set either\n * `propertyType` or `propertyName` to get a template. Setting a name and\n * a type, the name will be used because it is more precise.\n */\n propertyType = input<string>();\n /**\n * Pick registered metadata element by name. You need to set either\n * `propertyType` or `propertyName` to get a template. Setting a name and\n * a type, the name will be used because it is more precise.\n */\n propertyName = input<string>();\n #registrationKey?: string;\n\n ngOnInit(): void {\n const pn = this.propertyName();\n this.#registrationKey = pn ? `${this.#registry.NAME_PROPERTY_PREFIX}${pn}` : this.propertyType();\n if (this.#registrationKey) {\n if (this.yuvMetadataElementTemplate === 'default') {\n this.#registry._addDefaultElementTemplate(this.#registrationKey, this.#template);\n } else this.#registry.addElementTemplate(this.#registrationKey, this.#template, this.situation());\n }\n }\n\n ngOnDestroy(): void {\n if (!this.#registrationKey) return;\n if (this.yuvMetadataElementTemplate === 'default') this.#registry._removeDefaultElementTemplate(this.#registrationKey);\n else this.#registry.removeElementTemplate(this.#registrationKey, this.situation());\n }\n}\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, effect, inject, input, signal, TemplateRef, untracked, ViewEncapsulation } from '@angular/core';\n\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\nimport { ObjectTypeField, Situation, SystemService } from '@yuuvis/client-core';\nimport { injectNgControl, NoopValueAccessorDirective } from '@yuuvis/client-framework/common';\nimport { Subject } from 'rxjs';\nimport { MetadataFormElementRegistry } from '../metadata-form-element-registry.service';\nimport { MetadataFormFieldContext, ParentFormChangedEvent } from './metadata-form-field.interface';\n\n\n\n/**\n * Component to render a metadata form field within an object form. These forms are\n * created to render and edit metadata of DMS objects. This component is used as a wrapper\n * for the actual form element, which is defined by the `formField` input.\n */\n@Component({\n selector: 'yuv-metadata-form-field',\n standalone: true,\n imports: [NgClass, NgTemplateOutlet, MatFormFieldModule],\n templateUrl: './metadata-form-field.component.html',\n styleUrl: './metadata-form-field.component.scss',\n hostDirectives: [NoopValueAccessorDirective],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'yuv-metadata-form-field'\n }\n})\nexport class MetadataFormFieldComponent {\n #registry = inject(MetadataFormElementRegistry);\n #system = inject(SystemService);\n\n #ngControl = injectNgControl();\n elementTemplate = signal<TemplateRef<any> | undefined>(undefined);\n readonly = false;\n\n formChangedSubject = input<Subject<ParentFormChangedEvent>>()\n formField = input.required<ObjectTypeField>({ alias: 'field' });\n #fieldEffect = effect(() => {\n const field = this.formField();\n\n untracked(() => {\n // check for template by name ...\n const templateByName = this.#registry.getElementTemplate(`${this.#registry.NAME_PROPERTY_PREFIX}${field.name}`, this.situation());\n if (templateByName) this.elementTemplate.set(templateByName);\n else {\n if (!field._internalType) field._internalType = this.#system.getInternalFormElementType(field.propertyType);\n this.elementTemplate.set(this.#registry.getElementTemplate(field._internalType, this.situation()));\n }\n // TODO: set readonly state based on ...????... schema?\n this.readonly = false;\n });\n });\n \n context = computed<MetadataFormFieldContext>(() => {\n const field = this.formField();\n field.required = this.situation() !== Situation.SEARCH ? field.required : false;\n return {\n label: field.label || field.name,\n description: field.description,\n situation: this.situation() || Situation.EDIT,\n field,\n ctrl: this.#ngControl?.control || undefined,\n formChangedSubject: this.formChangedSubject()\n };\n });\n\n /**\n * Form situation, if not set default will be 'EDIT'\n */\n situation = input<string | undefined>(Situation.EDIT);\n}\n","@let field = formField();\n@let et = elementTemplate();\n\n@if (field) {\n <div class=\"form-field t-{{ field._internalType }}\" #formField [attr.data-name]=\"field.name\" [ngClass]=\"{ disabled: !!readonly }\">\n @if (et) {\n <ng-container *ngTemplateOutlet=\"et; context: { $implicit: context() }\"></ng-container>\n } @else {\n <em>\n <strong>{{ field._internalType }}</strong>\n </em>\n }\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|