@yuuvis/client-framework 2.6.1 → 2.6.3

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.
@@ -4,9 +4,9 @@ import * as i0 from "@angular/core";
4
4
  /**
5
5
  * A directive that will overlay its host component with a translucent background
6
6
  * and a loading spinner once the condition resolves with true. This is useful for example to
7
- * prevent user intercation while component data is loading or some processing is done.
7
+ * prevent user interaction while component data is loading or some processing is done.
8
8
  *
9
- * It'll also prevent the overlayed element from beiong interacted with.
9
+ * It'll also prevent the overlaid element from being interacted with.
10
10
  *
11
11
  * ```html
12
12
  * <div class="data-panel" [yuvBusyOverlay]="isLoadingData">...</div>
@@ -49,8 +49,8 @@ export declare class BusyOverlayDirective implements OnInit, OnDestroy {
49
49
  yuvBusyOverlay: import("@angular/core").InputSignal<boolean>;
50
50
  /**
51
51
  * Configuration options for the busy overlay. These include
52
- * e.g. backdrops bacckground color and whether to blur the
53
- * overlayed content.
52
+ * e.g. backdrops background color and whether to blur the
53
+ * overlaid content.
54
54
  */
55
55
  yuvBusyOverlayConfig: import("@angular/core").InputSignal<BusyOverlayConfig | undefined>;
56
56
  /**
@@ -169,9 +169,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
169
169
  /**
170
170
  * A directive that will overlay its host component with a translucent background
171
171
  * and a loading spinner once the condition resolves with true. This is useful for example to
172
- * prevent user intercation while component data is loading or some processing is done.
172
+ * prevent user interaction while component data is loading or some processing is done.
173
173
  *
174
- * It'll also prevent the overlayed element from beiong interacted with.
174
+ * It'll also prevent the overlaid element from being interacted with.
175
175
  *
176
176
  * ```html
177
177
  * <div class="data-panel" [yuvBusyOverlay]="isLoadingData">...</div>
@@ -227,17 +227,15 @@ class BusyOverlayDirective {
227
227
  });
228
228
  /**
229
229
  * Configuration options for the busy overlay. These include
230
- * e.g. backdrops bacckground color and whether to blur the
231
- * overlayed content.
230
+ * e.g. backdrops background color and whether to blur the
231
+ * overlaid content.
232
232
  */
233
233
  this.yuvBusyOverlayConfig = input();
234
234
  /**
235
235
  * Error message to display in the overlay. If set, the loading spinner is replaced by the error message.
236
236
  */
237
237
  this.yuvBusyError = input();
238
- this.#yuvBusyErrorEffect = effect(() => {
239
- this.#busyOverlayComponentRef?.setInput('error', this.yuvBusyError());
240
- });
238
+ this.#yuvBusyErrorEffect = effect(() => this.#busyOverlayComponentRef?.setInput('error', this.yuvBusyError()));
241
239
  /**
242
240
  * Event emitted when the error message's dismiss action is triggered.
243
241
  */
@@ -292,9 +290,7 @@ class BusyOverlayDirective {
292
290
  this.#outputSubscriptions.forEach((sub) => sub.unsubscribe());
293
291
  this.#outputSubscriptions = [];
294
292
  const errorDismissOutput = this.#busyOverlayComponentRef.instance.errorDismiss;
295
- this.#outputSubscriptions.push(errorDismissOutput.subscribe(() => {
296
- this.yuvBusyErrorDismiss.emit();
297
- }));
293
+ this.#outputSubscriptions.push(errorDismissOutput.subscribe(() => this.yuvBusyErrorDismiss.emit()));
298
294
  }
299
295
  #addBusyOverlay() {
300
296
  this.stylePosition.set('relative');
@@ -313,7 +309,8 @@ class BusyOverlayDirective {
313
309
  }
314
310
  }
