{"version":3,"file":"tstdl-angular.mjs","sources":["../../../../projects/tstdl/angular/lib/source/animations/utils.ts","../../../../projects/tstdl/angular/lib/source/animations/collapse.animation.ts","../../../../projects/tstdl/angular/lib/source/animations/fade-in-out.animation.ts","../../../../projects/tstdl/angular/lib/source/animations/size.animation.ts","../../../../projects/tstdl/angular/lib/source/animations/slideInOut.animation.ts","../../../../projects/tstdl/angular/lib/source/api/utils.ts","../../../../projects/tstdl/angular/lib/source/components/indeterminate-progress-bar/indeterminate-progress-bar.component.ts","../../../../projects/tstdl/angular/lib/source/components/indeterminate-progress-bar/indeterminate-progress-bar.component.html","../../../../projects/tstdl/angular/lib/source/components/markdown/markdown.component.ts","../../../../projects/tstdl/angular/lib/source/components/markdown/markdown.component.html","../../../../projects/tstdl/angular/lib/source/components/skeleton/skeleton.component.ts","../../../../projects/tstdl/angular/lib/source/components/skeleton/skeleton.component.html","../../../../projects/tstdl/angular/lib/source/directives/auto-for.directive.ts","../../../../projects/tstdl/angular/lib/source/directives/auto-id.directive.ts","../../../../projects/tstdl/angular/lib/source/directives/date-input-control-value-accessor.directive.ts","../../../../projects/tstdl/angular/lib/source/directives/drag.directive.ts","../../../../projects/tstdl/angular/lib/source/directives/drop.directive.ts","../../../../projects/tstdl/angular/lib/source/directives/filter-helper.directive.ts","../../../../projects/tstdl/angular/lib/source/directives/input-pattern.directive.ts","../../../../projects/tstdl/angular/lib/source/utils/lifecycle.ts","../../../../projects/tstdl/angular/lib/source/directives/lazy-list.directive.ts","../../../../projects/tstdl/angular/lib/source/directives/lazy.directive.ts","../../../../projects/tstdl/angular/lib/source/directives/let.directive.ts","../../../../projects/tstdl/angular/lib/source/directives/repeat.directive.ts","../../../../projects/tstdl/angular/lib/source/directives/visibility-observer.directive.ts","../../../../projects/tstdl/angular/lib/source/http/angular-http-client-adapter.ts","../../../../projects/tstdl/angular/lib/source/pipes/date-time-locale.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/date-time-to-date.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/date-time.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/decycle.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/duration.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/dynamic-text.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/localize-enum.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/localize.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/number-locale.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/numeric-date-locale.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/numeric-date-to-date-time.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/numeric-time-to-date-time.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/optional-localize.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/pad.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/safe-html.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/safe-resource-url.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/safe-url.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/sanitize.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/serialize.pipe.ts","../../../../projects/tstdl/angular/lib/source/pipes/to-observable.pipe.ts","../../../../projects/tstdl/angular/lib/source/utils/rxjs/app-stabilization.ts","../../../../projects/tstdl/angular/lib/source/utils/rxjs/zone.ts","../../../../projects/tstdl/angular/lib/source/services/app-stabilization.service.ts","../../../../projects/tstdl/angular/lib/source/services/application-tick.service.ts","../../../../projects/tstdl/angular/lib/source/services/error-handler-message.service.ts","../../../../projects/tstdl/angular/lib/source/services/notification.service.ts","../../../../projects/tstdl/angular/lib/source/services/error-handler.service.ts","../../../../projects/tstdl/angular/lib/source/services/routing.service.ts","../../../../projects/tstdl/angular/lib/source/services/wrapped-r3-injector-records-map.ts","../../../../projects/tstdl/angular/lib/source/tstdl-angular.module.ts","../../../../projects/tstdl/angular/lib/source/utils/error-handled-resource.ts","../../../../projects/tstdl/angular/lib/source/utils/route-data.ts","../../../../projects/tstdl/angular/lib/source/utils/transforms.ts","../../../../projects/tstdl/angular/lib/tstdl-angular.ts"],"sourcesContent":["import type { AnimationOptions } from './animation-options';\n\nexport function getAnimateTimings(options?: AnimationOptions): string {\n  return `${options?.duration ?? 250}ms ${options?.delay ?? 0}ms ${options?.ease ?? 'ease-in-out'}`;\n}\n","import { AUTO_STYLE, animate, state, style, transition, trigger, type AnimationTriggerMetadata } from '@angular/animations';\nimport { isDefined } from '@tstdl/base/utils';\nimport { filterUndefinedObjectProperties, mapObjectValues } from '@tstdl/base/utils/object';\n\nimport type { AnimationOptions } from './animation-options';\nimport { getAnimateTimings } from './utils';\n\nexport type CollapseAnimationOptions = AnimationOptions & {\n  width?: boolean,\n  height?: boolean,\n  opacity?: boolean,\n  scale?: boolean,\n\n  /**\n   * @default 'void => *, true <=> *'\n   */\n  stateTransition?: string\n};\n\nexport function collapseAnimation(options: CollapseAnimationOptions = {}): AnimationTriggerMetadata {\n  const animateTimings = getAnimateTimings(options);\n\n  const hasCustomAnimation = isDefined(options.height) || isDefined(options.width) || isDefined(options.opacity) || isDefined(options.scale);\n\n  const voidStyle = filterUndefinedObjectProperties({\n    height: ((!hasCustomAnimation && options.height != false) || (options.height == true)) ? '0px' : undefined,\n    width: (options.width == true) ? '0px' : undefined,\n    opacity: (options.opacity == true) ? 0 : undefined,\n    scale: (options.scale == true) ? 0 : undefined,\n    visibility: 'hidden',\n    overflow: 'hidden'\n  });\n\n  const targetStyle = mapObjectValues(voidStyle, () => AUTO_STYLE);\n\n  return trigger(options.trigger ?? 'collapse', [\n    state('true, void', style(voidStyle)),\n    state('*', style(targetStyle)),\n    transition(options.stateTransition ?? 'void => *, true <=> *', animate(animateTimings))\n  ]);\n}\n","import { AUTO_STYLE, animate, state, style, transition, trigger, type AnimationTriggerMetadata } from '@angular/animations';\n\nimport type { AnimationOptions } from './animation-options';\nimport { getAnimateTimings } from './utils';\n\nexport function fadeInOutAnimation(options?: AnimationOptions & { targetOpacity?: number }): AnimationTriggerMetadata {\n  const animateTimings = getAnimateTimings(options);\n\n  return trigger(options?.trigger ?? 'fadeInOut', [\n    state('*', style({ opacity: options?.targetOpacity ?? AUTO_STYLE })),\n    state('void', style({ opacity: 0 })),\n    transition('* <=> *', animate(animateTimings))\n  ]);\n}\n","import { animate, state, style, transition, trigger, type AnimationTriggerMetadata } from '@angular/animations';\n\nimport type { AnimationOptions } from './animation-options';\nimport { getAnimateTimings } from './utils';\n\nexport function widthAnimation(options?: AnimationOptions & { defaultWidth?: string }): AnimationTriggerMetadata {\n  const animateTimings = getAnimateTimings({ duration: 350, ease: 'ease', ...options });\n  const defaultWidth = options?.defaultWidth ?? '0%';\n\n  return trigger(options?.trigger ?? 'width', [\n    state('void', style({ width: defaultWidth })),\n    state('*', style({ width: '{{ width }}' }), { params: { width: defaultWidth } }),\n    transition('* => *', animate(animateTimings))\n  ]);\n}\n\nexport function heightAnimation(options?: AnimationOptions & { defaultHeight?: string }): AnimationTriggerMetadata {\n  const animateTimings = getAnimateTimings({ duration: 350, ease: 'ease', ...options });\n  const defaultHeight = options?.defaultHeight ?? '0%';\n\n  return trigger(options?.trigger ?? 'height', [\n    state('void', style({ height: defaultHeight })),\n    state('*', style({ height: '{{ height }}' }), { params: { height: defaultHeight } }),\n    transition('* => *', animate(animateTimings))\n  ]);\n}\n","import { animate, state, style, transition, trigger, type AnimationTriggerMetadata } from '@angular/animations';\n\nimport type { AnimationOptions } from './animation-options';\nimport { getAnimateTimings } from './utils';\n\nexport function slideInOutAnimation(options?: AnimationOptions & { direction?: 'left' | 'right' }): AnimationTriggerMetadata {\n  const animateTimings = getAnimateTimings(options);\n  const offset = options?.direction == 'right' ? '100%' : '-100%';\n\n  return trigger(options?.trigger ?? 'slideInOut', [\n    state('void', style({ transform: `translateX(${offset})` })),\n    state('*', style({ transform: 'translateX(0)' })),\n    transition('* => *', animate(animateTimings))\n  ]);\n}\n","import { inject } from '@angular/core';\nimport type { ApiDefinition } from '@tstdl/base/api';\nimport { compileClient, type ApiClient } from '@tstdl/base/api/client';\nimport { HttpClient } from '@tstdl/base/http';\n\nexport function getApiService<T extends ApiDefinition>(baseName: string, apiDefinition: T): ApiClient<T> {\n  const className = `${baseName}ApiServiceBase`;\n\n  const klass = {\n    [className]: class extends (compileClient(apiDefinition) as any) {\n      constructor() {\n        super(inject(HttpClient));\n      }\n    },\n  }[className]!;\n\n  return klass as ApiClient<T>;\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n  selector: 'tsl-indeterminate-progress-bar',\n  imports: [],\n  templateUrl: './indeterminate-progress-bar.component.html',\n  styleUrls: ['./indeterminate-progress-bar.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    class: 'tsl-tw block relative h-1.5 overflow-hidden'\n  }\n})\nexport class TstdlIndeterminateProgressBarComponent {\n}\n","<div class=\"progress absolute top-0 bottom-0 w-1/2 bg-accent-700 dark:bg-accent-500\"></div>\n","import { ChangeDetectionStrategy, Component, HostBinding, input } from '@angular/core';\nimport { marked } from 'marked';\n\n@Component({\n  selector: 'tsl-markdown, [tslMarkdown]',\n  imports: [],\n  templateUrl: './markdown.component.html',\n  styleUrls: ['./markdown.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TstdlMarkdownComponent {\n  readonly markdown = input<string | null>();\n\n  @HostBinding('innerHTML')\n  get markdownHtml(): string {\n    return marked(this.markdown() ?? '') as string;\n  }\n}\n","","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n  selector: 'tsl-skeleton',\n  standalone: true,\n  templateUrl: './skeleton.component.html',\n  styleUrls: ['./skeleton.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TstdlSkeletonComponent {\n  @Input()\n  @HostBinding('class.dark')\n  dark: boolean | undefined;\n\n  @HostBinding('class.light')\n  get light(): boolean {\n    return this.dark === false;\n  }\n\n  @Input()\n  @HostBinding('style.width')\n  width: string | null | undefined;\n\n  @Input()\n  @HostBinding('style.height')\n  height: string | null | undefined;\n\n  @Input()\n  @HostBinding('style.--tsl-skeleton-border-radius')\n  borderRadius: string | null | undefined;\n\n  @Input()\n  @HostBinding('style.--tsl-skeleton-pulse-size')\n  pulseSize: string | null | undefined;\n\n  @Input()\n  @HostBinding('style.--tsl-skeleton-pulse-scale')\n  pulseScale: number | string | null | undefined;\n\n  @Input()\n  @HostBinding('style.--tsl-skeleton-pulse-duration')\n  pulseDuration: string | null | undefined;\n}\n","","import type { OnChanges } from '@angular/core';\nimport { Directive, ElementRef, Input, Renderer2 } from '@angular/core';\nimport { isNullOrUndefined } from '@tstdl/base/utils';\nimport type { AutoIdDirective } from './auto-id.directive';\n\n@Directive({\n  selector: 'label, [tslAutoFor]',\n  standalone: true\n})\nexport class AutoForDirective implements OnChanges {\n  private readonly elementRef: ElementRef;\n  private readonly renderer: Renderer2;\n\n  @Input() autoFor: AutoIdDirective | null | undefined;\n\n  constructor(elementRef: ElementRef, renderer: Renderer2) {\n    this.elementRef = elementRef;\n    this.renderer = renderer;\n  }\n\n  ngOnChanges(): void {\n    if (isNullOrUndefined(this.autoFor)) {\n      this.renderer.removeAttribute(this.elementRef.nativeElement, 'for');\n      return;\n    }\n\n    this.renderer.setAttribute(this.elementRef.nativeElement, 'for', this.autoFor.id);\n  }\n}\n","import { Directive, ElementRef, Renderer2 } from '@angular/core';\nimport { Alphabet, getRandomString, isNullOrUndefined } from '@tstdl/base/utils';\n\n@Directive({\n  selector: 'input, [tslAutoId]',\n  exportAs: 'autoId',\n  standalone: true\n})\nexport class AutoIdDirective {\n  private readonly elementRef: ElementRef<HTMLElement>;\n  private readonly renderer: Renderer2;\n\n  get id(): string {\n    if (isNullOrUndefined(this.elementRef.nativeElement.id) || (this.elementRef.nativeElement.id.length == 0)) {\n      this.elementRef.nativeElement.id = getRandomString(10, Alphabet.LowerCaseNumbers);\n      this.renderer.setAttribute(this.elementRef.nativeElement, 'id', this.id);\n    }\n\n    return this.elementRef.nativeElement.id;\n  }\n\n  constructor(elementRef: ElementRef, renderer: Renderer2) {\n    this.elementRef = elementRef;\n    this.renderer = renderer;\n  }\n}\n","import { Directive, ElementRef, forwardRef, HostListener, inject, model } from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { isDate, isNumber, noop } from '@tstdl/base/utils';\n\n@Directive({\n  selector: 'input[type=date], input[type=datetime-local]',\n  standalone: true,\n  providers: [{\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => DateInputControlValueAccessor),\n    multi: true\n  }]\n})\nexport class DateInputControlValueAccessor implements ControlValueAccessor {\n  readonly #elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n  private onTouched: () => void = noop;\n  private onChange: (value: any) => void = noop;\n\n  readonly valueType = model<'value' | 'valueAsNumber' | 'valueAsDate'>('value');\n\n  @HostListener('blur')\n  onBlur(): void {\n    this.onTouched();\n  }\n\n  @HostListener('input')\n  onInputChange(): void {\n    this.onChange(this.#elementRef.nativeElement[this.valueType()]);\n  }\n\n  registerOnTouched(fn: typeof this.onTouched) {\n    this.onTouched = fn;\n  }\n\n  registerOnChange(fn: typeof this.onChange) {\n    this.onChange = fn;\n  }\n\n  writeValue(value: Date | string | number) {\n    const valueType = isDate(value)\n      ? 'valueAsDate'\n      : isNumber(value)\n        ? 'valueAsNumber'\n        : 'value';\n\n    this.valueType.set(valueType);\n\n    if (valueType == 'valueAsDate') {\n      this.#elementRef.nativeElement.valueAsDate = value as Date;\n    }\n    else if (valueType == 'valueAsNumber') {\n      this.#elementRef.nativeElement.valueAsNumber = value as number;\n    }\n    else {\n      this.#elementRef.nativeElement.value = value as string;\n    }\n  }\n}\n","import { Directive, HostListener, input, output, signal } from '@angular/core';\nimport { isDefined, isNull, isString } from '@tstdl/base/utils';\nimport { objectEntries } from '@tstdl/base/utils/object';\n\n@Directive({\n  selector: '[tslDrag]',\n  standalone: true,\n  exportAs: 'drag'\n})\nexport class DragDirective {\n  readonly clearData = input<boolean>(false);\n  readonly allowedEffect = input<DataTransfer['effectAllowed']>('uninitialized');\n  readonly image = input<Element>();\n  readonly imageCoordinates = input<[x: number, y: number]>();\n  readonly format = input<string>();\n  readonly data = input<string | Record<string, string>>();\n\n  readonly start = output<DragEvent>();\n  readonly drag = output<DragEvent>();\n  readonly end = output<DragEvent>();\n  readonly dragging = signal(false);\n\n  @HostListener('drag', ['$event'])\n  onDrag(event: DragEvent): void {\n    this.drag.emit(event);\n  }\n\n  @HostListener('dragstart', ['$event'])\n  onDragStart(event: DragEvent): void {\n    this.start.emit(event);\n    this.dragging.set(true);\n\n    if (isNull(event.dataTransfer)) {\n      return;\n    }\n\n    event.dataTransfer.effectAllowed = this.allowedEffect();\n\n    const image = this.image();\n\n    if (isDefined(image)) {\n      const [x = 0, y = 0] = this.imageCoordinates() ?? [];\n      event.dataTransfer.setDragImage(image, x, y);\n    }\n\n    const format = this.format();\n    const data = this.data();\n\n    if (this.clearData()) {\n      event.dataTransfer.clearData();\n    }\n\n    if (isString(data)) {\n      event.dataTransfer.setData(format ?? 'text/plain', data);\n    }\n    else if (isDefined(data)) {\n      const entries = objectEntries(data);\n\n      for (const [key, value] of entries) {\n        event.dataTransfer.setData(key, value);\n      }\n    }\n  }\n\n  @HostListener('dragend', ['$event'])\n  onDragEnd(event: DragEvent): void {\n    this.end.emit(event);\n    this.dragging.set(false);\n  }\n}\n","import { Directive, HostListener, input, output, signal } from '@angular/core';\nimport { isDefined, isNotNull, isNull } from '@tstdl/base/utils';\n\n@Directive({\n  selector: '[tslDrop]',\n  standalone: true,\n  exportAs: 'drop'\n})\nexport class DropDirective {\n  readonly #entered = signal(false);\n  readonly #isOver = signal(false);\n\n  readonly effect = input<DataTransfer['dropEffect']>();\n\n  readonly enter = output<DragEvent>();\n  readonly leave = output<DragEvent>();\n  readonly over = output<DragEvent>();\n  readonly dropped = output<DragEvent>();\n  readonly itemsDropped = output<DataTransferItem[]>();\n  readonly filesDropped = output<File[]>();\n\n  readonly entered = this.#entered.asReadonly();\n  readonly isOver = this.#isOver.asReadonly();\n\n  @HostListener('dragenter', ['$event'])\n  onDragEnter(event: DragEvent): void {\n    event.preventDefault();\n\n    const effect = this.effect();\n\n    if (isDefined(effect) && isNotNull(event.dataTransfer)) {\n      event.dataTransfer.dropEffect = effect;\n    }\n\n    this.enter.emit(event);\n    this.#entered.set(true);\n  }\n\n  @HostListener('dragover', ['$event'])\n  onDragOver(event: DragEvent): void {\n    event.preventDefault();\n\n    this.over.emit(event);\n    this.#isOver.set(true);\n  }\n\n  @HostListener('dragleave', ['$event'])\n  onDragLeave(event: DragEvent): void {\n    event.preventDefault();\n\n    this.leave.emit(event);\n    this.#entered.set(false);\n    this.#isOver.set(false);\n  }\n\n  // Drop listener\n  @HostListener('drop', ['$event'])\n  onDrop(event: DragEvent): void {\n    event.preventDefault();\n\n    this.#entered.set(false);\n    this.#isOver.set(false);\n    this.dropped.emit(event);\n\n    if (isNull(event.dataTransfer)) {\n      return;\n    }\n\n    if (event.dataTransfer.files.length > 0) {\n      this.filesDropped.emit(Array.from(event.dataTransfer.files));\n    }\n\n    if (event.dataTransfer.items.length > 0) {\n      this.itemsDropped.emit(Array.from(event.dataTransfer.items));\n    }\n  }\n}\n","import { Directive, computed, input, model } from '@angular/core';\nimport type { PropertiesOfType } from '@tstdl/base/types';\nimport { isFunction, isNull, isString } from '@tstdl/base/utils';\nimport { normalizeText } from '@tstdl/base/utils/string';\n\n@Directive({\n  selector: '[tslFilterHelper]',\n  standalone: true,\n  exportAs: 'filterHelper'\n})\nexport class FilterHelperDirective<T> {\n  readonly filterValues = input<T[] | null | undefined>();\n  readonly filterSelector = input<PropertiesOfType<T, string> | (() => string)>();\n  readonly filter = model<string | null>(null);\n\n  readonly normalizedFilterValues = computed(() => {\n    const selector = this.filterSelector();\n\n    const valueSelector = isString(selector)\n      ? (value: T) => value[selector as keyof T] as string\n      : isFunction(selector)\n        ? selector\n        : ((value: T) => String(value));\n\n    return this.filterValues()?.map((value) => ({ value, searchValue: normalizeText(valueSelector(value)) })) ?? [];\n  });\n\n  readonly filteredValues = computed(() => {\n    const filter = this.filter();\n\n    if (isNull(filter)) {\n      return this.filterValues() ?? [];\n    }\n\n    const normalizedFilter = normalizeText(filter);\n\n    if (normalizedFilter.length == 0) {\n      return this.filterValues() ?? [];\n    }\n\n    return this.normalizedFilterValues()\n      .filter(({ searchValue }) => searchValue.includes(normalizedFilter))\n      .map(({ value }) => value);\n  });\n}\n","import { Directive, ElementRef, HostListener, booleanAttribute, computed, inject, input, type OnInit } from '@angular/core';\nimport { isRegExp, isString, isUndefined } from '@tstdl/base/utils';\n\n@Directive({\n  selector: 'input[tslInputPattern]',\n  standalone: true\n})\nexport class InputPatternDirective implements OnInit {\n  private readonly element = inject<ElementRef<HTMLInputElement>>(ElementRef).nativeElement;\n\n  private readonly pattern = computed(() => {\n    const inputPattern = this.tslInputPattern();\n\n    return isRegExp(inputPattern)\n      ? new RegExp(inputPattern, inputPattern.flags) // Hack/workaround for unknown bug or weird behaviour\n      : isString(inputPattern)\n        ? new RegExp(inputPattern, 'ug')\n        : undefined;\n  });\n\n  readonly firstMatchOnly = input(false, { transform: booleanAttribute });\n  readonly tslInputPattern = input.required<string | RegExp | null | undefined>();\n\n  lastKnownValue: string;\n\n  ngOnInit(): void {\n    this.onChange();\n  }\n\n  @HostListener('input')\n  @HostListener('change')\n  @HostListener('keydown')\n  @HostListener('keyup')\n  @HostListener('drop')\n  @HostListener('paste')\n  @HostListener('select')\n  @HostListener('contextmenu')\n  @HostListener('mousedown')\n  @HostListener('mouseup')\n  onChange(): void {\n    if (this.element.value == this.lastKnownValue) {\n      return;\n    }\n\n    const pattern = this.pattern();\n\n    if (isUndefined(pattern)) {\n      return;\n    }\n\n    const matches = [...this.element.value.matchAll(pattern)];\n\n    const result = this.firstMatchOnly()\n      ? (matches[0]?.[0] ?? '')\n      : matches.map((match) => match[0]).join('');\n\n    this.element.value = result;\n    this.lastKnownValue = result;\n  }\n}\n","import type { AfterContentChecked, AfterContentInit, AfterViewChecked, AfterViewInit, OnChanges, OnDestroy, OnInit, SimpleChange, SimpleChanges } from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport type { TypedOmit } from '@tstdl/base/types';\nimport { hasOwnProperty } from '@tstdl/base/utils/object';\nimport type { Observable } from 'rxjs';\nimport { ReplaySubject, Subject, defer, filter, map, startWith, switchMap } from 'rxjs';\n\nexport type TypedSimpleChange<T> = TypedOmit<SimpleChange, 'previousValue' | 'currentValue'> & {\n  previousValue: T,\n  currentValue: T,\n};\n\ntype ParentProperties<Parent> = Exclude<keyof Parent, keyof LifecycleUtils>;\n\n@Injectable()\nexport class LifecycleUtils<Parent = any> implements OnInit, OnChanges, OnDestroy, AfterViewInit, AfterContentInit, AfterViewChecked, AfterContentChecked {\n  private readonly initSubject: Subject<void>;\n  private readonly destroySubject: Subject<void>;\n  private readonly changesSubject: Subject<SimpleChanges>;\n  private readonly viewInitSubject: Subject<void>;\n  private readonly contentInitSubject: Subject<void>;\n  private readonly viewCheckedSubject: Subject<void>;\n  private readonly contentCheckedSubject: Subject<void>;\n  private readonly ionViewWillEnterSubject: Subject<void>;\n  private readonly ionViewDidEnterSubject: Subject<void>;\n  private readonly ionViewWillLeaveSubject: Subject<void>;\n  private readonly ionViewDidLeaveSubject: Subject<void>;\n\n  /**\n   * emits on `ngOnInit`. Also emits if subscribed afterwards\n   * @see {@link OnInit}\n   */\n  readonly init$: Observable<void>;\n\n  /**\n   * emits on `ngOnChanges`\n   * @see {@link OnChanges}\n   */\n  readonly changes$: Observable<SimpleChanges>;\n\n  /**\n   * emits on `ngOnDestroy`. Also emits if subscribed afterwards\n   * @see {@link OnDestroy}\n   */\n  readonly destroy$: Observable<void>;\n\n  /**\n   * emits on `ngAfterViewInit`. Also emits if subscribed afterwards\n   * @see {@link AfterViewInit}\n   */\n  readonly viewInit$: Observable<void>;\n\n  /**\n   * emits on `ngAfterContentInit`. Also emits if subscribed afterwards\n   * @see {@link AfterContentInit}\n   */\n  readonly contentInit$: Observable<void>;\n\n  /**\n   * emits on `ngAfterViewChecked`\n   * @see {@link AfterViewChecked}\n   */\n  readonly viewChecked$: Observable<void>;\n\n  /**\n   * emits on `ngAfterContentChecked`\n   * @see {@link AfterContentChecked}\n   */\n  readonly contentChecked$: Observable<void>;\n\n  /**\n   * emits on `ionViewWillEnter`\n   */\n  readonly ionViewWillEnter$: Observable<void>;\n\n  /**\n   * emits on `ionViewDidEnter`\n   */\n  readonly ionViewDidEnter$: Observable<void>;\n\n  /**\n   * emits on `ionViewWillLeave`\n   */\n  readonly ionViewWillLeave$: Observable<void>;\n\n  /**\n   * emits on `ionViewDidLeave`\n   */\n  readonly ionViewDidLeave$: Observable<void>;\n\n  // eslint-disable-next-line max-statements\n  constructor() {\n    this.initSubject = new ReplaySubject(1);\n    this.destroySubject = new ReplaySubject(1);\n    this.changesSubject = new Subject();\n    this.viewInitSubject = new ReplaySubject(1);\n    this.contentInitSubject = new ReplaySubject(1);\n    this.viewCheckedSubject = new Subject();\n    this.contentCheckedSubject = new Subject();\n    this.ionViewWillEnterSubject = new Subject();\n    this.ionViewDidEnterSubject = new Subject();\n    this.ionViewWillLeaveSubject = new Subject();\n    this.ionViewDidLeaveSubject = new Subject();\n\n    this.init$ = this.initSubject.asObservable();\n    this.changes$ = this.changesSubject.asObservable();\n    this.destroy$ = this.destroySubject.asObservable();\n    this.viewInit$ = this.viewInitSubject.asObservable();\n    this.contentInit$ = this.contentInitSubject.asObservable();\n    this.viewChecked$ = this.viewCheckedSubject.asObservable();\n    this.contentChecked$ = this.contentCheckedSubject.asObservable();\n    this.ionViewWillEnter$ = this.ionViewWillEnterSubject.asObservable();\n    this.ionViewDidEnter$ = this.ionViewDidEnterSubject.asObservable();\n    this.ionViewWillLeave$ = this.ionViewWillLeaveSubject.asObservable();\n    this.ionViewDidLeave$ = this.ionViewDidLeaveSubject.asObservable();\n  }\n\n  ngOnInit(): void {\n    this.initSubject.next();\n    this.initSubject.complete();\n\n    this.destroy$.subscribe(() => {\n      this.changesSubject.complete();\n      this.viewCheckedSubject.complete();\n      this.contentCheckedSubject.complete();\n      this.ionViewWillEnterSubject.complete();\n      this.ionViewDidEnterSubject.complete();\n      this.ionViewWillLeaveSubject.complete();\n      this.ionViewDidLeaveSubject.complete();\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.changesSubject.next(changes);\n  }\n\n  ngOnDestroy(): void {\n    this.destroySubject.next();\n    this.destroySubject.complete();\n  }\n\n  ngAfterViewInit(): void {\n    this.viewInitSubject.next();\n    this.viewInitSubject.complete();\n  }\n\n  ngAfterContentInit(): void {\n    this.contentInitSubject.next();\n    this.contentInitSubject.complete();\n  }\n\n  ngAfterViewChecked(): void {\n    this.viewCheckedSubject.next();\n  }\n\n  ngAfterContentChecked(): void {\n    this.contentCheckedSubject.next();\n  }\n\n  ionViewWillEnter(): void {\n    this.ionViewWillEnterSubject.next();\n  }\n\n  ionViewDidEnter(): void {\n    this.ionViewDidEnterSubject.next();\n  }\n\n  ionViewWillLeave(): void {\n    this.ionViewWillLeaveSubject.next();\n  }\n\n  ionViewDidLeave(): void {\n    this.ionViewDidLeaveSubject.next();\n  }\n\n  observeChanges<Property extends ParentProperties<Parent>>(property: Property): Observable<TypedSimpleChange<Parent[Property]>> {\n    return this.changes$.pipe(\n      filter((changes) => hasOwnProperty(changes, property as keyof SimpleChanges)),\n      map((changes) => changes[property as string]!)\n    );\n  }\n\n  observe<Property extends ParentProperties<Parent>>(property: Property): Observable<Parent[Property]> {\n    return this.init$.pipe(\n      switchMap(\n        () => defer(\n          () => this.observeChanges(property).pipe(\n            map((change) => change.currentValue),\n            startWith((this as unknown as Parent)[property])\n          )\n        )\n      )\n    );\n  }\n}\n","import { type AfterViewInit, ChangeDetectorRef, Directive, ElementRef, Input } from '@angular/core';\nimport { observeIntersection$, observeResize$ } from '@tstdl/base/dom';\nimport { isDefined, isUndefined, timeout } from '@tstdl/base/utils';\nimport { BehaviorSubject, EMPTY, Observable, combineLatest, filter, fromEvent, interval, map, merge, shareReplay, switchMap, take, takeUntil } from 'rxjs';\nimport { LifecycleUtils } from '../utils/lifecycle';\n\ntype ElementOrElementRef = Element | ElementRef<Element>;\n\n@Directive({\n  selector: '[tslLazyList]',\n  exportAs: 'lazyList',\n  standalone: true,\n})\nexport class LazyListDirective<T> extends LifecycleUtils<LazyListDirective<T>> implements AfterViewInit {\n  private readonly changeDetector: ChangeDetectorRef;\n  private readonly scrollElementSubject: BehaviorSubject<Element | undefined>;\n\n  private checking: boolean = false;\n  private readonly scrollElement$: Observable<Element | undefined>;\n  private readonly observeElement$: Observable<Element | undefined>;\n\n  items: T[];\n\n  /**\n   * Items to lazily append to {@link items}\n   */\n  @Input('tslLazyList') source: T[];\n\n  /**\n   * How many items to add at the first tick\n   * @default 1\n   */\n  @Input('lazyInitialSize') initialSize: number;\n\n  /**\n   * How many items to add at once per tick\n   * @default 1\n   */\n  @Input('lazyBatchSize') batchSize: number;\n\n  /**\n   * How far to preload items. Percentage of scroll elements client height\n   * @default 50\n   */\n  @Input('lazyMargin') margin: number;\n\n  /**\n   * Element to observe for scrolling and load items when at end\n   */\n  @Input('lazyScrollElement') scrollElement: ElementOrElementRef | undefined;\n\n  /**\n   * Element to observe for intersection with the scroll element to trigger at tick\n   */\n  @Input('lazyObserveElement') observeElement: ElementOrElementRef | undefined;\n\n  get thresholdReached(): boolean {\n    if (isUndefined(this.scrollElementSubject.value)) {\n      return false;\n    }\n\n    const { scrollHeight, scrollTop, clientHeight } = this.scrollElementSubject.value;\n    const threshold = Math.max(1, clientHeight * (this.margin / 100));\n\n    return (clientHeight > 0) && ((scrollHeight - scrollTop - clientHeight) <= threshold);\n  }\n\n  get hasAll(): boolean {\n    return this.items.length == this.source.length;\n  }\n\n  constructor(elementRef: ElementRef<Node>, changeDetector: ChangeDetectorRef) {\n    super();\n\n    const defaultScrollElement = (elementRef.nativeElement instanceof Element) ? elementRef.nativeElement : undefined;\n\n    this.changeDetector = changeDetector;\n    this.scrollElementSubject = new BehaviorSubject<Element | undefined>(defaultScrollElement);\n\n    this.source = [];\n    this.initialSize = 1;\n    this.batchSize = 1;\n    this.margin = 50;\n    this.items = [];\n\n    this.scrollElement$ = this.scrollElementSubject.asObservable();\n    this.observeElement$ = this.observe('observeElement').pipe(map((observeElement) => ((observeElement instanceof Element) ? observeElement : observeElement?.nativeElement)));\n\n    this.observe('source').subscribe(() => {\n      this.items = this.source.slice(0, Math.max(this.initialSize, this.items.length));\n      changeDetector.markForCheck();\n    });\n\n    this.observe('scrollElement')\n      .pipe(map((scrollElement) => ((scrollElement instanceof Element) ? scrollElement : defaultScrollElement)))\n      .subscribe(this.scrollElementSubject);\n  }\n\n  override ngAfterViewInit(): void {\n    super.ngAfterViewInit();\n\n    const resize$ = this.scrollElement$.pipe(\n      switchMap((element) => (isDefined(element) ? observeResize$(element) : EMPTY)),\n      takeUntil(this.destroy$)\n    );\n\n    const scroll$ = this.scrollElement$.pipe(\n      switchMap((element) => (isDefined(element) ? fromEvent(element, 'scroll', { passive: true } as AddEventListenerOptions) : EMPTY)),\n      takeUntil(this.destroy$)\n    );\n\n    const intersects$ = combineLatest([this.scrollElement$, this.observeElement$, this.observe('margin')]).pipe(\n      switchMap(([scrollElement, observeElement, margin]) => (isUndefined(observeElement) ? EMPTY : observeIntersection$(observeElement, { root: scrollElement, rootMargin: `${margin}%` }))),\n      takeUntil(this.destroy$),\n      map((entry) => entry.isIntersecting),\n      shareReplay(1)\n    );\n\n    const intersect$ = intersects$.pipe(filter((intersects) => intersects));\n\n    this.viewChecked$\n      .pipe(\n        take(1),\n        switchMap(() => merge(this.observe('source'), resize$, scroll$, intersect$))\n      )\n      .subscribe(() => void this.check());\n\n    intersect$.pipe(switchMap((intersects) => (intersects ? interval(10) : EMPTY)))\n      .subscribe(() => this.add());\n  }\n\n  async check(): Promise<void> {\n    if (this.checking) {\n      return;\n    }\n\n    this.checking = true;\n\n    while (!this.hasAll && this.thresholdReached) {\n      this.add();\n      await timeout();\n    }\n\n    this.checking = false;\n  }\n\n  add(): void {\n    if (this.hasAll) {\n      return;\n    }\n\n    this.items = this.source.slice(0, Math.max(this.initialSize, this.items.length + this.batchSize));\n    this.changeDetector.markForCheck();\n  }\n}\n","import { ChangeDetectorRef, DestroyRef, Directive, ElementRef, Renderer2, TemplateRef, ViewContainerRef, afterNextRender, booleanAttribute, computed, inject, input, type EmbeddedViewRef, type OnDestroy } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { observeIntersection$ } from '@tstdl/base/dom';\nimport { assertDefinedPass, isDefined, isNotNullOrUndefined, isString, isUndefined } from '@tstdl/base/utils';\nimport { filter, switchMap, take } from 'rxjs';\n\n/**\n * Lazily render the element when it intersects the viewport (default) or specified {@link root} element.\n * {@link rootMargin} (default 25%) and {@link threshold} (0) can be specified.\n * Uses a div of size {@link intrinsicWidth} and {@link intrinsicHeight} to track visibility using {@link IntersectionObserver}\n */\n@Directive({\n  selector: '[tslLazy]',\n  standalone: true\n})\nexport class LazyDirective implements OnDestroy {\n  private readonly destroyRef = inject(DestroyRef);\n  private readonly templateRef = inject(TemplateRef<any>);\n  private readonly viewContainer = inject(ViewContainerRef);\n  private readonly elementRef = inject<ElementRef<Node>>(ElementRef);\n  private readonly renderer = inject(Renderer2);\n  private readonly changeDetector = inject(ChangeDetectorRef);\n\n  private intersectionTracker: HTMLDivElement | undefined;\n  private initialTemplateView: EmbeddedViewRef<any> | undefined;\n\n  readonly root = input<Element | Document | null | undefined>(undefined, { alias: 'tslLazyRoot' });\n  readonly rootMargin = input<string | undefined>('25%', { alias: 'tslLazyRootMargin' });\n  readonly threshold = input<number | number[] | undefined | null, number | `${number}` | number[] | undefined | null>(undefined, { alias: 'tslLazyThreshold', transform: (value) => isString(value) ? Number(value) : value });\n  readonly intrinsicWidth = input<string | null | undefined>(undefined, { alias: 'tslLazyIntrinsicWidth' });\n  readonly intrinsicHeight = input<string | null | undefined>(undefined, { alias: 'tslLazyIntrinsicHeight' });\n\n  /**\n   * Template to render before actual deferred view. Useful for eg. for skeletons.\n   * Should be lightweight/fast to render\n   */\n  readonly initialTemplate = input<TemplateRef<any> | null | undefined>(undefined, { alias: 'tslLazyInitialTemplate' });\n\n  /**\n   * Insert intersection tracker\n   * true: insert even if `initialTemplate` is provided,\n   * false: only insert if no initialTemplate is provided (default)\n   */\n  readonly tracker = input<boolean, boolean | `${boolean}`>(false, { alias: 'tslLazyTracker', transform: booleanAttribute });\n\n  constructor() {\n    const observerConfig$ = toObservable(computed(() => ({ root: this.root(), rootMargin: this.rootMargin(), threshold: this.threshold() ?? undefined })));\n\n    afterNextRender({\n      write: () => {\n        const initialTemplate = this.initialTemplate();\n        const intrinsicWidth = this.intrinsicWidth();\n        const intrinsicHeight = this.intrinsicHeight();\n\n        if (this.tracker() || isUndefined(initialTemplate)) {\n          this.intersectionTracker = this.renderer.createElement('div') as HTMLDivElement;\n\n          if (isDefined(intrinsicWidth)) {\n            this.renderer.setStyle(this.intersectionTracker, 'width', intrinsicWidth);\n          }\n\n          if (isDefined(intrinsicHeight)) {\n            this.renderer.setStyle(this.intersectionTracker, 'height', intrinsicHeight);\n          }\n\n          this.renderer.insertBefore(this.elementRef.nativeElement.parentNode, this.intersectionTracker, this.elementRef.nativeElement);\n        }\n\n        if (isNotNullOrUndefined(initialTemplate)) {\n          this.initialTemplateView = this.viewContainer.createEmbeddedView(initialTemplate);\n        }\n\n        this.changeDetector.markForCheck();\n\n        const intersectionElement = assertDefinedPass(this.intersectionTracker ?? this.initialTemplateView?.rootNodes[0] as Element | undefined);\n\n        observerConfig$\n          .pipe(\n            switchMap((config) => observeIntersection$(intersectionElement, config)),\n            filter((intersection) => intersection.isIntersecting),\n            take(1),\n            takeUntilDestroyed(this.destroyRef)\n          )\n          .subscribe(() => {\n            this.removeTracker();\n            this.viewContainer.createEmbeddedView(this.templateRef);\n            this.changeDetector.markForCheck();\n          });\n      }\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.removeTracker();\n  }\n\n  private removeTracker(): void {\n    if (isDefined(this.intersectionTracker)) {\n      this.renderer.removeChild(this.elementRef.nativeElement.parentNode, this.intersectionTracker);\n    }\n\n    if (isDefined(this.initialTemplateView)) {\n      this.initialTemplateView.destroy();\n    }\n  }\n}\n","import type { EmbeddedViewRef, OnDestroy, Signal } from '@angular/core';\nimport { ChangeDetectorRef, Directive, ErrorHandler, Injector, Input, TemplateRef, ViewContainerRef, inject, isSignal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { isFunction, isUndefined } from '@tstdl/base/utils';\nimport { isAsyncIterable } from '@tstdl/base/utils/async-iterable-helpers';\nimport type { Observable, ReadableStreamLike } from 'rxjs';\nimport { EMPTY, ReplaySubject, catchError, distinctUntilChanged, from, isObservable, of, switchMap, tap } from 'rxjs';\n\nexport type LetContext<T> = {\n  $implicit: LetOutput<T>,\n  tslLet: LetOutput<T>,\n  isComplete: boolean,\n  hasError: boolean,\n  error: any\n};\n\ntype LetAsyncInput<T> =\n  | Observable<T>\n  | AsyncIterable<T>\n  | PromiseLike<T>\n  | ReadableStreamLike<T>\n  | Signal<T>;\n\ntype LetInput<T> = LetAsyncInput<T> | T;\n\ntype LetOutput<T> = T extends LetAsyncInput<infer U> ? U : T;\n\n@Directive({\n  selector: '[tslLet]',\n  standalone: true\n})\nexport class LetDirective<T> implements OnDestroy {\n  static ngTemplateGuard_tslLet: 'binding'; // eslint-disable-line @typescript-eslint/naming-convention\n\n  private readonly template = inject<TemplateRef<LetContext<T>>>(TemplateRef);\n  private readonly viewContainer = inject(ViewContainerRef);\n  private readonly changeDetector = inject(ChangeDetectorRef);\n  private readonly injector = inject(Injector);\n  private readonly errorHandler = inject(ErrorHandler);\n\n  private readonly inputSubject = new ReplaySubject<LetInput<T>>(1);\n\n  private readonly viewContext: LetContext<T> = {\n    $implicit: undefined as any,\n    tslLet: undefined as any,\n    isComplete: false,\n    hasError: false,\n    error: undefined\n  };\n\n  private readonly subscription = this.inputSubject.pipe(\n    switchMap((input) => {\n      this.viewContext.isComplete = false;\n      this.viewContext.hasError = false;\n      this.viewContext.error = undefined;\n\n      const observable = isAsyncInput(input)\n        ? (isFunction(input) && isSignal(input))\n          ? toObservable(input, { injector: this.injector })\n          : from(input)\n        : of(input);\n\n      return (observable as Observable<LetOutput<T>>).pipe(\n        tap({\n          next: (value) => this.next(value),\n          error: (error) => this.error(error),\n          complete: () => this.complete()\n        }),\n        catchError((error) => {\n          this.errorHandler.handleError(error);\n          return EMPTY;\n        })\n      );\n    }),\n    distinctUntilChanged()\n  ).subscribe((value) => {\n    this.viewContext.$implicit = value;\n    this.viewContext.tslLet = value;\n  });\n\n  private embeddedView: EmbeddedViewRef<LetContext<T>> | undefined;\n\n  @Input() // eslint-disable-line accessor-pairs\n  set tslLet(observableInput: LetInput<T>) {\n    this.inputSubject.next(observableInput);\n  }\n\n  static ngTemplateContextGuard<T>(_directive: LetDirective<T>, _context: LetContext<T>): _context is LetContext<T> {\n    return true;\n  }\n\n  next(value: LetOutput<T>): void {\n    this.viewContext.$implicit = value;\n    this.viewContext.tslLet = value;\n    this.updateEmbeddedView();\n  }\n\n  error(error: unknown): void {\n    this.viewContext.hasError = true;\n    this.viewContext.error = error;\n    this.updateEmbeddedView();\n  }\n\n  complete(): void {\n    this.viewContext.isComplete = true;\n    this.updateEmbeddedView();\n  }\n\n  updateEmbeddedView(): void {\n    if (isUndefined(this.embeddedView)) {\n      this.embeddedView = this.viewContainer.createEmbeddedView(this.template, this.viewContext);\n    }\n\n    this.changeDetector.markForCheck();\n  }\n\n  ngOnDestroy(): void {\n    this.inputSubject.complete();\n    this.subscription.unsubscribe();\n  }\n}\n\nfunction isAsyncInput<T>(value: any): value is LetAsyncInput<T> {\n  return isObservable(value)\n    || isAsyncIterable(value)\n    || isFunction((value as PromiseLike<any> | undefined)?.then) // eslint-disable-line @typescript-eslint/unbound-method\n    || isFunction((value as ReadableStreamLike<any> | undefined)?.getReader) // eslint-disable-line @typescript-eslint/unbound-method\n    || isSignal(value);\n}\n","import { ChangeDetectorRef, Directive, TemplateRef, ViewContainerRef, effect, inject, input } from '@angular/core';\n\nexport interface RepeatContext {\n  $implicit: number;\n  index: number;\n}\n\n@Directive({\n  selector: '[tslRepeat]',\n  standalone: true,\n})\nexport class RepeatDirective {\n  readonly templateRef = inject(TemplateRef<RepeatContext>);\n  readonly viewContainer = inject(ViewContainerRef);\n  readonly changeDetector = inject(ChangeDetectorRef);\n\n  /** how many times to repeat */\n  readonly tslRepeat = input<number>(1);\n\n  constructor() {\n    effect(() => {\n      const repeat = this.tslRepeat();\n\n      while (this.viewContainer.length > repeat) {\n        this.viewContainer.remove();\n      }\n\n      while (repeat > this.viewContainer.length) {\n        this.viewContainer.createEmbeddedView(this.templateRef, { $implicit: this.viewContainer.length, index: this.viewContainer.length });\n      }\n\n      this.changeDetector.markForCheck();\n    });\n  }\n}\n","import type { OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { Directive, ElementRef, EventEmitter, Input, Output, Renderer2 } from '@angular/core';\nimport { isDefined, isNull, isNullOrUndefined, isNumber, isUndefined } from '@tstdl/base/utils';\nimport type { Observable } from 'rxjs';\nimport { BehaviorSubject, filter, map } from 'rxjs';\n\n@Directive({\n  selector: '[visibilityObserver]',\n  exportAs: 'visibilityObserver',\n  standalone: true\n})\nexport class VisibilityObserverDirective implements OnDestroy, OnInit, OnChanges {\n  private readonly renderer: Renderer2;\n  private readonly isVisibleSubject: BehaviorSubject<boolean>;\n  private readonly visibilitySubject: BehaviorSubject<number>;\n\n  private observer: IntersectionObserver | undefined;\n\n  readonly elementRef: ElementRef<HTMLElement>;\n  readonly isVisible$: Observable<boolean>;\n  readonly visibility$: Observable<number>;\n\n  @Input('visibilityObserver') dataAttribute: string | undefined;\n  @Input('visibilityTreshold') treshold: number;\n  @Input('visibilityMargin') margin: string;\n  @Input('visibilityRoot') root: HTMLElement | number | null | undefined;\n\n  @Output() visible: EventEmitter<ElementRef>;\n  @Output() isVisibleChanged: EventEmitter<boolean>;\n  @Output() visibilityChanged: EventEmitter<number>;\n\n  get isVisible(): boolean {\n    return this.isVisibleSubject.value;\n  }\n\n  get visibility(): number {\n    return this.visibilitySubject.value;\n  }\n\n  constructor(elementRef: ElementRef, renderer: Renderer2) {\n    this.elementRef = elementRef;\n    this.renderer = renderer;\n\n    this.treshold = 0.05;\n    this.margin = '0px';\n    this.root = null;\n    this.isVisibleSubject = new BehaviorSubject<boolean>(false);\n    this.visibilitySubject = new BehaviorSubject<number>(0);\n\n    this.visible = new EventEmitter();\n    this.isVisibleChanged = new EventEmitter();\n    this.visibilityChanged = new EventEmitter();\n\n    this.isVisible$ = this.isVisibleSubject.asObservable();\n    this.visibility$ = this.visibilitySubject.asObservable();\n\n    this.isVisibleSubject.pipe(filter((visible) => visible), map(() => this.elementRef)).subscribe(this.visible);\n    this.isVisible$.subscribe(this.isVisibleChanged);\n    this.visibility$.subscribe(this.visibilityChanged);\n  }\n\n  ngOnInit(): void {\n    this.setupObserver();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if ('treshold' in changes || 'margin' in changes || 'parent' in changes) {\n      this.setupObserver();\n    }\n  }\n\n  onObserve(entries: IntersectionObserverEntry[]): void {\n    const entry = entries[0]!;\n\n    this.visibilitySubject.next(entry.intersectionRatio);\n    this.isVisibleSubject.next(entry.isIntersecting);\n\n    if (isDefined(this.dataAttribute) && this.dataAttribute.length > 0) {\n      setTimeout(() => this.renderer.setAttribute(this.elementRef.nativeElement, `data-${this.dataAttribute}`, entry.isIntersecting.toString()), 50);\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.unobserve();\n\n    this.isVisibleSubject.complete();\n    this.visibilitySubject.complete();\n  }\n\n  private setupObserver(): void {\n    this.unobserve();\n\n    let root: HTMLElement | null = isNullOrUndefined(this.root)\n      ? null\n      : isNumber(this.root)\n        ? this.elementRef.nativeElement\n        : this.root;\n\n    if (isNumber(this.root)) {\n      for (let i = 0; i < this.root; i++) {\n        root = root!.parentElement;\n\n        if (isNull(root)) {\n          throw new Error(`parent element ${this.root} levels above not available`);\n        }\n      }\n    }\n\n    this.observer = new IntersectionObserver((entries) => this.onObserve(entries), { threshold: this.treshold, rootMargin: this.margin, root });\n    this.observer.observe(this.elementRef.nativeElement);\n  }\n\n  private unobserve(): void {\n    if (isUndefined(this.observer)) {\n      return;\n    }\n\n    this.observer.unobserve(this.elementRef.nativeElement);\n    this.observer.disconnect();\n  }\n}\n","import { HttpClient as AngularHttpClient, HttpErrorResponse as AngularHttpErrorResponse, HttpHeaders as AngularHttpHeaders, HttpEventType } from '@angular/common/http';\nimport { Injector as AngularInjector, inject } from '@angular/core';\nimport type { HttpClientRequest } from '@tstdl/base/http';\nimport { HttpClientAdapter, HttpClientResponse, HttpError, HttpErrorReason, HttpHeaders, bustCache } from '@tstdl/base/http';\nimport { Singleton, Injector as TstdlInjector } from '@tstdl/base/injector';\nimport { isBlob, isDefined, isReadableStream, isUint8Array, isUndefined } from '@tstdl/base/utils';\nimport { toArray } from '@tstdl/base/utils/array';\nimport { firstValueFrom, from, race, switchMap, throwError } from 'rxjs';\n\nconst aborted = Symbol('aborted');\n\n@Singleton()\nexport class AngularHttpClientAdapter implements HttpClientAdapter {\n  private readonly angularHttpClient = inject(AngularHttpClient);\n\n  async call(request: HttpClientRequest): Promise<HttpClientResponse> {\n    try {\n      let requestUrl = request.url;\n      let requestHeaders = new AngularHttpHeaders(request.headers.asNormalizedObject() as Record<string, string | string[]>);\n\n      if (request.context[bustCache] == true) {\n        requestHeaders.set('ngsw-bypass', '');\n      }\n\n      const angularResponse = await firstValueFrom(\n        race([\n          this.angularHttpClient.request(request.method, requestUrl, {\n            headers: requestHeaders,\n            responseType: 'blob',\n            observe: 'response',\n            body: getAngularBody(request.body),\n            withCredentials: (request.credentials == 'same-origin') || (request.credentials == 'include'),\n            timeout: request.timeout,\n          }),\n          from(request.cancellationSignal).pipe(switchMap(() => throwError(() => aborted))),\n        ])\n      );\n\n      const headers = convertAngularHeaders(angularResponse.headers);\n\n      const response = new HttpClientResponse({\n        request,\n        statusCode: angularResponse.status,\n        headers,\n        body: angularResponse.body ?? undefined,\n        closeHandler: () => request.abort(),\n      });\n\n      return response;\n    }\n    catch (error: unknown) {\n      if (error == aborted) {\n        throw new HttpError(HttpErrorReason.Cancelled, request);\n      }\n\n      if (!(error instanceof AngularHttpErrorResponse)) {\n        throw new HttpError(HttpErrorReason.Unknown, request, { cause: error as Error });\n      }\n\n      const response = new HttpClientResponse({\n        request,\n        statusCode: error.status,\n        headers: convertAngularHeaders(error.headers),\n        body: (error.error instanceof ProgressEvent) ? undefined : error.error,\n        closeHandler: () => request.abort(),\n      });\n\n      if ((error.type == HttpEventType.Response) && (error.status > 0)) {\n        return response;\n      }\n\n      const reason = getHttpErrorReason(error);\n      const httpError = await HttpError.create(reason, request, response, error);\n      throw httpError;\n    }\n  }\n}\n\nfunction getHttpErrorReason(error: AngularHttpErrorResponse): HttpErrorReason {\n  if ((error.status == 408) || (error.status == 504) || error.message.toLowerCase().includes('timeout')) {\n    return HttpErrorReason.Timeout;\n  }\n\n  return HttpErrorReason.Unknown;\n}\n\nfunction convertAngularHeaders(headers: AngularHttpHeaders): HttpHeaders {\n  const headersObject = Object.fromEntries(headers.keys().map((name) => [name, headers.getAll(name)!] as const).map(([name, values]) => [name, values.length > 1 ? values : values[0]!] as const));\n  return new HttpHeaders(headersObject);\n}\n\nfunction getAngularBody(body: HttpClientRequest['body']): any {\n  if (isUndefined(body)) {\n    return null;\n  }\n\n  if (isDefined(body.json)) {\n    return JSON.stringify(body.json);\n  }\n\n  if (isDefined(body.text)) {\n    return body.text;\n  }\n\n  if (isDefined(body.binary)) {\n    if (isBlob(body.binary)) {\n      return body.binary;\n    }\n\n    if (isUint8Array(body.binary)) {\n      return new Blob([body.binary]);\n    }\n\n    if (isReadableStream(body.binary)) {\n      throw new Error('AngularHttpClientAdapter does not support streams. Use buffer instead.');\n    }\n  }\n\n  if (isDefined(body.form)) {\n    const params = new URLSearchParams();\n\n    for (const [key, entry] of body.form.normalizedEntries()) {\n      for (const value of toArray(entry)) {\n        params.append(key, value);\n      }\n    }\n\n    return params.toString();\n  }\n\n  if (isDefined(body.formData)) {\n    return body.formData;\n  }\n\n  throw new Error('Unsupported body.');\n}\n\nexport function configureAngularHttpClientAdapter(): void {\n  TstdlInjector.register(HttpClientAdapter, { useToken: AngularHttpClientAdapter });\n  TstdlInjector.register(AngularHttpClient, { useFactory: (_, context) => context.resolve(AngularInjector).get(AngularHttpClient) });\n}\n","import type { PipeTransform } from '@angular/core';\nimport { Pipe } from '@angular/core';\nimport { isNullOrUndefined, toDateTime } from '@tstdl/base/utils';\nimport type { DateTimeFormatOptions, LocaleOptions } from 'luxon';\nimport { DateTime } from 'luxon';\n\n@Pipe({\n  name: 'dateTimeLocale',\n  standalone: true\n})\nexport class DateTimeLocalePipe implements PipeTransform {\n  transform(input: Date | DateTime | number | null | undefined, format?: keyof typeof DateTime | DateTimeFormatOptions, options?: LocaleOptions): string | null {\n    if (isNullOrUndefined(input)) {\n      return null;\n    }\n\n    const dateTime = toDateTime(input);\n\n    const formatOptions = (typeof format == 'string')\n      ? DateTime[format] as DateTimeFormatOptions\n      : format;\n\n    return dateTime.toLocaleString(formatOptions, options);\n  }\n}\n","import type { PipeTransform } from '@angular/core';\nimport { Pipe } from '@angular/core';\nimport { isNullOrUndefined } from '@tstdl/base/utils';\nimport type { DateTime } from 'luxon';\n\n@Pipe({\n  name: 'dateTimeToDate',\n  standalone: true\n})\nexport class DateTimeToDatePipe implements PipeTransform {\n  transform(value: DateTime | null | undefined): Date | null {\n    if (isNullOrUndefined(value)) {\n      return null;\n    }\n\n    return value.toJSDate();\n  }\n}\n","import type { PipeTransform } from '@angular/core';\nimport { Pipe } from '@angular/core';\nimport { isNullOrUndefined, toDateTime } from '@tstdl/base/utils';\nimport type { DateTime, DateTimeFormatOptions } from 'luxon';\n\n@Pipe({\n  name: 'dateTime',\n  standalone: true\n})\nexport class DateTimePipe implements PipeTransform {\n  transform(input: Date | DateTime | number | null | undefined, format: string, options?: DateTimeFormatOptions): string | null {\n    if (isNullOrUndefined(input)) {\n      return null;\n    }\n\n    const dateTime = toDateTime(input);\n    return dateTime.toFormat(format, options);\n  }\n}\n","import type { PipeTransform } from '@angular/core';\nimport { Pipe } from '@angular/core';\nimport { decycle } from '@tstdl/base/utils/object';\n\n@Pipe({\n  name: 'decycle',\n  standalone: true\n})\nexport class DecyclePipe implements PipeTransform {\n  transform(value: unknown, replacer?: (value: any) => any): unknown {\n    return decycle(value, replacer);\n  }\n}\n","import type { PipeTransform } from '@angular/core';\nimport { Pipe } from '@angular/core';\nimport { isNullOrUndefined, isNumber } from '@tstdl/base/utils';\nimport type { DurationObjectUnits, DurationOptions } from 'luxon';\nimport { Duration } from 'luxon';\n\n@Pipe({\n  name: 'duration',\n  standalone: true\n})\nexport class DurationPipe implements PipeTransform {\n  transform(millisecondsOrObject: number | Duration | DurationObjectUnits | null | undefined, format: string, options?: DurationOptions, formatOptions?: Parameters<Duration['toFormat']>[1]): string | null {\n    if (isNullOrUndefined(millisecondsOrObject)) {\n      return null;\n    }\n\n    const duration = isNumber(millisecondsOrObject)\n      ? Duration.fromMillis(millisecondsOrObject, options)\n      : millisecondsOrObject instanceof Duration\n        ? millisecondsOrObject\n        : Duration.fromObject(millisecondsOrObject, options);\n\n    return duration.toFormat(format, formatOptions);\n  }\n}\n","import { Injector, Pipe, type PipeTransform, computed, inject, runInInjectionContext, signal, untracked } from '@angular/core';\nimport { switchAll } from '@tstdl/base/signals';\nimport { type DynamicText, LocalizationService, missingLocalizationKeyText, resolveDynamicText } from '@tstdl/base/text';\nimport { isNull, strictEquals } from '@tstdl/base/utils';\n\n@Pipe({\n  name: 'dynamicText',\n  pure: false,\n  standalone: true\n})\nexport class DynamicTextPipe implements PipeTransform {\n  readonly #injector = inject(Injector);\n  readonly #localizationService = inject(LocalizationService);\n\n  readonly #text = signal<DynamicText | null | undefined>(undefined, { equal: strictEquals });\n  readonly #result = switchAll(() => {\n    const text = this.#text();\n    return isNull(text)\n      ? computed(() => null)\n      : runInInjectionContext(this.#injector, () => resolveDynamicText(text ?? missingLocalizationKeyText, this.#localizationService));\n  });\n\n  transform(value: DynamicText | null | undefined): string | null {\n    untracked(() => this.#text.set(value));\n    return this.#result();\n  }\n}\n","import type { PipeTransform } from '@angular/core';\nimport { Pipe, computed, inject, signal, untracked } from '@angular/core';\nimport { switchAll } from '@tstdl/base/signals';\nimport { LocalizationService } from '@tstdl/base/text';\nimport type { Enumeration, EnumerationValue } from '@tstdl/base/types';\nimport { isNotNull, isNullOrUndefined, isObject, strictEquals } from '@tstdl/base/utils';\n\n@Pipe({\n  name: 'localizeEnum',\n  pure: false,\n  standalone: true\n})\nexport class LocalizeEnumPipe implements PipeTransform {\n  readonly #localizationService = inject(LocalizationService);\n\n  readonly #enumeration = signal<Enumeration | null>(null, { equal: strictEquals });\n  readonly #value = signal<EnumerationValue | null>(null, { equal: strictEquals });\n  readonly #parameters = signal<any>(undefined, { equal: strictEquals });\n\n  readonly #result = switchAll(() => {\n    const enumeration = this.#enumeration();\n\n    if (isNotNull(enumeration)) {\n      return this.#localizationService.localizeEnum(enumeration, this.#value() ?? undefined, this.#parameters());\n    }\n\n    return computed(() => '[MISSING LOCALIZATION KEY]');\n  });\n\n  transform<T extends Enumeration>(enumeration: T, parameters?: unknown): string | null;\n  transform<T extends Enumeration>(value: EnumerationValue<T> | null | undefined, enumeration: T, parameters?: unknown): string | null;\n  transform<T extends Enumeration>(enumerationOrValue: T | EnumerationValue<T> | null | undefined, enumerationOrParameters: T | unknown, parametersOrNothing?: unknown): string | null {\n    if (isNullOrUndefined(enumerationOrValue)) {\n      this.updateInputs(null, null);\n      return null;\n    }\n\n    if (isObject(enumerationOrValue)) {\n      this.updateInputs(enumerationOrValue, null, enumerationOrParameters);\n    }\n    else {\n      if (isNullOrUndefined(enumerationOrParameters)) {\n        this.updateInputs(null, null);\n        return null;\n      }\n\n      this.updateInputs(enumerationOrParameters as T, enumerationOrValue, parametersOrNothing);\n    }\n\n    return this.#result();\n  }\n\n  private updateInputs(enumeration: Enumeration | null, value: EnumerationValue | null, parameters: any = undefined): void {\n    untracked(() => {\n      this.#enumeration.set(enumeration);\n      this.#value.set(value);\n      this.#parameters.set(parameters);\n    });\n  }\n}\n","import type { PipeTransform } from '@angular/core';\nimport { Pipe, computed, inject, signal, untracked } from '@angular/core';\nimport { switchAll } from '@tstdl/base/signals';\nimport type { LocalizationData, LocalizationKey } from '@tstdl/base/text';\nimport { LocalizationService, isProxyLocalizationKey } from '@tstdl/base/text';\nimport { isNotNull, isNull, isNullOrUndefined, isString, strictEquals } from '@tstdl/base/utils';\n\n@Pipe({\n  name: 'localize',\n  pure: false,\n  standalone: true,\n})\nexport class LocalizePipe implements PipeTransform {\n  readonly #localizationService = inject(LocalizationService);\n\n  readonly #transformKey = signal<LocalizationKey<any> | null>(null, { equal: strictEquals });\n  readonly #transformParameters = signal<any>(undefined, { equal: strictEquals });\n  readonly #transformData = signal<LocalizationData | null>(null, { equal: strictEquals });\n\n  readonly #result = switchAll(() => {\n    const data = this.#transformData();\n\n    if (isNotNull(data)) {\n      return this.#localizationService.localize(data);\n    }\n\n    const key = this.#transformKey();\n\n    if (isNull(key)) {\n      return computed(() => '[MISSING LOCALIZATION KEY]');\n    }\n\n    return this.#localizationService.localize({ key, parameters: this.#transformParameters() });\n  });\n\n  transform(localizationKey: LocalizationKey | null | undefined): string | null;\n  transform<Parameters>(localizationData: LocalizationData<Parameters> | null | undefined): string | null;\n  transform<Parameters>(localizationKey: LocalizationKey<Parameters> | null | undefined, parameters: Parameters): string | null;\n  transform<Parameters>(localizationDataOrKey: LocalizationData<Parameters> | null | undefined, parametersOrNothing?: Parameters): string | null {\n    if (isNullOrUndefined(localizationDataOrKey)) {\n      this.updateInputs(null, null);\n\n      return null;\n    }\n\n    if (isString(localizationDataOrKey) || isProxyLocalizationKey(localizationDataOrKey)) {\n      this.updateInputs(null, localizationDataOrKey, parametersOrNothing);\n    }\n    else {\n      this.updateInputs(localizationDataOrKey, null);\n    }\n\n    return this.#result();\n  }\n\n  private updateInputs(data: LocalizationData | null, key: LocalizationKey<any> | null, parameters: any = undefined): void {\n    untracked(() => {\n      this.#transformData.set(data);\n      this.#transformKey.set(key);\n      this.#transformParameters.set(parameters);\n    });\n  }\n}\n","import type { PipeTransform } from '@angular/core';\nimport { Pipe } from '@angular/core';\nimport { isArray, isNullOrUndefined, isString } from '@tstdl/base/utils';\n\n@Pipe({\n  name: 'numberLocale',\n  standalone: true\n})\nexport class NumberLocalePipe implements PipeTransform {\n  transform(value: number | null | undefined, locales: string | string[], options?: Intl.NumberFormatOptions): string | null;\n  transform(value: number | null | undefined, options?: Intl.NumberFormatOptions | null): string | null;\n  transform(value: number | null | undefined, localesOrOptions?: string | string[] | Intl.NumberFormatOptions | null, optionsOrNothing?: Intl.NumberFormatOptions): string | null {\n    if (isNullOrUndefined(value)) {\n      return null;\n    }\n\n    const localesProvided = isString(localesOrOptions) || isArray(localesOrOptions);\n    const locales = localesProvided ? localesOrOptions : (navigator.languages as string[]);\n    const options = (localesProvided ? optionsOrNothing : localesOrOptions) ?? undefined;\n\n    return new Intl.NumberFormat(locales, options).format(value);\n  }\n}\n","import type { PipeTransform } from '@angular/core';\nimport { Pipe } from '@angular/core';\nimport { formatNumericDate, formatNumericDateLong, formatNumericDateShort, type FormatDateTimeOptions } from '@tstdl/base/formats';\nimport { isNullOrUndefined } from '@tstdl/base/utils';\n\n@Pipe({\n  name: 'numericDateLocale',\n  standalone: true,\n})\nexport class NumericDateLocalePipe implements PipeTransform {\n  transform(value: number | null | undefined, format: 'short' | 'long' | FormatDateTimeOptions = 'short'): string | null {\n    if (isNullOrUndefined(value)) {\n      return null;\n    }\n\n    if (format == 'short') {\n      return formatNumericDateShort(value);\n    }\n\n    if (format == 'long') {\n      return formatNumericDateLong(value);\n    }\n\n    return formatNumericDate(value, format);\n  }\n}\n","import type { PipeTransform } from '@angular/core';\nimport { Pipe } from '@angular/core';\nimport { isNullOrUndefined, numericDateToDateTime } from '@tstdl/base/utils';\nimport type { DateTimeJSOptions } from 'luxon';\nimport { DateTime } from 'luxon';\n\n@Pipe({\n  name: 'numericDateToDateTime',\n  standalone: true\n})\nexport class NumericDateToDateTimePipe implements PipeTransform {\n  transform(value: number | null | undefined, options?: DateTimeJSOptions): DateTime | null {\n    if (isNullOrUndefined(value)) {\n      return null;\n    }\n\n    return numericDateToDateTime(value, undefined, options);\n  }\n}\n","import type { PipeTransform } from '@angular/core';\nimport { Pipe } from '@angular/core';\nimport { isNullOrUndefined, numericTimeToTimeObject } from '@tstdl/base/utils';\nimport type { DateTimeJSOptions } from 'luxon';\nimport { DateTime } from 'luxon';\n\n@Pipe({\n  name: 'numericTimeToDateTime',\n  standalone: true\n})\nexport class NumericTimeToDateTimePipe implements PipeTransform {\n  transform(numericTime: number | null | undefined, options?: DateTimeJSOptions): DateTime | null {\n    if (isNullOrUndefined(numericTime)) {\n      return null;\n    }\n\n    const timeObject = numericTimeToTimeObject(numericTime);\n\n    if (Number.isNaN(timeObject.hour)) {\n      return DateTime.invalid('NaN time');\n    }\n\n    return DateTime.fromObject(timeObject, options);\n  }\n}\n","import type { PipeTransform } from '@angular/core';\nimport { Pipe } from '@angular/core';\nimport type { LocalizationData, LocalizationKey } from '@tstdl/base/text';\nimport { isString } from '@tstdl/base/utils';\n\nimport { LocalizePipe } from './localize.pipe';\n\n@Pipe({\n  name: 'optionalLocalize',\n  pure: false,\n  standalone: true\n})\nexport class OptionalLocalizePipe extends LocalizePipe implements PipeTransform {\n  override transform(localizationKeyOrString: LocalizationKey | string | null | undefined): string | null;\n  override transform<Parameters>(localizationDataOrString: LocalizationData<Parameters> | string | null | undefined): string | null;\n  override transform<Parameters>(localizationKeyOrString: LocalizationKey<Parameters> | string | null | undefined, parameters: Parameters): string | null;\n  override transform<Parameters>(localizationDataOrKeyOrString: LocalizationData<Parameters> | string | null | undefined, parametersOrNothing?: Parameters): string | null {\n    if (isString(localizationDataOrKeyOrString)) {\n      super.transform(null);\n      return localizationDataOrKeyOrString;\n    }\n\n    return super.transform(localizationDataOrKeyOrString as LocalizationKey, parametersOrNothing as any);\n  }\n}\n","import type { PipeTransform } from '@angular/core';\nimport { Pipe } from '@angular/core';\n\n@Pipe({\n  name: 'pad',\n  standalone: true\n})\nexport class PadPipe implements PipeTransform {\n  transform(input: string | number, length: number, fillString: string | number = ' ', position: 'start' | 'end' = 'start'): string {\n    const inputType = typeof input;\n\n    if (inputType != 'string' && inputType != 'number') {\n      throw new Error(`Padding for type ${inputType} not supported.`);\n    }\n\n    const text = inputType == 'string' ? (input as string) : (input as number).toString();\n    const pad = position == 'start' ? String.prototype.padStart.bind(text) : String.prototype.padEnd.bind(text);\n    return pad(length, fillString.toString());\n  }\n}\n","import type { PipeTransform } from '@angular/core';\nimport { Pipe } from '@angular/core';\nimport type { SafeHtml } from '@angular/platform-browser';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { isNullOrUndefined } from '@tstdl/base/utils';\n\n@Pipe({\n  name: 'safeHtml',\n  standalone: true\n})\nexport class SafeHtmlPipe implements PipeTransform {\n  private readonly domSanitizer: DomSanitizer;\n\n  constructor(domSanitizer: DomSanitizer) {\n    this.domSanitizer = domSanitizer;\n  }\n\n  transform(html: string | null | undefined): SafeHtml | null {\n    if (isNullOrUndefined(html)) {\n      return null;\n    }\n\n    return this.domSanitizer.bypassSecurityTrustHtml(html);\n  }\n}\n","import type { PipeTransform } from '@angular/core';\nimport { Pipe } from '@angular/core';\nimport type { SafeResourceUrl } from '@angular/platform-browser';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { isNullOrUndefined } from '@tstdl/base/utils';\n\n@Pipe({\n  name: 'safeResourceUrl',\n  standalone: true\n})\nexport class SafeResourceUrlPipe implements PipeTransform {\n  private readonly domSanitizer: DomSanitizer;\n\n  constructor(domSanitizer: DomSanitizer) {\n    this.domSanitizer = domSanitizer;\n  }\n\n  transform(url: string | null | undefined): SafeResourceUrl | null {\n    if (isNullOrUndefined(url)) {\n      return null;\n    }\n\n    return this.domSanitizer.bypassSecurityTrustResourceUrl(url);\n  }\n}\n","import type { PipeTransform } from '@angular/core';\nimport { Pipe } from '@angular/core';\nimport type { SafeUrl } from '@angular/platform-browser';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { isNullOrUndefined } from '@tstdl/base/utils';\n\n@Pipe({\n  name: 'safeUrl',\n  standalone: true\n})\nexport class SafeUrlPipe implements PipeTransform {\n  private readonly domSanitizer: DomSanitizer;\n\n  constructor(domSanitizer: DomSanitizer) {\n    this.domSanitizer = domSanitizer;\n  }\n\n  transform(url: string | null | undefined): SafeUrl | null {\n    if (isNullOrUndefined(url)) {\n      return null;\n    }\n\n    return this.domSanitizer.bypassSecurityTrustUrl(url);\n  }\n}\n","import type { PipeTransform, SecurityContext } from '@angular/core';\nimport { Pipe } from '@angular/core';\nimport type { SafeValue } from '@angular/platform-browser';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n  name: 'sanitize',\n  standalone: true\n})\nexport class SanitizePipe implements PipeTransform {\n  private readonly domSanitizer: DomSanitizer;\n\n  constructor(domSanitizer: DomSanitizer) {\n    this.domSanitizer = domSanitizer;\n  }\n\n  transform(url: string | SafeValue | null | undefined, context: SecurityContext): string | null {\n    return this.domSanitizer.sanitize(context, url ?? null);\n  }\n}\n","import type { PipeTransform } from '@angular/core';\nimport { Pipe } from '@angular/core';\nimport type { SerializationOptions } from '@tstdl/base/serializer';\nimport { serialize } from '@tstdl/base/serializer';\n\n@Pipe({\n  name: 'serialize',\n  standalone: true\n})\nexport class SerializePipe implements PipeTransform {\n  transform(value: unknown, options?: SerializationOptions): unknown {\n    return serialize(value, options);\n  }\n}\n","import type { PipeTransform, Signal } from '@angular/core';\nimport { Injector, Pipe, inject } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport type { Observable } from 'rxjs';\n\n@Pipe({\n  name: 'toObservable',\n  standalone: true\n})\nexport class ToObservablePipe implements PipeTransform {\n  private readonly injector = inject(Injector);\n\n  private source: Signal<any> | undefined;\n  private observable: Observable<any> | undefined;\n\n  transform<T>(source: Signal<T>): Observable<T> {\n    if (source != this.source) {\n      this.source = source;\n      this.observable = toObservable(source, { injector: this.injector });\n    }\n\n    return this.observable as Observable<T>;\n  }\n}\n","import type { MonoTypeOperatorFunction, Observable } from 'rxjs';\nimport { switchMap } from 'rxjs';\nimport type { AppStabilizationService } from '../../services';\n\nexport function waitForAppStabilization<T>(appStabilizationService: AppStabilizationService): MonoTypeOperatorFunction<T> {\n  return function waitForAppStabilization<T>(source: Observable<T>): Observable<T> { // eslint-disable-line @typescript-eslint/no-shadow\n    return appStabilizationService.wait$().pipe(switchMap(() => source)); // eslint-disable-line @typescript-eslint/no-unsafe-argument\n  };\n}\n","/* eslint-disable @typescript-eslint/no-shadow */\n\nimport type { NgZone } from '@angular/core';\nimport { Observable, type MonoTypeOperatorFunction } from 'rxjs';\n\nexport function runInZone<T>(zone: NgZone): MonoTypeOperatorFunction<T> {\n  return function runInZone<T>(source: Observable<T>): Observable<T> {\n    return new Observable<T>((subscriber) => source.subscribe({\n      next: (state) => zone.run(() => subscriber.next(state)),\n      complete: () => zone.run(() => subscriber.complete()),\n      error: (error) => zone.run(() => subscriber.error(error))\n    }));\n  };\n}\n\nexport function runOutsideAngular<T>(zone: NgZone): MonoTypeOperatorFunction<T> {\n  return function runOutsideAngular<T>(source: Observable<T>): Observable<T> {\n    return new Observable<T>((subscriber) => source.subscribe({\n      next: (state) => zone.runOutsideAngular(() => subscriber.next(state)),\n      complete: () => zone.runOutsideAngular(() => subscriber.complete()),\n      error: (error) => zone.runOutsideAngular(() => subscriber.error(error))\n    }));\n  };\n}\n\nexport function runTaskInZone<T>(zone: NgZone): MonoTypeOperatorFunction<T> {\n  return function runTaskInZone<T>(source: Observable<T>): Observable<T> {\n    return new Observable<T>((subscriber) => source.subscribe({\n      next: (state) => zone.runTask(() => subscriber.next(state)),\n      complete: () => zone.runTask(() => subscriber.complete()),\n      error: (error) => zone.runTask(() => subscriber.error(error))\n    }));\n  };\n}\n\nexport function runGuardedInZone<T>(zone: NgZone): MonoTypeOperatorFunction<T> {\n  return function runGuardedInZone<T>(source: Observable<T>): Observable<T> {\n    return new Observable<T>((subscriber) => source.subscribe({\n      next: (state) => zone.runGuarded(() => subscriber.next(state)),\n      complete: () => zone.runGuarded(() => subscriber.complete()),\n      error: (error) => zone.runGuarded(() => subscriber.error(error))\n    }));\n  };\n}\n","import { ApplicationRef, Injectable, NgZone } from '@angular/core';\nimport type { Observable } from 'rxjs';\nimport { distinctUntilChanged, first, firstValueFrom, map, shareReplay } from 'rxjs';\n\nimport { runInZone } from '../utils/rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AppStabilizationService {\n  private readonly applicationRef: ApplicationRef;\n  private readonly ngZone: NgZone;\n\n  readonly state$: Observable<boolean>;\n\n  constructor(applicationRef: ApplicationRef, ngZone: NgZone) {\n    this.applicationRef = applicationRef;\n    this.ngZone = ngZone;\n\n    this.state$ = this.getStateObservable();\n  }\n\n  wait$(state: boolean = true): Observable<void> {\n    return this.state$.pipe(\n      first((isStable) => isStable == state),\n      map(() => undefined)\n    );\n  }\n\n  async wait(state: boolean = true): Promise<void> {\n    return firstValueFrom(this.wait$(state));\n  }\n\n  private getStateObservable(): Observable<boolean> {\n    return this.applicationRef.isStable.pipe(\n      runInZone(this.ngZone),\n      distinctUntilChanged(),\n      shareReplay({ bufferSize: 1, refCount: true })\n    );\n  }\n}\n","import { ApplicationRef, Injectable, inject } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ApplicationTickService {\n  private readonly applicationRef = inject(ApplicationRef);\n\n  private scheduled = false;\n\n  schedule(): void {\n    if (!this.scheduled) {\n      requestAnimationFrame(() => {\n        this.scheduled = false;\n        this.applicationRef.tick();\n      });\n\n      this.scheduled = true;\n    }\n  }\n}\n","import { Injectable, Injector, inject } from '@angular/core';\nimport { CustomError, formatError, tstdlErrorsLocalizationKeys, unwrapError, type CustomErrorStatic, type FormatErrorOptions } from '@tstdl/base/errors';\nimport { LocalizationService, type DynamicText } from '@tstdl/base/text';\nimport { isUndefined } from '@tstdl/base/utils';\n\nexport class ErrorHandlerServiceOptions {\n  format?: FormatErrorOptions;\n}\n\nconst defaultFormatErrorOptions: FormatErrorOptions = { includeName: false, includeRest: false, includeStack: false };\n\n@Injectable({\n  providedIn: 'root',\n})\nexport abstract class ErrorHandlerMessageService {\n  readonly #injector = inject(Injector);\n\n  #_localizationService: LocalizationService | undefined;\n\n  get #localizationService(): LocalizationService {\n    if (isUndefined(this.#_localizationService)) {\n      this.#_localizationService = this.#injector.get(LocalizationService);\n    }\n\n    return this.#_localizationService;\n  }\n\n  private readonly format = { ...defaultFormatErrorOptions, ...inject(ErrorHandlerServiceOptions, { optional: true })?.format };\n\n  getErrorMessage(error: unknown): { header?: DynamicText, message: DynamicText } {\n    const actualError = unwrapError(error);\n\n    if ((actualError instanceof CustomError)) {\n      const errorLocalizationKey = tstdlErrorsLocalizationKeys.errors[(actualError.constructor as CustomErrorStatic).errorName]!;\n      const headerLocalizationKey = errorLocalizationKey.header;\n      const messageLocalizationKey = errorLocalizationKey.message;\n\n      const hasHeader = this.#localizationService.hasKey(headerLocalizationKey);\n      const hasMessage = this.#localizationService.hasKey(messageLocalizationKey ?? '');\n\n      if (hasHeader || hasMessage) {\n        return {\n          header: hasMessage ? { key: headerLocalizationKey, parameters: actualError } : undefined,\n          message: { key: messageLocalizationKey ?? headerLocalizationKey, parameters: actualError },\n        };\n      }\n    }\n\n    return {\n      header: (actualError instanceof Error) ? actualError.name : undefined,\n      message: formatError(actualError, this.format),\n    };\n  }\n}\n","import type { DynamicText } from '@tstdl/base/text';\nimport type { Record, SimplifyObject, TypedOmit } from '@tstdl/base/types';\nimport type { InputAttributes, InputMode, InputType, TextAreaAttributes } from '@tstdl/base/types';\n\nexport type MessageBoxInputs = Record<string, MessageBoxInput>;\nexport type MessageBoxResult<T = any, I extends MessageBoxInputs = MessageBoxInputs, D = undefined> =\n  | { dismissed: false, actionValue: T, inputs: MessageBoxInputsOutput<I> }\n  | { dismissed: true, actionValue: D, inputs: MessageBoxInputsOutput<I> };\n\nexport type MessageBoxInputsOutput<T extends MessageBoxInputs> = { [P in keyof T]: T[P]['required'] extends true ? MessageBoxInputOutput<T[P]> : (MessageBoxInputOutput<T[P]> | null) };\n\nexport type MessageBoxInputOutput<T extends MessageBoxInput> =\n  | T extends (MessageBoxTextInput | MessageBoxTextAreaInput) ? string\n  : T extends MessageBoxSelectInput<infer U> ? U\n  : never;\n\nexport type MessageBoxAction<T = any, I extends MessageBoxInputs = MessageBoxInputs> = {\n  text: DynamicText,\n  value?: T,\n  disableOnInvalidInputs?: boolean,\n  handler?: (value: T, inputs: MessageBoxInputsOutput<I>) => any | Promise<any>\n};\n\nexport type NotificationType = 'info' | 'success' | 'warning' | 'error';\n\ntype MessageBoxInputBase<Type extends string> = {\n  type: Type,\n  enabled?: boolean,\n  required?: boolean\n};\n\nexport type MessageBoxTextInput = MessageBoxInputBase<'text'> & {\n  inputType?: InputType,\n  mode?: InputMode,\n  label?: DynamicText,\n  placeholder?: DynamicText,\n  initialValue?: any,\n  pattern?: string | RegExp,\n  attributes?: TypedOmit<InputAttributes, 'type' | 'mode' | 'placeholder' | 'required' | 'value' | 'pattern'>,\n  validator?: (value: any) => boolean\n};\n\nexport type MessageBoxTextAreaInput = MessageBoxInputBase<'text-area'> & {\n  label?: DynamicText,\n  placeholder?: DynamicText,\n  initialValue?: any,\n  pattern?: string | RegExp,\n  attributes?: TypedOmit<TextAreaAttributes, 'placeholder' | 'required'>,\n  validator?: (value: any) => boolean\n};\n\nexport type MessageBoxSelectInputItem<T> = {\n  label: DynamicText,\n  value: T\n};\n\nexport type MessageBoxSelectInput<T> = MessageBoxInputBase<'select'> & {\n  items: MessageBoxSelectInputItem<T>[],\n  label?: DynamicText,\n  initialValue?: T\n};\n\nexport type MessageBoxInput<T = any> = MessageBoxTextInput | MessageBoxTextAreaInput | MessageBoxSelectInput<T>;\n\nexport type MessageBoxData<T = any, I extends MessageBoxInputs = MessageBoxInputs, D = undefined> = {\n  type?: NotificationType,\n  header?: DynamicText,\n  subHeader?: DynamicText,\n  message?: DynamicText,\n  actions?: MessageBoxAction<T, I>[],\n  inputs?: I,\n  dismiss?: D\n};\n\nexport type NotifyData = {\n  type?: NotificationType,\n  header?: DynamicText,\n  message: DynamicText,\n  duration?: number\n};\n\nexport abstract class NotificationService {\n  abstract openMessageBox<T = never, I extends MessageBoxInputs = Record<never>, D = undefined>(data: MessageBoxData<T, I, D>): Promise<MessageBoxResult<T, I, D>>;\n  abstract notify(data: NotifyData): void;\n}\n\nexport function messageBoxTextInput<T extends TypedOmit<MessageBoxTextInput, 'type'>>(input: T): SimplifyObject<{ type: 'text' } & T> {\n  return { type: 'text', ...input };\n}\n\nexport function messageBoxTextAreaInput<T extends TypedOmit<MessageBoxTextAreaInput, 'type'>>(input: T): SimplifyObject<{ type: 'text-area' } & T> {\n  return { type: 'text-area', ...input };\n}\n\nexport function messageBoxSelectInput<T, U extends TypedOmit<MessageBoxSelectInput<T>, 'type'>>(input: U): SimplifyObject<{ type: 'select' } & U> {\n  return { type: 'select', ...input };\n}\n\nexport function isMessageBoxTextInput(input: MessageBoxInput): input is MessageBoxTextInput {\n  return input.type == 'text';\n}\n\nexport function isMessageBoxTextAreaInput(input: MessageBoxInput): input is MessageBoxTextAreaInput {\n  return input.type == 'text-area';\n}\n\nexport function isMessageBoxSelectInput<T>(input: MessageBoxInput<T>): input is MessageBoxSelectInput<T> {\n  return input.type == 'select';\n}\n","import type { ErrorHandler } from '@angular/core';\nimport { Injectable, Injector, inject } from '@angular/core';\nimport { Logger } from '@tstdl/base/logger';\nimport { isFunction, isObject, isUndefined } from '@tstdl/base/utils';\nimport type { OperatorFunction } from 'rxjs';\nimport { Subject, catchError, throwError } from 'rxjs';\n\nimport { ErrorHandlerMessageService } from './error-handler-message.service';\nimport { NotificationService } from './notification.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ErrorHandlerService implements ErrorHandler {\n  readonly #injector = inject(Injector);\n\n  #logger: Logger;\n\n  private readonly notificationService = inject(NotificationService);\n  private readonly errorHandlerMessageService = inject(ErrorHandlerMessageService);\n  private readonly errorSubject = new Subject<any>();\n  private readonly notifiedErrors = new WeakSet();\n\n  readonly error$ = this.errorSubject.asObservable();\n\n  get logger(): Logger {\n    if (isUndefined(this.#logger)) {\n      this.#logger = this.#injector.get(Logger);\n    }\n\n    return this.#logger;\n  }\n\n  handleError$<T>(): OperatorFunction<T, T> {\n    return catchError((error: Error) => {\n      this.handleError(error);\n      return throwError(() => error);\n    });\n  }\n\n  handleError(error: unknown): void {\n    this.logger.error(error as Error, { includeRest: true, includeStack: true });\n    this.errorSubject.next(error);\n\n    if (isFunction(error) || isObject(error)) {\n      if (this.notifiedErrors.has(error)) {\n        return;\n      }\n\n      this.notifiedErrors.add(error);\n    }\n\n    const notificationData = this.errorHandlerMessageService.getErrorMessage(error);\n    this.notificationService.notify({ type: 'error', ...notificationData });\n  }\n}\n","import type { Signal, WritableSignal } from '@angular/core';\nimport { effect, ErrorHandler, inject, linkedSignal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport type { NavigationExtras } from '@angular/router';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport type { Record, SimplifiedLiteralUnion, TypedOmit } from '@tstdl/base/types';\nimport { assertStringPass, isArray, isDefined, isFunction, isNotFunction, isNotNull, isNull } from '@tstdl/base/utils';\nimport type { Observable } from 'rxjs';\nimport { combineLatest, map } from 'rxjs';\n\nexport type TransformOptions<T extends string | string[] | null, TTransform> = {\n  transform?: ((value: T) => TTransform) | {\n    fromString: (value: T) => TTransform,\n    toString?: (value: TTransform) => T\n  }\n};\n\ntype WithTransformOptions<T extends string | string[] | null, TTransform> = Required<TransformOptions<T, TTransform>>;\n\ntype WithoutTransformOptions = TypedOmit<TransformOptions<string, undefined>, 'transform'> & { transform?: undefined };\n\nexport type InjectParameterOptions = {\n  optional?: boolean\n};\n\nexport class RoutingService {\n  readonly router = inject(Router);\n  readonly route = inject(ActivatedRoute);\n\n  async setQueryParameter(key: string, value: string | string[] | null): Promise<void> {\n    await this.setQueryParameters({ [key]: value });\n  }\n\n  async setQueryParameters(parameters: Record<string, string | string[] | null>, options?: Pick<NavigationExtras, 'queryParamsHandling'>): Promise<void> {\n    await this.router.navigate([], {\n      queryParams: parameters,\n      queryParamsHandling: options?.queryParamsHandling ?? 'merge',\n    });\n  }\n\n  async setFragment(value: string | null): Promise<void> {\n    await this.router.navigate([], {\n      fragment: value ?? '',\n      queryParamsHandling: 'preserve',\n    });\n  }\n}\n\nexport function injectRoutingService(): RoutingService {\n  return new RoutingService();\n}\n\nexport function injectParameter<T extends string>(parameter: string, options: InjectParameterOptions & { optional: true }): Signal<SimplifiedLiteralUnion<T> | null>;\nexport function injectParameter<T extends string>(parameter: string, options?: InjectParameterOptions & { optional?: false }): Signal<SimplifiedLiteralUnion<T>>;\nexport function injectParameter(parameter: string, options?: InjectParameterOptions): Signal<string | null> {\n  return toSignal(injectParameter$(parameter, options), { requireSync: true });\n}\n\nexport function injectParameter$<T extends string>(parameter: string, options: InjectParameterOptions & { optional: true }): Observable<SimplifiedLiteralUnion<T> | null>;\nexport function injectParameter$<T extends string>(parameter: string, options?: InjectParameterOptions & { optional?: false }): Observable<SimplifiedLiteralUnion<T>>;\nexport function injectParameter$<T extends string>(parameter: string, options?: InjectParameterOptions): Observable<SimplifiedLiteralUnion<T> | null>;\nexport function injectParameter$<T extends string>(parameter: string, options?: InjectParameterOptions): Observable<SimplifiedLiteralUnion<T> | null> {\n  const observable = getParameterFromAll$(parameter);\n\n  const result = (options?.optional == true)\n    ? observable\n    : observable.pipe(map((value) => assertStringPass(value, `Missing ${parameter} in route parameters.`)));\n\n  return result as Observable<SimplifiedLiteralUnion<T> | null>;\n}\n\nexport function injectParameters<T extends string>(parameter: string): Signal<SimplifiedLiteralUnion<T>[]> {\n  return toSignal(injectParameters$(parameter), { requireSync: true });\n}\n\nexport function injectParameters$<T extends string>(parameter: string): Observable<SimplifiedLiteralUnion<T>[]> {\n  return getParametersFromAll$(parameter) as Observable<SimplifiedLiteralUnion<T>[]>;\n}\n\nexport function injectQueryParameter<T extends string, TTransform>(parameter: string, options: WithTransformOptions<SimplifiedLiteralUnion<T> | null, TTransform>): WritableSignal<TTransform>;\nexport function injectQueryParameter<T extends string>(parameter: string, options?: WithoutTransformOptions): WritableSignal<SimplifiedLiteralUnion<T> | null>;\nexport function injectQueryParameter<TTransform>(parameter: string, options?: TransformOptions<string | null, TTransform>): WritableSignal<string | TTransform | null> {\n  const routingService = injectRoutingService();\n  const errorHandler = inject(ErrorHandler);\n\n  const transformFromString = isFunction(options?.transform) ? options.transform : options?.transform?.fromString;\n  const transformToString = ((isDefined(options?.transform) && isNotFunction(options.transform)) ? options.transform.toString : undefined) ?? ((value: any) => isNull(value) ? null : String(value));\n  const parameterSignal = toSignal(injectQueryParameter$(parameter), { requireSync: true });\n  const signal = linkedSignal<string | TTransform | null>(isDefined(transformFromString) ? () => transformFromString(parameterSignal()) : parameterSignal);\n\n  if (isNotNull(routingService.route)) {\n    effect(() => {\n      void routingService.setQueryParameter(parameter, transformToString(signal() as TTransform)).catch((error) => errorHandler.handleError(error));\n    });\n  }\n\n  return signal;\n}\n\nexport function injectQueryParameter$<T extends string>(parameter: string): Observable<SimplifiedLiteralUnion<T> | null> {\n  return inject(ActivatedRoute).queryParamMap.pipe(map((value) => value.get(parameter) as SimplifiedLiteralUnion<T> | null));\n}\n\nexport function injectQueryParameters<T extends string, TTransform>(parameter: string, options: WithTransformOptions<SimplifiedLiteralUnion<T>[], TTransform>): WritableSignal<TTransform>;\nexport function injectQueryParameters<T extends string>(parameter: string, options?: WithoutTransformOptions): WritableSignal<SimplifiedLiteralUnion<T>[]>;\nexport function injectQueryParameters<TTransform>(parameter: string, options?: TransformOptions<string[], TTransform>): WritableSignal<string[] | TTransform> {\n  const routingService = injectRoutingService();\n  const errorHandler = inject(ErrorHandler);\n\n  const transformFromString = isFunction(options?.transform) ? options.transform : options?.transform?.fromString;\n  const transformToString = ((isDefined(options?.transform) && isNotFunction(options.transform)) ? options.transform.toString : undefined) ?? ((value: any) => isArray(value) ? value.map(String) : isNull(value) ? null : String(value));\n  const parameterSignal = toSignal(injectQueryParameters$(parameter), { requireSync: true });\n  const signal = linkedSignal<string[] | TTransform>(isDefined(transformFromString) ? () => transformFromString(parameterSignal()) : parameterSignal);\n\n  if (isNotNull(routingService.route)) {\n    effect(() => {\n      const value = signal();\n      void routingService.setQueryParameter(parameter, isArray(value) ? value.map(String) : transformToString(value)).catch((error) => errorHandler.handleError(error));\n    });\n  }\n\n  return signal;\n}\n\nexport function injectQueryParameters$<T extends string>(parameter: string): Observable<SimplifiedLiteralUnion<T>[]> {\n  return inject(ActivatedRoute).queryParamMap.pipe(map((value) => value.getAll(parameter) as SimplifiedLiteralUnion<T>[]));\n}\n\nexport function injectFragmet(): WritableSignal<string | null> {\n  const routingService = injectRoutingService();\n  const errorHandler = inject(ErrorHandler);\n\n  const parameterSignal = toSignal(injectFragmet$(), { requireSync: true });\n  const signal = linkedSignal(parameterSignal);\n\n  effect(() => void routingService.setFragment(signal()).catch((error) => errorHandler.handleError(error)));\n\n  return signal;\n}\n\nexport function injectFragmet$(): Observable<string | null> {\n  return inject(ActivatedRoute).fragment;\n}\n\nexport function injectRouteData<T extends Record = Record>(): Signal<T> {\n  return toSignal(injectRouteData$(), { requireSync: true });\n}\n\nexport function injectRouteData$<T extends Record = Record>(): Observable<T> {\n  return inject(ActivatedRoute).data as Observable<T>;\n}\n\nfunction getParameterFromAll$(parameter: string, route: ActivatedRoute = inject(ActivatedRoute)): Observable<string | null> {\n  const path = getRoutePath(route);\n  const paramMaps = path.map((r) => r.paramMap);\n\n  return combineLatest(paramMaps).pipe(\n    map((maps) => {\n      for (const paramMap of maps) {\n        const value = paramMap.get(parameter);\n\n        if (isNotNull(value)) {\n          return value;\n        }\n      }\n\n      return null;\n    })\n  );\n}\n\nfunction getParametersFromAll$(parameter: string, route: ActivatedRoute = inject(ActivatedRoute)): Observable<string[]> {\n  const path = getRoutePath(route);\n  const paramMaps = path.map((r) => r.paramMap);\n\n  return combineLatest(paramMaps).pipe(\n    map((maps) => {\n      for (const paramMap of maps) {\n        const values = paramMap.getAll(parameter);\n\n        if (values.length > 0) {\n          return values;\n        }\n      }\n\n      return [];\n    })\n  );\n}\n\nfunction getRoutePath(route: ActivatedRoute): ActivatedRoute[] {\n  const routes = [route];\n\n  while (true) {\n    const currentRoute = routes.at(-1)!;\n\n    if (isNull(currentRoute.parent)) {\n      return routes;\n    }\n\n    routes.push(currentRoute.parent);\n  }\n}\n","import type { Provider, ProviderToken } from '@angular/core';\nimport { Injector } from '@angular/core';\nimport type { Injector as TstdlInjector } from '@tstdl/base/injector';\n\nexport declare abstract class R3Injector extends Injector {\n  records: R3InjectorRecordsMap;\n  processProvider(provider: Provider): void;\n}\n\nexport type R3InjectorRecordsMap = Map<ProviderToken<any>, any>;\n\nexport class WrappedR3InjectorRecordsMap implements R3InjectorRecordsMap {\n  readonly #injector: TstdlInjector;\n\n  #processingProvider = false;\n\n  private readonly r3Injector: R3Injector;\n  private readonly records: R3InjectorRecordsMap;\n\n  get size(): number {\n    return this.records.size;\n  }\n\n  get [Symbol.toStringTag](): string {\n    return this.records[Symbol.toStringTag];\n  }\n\n  constructor(injector: TstdlInjector, r3Injector: R3Injector, records: R3InjectorRecordsMap) {\n    this.#injector = injector;\n    this.r3Injector = r3Injector;\n    this.records = records;\n  }\n\n  static wrap(injector: TstdlInjector, r3Injector: R3Injector): void {\n    r3Injector.records = new WrappedR3InjectorRecordsMap(injector, r3Injector, r3Injector.records);\n  }\n\n  clear(): void {\n    this.records.clear();\n  }\n\n  delete(key: ProviderToken<any>): boolean {\n    return this.records.delete(key);\n  }\n\n  forEach(callbackfn: (value: any, key: ProviderToken<any>, map: R3InjectorRecordsMap) => void, thisArg?: any): void {\n    const _this = this; // eslint-disable-line @typescript-eslint/no-this-alias\n\n    function callback(value: any, key: ProviderToken<any>): void {\n      callbackfn(value, key, _this);\n    }\n\n    this.records.forEach(callback, thisArg);\n  }\n\n  get(key: ProviderToken<any>): any {\n    this.addIfPossible(key);\n    return this.records.get(key);\n  }\n\n  has(key: ProviderToken<any>): boolean {\n    this.addIfPossible(key);\n    return this.records.has(key);\n  }\n\n  set(key: ProviderToken<any>, value: any): this {\n    this.records.set(key, value);\n    return this;\n  }\n\n  entries(): MapIterator<[ProviderToken<any>, any]> {\n    return this.records.entries();\n  }\n\n  keys(): MapIterator<ProviderToken<any>> {\n    return this.records.keys();\n  }\n\n  values(): MapIterator<any> {\n    return this.records.values();\n  }\n\n  [Symbol.iterator](): MapIterator<[ProviderToken<any>, any]> {\n    return this.records[Symbol.iterator]();\n  }\n\n  private addIfPossible(key: ProviderToken<any>): void {\n    if (this.#processingProvider) {\n      return;\n    }\n\n    try {\n      this.#processingProvider = true;\n\n      if (!this.records.has(key) && this.#injector.hasRegistration(key as any)) {\n        this.r3Injector.processProvider({ provide: key, useFactory: (): any => this.#injector.resolve(key as any) });\n      }\n    }\n    finally {\n      this.#processingProvider = false;\n    }\n  }\n}\n","import type { CreateEffectOptions, Signal } from '@angular/core';\nimport { DOCUMENT as ANGULAR_DOCUMENT, DestroyRef, type EnvironmentProviders, Injector, NgModule, type Provider, computed, effect, importProvidersFrom, inject, isDevMode, isSignal, makeEnvironmentProviders, provideAppInitializer, runInInjectionContext, signal, untracked } from '@angular/core';\nimport type { ToObservableOptions } from '@angular/core/rxjs-interop';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { enableProdMode as enableTstdlProdMode } from '@tstdl/base';\nimport { HttpClientAdapter } from '@tstdl/base/http';\nimport { Injector as TstdlInjector, isInInjectionContext, runInInjectionContext as runInTstdlInjectionContext } from '@tstdl/base/injector';\nimport { LogTransport, PrettyPrintLogFormatter, provideConsoleLogTransport } from '@tstdl/base/logger';\nimport { type CreateEffectOptions as TstdlCreateEffectOptions, type ToObservableOptions as TstdlToObservableOptions, type ToSignalOptions as TstdlToSignalOptions, configureSignals } from '@tstdl/base/signals';\nimport { DOCUMENT } from '@tstdl/base/tokens';\nimport { isNull } from '@tstdl/base/utils';\nimport { Observable, type Subscribable } from 'rxjs';\nimport type { Tagged } from 'type-fest';\n\nimport { TstdlIndeterminateProgressBarComponent, TstdlSkeletonComponent } from './components';\nimport { AutoForDirective, AutoIdDirective, InputPatternDirective, LazyDirective, LazyListDirective, LetDirective, RepeatDirective, VisibilityObserverDirective } from './directives';\nimport { configureAngularHttpClientAdapter } from './http';\nimport { DateTimeLocalePipe, DateTimePipe, DateTimeToDatePipe, DecyclePipe, DurationPipe, DynamicTextPipe, LocalizeEnumPipe, LocalizePipe, NumberLocalePipe, NumericDateToDateTimePipe, NumericTimeToDateTimePipe, OptionalLocalizePipe, PadPipe, SafeHtmlPipe, SafeResourceUrlPipe, SafeUrlPipe, SerializePipe } from './pipes';\nimport { type R3Injector, WrappedR3InjectorRecordsMap } from './services/wrapped-r3-injector-records-map';\n\nlet tstdlInitialized = false;\n\nconst pipes = [\n  DateTimeLocalePipe,\n  DateTimePipe,\n  DateTimeToDatePipe,\n  DecyclePipe,\n  DurationPipe,\n  DynamicTextPipe,\n  LocalizeEnumPipe,\n  LocalizePipe,\n  NumberLocalePipe,\n  NumericDateToDateTimePipe,\n  NumericTimeToDateTimePipe,\n  OptionalLocalizePipe,\n  PadPipe,\n  SafeHtmlPipe,\n  SafeResourceUrlPipe,\n  SafeUrlPipe,\n  SerializePipe,\n];\n\nconst directives = [\n  AutoForDirective,\n  AutoIdDirective,\n  InputPatternDirective,\n  LazyDirective,\n  LazyListDirective,\n  LetDirective,\n  RepeatDirective,\n  VisibilityObserverDirective,\n];\n\nconst components = [\n  TstdlSkeletonComponent,\n  TstdlIndeterminateProgressBarComponent,\n];\n\nconst declarations = [\n  ...pipes,\n  ...directives,\n  ...components,\n];\n\nexport class TstdlBridgeServiceOptions {\n  debugInjectorWrapper?: boolean;\n}\n\n@NgModule({\n  imports: declarations,\n  exports: declarations,\n  providers: [\n    provideAppInitializer(tstdlInitializer),\n    { provide: TstdlInjector, useFactory: () => new TstdlInjector('TstdlAngularBridgeInjector') },\n  ],\n})\nexport class TstdlAngularModule { }\n\nfunction tstdlInitializer(): void {\n  if (!tstdlInitialized) {\n    if (!isDevMode()) {\n      enableTstdlProdMode();\n    }\n\n    tstdlSignalsInitializer();\n  }\n\n  injectorInitializer();\n\n  tstdlInitialized = true;\n}\n\nfunction injectorInitializer(): void {\n  const injector = inject(Injector);\n  const tstdlInjector = inject(TstdlInjector);\n\n  wrapInjector(injector, tstdlInjector);\n\n  inject(DestroyRef).onDestroy(() => void tstdlInjector.dispose());\n\n  tstdlInjector.register(Injector, { useValue: injector });\n  tstdlInjector.register(DOCUMENT, { useFactory: () => injector.get(ANGULAR_DOCUMENT) });\n\n  if (!tstdlInjector.hasRegistration(HttpClientAdapter)) {\n    configureAngularHttpClientAdapter();\n  }\n\n  if (!tstdlInjector.hasRegistration(LogTransport)) {\n    tstdlInjector.register(LogTransport, provideConsoleLogTransport(PrettyPrintLogFormatter));\n  }\n}\n\nfunction tstdlSignalsInitializer(): void {\n  configureSignals<Injector>({\n    signal,\n    computed,\n    effect: (effectFn: Parameters<typeof effect>[0], options?: TstdlCreateEffectOptions) => {\n      return effect(effectFn, options as CreateEffectOptions);\n    },\n    untracked,\n    isSignal,\n    toSignal: <T>(source: Observable<T> | Subscribable<T>, options?: TstdlToSignalOptions<T>) => {\n      return toSignal(source, options as any);\n    },\n    toObservable: <T>(source: Signal<T>, options?: TstdlToObservableOptions) => {\n      return toObservable(source, options as ToObservableOptions);\n    },\n    isInSignalsInjectionContext: () => isInInjectionContext(),\n    getCurrentSignalsInjector: () => inject(Injector),\n    runInSignalsInjectionContext: (injector, fn) => runInInjectionContext(injector, fn),\n  });\n}\n\nexport function provideTstdlAngular(...providers: Tagged<Provider, 'tstdl-angular'>[][]): EnvironmentProviders {\n  return makeEnvironmentProviders([\n    importProvidersFrom(TstdlAngularModule),\n    ...providers,\n  ]);\n}\n\nexport function withTstdlBridgeServiceOptions(options: TstdlBridgeServiceOptions): Tagged<Provider, 'tstdl-angular'>[] {\n  return [\n    {\n      provide: TstdlBridgeServiceOptions,\n      useValue: options,\n    },\n  ] as Tagged<Provider, 'tstdl-angular'>[];\n}\n\nfunction wrapInjector(injector: Injector, tstdlInjector: TstdlInjector): void {\n  const debug = inject(TstdlBridgeServiceOptions, { optional: true })?.debugInjectorWrapper ?? false;\n\n  WrappedR3InjectorRecordsMap.wrap(tstdlInjector, injector as R3Injector);\n\n  if (tstdlInitialized) {\n    return;\n  }\n\n  const originalGet = injector.constructor.prototype.get as Injector['get']; // eslint-disable-line @typescript-eslint/no-unsafe-member-access\n\n  function tstdlGetWrapper(this: Injector, ...args: Parameters<Injector['get']>): any {\n    if (debug) {\n      console.trace('TstdlBridgeService: injector get called with args:', args);\n    }\n\n    const tstdlInjector = originalGet.apply(this, [TstdlInjector, null]) as TstdlInjector | null;\n\n    if (isNull(tstdlInjector)) {\n      return originalGet.apply(this, args);\n    }\n\n    return runInTstdlInjectionContext(tstdlInjector, () => originalGet.apply(this, args)); // eslint-disable-line @typescript-eslint/no-unsafe-return\n  }\n\n  injector.constructor.prototype.get = tstdlGetWrapper; // eslint-disable-line @typescript-eslint/no-unsafe-member-access\n}\n","import { effect, ErrorHandler, inject, resource, type ResourceOptions, type ResourceRef } from '@angular/core';\nimport { isNotNullOrUndefined } from '@tstdl/base/utils';\n\n/**\n * Wrapper for angulars {@link resource} which raises errors to {@link ErrorHandler}\n * @param options\n * @returns\n */\nfunction errorHandledResource<T, R>(options: ResourceOptions<T, R> & { defaultValue: NoInfer<T> }): ResourceRef<T>;\nfunction errorHandledResource<T, R>(options: ResourceOptions<T, R>): ResourceRef<T | undefined>;\nfunction errorHandledResource<T, R>(options: ResourceOptions<T, R>): ResourceRef<T | undefined> {\n  const errorHandler = inject(ErrorHandler);\n  const resourceRef = resource(options);\n\n  effect(() => {\n    if (resourceRef.status() != 'error') {\n      return;\n    }\n\n    const error = resourceRef.error();\n\n    if (isNotNullOrUndefined(error)) {\n      errorHandler.handleError(error);\n    }\n  }, { injector: options.injector });\n\n  return resourceRef;\n}\n\nexport { errorHandledResource as resource };\n","import type { ResolveFn } from '@angular/router';\nimport type { Record } from '@tstdl/base/types';\n\nexport type RouteDataDefinition<T extends Record> = {\n  [P in keyof T]: T[P] | ResolveFn<T>;\n};\n\nexport function routeData<T extends Record>(definition: RouteDataDefinition<T>): RouteDataDefinition<T> {\n  return definition;\n}\n","import { isNull } from '@tstdl/base/utils';\n\nexport function numberTransform(value: any): number | null {\n  if (isNull(value)) {\n    return null;\n  }\n\n  const number = Number(value);\n\n  if (Number.isNaN(number)) {\n    return null;\n  }\n\n  return number;\n}\n\nexport function booleanTransform(value: any): boolean | null {\n  if ((value === true) || (value === 'true') || (value === 1)) {\n    return true;\n  }\n\n  if ((value === false) || (value === 'false') || (value === 0)) {\n    return false;\n  }\n\n  return null;\n}\n\nexport function numberTransformWithFallback<F>(fallback: F): (value: any) => number | F {\n  return (value: any) => numberTransform(value) ?? fallback;\n}\n\nexport function booleanTransformWithFallback<F>(fallback: F): (value: any) => boolean | F {\n  return (value: any) => booleanTransform(value) ?? fallback;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["AngularHttpClient","AngularHttpHeaders","AngularHttpErrorResponse","HttpHeaders","TstdlInjector","AngularInjector","enableTstdlProdMode","ANGULAR_DOCUMENT","runInTstdlInjectionContext"],"mappings":"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"}