@yuuvis/client-framework 2.4.3 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/lib/components/busy-overlay/busy-overlay.component.d.ts +10 -0
- package/common/lib/components/busy-overlay/busy-overlay.interface.d.ts +4 -0
- package/common/lib/components/dialog/dialog.component.d.ts +5 -1
- package/common/lib/components/index.d.ts +1 -0
- package/common/lib/directives/busy-overlay.directive.d.ts +51 -13
- package/fesm2022/yuuvis-client-framework-actions.mjs +1 -1
- package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-common.mjs +166 -74
- package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-forms.mjs +31 -22
- package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-details.mjs +28 -32
- package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs +2 -2
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-relationship.mjs +3 -3
- package/fesm2022/yuuvis-client-framework-object-relationship.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-summary.mjs +1 -1
- package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-versions.mjs +1 -1
- package/fesm2022/yuuvis-client-framework-object-versions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-tile-list.mjs +46 -46
- package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-widget-grid.mjs +2 -2
- package/fesm2022/yuuvis-client-framework-widget-grid.mjs.map +1 -1
- package/forms/lib/elements/catalog/catalog.component.d.ts +4 -1
- package/forms/lib/elements/data-grid/data-grid/data-grid.component.d.ts +0 -1
- package/forms/lib/elements/data-grid/model/data-grid.interface.d.ts +6 -0
- package/object-details/lib/object-details-header/object-details-header.component.d.ts +9 -7
- package/object-details/lib/object-details-shell/object-details-shell.component.d.ts +3 -1
- package/object-details/lib/object-details.component.d.ts +3 -1
- package/object-details/lib/object-metadata/object-metadata.component.d.ts +2 -2
- package/package.json +4 -4
- package/tile-list/lib/tile-list/tile-list.component.d.ts +2 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yuuvis-client-framework-common.mjs","sources":["../../../../../libs/yuuvis/client-framework/common/src/lib/components/dialog/dialog.component.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/confirm/confirm.component.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/confirm/confirm.component.html","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/autofocus-child.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/autofocus-delayed.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/busy-overlay.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/click-double.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/container-size.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/drag-scroll.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/drag-select.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/file-drop-zone/file-drop-zone.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/focus-within.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/light-dismiss.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/longpress.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/noop-value-accessor.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/common.module.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/common.utils.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/services/layout-settings/layout-settings.service.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/services/form-translate/form-translate.service.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/mat-form-field.abstract.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/dialog/dialog.options.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/retention-badge/retention-badge.component.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/retention-badge/retention-badge.component.html","../../../../../libs/yuuvis/client-framework/common/src/lib/components/confirm/confirm.service.ts","../../../../../libs/yuuvis/client-framework/common/src/yuuvis-client-framework-common.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { MatDialogActions, MatDialogContent, MatDialogTitle } from '@angular/material/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'yuv-dialog',\n imports: [TranslateModule, MatDialogActions, MatDialogTitle, MatDialogContent],\n template: `\n @let title = headertitel();\n @if (title) {\n <h2 mat-dialog-title>{{ title }}</h2>\n }\n <mat-dialog-content>\n <ng-content select=\"main\"></ng-content>\n </mat-dialog-content>\n\n <mat-dialog-actions align=\"end\" class=\"footer\">\n <ng-content select=\"footer\"></ng-content>\n </mat-dialog-actions>\n `,\n styleUrl: './dialog.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DialogComponent {\n headertitel = input<string | null>(null);\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { ConfirmOverlayData } from './confirm.interface';\nimport { DialogComponent } from '../dialog/dialog.component';\nimport { YmtButtonDirective } from '@yuuvis/material';\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 // readonly #dialogRef = inject(MatDialogRef<ConfirmComponent>);\n}\n","<yuv-dialog [headertitel]=\"dialogData.title || ''\">\n <main>{{ dialogData.message }}</main>\n <footer>\n @if (!dialogData.hideCancelButton) {\n <button ymtButton=\"secondary\" mat-dialog-close type=\"button\">\n {{ dialogData.cancelLabel || ('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 { Directive, ElementRef, HostBinding, Input, OnInit, inject, createComponent, EnvironmentInjector, ApplicationRef, input } from '@angular/core';\nimport { Utils } from '@yuuvis/client-core';\nimport { MatProgressSpinner, ProgressSpinnerMode } from '@angular/material/progress-spinner';\n\n\nexport interface BusyOverlayConfig {\n // color token to use for the backdrop. Defaults to 'ymt-surface-app'\n backdropColor?: string;\n // whether to blur the background of the backdrop\n blur?: boolean;\n}\n\n/**\n * A directive that will overlay its host component with a translucent background\n * and a loading spinner once the condition resolves with true. This is useful for example to\n * prevent user intercation while component data is loading or some processing is done.\n *\n * It'll also set the `inert` attribute on the host element. This will disable the host and\n * all elements inside (like buttons, inputs etc.)\n *\n * @example\n * <div class=\"result-list\" [yuvBusyOverlay]=\"waitingForServerResponse\">...</div>\n *\n */\n@Directive({\n selector: '[yuvBusyOverlay]',\n standalone: true\n})\nexport class BusyOverlayDirective implements OnInit {\n @HostBinding('style.position') stylePosition = 'initial';\n\n #elRef = inject(ElementRef);\n #environmentInjector = inject(EnvironmentInjector);\n #applicationRef = inject(ApplicationRef);\n\n #overlayId: string | null = null;\n /**\n * The Boolean expression to evaluate as the condition for showing the busy overlay\n */\n @Input() set yuvBusyOverlay(b: boolean) {\n if (b === true) {\n this.#addBusyOverlay();\n } else if (this.#overlayId) {\n this.#removeBusyOverlay();\n }\n }\n\n yuvBusyOverlayConfig = input<BusyOverlayConfig>();\n\n #createSpinner(mode: ProgressSpinnerMode = 'indeterminate', value: MatProgressSpinner['value'] = 0) {\n const componentRef = createComponent(MatProgressSpinner, {\n environmentInjector: this.#environmentInjector\n });\n this.#applicationRef.attachView(componentRef.hostView);\n componentRef.changeDetectorRef.detectChanges();\n componentRef.setInput('mode', mode);\n componentRef.setInput('value', value);\n (componentRef.location.nativeElement as HTMLElement).classList.add('ymt-progress-spinner--giant');\n return componentRef;\n }\n\n #addBusyOverlay() {\n this.stylePosition = 'relative';\n const overlay = document.createElement('div');\n overlay.style.position = 'absolute';\n overlay.style.transition = 'opacity 200ms';\n overlay.style.opacity = '0';\n overlay.style.inset = '0';\n overlay.style.display = 'grid';\n overlay.style.alignItems = 'center';\n overlay.style.justifyContent = 'center';\n overlay.style.zIndex = '5';\n const backdropBackground = this.yuvBusyOverlayConfig()?.backdropColor || 'var(--ymt-surface-app)';\n overlay.style.backgroundColor = `rgb(from ${backdropBackground} r g b / .5)`;\n if (this.yuvBusyOverlayConfig()?.blur) {\n overlay.style.backdropFilter = 'blur(2px)';\n }\n\n this.#overlayId = `p${Utils.uuid()}`;\n overlay.setAttribute('id', this.#overlayId);\n overlay.append(this.#createSpinner('indeterminate').location.nativeElement);\n const el = this.#elRef.nativeElement as HTMLElement;\n el.setAttribute('inert', '');\n el.append(overlay);\n setTimeout(() => {\n overlay.style.opacity = '1';\n });\n }\n\n #removeBusyOverlay() {\n const el = this.#elRef.nativeElement.querySelector(`#${this.#overlayId}`);\n if (el) {\n el.style.opacity = '0';\n setTimeout(() => {\n el.remove();\n }, 200);\n }\n this.#elRef.nativeElement.removeAttribute('inert');\n this.#overlayId = null;\n }\n\n ngOnInit() {\n this.stylePosition = getComputedStyle(this.#elRef.nativeElement).position;\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n/**\n * Fixes the issue of 'click' event beeing triggered on 'doubleclick' by defining new outputs that\n * distinguish between single and double click.\n */\n@Directive({\n selector: '[click.single],[click.double]',\n standalone: true\n})\nexport class ClickDoubleDirective {\n @Input() debounceTime = 200;\n @Output('click.double') doubleClick = new EventEmitter();\n @Output('click.single') singleClick = new EventEmitter();\n\n private clicksSubject = new Subject<MouseEvent>();\n\n constructor() {\n this.clicksSubject.pipe(takeUntilDestroyed(), debounceTime(this.debounceTime)).subscribe({\n next: (event) => {\n if (event.type === 'click') {\n this.singleClick.emit(event);\n } else {\n this.doubleClick.emit(event);\n }\n }\n });\n }\n\n @HostListener('click', ['$event'])\n clickEvent(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.clicksSubject.next(event);\n }\n @HostListener('dblclick', ['$event'])\n doubleClickEvent(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.clicksSubject.next(event);\n }\n}\n","import { Directive, ElementRef, NgZone, OnDestroy, inject, output } from '@angular/core';\n\n/**\n * Directive to watch the size of an element inside the DOM. Usefull for example to provide\n * a different layout (different components) depending on the available screen estate. You\n * should first try to use CSS container queries but somtimes you need a different set of\n * components to be loaded for a certain component size.\n *\n * Let's say you have components designed for bigger screens. You do not want to load them\n * if there is not enough space for them. So you rather load components that are designed to\n * take less space by providing the best user experience on smaller devices.\n *\n * ```html\n * <div yuvContainerSize (containerHeight)=\"onContainerResize($event)\" (containerWidth)=\"onContainerResize($event)\"></div>\n * ```\n *\n */\n@Directive({\n selector: '[yuvContainerSize]',\n standalone: true\n})\nexport class ContainerSizeDirective implements OnDestroy {\n private elRef = inject(ElementRef);\n private ngZone = inject(NgZone);\n\n containerHeight = output<number>();\n containerWidth = output<number>();\n\n private _size?: ResizeObserverSize;\n private _resizeObserver = new ResizeObserver((entries) => {\n const size = entries[0].borderBoxSize[0];\n if (!this._size || size.blockSize !== this._size.blockSize) {\n this._emit(size.blockSize, true);\n }\n if (!this._size || size.inlineSize !== this._size.inlineSize) {\n this._emit(size.inlineSize);\n }\n this._size = size;\n });\n\n constructor() {\n this._resizeObserver.observe(this.elRef.nativeElement);\n }\n\n private _emit(value: number, isHeight = false) {\n // ResizeObserver callback is not covered by change detection\n // so it has to be executed withing ngZone\n this.ngZone.run(() => {\n (isHeight ? this.containerHeight : this.containerWidth).emit(value);\n });\n }\n\n ngOnDestroy(): void {\n this._resizeObserver.unobserve(this.elRef.nativeElement);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, Directive, ElementRef, inject } from '@angular/core';\nimport { fromEvent, Observable } from 'rxjs';\nimport { filter, map, switchMap, takeUntil, tap } from 'rxjs/operators';\n\n/**\n * Directive for adding drag scroll behaviour to a container element. Elements that overlow will then\n * be 'scrollable' by dragging the list of children.\n *\n * @example\n * <div yuvDragScroll>\n * <div class=\"tile\">#1</div>\n * <div class=\"tile\">#2</div>\n * <div class=\"tile\">#3</div>\n * ...\n * </div>\n */\n@Directive({\n selector: '[yuvDragScroll]'\n})\nexport class DragScrollDirective implements AfterViewInit {\n readonly #document = inject(DOCUMENT);\n readonly #element = inject(ElementRef);\n #dragging = false;\n\n #applyDraggingStyles(el: HTMLElement, remove?: boolean) {\n const draggingStyles: { [property: string]: string } = {\n cursor: 'grabbing'\n };\n Object.keys(draggingStyles).forEach((property) => {\n if (remove) {\n el.style.removeProperty(property);\n } else {\n el.style.setProperty(property, draggingStyles[property]);\n }\n });\n }\n\n ngAfterViewInit(): void {\n const nativeElement: HTMLElement = this.#element.nativeElement;\n const mouseDown$: Observable<MouseEvent> = fromEvent<MouseEvent>(nativeElement, 'mousedown');\n const mouseMove$: Observable<MouseEvent> = fromEvent<MouseEvent>(this.#document, 'mousemove');\n const mouseUp$: Observable<MouseEvent> = fromEvent<MouseEvent>(this.#document, 'mouseup').pipe(\n tap((e: MouseEvent) => {\n if (this.#dragging) {\n e.preventDefault();\n e.stopPropagation();\n this.#dragging = false;\n this.#applyDraggingStyles(nativeElement, true);\n }\n })\n );\n\n const dragMove$ = mouseDown$.pipe(\n filter(\n () =>\n // only calculate new scroll position if the container is actually overflowing\n nativeElement.scrollHeight > nativeElement.clientHeight || nativeElement.scrollWidth > nativeElement.clientWidth\n ),\n tap((startEvent: MouseEvent) => {\n this.#applyDraggingStyles(nativeElement);\n startEvent.preventDefault();\n startEvent.stopPropagation();\n }),\n switchMap((startEvent: MouseEvent) => {\n this.#dragging = true;\n const scrollPos = {\n left: nativeElement.scrollLeft,\n top: nativeElement.scrollTop\n };\n return mouseMove$.pipe(\n map((moveEvent: MouseEvent) => {\n moveEvent.preventDefault();\n moveEvent.stopPropagation();\n return {\n startEvent,\n moveEvent,\n scrollPos\n };\n }),\n takeUntil(mouseUp$)\n );\n }),\n\n tap(({ startEvent, moveEvent, scrollPos }) => {\n const diffX = moveEvent.clientX - startEvent.clientX;\n const diffY = moveEvent.clientY - startEvent.clientY;\n nativeElement.scrollLeft = scrollPos.left - diffX;\n nativeElement.scrollTop = scrollPos.top - diffY;\n })\n );\n dragMove$.subscribe();\n }\n}\n","import { computed, contentChildren, Directive, ElementRef, HostListener, inject, input, output } from '@angular/core';\n\ninterface SelectableRect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface DragSelectOptions {\n disabled?: boolean;\n selectorColor?: string;\n}\n\n@Directive({\n selector: '[yuvDragSelect]',\n standalone: true\n})\nexport class DragSelectDirective {\n #selector?: HTMLDivElement;\n #selectStartX = 0;\n #selectStartY = 0;\n\n #selection: number[] = [];\n\n @HostListener('pointerdown', ['$event']) onPointerDown(event: PointerEvent) {\n if (this.yuvDragSelect()?.disabled || (event.target as HTMLElement).tagName === 'BUTTON') return;\n event.preventDefault();\n this.#selectStartX = event.pageX;\n this.#selectStartY = event.pageY;\n\n const div = document.createElement('div');\n div.style.position = 'absolute';\n div.style.width = '0';\n div.style.height = '0';\n div.style.left = this.#selectStartX + 'px';\n div.style.top = this.#selectStartY + 'px';\n div.classList.add('drag-select');\n this.#selector = div;\n document.body.append(this.#selector);\n\n this.#selection = [];\n addEventListener('pointermove', this.#resize);\n addEventListener('pointerup', this.#onPointerUp);\n }\n\n items = contentChildren(DragSelectItemDirective);\n #selectables = computed(() => this.items().map((item) => item.el));\n\n yuvDragSelect = input<DragSelectOptions>();\n dragSelectChange = output<number[]>();\n dragSelect = output<number[]>();\n\n #onPointerUp = () => {\n removeEventListener('pointermove', this.#resize);\n removeEventListener('pointerup', this.#onPointerUp);\n if (this.#selection.length) this.dragSelect.emit(this.#selection);\n if (this.#selector) this.#selector.remove();\n };\n\n #resize = (event: PointerEvent) => {\n if (!this.#selector) return;\n const diffX = event.pageX - this.#selectStartX;\n const diffY = event.pageY - this.#selectStartY;\n this.#selector.style.left = diffX < 0 ? this.#selectStartX + diffX + 'px' : this.#selectStartX + 'px';\n this.#selector.style.top = diffY < 0 ? this.#selectStartY + diffY + 'px' : this.#selectStartY + 'px';\n this.#selector.style.height = Math.abs(diffY) + 'px';\n this.#selector.style.width = Math.abs(diffX) + 'px';\n\n this.#selector.style.border = `1px solid ${this.yuvDragSelect()?.selectorColor || 'var(--ymt-primary'}`;\n this.#checkSelected();\n };\n\n #checkSelected = () => {\n if (!this.#selector) return;\n const select = this.#selector.getBoundingClientRect();\n const { x, y, height, width } = select;\n if (!height || !width) return;\n\n const currSelectionLength = this.#selection.length;\n this.#selectables().forEach((selectable, idx) => {\n const r1: SelectableRect = { x: x + window.scrollX, y: y + window.scrollY, height, width };\n const r2: SelectableRect = selectable.getBoundingClientRect();\n this.#selection = this.#selection.filter((s) => s !== idx);\n if (this.#checkRectIntersection(r1, r2)) {\n this.#selection.push(idx);\n }\n });\n\n if (currSelectionLength !== this.#selection.length) {\n this.dragSelectChange.emit(this.#selection);\n }\n };\n\n #checkRectIntersection = (r1: SelectableRect, r2: SelectableRect) => {\n return !(r1.x + r1.width < r2.x || r2.x + r2.width < r1.x || r1.y + r1.height < r2.y || r2.y + r2.height < r1.y);\n };\n}\n\n@Directive({\n selector: '[yuvDragSelectItem]',\n standalone: true\n})\nexport class DragSelectItemDirective {\n #elRef = inject(ElementRef);\n el = this.#elRef.nativeElement as HTMLElement;\n}\n","import { Directive, ElementRef, HostListener, inject, input, output } from '@angular/core';\nimport { Utils } from '@yuuvis/client-core';\nimport { FileDropZoneOptions } from './file-drop-zone.interface';\n\n@Directive({\n selector: '[yuvFileDropZone]',\n standalone: true\n})\nexport class FileDropZoneDirective {\n #elRef = inject(ElementRef);\n\n #coverElement?: HTMLElement;\n\n #fileOver = false;\n set fileOver(fo: boolean) {\n if (fo !== this.#fileOver) {\n this.#fileOver = fo;\n this.fileDropOver.emit(fo);\n this.#toggleCover();\n }\n }\n get fileOver() {\n return this.#fileOver;\n }\n\n #defaultDragOverCoverStyles: Record<string, string> = {\n // outline: '2px dashed var(--ymt-primary)',\n display: 'flex',\n transition: 'background-color .3s ease-in-out',\n 'z-index': '500',\n 'align-items': 'center',\n 'justify-content': 'center',\n 'outline-offset': '-2px',\n 'background-color': 'rgb(from var(--ymt-primary) r g b / .5)'\n };\n\n #defaultDragOverCoverLabelStyles: Record<string, string> = {\n outline: '1px solid var(--ymt-primary)',\n\n padding: 'var(--ymt-spacing-m, 16px)',\n 'background-color': 'rgb(from var(--ymt-primary) r g b / 0.9)',\n color: 'var(--ymt-on-primary)'\n };\n\n yuvFileDropZone = input<FileDropZoneOptions>();\n fileDropDisabled = input<boolean>(false);\n\n fileDrop = output<File[]>();\n fileDropOver = output<boolean>();\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n if (this.fileDropDisabled()) return;\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = false;\n\n const dataTransfer: DataTransfer | null = event.dataTransfer;\n\n if (dataTransfer) {\n if (dataTransfer?.items) {\n const files: File[] = [];\n for (let i = 0; i < dataTransfer.items.length; i++) {\n // If dropped items aren't files, reject them\n if (dataTransfer.items[i].kind === 'file') {\n const file = dataTransfer.items[i].getAsFile();\n if (file) files.push(file);\n }\n }\n dataTransfer.items.clear();\n this.fileDrop.emit(files);\n } else {\n const files = dataTransfer.files;\n dataTransfer.clearData();\n this.fileDrop.emit(Array.from(files));\n }\n }\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n if (this.fileDropDisabled()) return;\n event.stopPropagation();\n event.preventDefault();\n this.fileOver = true;\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n if (this.fileDropDisabled()) return;\n if ((event.target as HTMLElement).getAttribute('id') === this.#coverElement?.getAttribute('id')) {\n this.fileOver = false;\n }\n }\n\n @HostListener('body:dragover', ['$event'])\n onBodyDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n @HostListener('body:drop', ['$event'])\n onBodyDrop(event: DragEvent) {\n event.preventDefault();\n }\n\n #toggleCover() {\n const el: HTMLElement = this.#elRef.nativeElement as HTMLElement;\n\n if (this.#coverElement) {\n el.style.position = 'initial';\n this.#coverElement.remove();\n this.#coverElement = undefined;\n }\n if (this.#fileOver) {\n el.style.position = 'relative';\n this.#coverElement = this.#createCoverElement();\n el.append(this.#coverElement);\n }\n }\n\n #createCoverElement(): HTMLElement {\n const coverElement = document.createElement('div');\n coverElement.classList.add('yuv-file-drop-zone-cover');\n coverElement.setAttribute('id', Utils.uuid());\n coverElement.style.position = 'absolute';\n coverElement.style.inset = '0';\n const styles = this.yuvFileDropZone()?.coverStyles || this.#defaultDragOverCoverStyles;\n Object.keys(styles).forEach((k: string) => {\n (coverElement.style as any)[k] = styles[k];\n });\n \n const label = this.yuvFileDropZone()?.label;\n if (label) {\n const coverLabelElement = document.createElement('div');\n 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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TranslateModule","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/directives/file-drop-zone/file-drop-zone.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/focus-within.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/light-dismiss.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/longpress.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/directives/noop-value-accessor.directive.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/common.module.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/common.utils.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/services/layout-settings/layout-settings.service.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/services/form-translate/form-translate.service.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/mat-form-field.abstract.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/dialog/dialog.options.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/retention-badge/retention-badge.component.ts","../../../../../libs/yuuvis/client-framework/common/src/lib/components/retention-badge/retention-badge.component.html","../../../../../libs/yuuvis/client-framework/common/src/lib/components/confirm/confirm.service.ts","../../../../../libs/yuuvis/client-framework/common/src/yuuvis-client-framework-common.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { MatDialogActions, MatDialogContent, MatDialogTitle } from '@angular/material/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'yuv-dialog',\n imports: [TranslateModule, MatDialogActions, MatDialogTitle, MatDialogContent],\n template: `\n @let title = 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 { Directive, ElementRef, HostListener, inject, input, output } from '@angular/core';\nimport { Utils } from '@yuuvis/client-core';\nimport { FileDropZoneOptions } from './file-drop-zone.interface';\n\n@Directive({\n selector: '[yuvFileDropZone]',\n standalone: true\n})\nexport class FileDropZoneDirective {\n #elRef = inject(ElementRef);\n\n #coverElement?: HTMLElement;\n\n #fileOver = false;\n set fileOver(fo: boolean) {\n if (fo !== this.#fileOver) {\n this.#fileOver = fo;\n this.fileDropOver.emit(fo);\n this.#toggleCover();\n }\n }\n get fileOver() {\n return this.#fileOver;\n }\n\n #defaultDragOverCoverStyles: Record<string, string> = {\n // outline: '2px dashed var(--ymt-primary)',\n display: 'flex',\n transition: 'background-color .3s ease-in-out',\n 'z-index': '500',\n 'align-items': 'center',\n 'justify-content': 'center',\n 'outline-offset': '-2px',\n 'background-color': 'rgb(from var(--ymt-primary) r g b / .5)'\n };\n\n #defaultDragOverCoverLabelStyles: Record<string, string> = {\n outline: '1px solid var(--ymt-primary)',\n\n padding: 'var(--ymt-spacing-m, 16px)',\n 'background-color': 'rgb(from var(--ymt-primary) r g b / 0.9)',\n color: 'var(--ymt-on-primary)'\n };\n\n yuvFileDropZone = input<FileDropZoneOptions>();\n fileDropDisabled = input<boolean>(false);\n\n fileDrop = output<File[]>();\n fileDropOver = output<boolean>();\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n if (this.fileDropDisabled()) return;\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = false;\n\n const dataTransfer: DataTransfer | null = event.dataTransfer;\n\n if (dataTransfer) {\n if (dataTransfer?.items) {\n const files: File[] = [];\n for (let i = 0; i < dataTransfer.items.length; i++) {\n // If dropped items aren't files, reject them\n if (dataTransfer.items[i].kind === 'file') {\n const file = dataTransfer.items[i].getAsFile();\n if (file) files.push(file);\n }\n }\n dataTransfer.items.clear();\n this.fileDrop.emit(files);\n } else {\n const files = dataTransfer.files;\n dataTransfer.clearData();\n this.fileDrop.emit(Array.from(files));\n }\n }\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n if (this.fileDropDisabled()) return;\n event.stopPropagation();\n event.preventDefault();\n this.fileOver = true;\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n if (this.fileDropDisabled()) return;\n if ((event.target as HTMLElement).getAttribute('id') === this.#coverElement?.getAttribute('id')) {\n this.fileOver = false;\n }\n }\n\n @HostListener('body:dragover', ['$event'])\n onBodyDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n @HostListener('body:drop', ['$event'])\n onBodyDrop(event: DragEvent) {\n event.preventDefault();\n }\n\n #toggleCover() {\n const el: HTMLElement = this.#elRef.nativeElement as HTMLElement;\n\n if (this.#coverElement) {\n el.style.position = 'initial';\n this.#coverElement.remove();\n this.#coverElement = undefined;\n }\n if (this.#fileOver) {\n el.style.position = 'relative';\n this.#coverElement = this.#createCoverElement();\n el.append(this.#coverElement);\n }\n }\n\n #createCoverElement(): HTMLElement {\n const coverElement = document.createElement('div');\n coverElement.classList.add('yuv-file-drop-zone-cover');\n coverElement.setAttribute('id', Utils.uuid());\n coverElement.style.position = 'absolute';\n coverElement.style.inset = '0';\n const styles = this.yuvFileDropZone()?.coverStyles || this.#defaultDragOverCoverStyles;\n Object.keys(styles).forEach((k: string) => {\n (coverElement.style as any)[k] = styles[k];\n });\n \n const label = this.yuvFileDropZone()?.label;\n if (label) {\n const coverLabelElement = document.createElement('div');\n 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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TranslateModule","i1","i2"],"mappings":"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"}
|