315
311
  ngOnInit() {
316
- this.#initialStylePosition.set(getComputedStyle(this.#elRef.nativeElement).position);
312
+ const initialPosition = getComputedStyle(this.#elRef.nativeElement).position;
313
+ this.#initialStylePosition.set(initialPosition === 'static' || !initialPosition ? 'relative' : initialPosition);
317
314
  }
318
315
  ngOnDestroy() {
319
316
  this.#detachOverlay();
@@ -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/components/busy-overlay/busy-overlay.component.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/busy-overlay/busy-overlay.component.html","../../../../../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/services/file-drop/file-drop.service.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/lib/components/halo-focus/halo-focus.component.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/halo-focus/halo-focus.component.html","../../../../../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 = headertitle() ?? 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 headertitle = input<string | null>(null);\n /**\n * @deprecated use headertitle instead\n */\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';\nimport { TranslateModule } from '@yuuvis/client-core';\n\n@Component({\n selector: 'yuv-confirm',\n imports: [CommonModule, MatButtonModule, TranslateModule, 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\n \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 || ('yuv.confirm.cancel' | translate) }}\n </button>\n }\n <button ymtButton=\"primary\" type=\"button\" [mat-dialog-close]=\"true\">{{ dialogData.confirmLabel || ('yuv.confirm.confirm' | translate) }}</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 { CommonModule } from '@angular/common';\nimport { Component, effect, input, output } from '@angular/core';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { BusyOverlayConfig } from './busy-overlay.interface';\nimport { MatIconModule } from '@angular/material/icon';\nimport { YmtIconButtonDirective } from '@yuuvis/material';\n\n@Component({\n selector: 'yuv-busy-overlay',\n imports: [CommonModule, \n YmtIconButtonDirective,\n MatIconModule,\n MatProgressSpinner],\n templateUrl: './busy-overlay.component.html',\n styleUrl: './busy-overlay.component.scss',\n host: {\n '[class.error]': '!!error()',\n '[class.blured]': '!!config()?.blur',\n '[style.--backdrop-background]': 'config()?.backdropColor || \"var(--ymt-surface-app)\"'\n }\n})\nexport class BusyOverlayComponent {\n config = input<BusyOverlayConfig>();\n error = input<string | undefined>(undefined);\n x = effect(() => {\n console.log('BusyOverlayComponent error changed:', this.error());\n });\n errorDismiss = output<void>();\n}\n","<div class=\"backdrop\"></div>\n\n@let e = error();\n@if (e) {\n <div class=\"error\">\n <button ymtIconButton icon-button-size=\"small\" (click)=\"errorDismiss.emit()\">\n <mat-icon>close</mat-icon>\n </button>\n <p>{{ e }}</p>\n </div>\n} @else {\n <mat-progress-spinner class=\"ymt-progress-spinner--giant\" [mode]=\"'indeterminate'\"></mat-progress-spinner>\n}\n","import {\n ComponentRef,\n Directive,\n effect,\n ElementRef,\n EnvironmentInjector,\n inject,\n input,\n OnDestroy,\n OnInit,\n output,\n signal,\n ViewContainerRef\n} from '@angular/core';\nimport { BusyOverlayComponent } from '../components/busy-overlay/busy-overlay.component';\nimport { BusyOverlayConfig } from '../components/busy-overlay/busy-overlay.interface';\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 prevent the overlayed element from beiong interacted with.\n *\n * ```html\n * <div class=\"data-panel\" [yuvBusyOverlay]=\"isLoadingData\">...</div>\n * ```\n * Setting a `yuvBusyError` will replace the loading spinner by the provided error message.\n * You need to keep the `yuvBusyOverlay` condition true to show the error.\n * The error element rendered has a dismiss/close action that trigger the `yuvBusyErrorDismiss`\n * output event, that you then can use to set the busy condition to false.\n *\n * ```html\n * <div class=\"result-list\"\n * [yuvBusyOverlay]=\"waitingForServerResponse\"\n * (yuvBusyErrorDismiss)=\"waitingForServerResponse = false\"\n * [yuvBusyError]=\"errorMessage\">\n * ...\n * </div>\n * ```\n *\n * ```ts\n * // in your component code\n * this.waitingForServerResponse = true;\n * fetchData().subscribe({\n * next: (data) => {\n * ...\n * this.waitingForServerResponse = false;\n * }\n * error: (err) => {\n * this.errorMessage = 'Failed to load data from server: ' + err.message;\n * }\n * });\n * ```\n *\n */\n@Directive({\n selector: '[yuvBusyOverlay]',\n standalone: true,\n host: {\n '[attr.aria-busy]': 'yuvBusyOverlay() ? \"true\" : \"false\"',\n '[style.position]': 'stylePosition()'\n }\n})\nexport class BusyOverlayDirective implements OnInit, OnDestroy {\n #initialStylePosition = signal<string>('initial');\n stylePosition = signal<string>(this.#initialStylePosition());\n\n #elRef = inject(ElementRef);\n #environmentInjector = inject(EnvironmentInjector);\n #vcRef = inject(ViewContainerRef);\n\n /**\n * The Boolean expression to evaluate as the condition for showing the busy overlay\n */\n yuvBusyOverlay = input<boolean>(false);\n #yuvBusyOverlayEffect = effect(() => {\n const busy = this.yuvBusyOverlay();\n if (busy === true) {\n this.#addBusyOverlay();\n } else {\n this.#removeBusyOverlay();\n }\n });\n\n /**\n * Configuration options for the busy overlay. These include\n * e.g. backdrops bacckground color and whether to blur the\n * overlayed content.\n */\n yuvBusyOverlayConfig = input<BusyOverlayConfig>();\n /**\n * Error message to display in the overlay. If set, the loading spinner is replaced by the error message.\n */\n yuvBusyError = input<string>();\n #yuvBusyErrorEffect = effect(() => {\n this.#busyOverlayComponentRef?.setInput('error', this.yuvBusyError());\n });\n /**\n * Event emitted when the error message's dismiss action is triggered.\n */\n yuvBusyErrorDismiss = output<void>();\n\n #busyOverlayComponentRef?: ComponentRef<BusyOverlayComponent>;\n #outputSubscriptions: Array<{ unsubscribe: () => void }> = [];\n\n #attachOverlay(): void {\n if (this.#busyOverlayComponentRef) {\n // Already attached; just refresh inputs/outputs\n this.#applyInputs();\n return;\n }\n // Create the component inside the directive’s host\n this.#busyOverlayComponentRef = this.#vcRef.createComponent(BusyOverlayComponent, {\n environmentInjector: this.#environmentInjector\n });\n\n const node: HTMLElement = this.#busyOverlayComponentRef.location.nativeElement;\n this.#elRef.nativeElement.appendChild(node);\n\n this.#applyInputs();\n this.#bindOutputs();\n this.#busyOverlayComponentRef.changeDetectorRef?.detectChanges?.();\n }\n\n #detachOverlay(): void {\n // Unsubscribe outputs first\n this.#outputSubscriptions.forEach((sub) => sub.unsubscribe());\n this.#outputSubscriptions = [];\n\n // Destroy componentRef and clear container\n if (this.#busyOverlayComponentRef) {\n this.#busyOverlayComponentRef.destroy();\n this.#busyOverlayComponentRef = undefined;\n }\n this.#vcRef.clear();\n }\n\n #applyInputs(): void {\n if (!this.#busyOverlayComponentRef) return;\n this.#busyOverlayComponentRef.setInput('config', this.yuvBusyOverlayConfig());\n this.#busyOverlayComponentRef.setInput('error', this.yuvBusyError());\n }\n\n #bindOutputs(): void {\n if (!this.#busyOverlayComponentRef) return;\n // Clean up old subscriptions if re-binding\n this.#outputSubscriptions.forEach((sub) => sub.unsubscribe());\n this.#outputSubscriptions = [];\n const errorDismissOutput = this.#busyOverlayComponentRef.instance.errorDismiss;\n this.#outputSubscriptions.push(\n errorDismissOutput.subscribe(() => {\n this.yuvBusyErrorDismiss.emit();\n })\n );\n }\n\n #addBusyOverlay() {\n this.stylePosition.set('relative');\n this.#attachOverlay();\n }\n\n #removeBusyOverlay() {\n if (!this.#busyOverlayComponentRef) return;\n const el = this.#busyOverlayComponentRef.location.nativeElement;\n if (el) {\n el.style.opacity = '0';\n setTimeout(() => {\n this.#detachOverlay();\n this.stylePosition.set(this.#initialStylePosition());\n }, 200);\n }\n }\n\n ngOnInit() {\n this.#initialStylePosition.set(getComputedStyle(this.#elRef.nativeElement).position);\n }\n\n ngOnDestroy() {\n this.#detachOverlay();\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 { Injectable, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FileDropService {\n\n readonly activeDropZone = signal<string | null>(null);\n\n fileOver(id: string, active: boolean) {\n this.activeDropZone.set(active ? id : null);\n }\n}\n","import { computed, Directive, effect, ElementRef, HostListener, inject, input, output } from '@angular/core';\nimport { Utils } from '@yuuvis/client-core';\nimport { FileDropZoneOptions } from './file-drop-zone.interface';\nimport { FileDropService } from '../../services/file-drop/file-drop.service';\n\n@Directive({\n selector: '[yuvFileDropZone]',\n standalone: true\n})\nexport class FileDropZoneDirective {\n #elRef = inject(ElementRef);\n #fileDropService = inject(FileDropService);\n\n #coverElement?: HTMLElement;\n // ID to track the element\n #id = crypto.randomUUID();\n\n active = computed(() => {\n const fileOver = this.#fileDropService.activeDropZone() === this.#id;\n this.fileDropOver.emit(fileOver);\n return fileOver;\n });\n\n #activeEffect = effect(() => {\n this.#toggleCover(this.active());\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.#fileDropService.fileOver(this.#id, 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.#fileDropService.fileOver(this.#id, 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.#fileDropService.fileOver(this.#id, 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(active: boolean) {\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 (active) {\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.classList.add('yuv-file-drop-zone-cover');\n coverElement.setAttribute('id', this.#id);\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 coverElement.classList.add('yuv-file-drop-zone-label');\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","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'yuv-halo-focus',\n imports: [CommonModule],\n templateUrl: './halo-focus.component.html',\n styleUrl: './halo-focus.component.scss'\n})\nexport class HaloFocusComponent {\n // #haloFocusService = inject(HaloFocusService);\n}\n","<p>halo-focus works!</p>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TranslateModule","i1","i2"],"mappings":"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"}
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/components/busy-overlay/busy-overlay.component.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/busy-overlay/busy-overlay.component.html","../../../../../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/services/file-drop/file-drop.service.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/lib/components/halo-focus/halo-focus.component.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/halo-focus/halo-focus.component.html","../../../../../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 = headertitle() ?? 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 headertitle = input<string | null>(null);\n /**\n * @deprecated use headertitle instead\n */\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';\nimport { TranslateModule } from '@yuuvis/client-core';\n\n@Component({\n selector: 'yuv-confirm',\n imports: [CommonModule, MatButtonModule, TranslateModule, 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\n \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 || ('yuv.confirm.cancel' | translate) }}\n </button>\n }\n <button ymtButton=\"primary\" type=\"button\" [mat-dialog-close]=\"true\">{{ dialogData.confirmLabel || ('yuv.confirm.confirm' | translate) }}</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 { CommonModule } from '@angular/common';\nimport { Component, effect, input, output } from '@angular/core';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { BusyOverlayConfig } from './busy-overlay.interface';\nimport { MatIconModule } from '@angular/material/icon';\nimport { YmtIconButtonDirective } from '@yuuvis/material';\n\n@Component({\n selector: 'yuv-busy-overlay',\n imports: [CommonModule, \n YmtIconButtonDirective,\n MatIconModule,\n MatProgressSpinner],\n templateUrl: './busy-overlay.component.html',\n styleUrl: './busy-overlay.component.scss',\n host: {\n '[class.error]': '!!error()',\n '[class.blured]': '!!config()?.blur',\n '[style.--backdrop-background]': 'config()?.backdropColor || \"var(--ymt-surface-app)\"'\n }\n})\nexport class BusyOverlayComponent {\n config = input<BusyOverlayConfig>();\n error = input<string | undefined>(undefined);\n x = effect(() => {\n console.log('BusyOverlayComponent error changed:', this.error());\n });\n errorDismiss = output<void>();\n}\n","<div class=\"backdrop\"></div>\n\n@let e = error();\n@if (e) {\n <div class=\"error\">\n <button ymtIconButton icon-button-size=\"small\" (click)=\"errorDismiss.emit()\">\n <mat-icon>close</mat-icon>\n </button>\n <p>{{ e }}</p>\n </div>\n} @else {\n <mat-progress-spinner class=\"ymt-progress-spinner--giant\" [mode]=\"'indeterminate'\"></mat-progress-spinner>\n}\n","import {\n ComponentRef,\n Directive,\n effect,\n ElementRef,\n EnvironmentInjector,\n inject,\n input,\n OnDestroy,\n OnInit,\n output,\n signal,\n ViewContainerRef\n} from '@angular/core';\nimport { BusyOverlayComponent } from '../components/busy-overlay/busy-overlay.component';\nimport { BusyOverlayConfig } from '../components/busy-overlay/busy-overlay.interface';\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 interaction while component data is loading or some processing is done.\n *\n * It'll also prevent the overlaid element from being interacted with.\n *\n * ```html\n * <div class=\"data-panel\" [yuvBusyOverlay]=\"isLoadingData\">...</div>\n * ```\n * Setting a `yuvBusyError` will replace the loading spinner by the provided error message.\n * You need to keep the `yuvBusyOverlay` condition true to show the error.\n * The error element rendered has a dismiss/close action that trigger the `yuvBusyErrorDismiss`\n * output event, that you then can use to set the busy condition to false.\n *\n * ```html\n * <div class=\"result-list\"\n * [yuvBusyOverlay]=\"waitingForServerResponse\"\n * (yuvBusyErrorDismiss)=\"waitingForServerResponse = false\"\n * [yuvBusyError]=\"errorMessage\">\n * ...\n * </div>\n * ```\n *\n * ```ts\n * // in your component code\n * this.waitingForServerResponse = true;\n * fetchData().subscribe({\n * next: (data) => {\n * ...\n * this.waitingForServerResponse = false;\n * }\n * error: (err) => {\n * this.errorMessage = 'Failed to load data from server: ' + err.message;\n * }\n * });\n * ```\n *\n */\n@Directive({\n selector: '[yuvBusyOverlay]',\n standalone: true,\n host: {\n '[attr.aria-busy]': 'yuvBusyOverlay() ? \"true\" : \"false\"',\n '[style.position]': 'stylePosition()'\n }\n})\nexport class BusyOverlayDirective implements OnInit, OnDestroy {\n #initialStylePosition = signal<string>('initial');\n stylePosition = signal<string>(this.#initialStylePosition());\n\n #elRef = inject(ElementRef);\n #environmentInjector = inject(EnvironmentInjector);\n #vcRef = inject(ViewContainerRef);\n\n /**\n * The Boolean expression to evaluate as the condition for showing the busy overlay\n */\n yuvBusyOverlay = input<boolean>(false);\n #yuvBusyOverlayEffect = effect(() => {\n const busy = this.yuvBusyOverlay();\n if (busy === true) {\n this.#addBusyOverlay();\n } else {\n this.#removeBusyOverlay();\n }\n });\n\n /**\n * Configuration options for the busy overlay. These include\n * e.g. backdrops background color and whether to blur the\n * overlaid content.\n */\n yuvBusyOverlayConfig = input<BusyOverlayConfig>();\n /**\n * Error message to display in the overlay. If set, the loading spinner is replaced by the error message.\n */\n yuvBusyError = input<string>();\n #yuvBusyErrorEffect = effect(() => this.#busyOverlayComponentRef?.setInput('error', this.yuvBusyError()));\n /**\n * Event emitted when the error message's dismiss action is triggered.\n */\n yuvBusyErrorDismiss = output<void>();\n\n #busyOverlayComponentRef?: ComponentRef<BusyOverlayComponent>;\n #outputSubscriptions: Array<{ unsubscribe: () => void }> = [];\n\n #attachOverlay(): void {\n if (this.#busyOverlayComponentRef) {\n // Already attached; just refresh inputs/outputs\n this.#applyInputs();\n return;\n }\n // Create the component inside the directive’s host\n this.#busyOverlayComponentRef = this.#vcRef.createComponent(BusyOverlayComponent, {\n environmentInjector: this.#environmentInjector\n });\n\n const node: HTMLElement = this.#busyOverlayComponentRef.location.nativeElement;\n this.#elRef.nativeElement.appendChild(node);\n\n this.#applyInputs();\n this.#bindOutputs();\n this.#busyOverlayComponentRef.changeDetectorRef?.detectChanges?.();\n }\n\n #detachOverlay(): void {\n // Unsubscribe outputs first\n this.#outputSubscriptions.forEach((sub) => sub.unsubscribe());\n this.#outputSubscriptions = [];\n\n // Destroy componentRef and clear container\n if (this.#busyOverlayComponentRef) {\n this.#busyOverlayComponentRef.destroy();\n this.#busyOverlayComponentRef = undefined;\n }\n this.#vcRef.clear();\n }\n\n #applyInputs(): void {\n if (!this.#busyOverlayComponentRef) return;\n this.#busyOverlayComponentRef.setInput('config', this.yuvBusyOverlayConfig());\n this.#busyOverlayComponentRef.setInput('error', this.yuvBusyError());\n }\n\n #bindOutputs(): void {\n if (!this.#busyOverlayComponentRef) return;\n // Clean up old subscriptions if re-binding\n this.#outputSubscriptions.forEach((sub) => sub.unsubscribe());\n this.#outputSubscriptions = [];\n const errorDismissOutput = this.#busyOverlayComponentRef.instance.errorDismiss;\n this.#outputSubscriptions.push(errorDismissOutput.subscribe(() => this.yuvBusyErrorDismiss.emit()));\n }\n\n #addBusyOverlay() {\n this.stylePosition.set('relative');\n this.#attachOverlay();\n }\n\n #removeBusyOverlay() {\n if (!this.#busyOverlayComponentRef) return;\n const el = this.#busyOverlayComponentRef.location.nativeElement;\n if (el) {\n el.style.opacity = '0';\n setTimeout(() => {\n this.#detachOverlay();\n this.stylePosition.set(this.#initialStylePosition());\n }, 200);\n }\n }\n\n ngOnInit() {\n const initialPosition = getComputedStyle(this.#elRef.nativeElement).position;\n this.#initialStylePosition.set(initialPosition === 'static' || !initialPosition ? 'relative' : initialPosition);\n }\n\n ngOnDestroy() {\n this.#detachOverlay();\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 { Injectable, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FileDropService {\n\n readonly activeDropZone = signal<string | null>(null);\n\n fileOver(id: string, active: boolean) {\n this.activeDropZone.set(active ? id : null);\n }\n}\n","import { computed, Directive, effect, ElementRef, HostListener, inject, input, output } from '@angular/core';\nimport { Utils } from '@yuuvis/client-core';\nimport { FileDropZoneOptions } from './file-drop-zone.interface';\nimport { FileDropService } from '../../services/file-drop/file-drop.service';\n\n@Directive({\n selector: '[yuvFileDropZone]',\n standalone: true\n})\nexport class FileDropZoneDirective {\n #elRef = inject(ElementRef);\n #fileDropService = inject(FileDropService);\n\n #coverElement?: HTMLElement;\n // ID to track the element\n #id = crypto.randomUUID();\n\n active = computed(() => {\n const fileOver = this.#fileDropService.activeDropZone() === this.#id;\n this.fileDropOver.emit(fileOver);\n return fileOver;\n });\n\n #activeEffect = effect(() => {\n this.#toggleCover(this.active());\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.#fileDropService.fileOver(this.#id, 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.#fileDropService.fileOver(this.#id, 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.#fileDropService.fileOver(this.#id, 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(active: boolean) {\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 (active) {\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.classList.add('yuv-file-drop-zone-cover');\n coverElement.setAttribute('id', this.#id);\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 coverElement.classList.add('yuv-file-drop-zone-label');\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","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'yuv-halo-focus',\n imports: [CommonModule],\n templateUrl: './halo-focus.component.html',\n styleUrl: './halo-focus.component.scss'\n})\nexport class HaloFocusComponent {\n // #haloFocusService = inject(HaloFocusService);\n}\n","<p>halo-focus works!</p>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TranslateModule","i1","i2"],"mappings":"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"}
@@ -1116,8 +1116,8 @@ class OrganizationComponent extends AbstractMatFormField {
1116
1116
  writeValue(value) {
1117
1117
  this.value = value;
1118
1118
  if (value) {
1119
- if (typeof value === 'string' && this.#isMetadataString(value)) {
1120
- const parsedMetadata = JSON.parse(value);
1119
+ const parsedMetadata = this.#getMetadataString(value);
1120
+ if (parsedMetadata) {
1121
1121
  this.#updateAutocompleteControl(Array.isArray(parsedMetadata) ? parsedMetadata : [parsedMetadata]);
1122
1122
  }
1123
1123
  else {
@@ -1193,13 +1193,17 @@ class OrganizationComponent extends AbstractMatFormField {
1193
1193
  #resolveOrganizationSet(query, filterRoles) {
1194
1194
  return this.#idmService.queryOrganizationEntity(query, filterRoles).pipe(mapOrganizationNode(this.innerValue), catchError(() => of([])));
1195
1195
  }
1196
- #isMetadataString(value) {
1196
+ #getMetadataString(value) {
1197
1197
  try {
1198
- JSON.parse(value);
1199
- return true;
1198
+ if (Array.isArray(value)) {
1199
+ return value.map(v => JSON.parse(v));
1200
+ }
1201
+ else {
1202
+ return JSON.parse(value);
1203
+ }
1200
1204
  }
1201
1205
  catch (e) {
1202
- return false;
1206
+ return undefined;
1203
1207
  }
1204
1208
  }
1205
1209
  autocompleteFn(query) {