@kms-ngx-ui/presentational 20.1.13 → 20.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kms-ngx-ui-presentational.mjs","sources":["../../../../projects/kms-ngx-ui-presentational/src/lib/kms-ngx-ui-presentational.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/integer-currency.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/safe-html.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/safe-resource-url.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/safe-url.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/sanitaze-null.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/trim.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/typeof.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/custom-pipes.module.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/sum-of-height.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/swipe.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/time.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/tooltip.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/directives.module.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/services/viewport.service.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/enums/colors.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/enums/iconSize.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/icon/icon.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/icon/icon.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/back-to-top/back-to-top.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/back-to-top/back-to-top.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/card/card.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/card/card.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/checkbox/checkbox.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/checkbox/checkbox.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/parent-components/form.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/parent-components/form-control.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/dropdown-from-data/dropdown-from-data.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/dropdown-from-data/dropdown-from-data.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/loader/loader.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/loader/loader.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/models/address.model.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/map/map.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/map/map.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/enums/radioButtonSize.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/radiobutton/radiobutton.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/radiobutton/radiobutton.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/slide-toggle/slide-toggle.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/slide-toggle/slide-toggle.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/slider/slider.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/slider/slider.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/enums/buttonAppearance.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/button/button.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/button/button.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/tooltip-icon/tooltip-icon.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/tooltip-icon/tooltip-icon.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/color-input/color-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/color-input/color-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/confirmation-dialog/dialog-data.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/confirmation-dialog/confirmation-dialog.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/confirmation-dialog/confirmation-dialog.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/date-input/date-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/date-input/date-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/enum-radiogroup/enum-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/enum-radiogroup/enum-radiogroup.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/models/is-value.function.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/file-input/file-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/file-input/file-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/flyout/flyout.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/flyout/flyout.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/image-slider/image-slider.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/image-slider/image-slider.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/kms-accordion-item/kms-accordion-item.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/kms-accordion-item/kms-accordion-item.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/numeric-input/numeric-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/numeric-input/numeric-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/password/password.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/password/password.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/radiogroup/radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/radiogroup/radiogroup.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/models/salutation.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/salutation-dropdown/salutation-dropdown.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/salutation-dropdown/salutation-dropdown.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/models/image-snippet.model.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/text-value-pair.model.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/types/attached-file-dto.model.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/types/nullable.type.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/salutation-radiogroup/salutation-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/salutation-radiogroup/salutation-radiogroup.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/text-input/text-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/text-input/text-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/time-input/time-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/time-input/time-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/yes-no-radiogroup/yes-no-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/yes-no-radiogroup/yes-no-radiogroup.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/components/form-actions/form-actions.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/components/form-actions/form-actions.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/models/field-type.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/services/generic-form.service.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/services/field-registry.service.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/directives/dynamic-field.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/components/form-field/form-field.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/components/form-field/form-field.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/components/form-section/form-section.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/components/form-section/form-section.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/components/generic-form/generic-form.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/components/generic-form/generic-form.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/kms-ngx-ui-presentational.module.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/kms-ngx-ui-presentational.service.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/button-response-types.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/validators/content.validators.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/models/kms-error-messages.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/generic-form.module.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/models/form-layout.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/public-api.ts","../../../../projects/kms-ngx-ui-presentational/src/kms-ngx-ui-presentational.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\n\n@Component({\n standalone: false,\n selector: 'lib-kms-ngx-ui-presentational',\n template: `\n <p>\n kms-ngx-ui-presentational works!\n </p>\n `,\n styles: [\n ]\n})\nexport class KmsUiPresentationalComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void { }\n\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { CurrencyPipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsIntegerCurrency',\n standalone: false,\n})\nexport class IntegerCurrency implements PipeTransform {\n constructor(private cp: CurrencyPipe) {}\n transform(\n value: any,\n currencyCode?: string,\n display?: boolean,\n digitsInfo?: string\n ): string | null {\n const currencyPipeValue = this.cp.transform(\n value,\n currencyCode,\n display,\n digitsInfo\n );\n if (currencyPipeValue) {\n const convertedValue =\n currencyPipeValue.split(',')[0] + ' ' + currencyPipeValue.slice(-1);\n return convertedValue;\n } else {\n throw new Error('No value provided');\n }\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeHtml',\n standalone: false,\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeResourceSUrl',\n standalone: false,\n})\nexport class SafeResourceUrlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(url: string): SafeResourceUrl {\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeSUrl',\n standalone: false,\n})\nexport class SafeUrlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustUrl(url);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'sanitizeNull', standalone: false })\nexport class SanitizeNullPipe implements PipeTransform {\n transform(value: any): string {\n return value === 'null' || value == null ? '' : value;\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'kmsTrim', standalone: false })\nexport class TrimPipe implements PipeTransform {\n transform(value: any) {\n if (!value) {\n return '';\n }\n\n return value.trim();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsTypeOf',\n standalone: false,\n})\nexport class TypeofPipe implements PipeTransform {\n transform(value: any): any {\n return typeof value;\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { CommonModule, CurrencyPipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IntegerCurrency } from './integer-currency.pipe';\nimport { SafeHtmlPipe } from './safe-html.pipe';\nimport { SafeResourceUrlPipe } from './safe-resource-url.pipe';\nimport { SafeUrlPipe } from './safe-url.pipe';\nimport { SanitizeNullPipe } from './sanitaze-null.pipe';\nimport { TrimPipe } from './trim.pipe';\nimport { TypeofPipe } from './typeof.pipe';\n\n@NgModule({\n declarations: [\n IntegerCurrency,\n SafeHtmlPipe,\n SanitizeNullPipe,\n SafeUrlPipe,\n TrimPipe,\n SafeResourceUrlPipe,\n TypeofPipe,\n ],\n imports: [CommonModule],\n exports: [\n IntegerCurrency,\n SafeHtmlPipe,\n SanitizeNullPipe,\n SafeUrlPipe,\n TrimPipe,\n SafeResourceUrlPipe,\n TypeofPipe,\n ],\n providers: [CurrencyPipe],\n})\nexport class CustomPipesModule {}\n","/**\n * @copyright KMS GmbH\n */\n\n// ng\nimport {\n AfterContentChecked,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\n/**\n * Directive to calc the height of all inner elements\n */\n@Directive({\n selector: '[getMaxHeight]',\n standalone: false,\n})\nexport class GetMaxHeightDirective implements AfterContentChecked {\n /**\n * CSS class name of the child items (markup elements) that should be checked for their height.\n * This is mandatory.\n */\n @Input('getMaxHeight') cssClassName = '';\n\n /**\n * Event that will pass the height of the tallest child inside the container.\n * Useful to calculate the target height of containers with different content (like accordion) for animations.\n */\n @Output() public maxHeightChanged: EventEmitter<number> = new EventEmitter();\n\n /**\n * Event that will pass the complete sum of all height values from each child.\n * Useful to calculate the full target height of a container (like dropdown) for animations.\n */\n @Output() public sumOfHeight: EventEmitter<number> = new EventEmitter();\n\n constructor(private el: ElementRef) {}\n\n ngAfterContentChecked(): void {\n this.checkHeightOfChildren(this.el.nativeElement, this.cssClassName);\n }\n\n private checkHeightOfChildren(parent: HTMLElement, cssClassName: string) {\n if (!parent) {\n return;\n }\n\n // find all the child elements with the selected class name\n const children = parent.getElementsByClassName(cssClassName);\n\n // failsafe\n if (!children) {\n return;\n }\n\n // get all the child elements heights\n const itemHeights = Array.from(children).map(\n (x) => x.getBoundingClientRect().height\n );\n\n // failsafe\n if (itemHeights.length === 0) {\n return;\n }\n\n // find out the tallest element\n const maxHeight = itemHeights.reduce((prev, curr) => {\n return curr > prev ? curr : prev;\n }, 0);\n\n // get sum of heights\n const sumOfHeight = itemHeights.reduce((pv, cv) => pv + cv, 0);\n\n // inform\n this.maxHeightChanged.emit(maxHeight);\n this.sumOfHeight.emit(sumOfHeight);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport {\n Directive,\n EventEmitter,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\n\nimport { SwipeMoveEvent, SwipeOptions, SwipeReleaseEvent } from './swipe.model';\n\n@Directive({\n selector: '[swipeDirective]',\n standalone: false,\n})\nexport class SwipeDirective {\n /**\n * Output Event that is emitted during swipe process (mouse move or touch move event).\n * Can be used for calculation purposes.\n */\n @Output() public moveEvent = new EventEmitter<SwipeMoveEvent>();\n\n /**\n * Output Event that is emitted when swipe process end (mouse up or touch end event).\n * Can be used for calculation purposes.\n */\n @Output() public releaseEvent = new EventEmitter<SwipeReleaseEvent>();\n\n private _swipeOptions: SwipeOptions | undefined;\n\n private _moveEventData: SwipeMoveEvent | undefined;\n private _startPosition = -1;\n\n private _lastPosX = 0;\n\n private _thresholdWasReached = false;\n\n private _isMobile: boolean | undefined;\n\n private _timeStart = 0;\n\n /**\n * Needed config that defines swipe behaviour.\n * @param options SwipeOptions\n */\n @Input('swipeDirective')\n set config(options: SwipeOptions) {\n if (options) {\n this._swipeOptions = options;\n }\n }\n\n @HostListener('mousedown', ['$event'])\n @HostListener('touchstart', ['$event'])\n onMouseDown(event: any) {\n this.calculateStartPosition(event);\n }\n\n @HostListener('mousemove', ['$event'])\n @HostListener('touchmove', ['$event'])\n onMove(event: any) {\n this.move(event);\n }\n\n @HostListener('mouseup', ['$event'])\n @HostListener('mouseleave', ['$event'])\n @HostListener('touchend', ['$event'])\n onRelease(event: any) {\n this.release(event);\n this.reset();\n }\n\n // ** PRIVATE ** //\n\n /**\n * Function checks if the current moving delta is inside the defined threshold.\n * Sets the flag to true if the threshold was reached once.\n */\n private checkThreshold(moveEvent: SwipeMoveEvent) {\n const percentage =\n this._swipeOptions && this._swipeOptions.swipeThresholdType === '%';\n\n if (\n !percentage &&\n this._swipeOptions &&\n moveEvent.swipeDistanceTotal < this._swipeOptions.swipeThreshold\n ) {\n return;\n } else if (\n percentage &&\n this._swipeOptions &&\n moveEvent.swipeDistancePercentage <\n this._swipeOptions.swipeThreshold / 100\n ) {\n return;\n } else {\n this._thresholdWasReached = true;\n }\n }\n\n private calculateStartPosition(event?: any) {\n // detect if touch or click\n this._isMobile = event.type === 'touchstart';\n\n // save start position\n\n if (this._swipeOptions && this._swipeOptions.swipeLocalPosition) {\n if (this._isMobile) {\n const touch: Touch = event.touches[0];\n this._startPosition = this._swipeOptions.swipeLocalPosition\n ? touch.clientX\n : touch.pageX;\n } else {\n this._startPosition = this._swipeOptions.swipeLocalPosition\n ? event.offsetX\n : event.pageX;\n }\n }\n\n this._lastPosX = this._startPosition;\n this._timeStart = event.timeStamp;\n this._thresholdWasReached = false;\n }\n\n private move(event: any) {\n // failsafe\n if (typeof event === 'undefined') {\n return;\n }\n\n let posX = 0;\n\n if (this._swipeOptions) {\n if (this._isMobile && event.type === 'touchmove') {\n const touch: Touch = event.touches[0];\n posX = this._swipeOptions.swipeLocalPosition\n ? touch.clientX\n : touch.pageX;\n } else {\n posX = this._swipeOptions.swipeLocalPosition\n ? event.offsetX\n : event.pageX;\n }\n }\n\n const offsetPerFrame: number = posX - this._lastPosX;\n const swipeDistanceTotal: number = Math.abs(posX - this._startPosition);\n const swipeDistancePercentage: number = Math.abs(\n swipeDistanceTotal / event.target.clientWidth\n );\n const timeDuration: number = Math.abs(event.timeStamp - this._timeStart);\n\n let direction: number;\n let speed: number = 1 - swipeDistanceTotal / timeDuration;\n speed = Math.max(0.1, speed);\n\n if (posX - this._startPosition > 0) {\n direction = 1; // a.k.a LTR\n } else {\n direction = -1; // a.k.a RTL\n }\n\n this._moveEventData = {\n position: posX,\n offsetPerFrame: offsetPerFrame,\n swipeDistanceTotal: swipeDistanceTotal,\n swipeDistancePercentage: swipeDistancePercentage,\n direction: direction,\n speed: speed,\n thresholdWasReached: this._thresholdWasReached,\n };\n\n this.checkThreshold(this._moveEventData);\n\n // update move delta\n this._lastPosX = posX;\n\n // inform\n this.moveEvent.emit(this._moveEventData);\n }\n\n private release(event: any) {\n // case: just a click/touch\n\n if (!this._moveEventData) {\n return;\n }\n\n const releaseEventData: SwipeReleaseEvent = {\n thresholdWasReached: this._thresholdWasReached,\n direction: this._moveEventData.direction,\n speed: this._moveEventData.speed,\n easingType: this.getEasingCurve(this._moveEventData.speed),\n target: event.currentTarget,\n };\n\n // inform\n this.releaseEvent.emit(releaseEventData);\n }\n\n private getEasingCurve(speed: number): string {\n return speed > 0.5 ? 'ease-in' : 'ease-out';\n }\n\n private reset() {\n this._startPosition = -1;\n this._thresholdWasReached = false;\n\n if (this._moveEventData) {\n this._moveEventData = undefined;\n }\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[kmsTime]',\n standalone: false,\n})\nexport class TimeDirective {\n constructor(private el: ElementRef) {}\n\n @HostListener('input', ['$event']) onInputChange(event: InputEvent) {\n this.handleInput(event);\n }\n\n @HostListener('beforeinput', ['$event']) onBeforeInput(event: InputEvent) {\n if (\n event.inputType === 'insertFromPaste' ||\n event.inputType === 'insertText'\n ) {\n const isAllTextHighlighted =\n (event.target as HTMLInputElement).selectionStart === 0 &&\n (event.target as HTMLInputElement).selectionEnd === 5;\n const textReachedMax =\n (event.target as HTMLInputElement).value.length > 4;\n const isNotANumber = isNaN(+event.data);\n\n if (isNotANumber || (textReachedMax && !isAllTextHighlighted)) {\n event.preventDefault();\n }\n this.handleInput(event);\n }\n }\n\n public handleInput(event: InputEvent) {\n const inputElement = this.el.nativeElement as HTMLInputElement;\n const originalValue = inputElement.value;\n\n if (originalValue.length === 2 && event.inputType === 'insertText') {\n inputElement.value += ':';\n inputElement.dispatchEvent(new Event('input'));\n }\n }\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\nimport {\n arrow,\n autoUpdate,\n computePosition,\n flip,\n offset,\n Placement,\n shift,\n} from '@floating-ui/dom';\n\n@Directive({ selector: '[kmsTooltip]', standalone: false })\nexport class TooltipDirective implements AfterViewInit, OnChanges {\n @Input() kmsTooltip: HTMLElement;\n @Input() placement: Placement = 'bottom';\n @Input() delay: number = 0;\n @Input() alwaysVisible = false;\n\n arrow: HTMLElement;\n showTimeout: NodeJS.Timeout;\n\n @HostListener('mouseover')\n onMouseOver() {\n if (this.alwaysVisible) return;\n\n this.showTimeout = setTimeout(() => {\n this.renderer.addClass(this.kmsTooltip, 'kms-tooltip--show');\n }, this.delay);\n }\n\n @HostListener('mouseout')\n onMouseOut() {\n if (this.alwaysVisible) return;\n\n clearTimeout(this.showTimeout);\n this.renderer.removeClass(this.kmsTooltip, 'kms-tooltip--show');\n }\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2) {}\n\n ngAfterViewInit() {\n this.renderer.addClass(this.kmsTooltip, 'kms-tooltip');\n this.addArrow();\n this.initTooltip();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.alwaysVisible.currentValue) {\n this.renderer.addClass(this.kmsTooltip, 'kms-tooltip--show');\n } else {\n this.renderer.removeClass(this.kmsTooltip, 'kms-tooltip--show');\n }\n }\n\n initTooltip() {\n autoUpdate(this.elementRef.nativeElement, this.kmsTooltip, () => {\n const arrowLength = this.arrow.offsetWidth;\n // Get half the arrow box's hypotenuse length\n const floatingOffset = Math.sqrt(2 * arrowLength ** 2) / 2;\n\n computePosition(this.elementRef.nativeElement, this.kmsTooltip, {\n placement: this.placement,\n middleware: [\n shift(),\n offset(floatingOffset),\n arrow({ element: this.arrow }),\n flip(),\n ],\n }).then(({ x, y, middlewareData, placement }) => {\n this.positionTooltip(x, y);\n\n if (middlewareData.arrow) {\n this.positionTooltipArrow(\n middlewareData.arrow.x,\n middlewareData.arrow.y,\n placement,\n arrowLength\n );\n }\n });\n });\n }\n\n positionTooltip(x: number, y: number) {\n Object.assign(this.kmsTooltip.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n }\n\n positionTooltipArrow(\n x: number,\n y: number,\n placement: Placement,\n arrowLength: number\n ) {\n const side = placement.split('-')[0];\n\n const staticSide = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[side];\n\n this.addArrowClass(staticSide);\n\n Object.assign(this.arrow.style, {\n left: x != null ? `${x}px` : '',\n top: y != null ? `${y}px` : '',\n // Ensure the static side gets unset when\n // flipping to other placements' axes.\n right: '',\n bottom: '',\n [staticSide]: `${-arrowLength / 2}px`,\n transform: 'rotate(45deg)',\n });\n }\n\n addArrow() {\n this.arrow = this.renderer.createElement('div');\n this.renderer.addClass(this.arrow, 'kms-tooltip__arrow');\n this.renderer.appendChild(this.kmsTooltip, this.arrow);\n }\n\n addArrowClass(side: string) {\n this.renderer.removeClass(this.arrow, 'kms-tooltip__arrow--left');\n this.renderer.removeClass(this.arrow, 'kms-tooltip__arrow--right');\n this.renderer.removeClass(this.arrow, 'kms-tooltip__arrow--bottom');\n this.renderer.removeClass(this.arrow, 'kms-tooltip__arrow--top');\n\n this.renderer.addClass(this.arrow, 'kms-tooltip__arrow--' + side);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { GetMaxHeightDirective } from './sum-of-height.directive';\nimport { SwipeDirective } from './swipe.directive';\nimport { TimeDirective } from './time.directive';\nimport { TooltipDirective } from './tooltip.directive';\n\n@NgModule({\n declarations: [\n SwipeDirective,\n GetMaxHeightDirective,\n TooltipDirective,\n TimeDirective,\n ],\n exports: [\n SwipeDirective,\n GetMaxHeightDirective,\n TooltipDirective,\n TimeDirective,\n ],\n})\nexport class DirectivesModule {}\n","/**\n * @copyright KMS GmbH\n */\nimport { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, OnDestroy, PLATFORM_ID, DOCUMENT } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { NullAble } from '../models';\n\ndeclare const window: any;\ndeclare const document: any;\n\nexport class WindowDimensions {\n constructor(data?: Partial<WindowDimensions>) {\n Object.assign(this, data);\n }\n Height!: number;\n Width!: number;\n Orientation!: \"landscape\" | \"portrait\";\n}\n\nexport class SimpleBreakpoint {\n constructor(data?: Partial<SimpleBreakpoint>) {\n Object.assign(this, data);\n }\n Number!: number;\n Name!: string;\n MaximumPixels!: number;\n}\n\nexport class Breakpoint {\n constructor(data?: Partial<Breakpoint>) {\n Object.assign(this, data);\n }\n Number!: number;\n Name!: string;\n Low!: number;\n High!: number;\n}\n\n/**\n * Service to get viewport\n */\n@Injectable()\nexport class ViewportService implements OnDestroy {\n public readonly simpleBreakpoints: SimpleBreakpoint[] = [\n { Number: 0, Name: 'mobile', MaximumPixels: 768 },\n { Number: 1, Name: 'tablet', MaximumPixels: 1024 },\n { Number: 2, Name: 'desktop', MaximumPixels: 1600 },\n { Number: 3, Name: 'high', MaximumPixels: 2500 },\n ];\n\n public readonly breakpoints: Breakpoint[] = [\n {\n Number: 0,\n Name: 'xs',\n Low: 360,\n High: 990,\n },\n {\n Number: 1,\n Name: 's',\n Low: 991,\n High: 1024,\n },\n {\n Number: 2,\n Name: 'm',\n Low: 1025,\n High: 1200,\n },\n {\n Number: 3,\n Name: 'l',\n Low: 1201,\n High: 1400,\n },\n {\n Number: 4,\n Name: 'xl',\n Low: 1401,\n High: 1600,\n },\n {\n Number: 5,\n Name: 'xxl',\n Low: 1601,\n High: 1920,\n },\n {\n Number: 6,\n Name: 'xxxl',\n Low: 1921,\n High: 99999,\n },\n ];\n\n private viewportChangedSubscriber: Subject<string> = new Subject<string>();\n private viewportResizedSubscriber: Subject<number> = new Subject<number>();\n\n private currentViewport!: string;\n private currentViewportObject!: Breakpoint;\n private isBrowser = false;\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: Object,\n @Inject(DOCUMENT) public document: Document\n ) {\n if (isPlatformBrowser(this.platformId)) {\n window.addEventListener('resize', this.documentSizeChanged.bind(this), {\n passive: true,\n });\n this.isBrowser = true;\n }\n }\n\n /**\n * Get document height\n */\n public getDocumentHeight(): number {\n return this.isBrowser ? document.body.clientHeight : 1200;\n }\n\n /**\n * Get document width\n */\n public getDocumentWidth(): number {\n return this.isBrowser ? document.body.clientWidth : 1200;\n }\n\n /**\n * Get window height\n */\n public getWindowHeight(): number {\n return this.isBrowser ? window.innerHeight : 1200;\n }\n\n /**\n * Get window width\n */\n public getWindowWidth(): number {\n return this.isBrowser ? window.innerWidth : 1200;\n }\n\n /**\n * Returns the current viewport MQ as string\n * @returns string\n */\n public getCurrentViewPort(): string {\n const currentWidth: number = this.isBrowser\n ? document.body.clientWidth\n : 1200;\n this.currentViewport = this.convertWidthToMediaQuery(currentWidth).Name;\n\n return this.currentViewport;\n }\n\n /**\n * Returns the current viewport MQ as object with all informations\n * @returns string\n */\n public getCurrentViewPortObject(): Breakpoint {\n const currentWidth: number = this.isBrowser\n ? document.body.clientWidth\n : 1200;\n this.currentViewportObject = this.convertWidthToMediaQuery(currentWidth);\n\n return this.currentViewportObject;\n }\n\n /**\n * Returns the current viewport as number\n * @deprecated use getCurrentViewPortDimensions instead\n * @returns string\n */\n public getCurrentViewPortNumber(): number {\n return this.isBrowser ? document.body.clientWidth : 1200;\n }\n\n /**\n * Returns the current viewport width as number\n * @returns string\n */\n public getCurrentViewPortWidth(): number {\n return this.isBrowser ? document.body.clientWidth : 1200;\n }\n\n /**\n * Returns the current viewport as number\n * @returns string\n */\n public getCurrentViewPortHeight(): number {\n return this.isBrowser ? document.body.clientHeight : 600;\n }\n\n /**\n * Returns the current viewport dimensions\n * @returns string\n */\n public getCurrentViewPortDimensions(): WindowDimensions {\n return this.isBrowser ? {Width:document.body.clientWidth,Height:document.body.clientWidth,Orientation:this.getOrientationAsString() } as WindowDimensions : {Width:800, Height:600, Orientation: \"landscape\"} as WindowDimensions;\n }\n\n /**\n * Provides mq´s as string\n */\n public getViewportChangedObserver(): Observable<string> {\n return this.viewportChangedSubscriber.asObservable();\n }\n\n /**\n * Provides the current window width as number\n */\n public getViewportResizedObserver(): Observable<number> {\n return this.viewportResizedSubscriber.asObservable();\n }\n\n /**\n * Scroll to element\n */\n public scrollToElementId(el: string, alignCenter = false) {\n if (this.isBrowser) {\n this.scrollToElement(document.querySelector('#' + el), alignCenter);\n }\n }\n\n /**\n * Helper function that scrolls to the given markup element.\n * @param el - nativeElement from markup\n * @param alignCenter - defines if the element needs to be centered on window\n */\n\n public scrollToElement(el: HTMLElement, alignCenter = false) {\n if (this.isBrowser) {\n let extraScrollTop = 0;\n\n if (alignCenter) {\n extraScrollTop = (window.innerHeight - el.clientHeight) / 2;\n }\n\n let offsetLeft = 0;\n let offsetTop = 0;\n\n let elTemp: NullAble<HTMLElement> = el;\n\n while (elTemp) {\n offsetLeft += elTemp.offsetLeft;\n offsetTop += elTemp.offsetTop;\n elTemp = elTemp.parentElement ? elTemp.parentElement : null;\n }\n\n window.scrollTo({\n left: offsetLeft,\n top: offsetTop - extraScrollTop,\n behavior: 'smooth',\n });\n }\n }\n\n /**\n * Scroll to the top position\n * @param top - top position value\n */\n public scrollTop(top: number) {\n if (this.isBrowser) {\n window.scrollTo({ left: 0, top: top, behavior: 'smooth' });\n }\n }\n\n /**\n * If orientation is portrait\n */\n public isPortrait() : boolean|undefined {\n if (this.isBrowser) return window.innerHeight > window.innerWidth;\n else return undefined;\n }\n\n /**\n * If orientation is landscape\n */\n public isLandscape() :boolean|undefined {\n if (this.isBrowser) {\n const isLandscape =\n window.orientation === 90 || window.orientation === -90;\n return isLandscape;\n } else {\n return undefined;\n }\n }\n\n /**\n * Get screen orientation (portrait/landscape)\n */\n public getOrientationAsString() : \"portrait\" | \"landscape\" {\n return this.isPortrait ? \"portrait\" : \"landscape\";\n }\n\n /**\n * If mobile breakpoint (below tablet)\n */\n public isMobile():boolean {\n return this.getCurrentViewPortNumber() < this.breakpoints[2].Low;\n }\n\n /**\n * Get height of an element\n * @deprecated\n */\n public calculateFullscreenElementsheight(\n id: string,\n defaultheight: string,\n extra: number\n ) {\n return this.calculateFullscreenElementsHeight(id, defaultheight, extra);\n }\n\n /**\n * Get height of an element\n */\n public calculateFullscreenElementsHeight(\n id: string,\n defaultheight: string,\n extra: number\n ) {\n \n if (!this.isBrowser || this.isMobile()) {\n return defaultheight;\n } else {\n const map = this.document.getElementById(id);\n const footer = this.document.getElementsByTagName('footer')[0];\n if (map && footer) {\n return `${window.innerHeight - map.offsetTop - footer.offsetHeight - extra\n }px`;\n } else {\n console.warn('could not calculate map height');\n return defaultheight;\n }\n }\n }\n\n /**\n * If viewport changed\n * @event\n */\n private documentSizeChanged(event: any) {\n const currentWindowWidth: number = event.target.innerWidth;\n // inform who´s interested\n this.viewportResizedSubscriber.next(currentWindowWidth);\n\n if (currentWindowWidth > 0) {\n for (const mqs of this.breakpoints) {\n if (currentWindowWidth > mqs.High) {\n continue;\n } else if (\n (currentWindowWidth >= mqs.Low || currentWindowWidth <= mqs.High) &&\n this.currentViewport !== mqs.Name\n ) {\n this.currentViewport = mqs.Name;\n // inform who´s interested\n this.viewportChangedSubscriber.next(mqs.Name);\n break;\n } else if (this.currentViewport === mqs.Name) {\n break;\n } else {\n console.error('ERROR');\n }\n }\n }\n }\n\n /**\n * Get the Media Query for the given width\n * @param width Width to get the according MQ for\n */\n private convertWidthToMediaQuery(width: number): Breakpoint {\n let currentViewport = this.breakpoints[0];\n\n for (const mqs of this.breakpoints) {\n if (width <= mqs.High && width >= mqs.Low) {\n currentViewport = mqs;\n break;\n }\n }\n\n return currentViewport;\n }\n\n /**\n * Get the breakpoint/device name like mobile,tablet,desktop, high\n */\n getSimpleBreakpoint(screenSize: number) :SimpleBreakpoint {\n let actualBreakpoint: SimpleBreakpoint | undefined;\n\n const sizes = this.simpleBreakpoints.slice().reverse(); // we need to reverse it to check step by step from biggest, which breakpoints still fits. Slice is a trick to not mutate the original array and make a copy\n for (const key in sizes) {\n if (screenSize < sizes[key].MaximumPixels) {\n actualBreakpoint = sizes[key];\n }\n }\n if (!actualBreakpoint) {\n actualBreakpoint = sizes[0]; // default screensize is biggest. Will be used if viewport is bigger as maximum. Remember, array is reversed\n }\n\n return actualBreakpoint;\n }\n\n ngOnDestroy() {\n if (this.isBrowser) {\n window.removeEventListener('resize', this.documentSizeChanged);\n }\n }\n}\n","export enum Color {\n PRIMARY = '--kms-primary',\n SECONDARY = '--kms-secondary',\n TERTIARY = '--kms-tertiary',\n SUCCESS = '--kms-success',\n ALERT = '--kms-alert',\n ERROR = '--kms-error',\n DISABLED = '--kms-disabled',\n WHITE = '--kms-white',\n BLACK = '--kms-black',\n}\n\nexport enum StylingTheme {\n PRIMARY = 'primary',\n SECONDARY = 'accent',\n WARN = 'warn',\n}\n","/**\n * @copyright KMS GmbH\n */\n\nexport enum IconSizePx {\n XXS = 16,\n XS = 20,\n SM = 32,\n MD = 64,\n LG = 128,\n XL = 256,\n XXL = 512,\n}\n\nexport const IconSizesArr = [\n IconSizePx.XXS,\n IconSizePx.XS,\n IconSizePx.SM,\n IconSizePx.MD,\n IconSizePx.LG,\n IconSizePx.XL,\n IconSizePx.XXL,\n];\n","/**\n * @copyright KMS GmbH\n */\n\nimport { NgClass, NgStyle } from '@angular/common';\nimport { Component, input, InputSignal, VERSION } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport * as icons from '@ui-presentational/assets/icons.json';\nimport { Color } from '../../../enums/colors.enum';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\n\n@Component({\n selector: 'kms-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n standalone: true,\n imports: [NgClass, NgStyle],\n})\nexport class IconComponent {\n /**\n * Required: Name of the SVG icon inside your sprite sheet file with name 'icons.svg'.\n * Pass 'none' if no icon should be rendered.\n */\n icon: InputSignal<(typeof icons)[number]> = input();\n\n /**\n * Optional: Different appearance via CSS class defined in this component´s style sheet.\n */\n iconClass = input('');\n\n size: InputSignal<number> = input(IconSizePx.XS);\n dontUseSprite = input(false);\n color = input(Color.BLACK);\n\n Version = VERSION.full;\n\n constructor(public sanitizer: DomSanitizer) {}\n}\n","@if (icon() !== 'none' && dontUseSprite() === false) {\n <span\n class=\"icon\"\n [ngClass]=\"iconClass()\"\n [ngStyle]=\"{\n color: 'var(' + color() + ')'\n }\"\n [style.width.px]=\"size()\"\n [style.height.px]=\"size()\"\n >\n <svg [style.width.px]=\"size()\" [style.height.px]=\"size()\">\n <use\n [attr.xlink:href]=\"\n 'assets/sprite.svg?Version=' + Version + '#' + icon()\n \"\n ></use>\n </svg>\n </span>\n}\n@if (icon() !== 'none' && dontUseSprite() === true) {\n <object\n [data]=\"\n sanitizer.bypassSecurityTrustResourceUrl('assets/icons/' + icon() + '')\n \"\n type=\"image/svg+xml\"\n class=\"icon\"\n [ngClass]=\"iconClass()\"\n ></object>\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport { Component, HostListener, Inject, PLATFORM_ID } from '@angular/core';\nimport { Color } from '../../../enums/colors.enum';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\n\n@Component({\n selector: 'kms-back-to-top',\n templateUrl: './back-to-top.component.html',\n standalone: false,\n})\nexport class BackToTopComponent {\n windowScrolled?: boolean;\n\n IconSizePx = IconSizePx;\n Color = Color;\n\n constructor(@Inject(PLATFORM_ID) public platformId: Object) {}\n\n @HostListener('window:scroll', [])\n onWindowScroll() {\n if (isPlatformBrowser(this.platformId)) {\n if (\n window.scrollY ||\n document.documentElement.scrollTop ||\n document.body.scrollTop > 100\n ) {\n this.windowScrolled = true;\n } else if (\n (this.windowScrolled && window.scrollY) ||\n document.documentElement.scrollTop ||\n document.body.scrollTop < 10\n ) {\n this.windowScrolled = false;\n }\n }\n }\n\n scrollToTop() {\n if (isPlatformBrowser(this.platformId)) {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n }\n }\n}\n","<div\n class=\"scrollToTop\"\n [ngClass]=\"{ show: windowScrolled }\"\n (click)=\"scrollToTop()\"\n>\n <div class=\"scrollToTop-inner\">\n <kms-icon\n icon=\"floating_button_clear\"\n [color]=\"Color.WHITE\"\n [size]=\"IconSizePx.SM\"\n ></kms-icon>\n </div>\n</div>\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'kms-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n standalone: false,\n})\nexport class CardComponent {\n imageUrl = input('');\n hoverEffect = input(false);\n}\n","<div class=\"card\" [ngClass]=\"{ hoverEffect: hoverEffect() }\">\n @if(imageUrl() !== '') {\n <div\n class=\"card-image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl() + ')' }\"\n ></div>\n }\n <div class=\"card-content\">\n <ng-content></ng-content>\n </div>\n</div>\n","/**\n * @copyright KMS GmbH\n */\n\nimport {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'kms-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() infoText = '';\n @Input() checked = false;\n @Input() disabled = false;\n\n /**\n * Internal description name. All checkboxes with the same name belong to the same group.\n * User can select none, one or all checkboxes with the same name.\n */\n @Input() name = '';\n\n @Output() change = new EventEmitter();\n\n valueChanged(value: boolean) {\n this.onChange(value);\n this.checked = value;\n this.change.emit(value);\n this.onTouched();\n }\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n writeValue(value: any) {\n this.checked = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n}\n","<div class=\"checkbox-container\" [class.disabled]=\"disabled\">\n <mat-checkbox\n [disabled]=\"disabled\"\n [name]=\"name\"\n [(ngModel)]=\"checked\"\n (change)=\"valueChanged($event.checked)\"\n color=\"primary\"\n >\n <span [innerHTML]=\"infoText | kmsSafeHtml\"></span>\n </mat-checkbox>\n</div>\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\n@Component({\n standalone: false,\n selector: 'kms-form',\n template: '',\n})\nexport class FormParentComponent implements OnInit {\n public form!: UntypedFormGroup;\n public formInitialized = false;\n\n @Output() formDataChanged: EventEmitter<UntypedFormGroup> =\n new EventEmitter();\n\n @Input() disabled = false;\n\n ngOnInit() {\n this.formDataChanged.emit(this.form);\n this.form.valueChanges.subscribe(() => {\n this.formDataChanged.emit(this.form);\n });\n }\n}\n","import {\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n inject,\n Injector,\n Input,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { NgControl, UntypedFormControl } from '@angular/forms';\nimport { FormParentComponent } from './form.component';\n\n@Component({\n standalone: false,\n selector: 'kms-formControlParent',\n template: '',\n})\nexport class FormControlParentComponent\n extends FormParentComponent\n implements DoCheck\n{\n @Input() defaultDataOverride = ''; // when we have NO form around, get default via input to set it manually\n @Output() onSelectItemEmitter = new EventEmitter<string>();\n\n @ViewChild('child') public child?: ElementRef<HTMLInputElement>;\n\n public internalValue = '';\n\n private injector = inject(Injector);\n private _ngControl: NgControl | null | undefined = undefined;\n\n get ngControl(): NgControl | null {\n if (this._ngControl === undefined) {\n this._ngControl = this.injector.get(NgControl, null);\n }\n return this._ngControl;\n }\n\n constructor(public renderer: Renderer2) {\n super();\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n\n ngDoCheck() {\n if (this.ngControl?.control?.touched) {\n this.form?.markAllAsTouched();\n }\n }\n\n change(value: string) {\n this.onChange(value);\n this.onTouched();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched: any = () => {};\n\n get value(): string {\n return this.internalValue;\n }\n\n set value(value: string) {\n this.internalValue = value;\n if (value !== undefined && this.internalValue !== value) {\n if (!this.internalValue && this.defaultDataOverride) {\n this.internalValue = this.defaultDataOverride;\n }\n this.onChange(value);\n this.onTouch(value);\n }\n }\n\n writeValue(value: string) {\n this.internalValue = value;\n this.value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n setDisabledState?(isDisabled: boolean) {\n if (this.child?.nativeElement) {\n this.renderer.setProperty(\n this.child.nativeElement,\n 'disabled',\n isDisabled\n );\n }\n\n this.disabled = isDisabled;\n\n if (isDisabled) {\n this.form.disable({ emitEvent: false });\n } else {\n this.form.enable({ emitEvent: false });\n }\n }\n\n validate(_: UntypedFormControl) {\n return this.form.valid ? null : false;\n }\n}\n","import {\n Component,\n computed,\n forwardRef,\n input,\n OnInit,\n Renderer2,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormArray,\n FormControl,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { Color } from '../../../enums/colors.enum';\nimport { FormControlParentComponent } from '../../../parent-components/form-control.component';\n\n/**\n * Dropdown from data component {@link https://leaseplan-dev.rentoffice.de/styleguide#ui-elements}\n */\n@Component({\n selector: 'kms-dropdown-from-data',\n templateUrl: './dropdown-from-data.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DropdownFromDataComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class DropdownFromDataComponent\n extends FormControlParentComponent\n implements OnInit, ControlValueAccessor\n{\n protected readonly Color = Color;\n\n // structured data as a enum set. Can be used in combination with 'optionsPlainArray' to set diferent values by index\n optionsEnum = input<any>();\n\n // structured data as a simple array of elements\n optionsPlainArray = input<any[]>();\n\n // structured data as an array of objects used in combination with the input 'mapKey' and 'mapValue'\n optionsObjArray = input<any[]>();\n // key identifier of the obj. If mapValue doesnt exist, mapKey is also the value\n mapKey = input<any>();\n // value identifier of the obj\n mapValue = input<any>();\n\n // options for the dropdown have a null value at the beginning of the array\n hasNullOption = input(false);\n\n // preselected keys of the dropdown\n preselectedKeys = input<any>();\n\n // translation object for the label and placeholder\n translation = input<ITranslation>();\n placeholder = input('');\n label = input('');\n required = input(false);\n useEnumIndexAsValue = input(false);\n\n // multiple selection\n multiple = input(false);\n\n selectAllText = input<string>();\n disableOptions = input(false);\n searchable = input(false);\n errorMessage = input('');\n\n // prefix / suffix\n prefix = input('');\n prefixIcon = input('');\n suffix = input('');\n suffixIcon = input('');\n\n private readonly _keysAndValues = computed((): { keys: any[]; values: any[] } => {\n let { keys, values } = this.resolveBaseKeysAndValues();\n ({ keys, values } = this.applyEnumOverrides(keys, values));\n\n if (this.hasNullOption()) {\n keys = [null, ...keys];\n values = [null, ...values];\n }\n\n return { keys, values };\n });\n\n private resolveBaseKeysAndValues(): { keys: any[]; values: any[] } {\n const plainArray = this.optionsPlainArray();\n if (plainArray) return { keys: [...plainArray], values: [...plainArray] };\n\n const optionsObjArrayValue = this.optionsObjArray();\n const mapKeyValue = this.mapKey();\n const mapValueValue = this.mapValue();\n\n if (optionsObjArrayValue && mapKeyValue && mapValueValue) {\n return {\n keys: optionsObjArrayValue.map((obj: any) => obj[`${mapKeyValue}`]),\n values: optionsObjArrayValue.map((obj: any) => obj[`${mapValueValue}`]),\n };\n }\n if (optionsObjArrayValue && mapKeyValue) {\n const mapped = optionsObjArrayValue.map((obj: any) => obj[`${mapKeyValue}`]);\n return { keys: mapped, values: mapped };\n }\n\n return { keys: [], values: [] };\n }\n\n private applyEnumOverrides(keys: any[], values: any[]): { keys: any[]; values: any[] } {\n const optionsEnumValue = this.optionsEnum();\n if (!optionsEnumValue) return { keys, values };\n\n const enumObj = optionsEnumValue;\n const enumKeys = Object.keys(enumObj).filter((k) => Number.isNaN(Number(k)));\n const plainArray = this.optionsPlainArray();\n\n if (plainArray) return { keys: enumKeys, values: plainArray };\n\n const enumValues = enumKeys.map((k) => enumObj[k]);\n const isKeyValueEnum = enumKeys.some((_, i) => i !== enumValues[i]);\n\n return {\n keys: enumKeys,\n values: isKeyValueEnum || this.useEnumIndexAsValue() ? enumValues : [...enumKeys],\n };\n }\n\n searchControl = new FormControl('');\n private searchTerm = '';\n\n get keys(): any[] {\n return this._keysAndValues().keys;\n }\n\n get values(): any[] {\n return this._keysAndValues().values;\n }\n\n get filteredKeys(): any[] {\n if (!this.searchTerm) return this.keys;\n return this.keys.filter((_, i) => this.matchesSearch(i));\n }\n\n get filteredValues(): any[] {\n if (!this.searchTerm) return this.values;\n return this.values.filter((_, i) => this.matchesSearch(i));\n }\n\n private matchesSearch(index: number): boolean {\n const display = String(this.setDisplayKey(this.keys[index]) ?? '').toLowerCase();\n return display.includes(this.searchTerm);\n }\n\n constructor(public renderer: Renderer2) {\n super(renderer);\n }\n\n ngOnInit() {\n this.form = new UntypedFormGroup({\n dropdownData: new UntypedFormControl([]),\n });\n this.formInitialized = true;\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.dropdownData;\n this.onChange(value.dropdownData);\n });\n\n this.searchControl.valueChanges.subscribe((term) => {\n this.searchTerm = (term ?? '').toLowerCase();\n });\n\n if (this.pendingValue !== undefined) {\n this.form.patchValue({ dropdownData: this.pendingValue }, { emitEvent: false });\n this.pendingValue = undefined;\n }\n\n const preselected = this.preselectedKeys();\n if (preselected)\n this.form.patchValue({\n dropdownData: preselected,\n });\n\n super.ngOnInit();\n }\n\n /**\n * set the value of the dropdown based if translation is set\n * @param key\n */\n public setDisplayKey(key: any) {\n const translationValue = this.translation();\n if (translationValue) {\n if (translationValue.isPrefix) {\n return translationValue.service?.instant?.(\n translationValue.path + '.' + key\n );\n } else if (translationValue.useKeyAsValue) {\n return translationValue.service?.instant?.(translationValue.path, {\n key: key,\n });\n } else {\n return translationValue.service?.instant?.(translationValue.path);\n }\n }\n return key;\n }\n\n valueChanged(value: any) {\n this.form.patchValue({\n dropdownData: value,\n });\n this.onSelectItemEmitter.emit(value);\n }\n\n get selectedElements() {\n return this.form.controls.dropdownData as FormArray;\n }\n\n allElementsChecked(): boolean {\n return (\n this.values && this.selectedElements?.value?.length === this.values.length\n );\n }\n\n isCheckboxIndeterminate(): boolean {\n return Boolean(\n this.values &&\n this.selectedElements?.value?.length < this.values.length &&\n this.selectedElements?.value?.length !== 0\n );\n }\n\n toggleAllSelection(change: MatCheckboxChange): void {\n if (change.checked) {\n this.checkAllFilters();\n } else {\n this.form.controls.dropdownData.setValue([]);\n }\n }\n\n checkAllFilters() {\n if (this.values) {\n this.form.controls.dropdownData.setValue(this.values);\n }\n }\n\n private pendingValue: any = undefined;\n\n override writeValue(value: any): void {\n super.writeValue(value);\n if (value !== undefined) {\n if (this.formInitialized) {\n this.form.patchValue({ dropdownData: value }, { emitEvent: false });\n } else {\n this.pendingValue = value;\n }\n }\n }\n}\n\n/**\n * Interface that defines the translation object in template\n */\ninterface ITranslation {\n path: string;\n isPrefix?: boolean;\n useKeyAsValue?: boolean;\n service: any;\n}\n","<form [formGroup]=\"form\">\n <mat-form-field\n [attr.required]=\"required()\"\n [floatLabel]=\"placeholder() ? 'always' : 'auto'\"\n >\n <mat-label>{{ label() }}</mat-label>\n <mat-select\n [placeholder]=\"placeholder()\"\n disableOptionCentering\n (selectionChange)=\"valueChanged($event?.value)\"\n [value]=\"value\"\n #child\n [multiple]=\"multiple()\"\n [required]=\"required()\"\n formControlName=\"dropdownData\"\n >\n @if (searchable()) {\n <mat-option>\n <ngx-mat-select-search\n [formControl]=\"searchControl\"\n [placeholderLabel]=\"'Search...'\"\n [noEntriesFoundLabel]=\"'No matches found'\"\n >\n </ngx-mat-select-search>\n </mat-option>\n } @if (selectAllText() && multiple() && !disableOptions()) {\n <mat-checkbox\n color=\"accent\"\n class=\"dropdown-from-data__checkbox\"\n [indeterminate]=\"isCheckboxIndeterminate()\"\n [checked]=\"allElementsChecked()\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleAllSelection($event)\"\n >\n {{ selectAllText() }}\n </mat-checkbox>\n } @for (key of filteredKeys; track key; let i = $index) {\n <mat-option [value]=\"filteredValues[i]\" [disabled]=\"disableOptions()\">\n {{ setDisplayKey(key) || '—' }}\n </mat-option>\n }\n </mat-select>\n @if (prefix()) {\n <span matTextPrefix>{{ prefix() }} </span>\n } @else if (prefixIcon()) {\n <kms-icon matPrefix [icon]=\"prefixIcon()\" aria-hidden=\"true\"></kms-icon>\n } @if (suffix()) {\n <span matTextSuffix> {{ suffix() }}</span>\n } @else if (suffixIcon()) {\n <kms-icon matSuffix [icon]=\"suffixIcon()\" aria-hidden=\"true\"></kms-icon>\n } @else {\n <kms-icon\n icon=\"chevron-down\"\n [size]=\"12\"\n [color]=\"Color.SECONDARY\"\n class=\"dropdown-from-data__arrow\"\n aria-hidden=\"true\"\n matSuffix\n ></kms-icon>\n } @if (errorMessage()) {\n <mat-error>{{ errorMessage() }}</mat-error>\n }\n </mat-form-field>\n</form>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'kms-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss'],\n standalone: false,\n})\nexport class LoaderComponent {\n @Input() loading = false;\n}\n","@if (loading) {\n <div class=\"loading-spinner-shade\">\n <mat-spinner class=\"spinnerMargin\" color=\"accent\" diameter=\"44\"></mat-spinner>\n </div>\n}\n","/**\n * @copyright KMS GmbH\n */\nimport { NullAble } from \"./types/nullable.type\";\n\n\n/**\n * Typical basic address data\n */\nexport class Address {\n public City: NullAble<string>;\n public Name1: NullAble<string>;\n public Name2: NullAble<string>;\n public Street: NullAble<string>;\n public Zip: NullAble<string>;\n}\n","/**\n * @copyright KMS GmbH\n */\nimport { Component, Input, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { Address } from '../../../models/address.model';\n\n/**\n * MarkerOptions class for Marker\n */\nexport class MarkerOptions {\n animation!: number;\n}\n\n/**\n * MarkerLabel class for Marker\n */\nexport class MarkerLabel {\n color!: string;\n text!: string;\n}\n\n/**\n * Marker class\n */\nexport class Marker {\n position!: google.maps.LatLngLiteral;\n label!: MarkerLabel;\n title!: string;\n options!: MarkerOptions;\n}\n\n/**\n * Component to show marker on google map for specific address\n */\n@Component({\n selector: 'kms-map',\n templateUrl: './map.component.html',\n styleUrls: ['./map.component.scss'],\n standalone: false,\n})\nexport class MapComponent implements OnInit {\n @Input() data!: Address;\n\n public markers: Marker[] = [];\n public geoDataFoundForAddress = false;\n public widthSet = false;\n\n public width = '100%';\n public zoom = 15;\n public center: google.maps.LatLngLiteral = {\n lat: 52.097449,\n lng: 12.7436911,\n };\n\n public options: google.maps.MapOptions = {\n mapTypeId: 'roadmap',\n zoomControl: false,\n scrollwheel: false,\n disableDoubleClickZoom: true,\n maxZoom: 15,\n minZoom: 8,\n };\n\n public google: any;\n\n public geocoder: any;\n\n public viewportSubscription?: Subscription;\n\n constructor() {}\n\n ngOnInit() {\n this.findLocation(\n this.data.Street + ' ' + this.data.Zip + ' ' + this.data.City\n );\n }\n\n /**\n * Asks google for geocoordinates of a given address string\n * @input address as string\n */\n findLocation(address: string) {\n if (!this.geocoder) {\n this.geocoder = new google.maps.Geocoder();\n }\n this.geocoder.geocode(\n {\n address: address,\n },\n (\n results: google.maps.GeocoderResult,\n status: google.maps.GeocoderStatus\n ) => {\n if (status === google.maps.GeocoderStatus.OK) {\n this.center.lat = results[0].geometry.location.lat();\n this.center.lng = results[0].geometry.location.lng();\n\n this.addMarker();\n this.geoDataFoundForAddress = true;\n } else {\n console.error(\n 'Sorry, this search of map address produced no results.'\n );\n }\n }\n );\n }\n\n /**\n * Adds a marker to the map\n */\n addMarker() {\n this.markers.push({\n position: {\n lat: this.center.lat,\n lng: this.center.lng,\n },\n label: {\n color: 'blue',\n\n text: this.data.Name1 || '',\n },\n title: this.data.Name1 + ' ' + this.data.Street + ' ' + this.data.Zip,\n options: { animation: google.maps.Animation.DROP },\n });\n }\n\n /**\n * Zooms in into map\n */\n zoomIn() {\n if (this.options.maxZoom && this.zoom < this.options.maxZoom) {\n this.zoom++;\n }\n }\n\n /**\n * Zooms out from map\n */\n zoomOut() {\n if (this.options.minZoom && this.zoom > this.options.minZoom) {\n this.zoom--;\n }\n }\n}\n","@if (geoDataFoundForAddress) {\n <div>\n <google-map\n height=\"415px\"\n [width]=\"width\"\n [zoom]=\"zoom\"\n [center]=\"center\"\n [options]=\"options\"\n >\n @for (marker of markers; track marker) {\n <map-marker\n [position]=\"marker.position\"\n [label]=\"marker.label\"\n [title]=\"marker.title\"\n [options]=\"marker.options\"\n >\n </map-marker>\n }\n </google-map>\n </div>\n}","export enum RadioButtonSize {\n SM = 'small',\n MD = 'medium',\n LG = 'large',\n}\n","/**\n * @copyright KMS GmbH\n */\nimport {\n Component,\n EventEmitter,\n Input,\n Output,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { StylingTheme } from '../../../enums/colors.enum';\nimport { RadioButtonSize } from '../../../enums/radioButtonSize.enum';\n\n@Component({\n selector: 'kms-radiobutton',\n templateUrl: './radiobutton.component.html',\n styleUrls: ['./radiobutton.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioButtonComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class RadioButtonComponent implements ControlValueAccessor {\n @Input() label: string = '';\n @Input() checked: boolean = false;\n @Input() disabled: boolean = false;\n @Input() value: any;\n @Input() size: RadioButtonSize = RadioButtonSize.MD;\n @Input() color: StylingTheme = StylingTheme.PRIMARY;\n\n @Output() onChange: EventEmitter<void> = new EventEmitter<void>();\n\n onRadioChange(event: any): void {\n this.onChange.emit(event);\n }\n\n onTouched: () => void = () => {};\n\n writeValue(value: any): void {\n this.checked = value === this.value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onChange = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<mat-radio-button\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n [ngClass]=\"size\"\n [color]=\"color\"\n [value]=\"value\"\n (change)=\"onChange.emit()\"\n ngDefaultControl\n>\n {{ label }}\n</mat-radio-button>\n","/**\n * @copyright KMS GmbH\n */\n\nimport {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\n\n@Component({\n selector: 'kms-slide-toggle',\n templateUrl: './slide-toggle.component.html',\n styleUrls: ['./slide-toggle.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SlideToggleComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class SlideToggleComponent implements ControlValueAccessor {\n @Input() leftLabel?: string;\n @Input() rightLabel?: string;\n @Input() checked = false;\n @Input() disabled = false;\n\n @Input() name = '';\n\n @Output() change = new EventEmitter();\n\n onChange: any = () => {};\n\n onTouch: any = () => {};\n\n get value(): boolean {\n return this.checked;\n }\n\n set value(value: boolean) {\n this.checked = value;\n this.onChange(value);\n this.onTouch(value);\n }\n\n writeValue(value: any) {\n this.value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n emitOnChange($event: MatSlideToggleChange) {\n this.change.emit($event.checked);\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<div class=\"kms-slide-toggle\">\n @if (leftLabel) {\n <mat-label\n class=\"kms-slide-toggle__label\"\n [class.kms-slide-toggle__label--bold]=\"rightLabel && !checked\"\n >{{ leftLabel }}</mat-label\n >\n }\n <mat-slide-toggle\n [name]=\"name\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [hideIcon]=\"true\"\n (change)=\"emitOnChange($event)\"\n />\n @if (rightLabel) {\n <mat-label\n class=\"kms-slide-toggle__label\"\n [class.kms-slide-toggle__label--bold]=\"leftLabel && checked\"\n >{{ rightLabel }}</mat-label\n >\n }\n </div>\n","/**\n * @copyright KMS GmbH\n */\n\nimport { ChangeContext, Options } from '@angular-slider/ngx-slider';\nimport {\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'kms-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SliderComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class SliderComponent implements ControlValueAccessor {\n @HostBinding('class.kms-slider') kmsSliderClass = true;\n @HostBinding('class.kms-slider--disabled') get disabledClass() {\n return this.disabled;\n }\n\n @Input() disabled = false;\n @Input() options: Options = {};\n @Input() max: number;\n\n @Output() change: EventEmitter<ChangeContext> = new EventEmitter();\n\n private _value = 0;\n\n onChange: any = () => {};\n\n onTouch: any = () => {};\n\n get value(): number {\n return this._value;\n }\n\n set value(value: number) {\n this._value = value;\n this.onChange(value);\n this.onTouch(value);\n }\n\n writeValue(value: any) {\n this._value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n emitOnChange($event: any) {\n this.change.emit($event);\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<ngx-slider\n [(value)]=\"value\"\n [options]=\"options\"\n [highValue]=\"max\"\n (userChangeEnd)=\"change.emit($event)\"\n></ngx-slider>\n","export enum ButtonAppearance {\n BASIC = 'mat-button',\n FLAT = 'mat-flat-button',\n RAISED = 'mat-raised-button',\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Component, computed, input, output, Signal } from '@angular/core';\nimport * as icons from '../../../../assets/icons.json';\nimport { ButtonAppearance } from '../../../enums/buttonAppearance.enum';\nimport { Color, StylingTheme } from '../../../enums/colors.enum';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\n\n@Component({\n selector: 'kms-button',\n templateUrl: './button.component.html',\n standalone: false,\n})\nexport class ButtonComponent {\n color = input<StylingTheme>(StylingTheme.PRIMARY);\n type = input<'button' | 'submit' | 'reset'>('button');\n appearance = input<ButtonAppearance>(ButtonAppearance.FLAT);\n loading = input(false);\n label = input('');\n icon = input<(typeof icons)[number]>();\n disabled = input(false);\n buttonClick = output<Event>();\n rounded = input(false);\n\n public readonly StylingTheme = StylingTheme;\n public readonly IconSize = IconSizePx;\n public readonly ButtonAppearance = ButtonAppearance;\n\n public iconColor: Signal<Color> = computed(() => {\n if (this.disabled() || this.loading()) {\n return Color.DISABLED;\n }\n\n if (this.appearance() !== ButtonAppearance.BASIC) {\n return Color.WHITE;\n }\n\n switch (this.color()) {\n case StylingTheme.PRIMARY:\n return Color.PRIMARY;\n case StylingTheme.SECONDARY:\n return Color.TERTIARY;\n case StylingTheme.WARN:\n return Color.ERROR;\n }\n });\n}\n","<!-- Basic -->\n@if (appearance() == ButtonAppearance.BASIC) {\n<button\n mat-button\n [color]=\"color()\"\n class=\"kms-button\"\n [ngClass]=\"{\n 'kms-button--loading': loading(),\n 'kms-button--basic-primary': color() === StylingTheme.PRIMARY,\n 'kms-button--basic-accent': color() === StylingTheme.SECONDARY,\n 'kms-button--basic-warn': color() === StylingTheme.WARN,\n 'kms-button--rounded': rounded()\n }\"\n [disabled]=\"disabled() || loading()\"\n (click)=\"buttonClick.emit($event)\"\n [type]=\"type()\"\n (keyup)=\"\n ($event.key === 'Enter' || $event.key === 'Space') &&\n buttonClick.emit($event)\n \"\n>\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n}\n\n<!-- Flat -->\n@else if (appearance() == ButtonAppearance.FLAT) {\n<button\n mat-flat-button\n [color]=\"color()\"\n class=\"kms-button\"\n [ngClass]=\"{\n 'kms-button--loading': loading(),\n 'kms-button--flat-primary': color() === StylingTheme.PRIMARY,\n 'kms-button--flat-accent': color() === StylingTheme.SECONDARY,\n 'kms-button--flat-warn': color() === StylingTheme.WARN,\n 'kms-button--rounded': rounded()\n }\"\n [disabled]=\"disabled() || loading()\"\n (click)=\"buttonClick.emit($event)\"\n [type]=\"type()\"\n (keyup)=\"\n ($event.key === 'Enter' || $event.key === 'Space') &&\n buttonClick.emit($event)\n \"\n>\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n}\n\n<!-- Raised -->\n@else if (appearance() == ButtonAppearance.RAISED) {\n<button\n mat-raised-button\n [color]=\"color()\"\n class=\"kms-button\"\n [ngClass]=\"{\n 'kms-button--loading': loading(),\n 'kms-button--raised-primary': color() === StylingTheme.PRIMARY,\n 'kms-button--raised-accent': color() === StylingTheme.SECONDARY,\n 'kms-button--raised-warn': color() === StylingTheme.WARN,\n 'kms-button--rounded': rounded()\n }\"\n [disabled]=\"disabled() || loading()\"\n (click)=\"buttonClick.emit($event)\"\n [type]=\"type()\"\n (keyup)=\"\n ($event.key === 'Enter' || $event.key === 'Space') &&\n buttonClick.emit($event)\n \"\n>\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n}\n\n<ng-template #buttonTemplate>\n @if (loading()) {\n <mat-spinner class=\"kms-button__spinner\" diameter=\"22\"></mat-spinner>\n } @if (icon()) {\n <kms-icon\n class=\"kms-button__icon\"\n [color]=\"iconColor()\"\n [size]=\"IconSize.XXS\"\n [icon]=\"icon()\"\n ></kms-icon>\n }\n {{ label() }}\n</ng-template>\n","import { Component, ElementRef, input, Signal, ViewChild } from '@angular/core';\nimport { Placement } from '@floating-ui/dom';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\n@Component({\n standalone: false,\n selector: 'kms-tooltip-icon',\n templateUrl: './tooltip-icon.component.html',\n styleUrls: ['./tooltip-icon.component.scss'],\n})\nexport class TooltipIconComponent {\n @ViewChild('button') button: ElementRef;\n @ViewChild('tooltip') tooltip: ElementRef;\n tooltipText = input('');\n placement: Signal<Placement> = input();\n delay = input(1000);\n iconSize: Signal<IconSizePx> = input(IconSizePx.XS);\n tooltipAlwaysVisible = input(false);\n icon = input('ic_info');\n}\n","<div #tooltipContent>\n @if (tooltipText()) {\n {{ tooltipText() }}\n } @else {\n <ng-content></ng-content>\n }\n</div>\n\n<kms-icon\n [icon]=\"icon()\"\n [size]=\"iconSize()\"\n [kmsTooltip]=\"tooltipContent\"\n [placement]=\"placement()\"\n [delay]=\"delay()\"\n [alwaysVisible]=\"tooltipAlwaysVisible()\"\n></kms-icon>\n","import { Component, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { FormControlParentComponent } from './../../../parent-components/form-control.component';\n\n@Component({\n standalone: false,\n selector: 'kms-color-input',\n templateUrl: './color-input.component.html',\n styleUrls: ['./color-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorInputComponent),\n multi: true,\n },\n ],\n})\nexport class ColorInputComponent\n extends FormControlParentComponent\n implements OnInit, ControlValueAccessor\n{\n @Input() label = '';\n @Input() tooltipText = '';\n @Input() placeholder = '';\n valid: boolean | null | undefined;\n\n constructor(public renderer: Renderer2) {\n super(renderer);\n }\n\n ngOnInit() {\n this.form = new UntypedFormGroup({\n color: new UntypedFormControl(''),\n });\n\n super.ngOnInit();\n\n this.formInitialized = true;\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.color;\n this.onChange(value.color);\n });\n }\n\n validate(_: UntypedFormControl) {\n // TODO fix to validate complete form\n this.valid = this.matchesHex(this.form.value) ? null : false;\n return (\n this.valid && {\n invalid: !this.valid,\n }\n );\n }\n\n matchesHex(match?: string) {\n if (match) {\n const ret = match.match(/^#[0-9a-f]{6}$/i);\n this.valid = ret && ret.length > 0;\n return ret;\n }\n return false;\n }\n\n updateSelectedColor(value: any) {\n const color = value.target.value;\n this.value = color;\n this.internalValue = color;\n this.change(color);\n }\n}\n","\n@if (formInitialized) {\n <form [formGroup]=\"form\">\n <div>\n <mat-form-field class=\"colorInput\">\n @if (tooltipText) {\n <kms-tooltip-icon [tooltipText]=\"tooltipText\"></kms-tooltip-icon>\n }\n <mat-label>{{ label }}</mat-label>\n <input type=\"text\" [(ngModel)]=\"value\" matInput formControlName=\"color\" [placeholder]=\"placeholder\" [ngClass]=\"{'my-inValid': !matchesHex(value)}\" />\n <input type=\"color\" [value]=\"value && matchesHex(value) ? value : '#ffffff'\" (change)=\"updateSelectedColor($event)\" [ngClass]=\"{'my-inValid': !matchesHex(value)}\" />\n </mat-form-field>\n </div>\n </form>\n}","export enum ButtonDialogType {\n primary = 'primary',\n secondary = 'secondary',\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Component, Inject, NgZone } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ButtonDialogType } from './dialog-data.enum';\nimport { DialogData } from './dialog-data.model';\n\n/**\n * A confirmation dialog component\n */\n@Component({\n standalone: false,\n selector: 'kms-confirmation-dialog',\n templateUrl: './confirmation-dialog.component.html',\n styleUrls: ['./confirmation-dialog.component.scss'],\n})\nexport class ConfirmationDialogComponent {\n ButtonDialogType = ButtonDialogType;\n\n public constructor(\n public dialogRef: MatDialogRef<ConfirmationDialogComponent>,\n public zone: NgZone,\n @Inject(MAT_DIALOG_DATA) public data: DialogData\n ) {\n data.buttons ?? { primary: 'Yes', secondary: 'No' };\n data.message ?? '';\n data.panelClass ?? 'size-auto';\n }\n\n /**\n * Action called when clicked\n * @param clickedButton Whether the primary or secondary button was clicked\n */\n public onClickAction(clickedButton: ButtonDialogType): void {\n this.zone.run(() => {\n this.dialogRef.close(clickedButton);\n this.dialogRef.afterClosed().subscribe(() => {\n const buttonList = document.querySelectorAll(\n '.mat-flat-button, .mat-button'\n );\n let i = 0;\n for (i; i < buttonList.length; i++) {\n buttonList[i].classList.remove('cdk-focused');\n buttonList[i].classList.remove('cdk-program-focused');\n }\n });\n });\n }\n}\n","<div class=\"dialog-container\">\n <div class=\"dialog-header\">\n <h4>{{ data.title }}</h4>\n </div>\n <div class=\"dialog-content\">\n {{ data.message }}\n </div>\n <div class=\"dialog-footer\">\n <button\n mat-flat-button\n color=\"accent\"\n (click)=\"onClickAction(ButtonDialogType.secondary)\"\n >\n {{ data.buttons.secondary }}\n </button>\n <button\n mat-flat-button\n color=\"primary\"\n (click)=\"onClickAction(ButtonDialogType.primary)\"\n >\n {{ data.buttons.primary }}\n </button>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n forwardRef,\n input,\n output,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n FormGroup,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport {\n MatDatepicker,\n MatDatepickerModule,\n} from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { Color } from '../../../enums/colors.enum';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\nimport { IconComponent } from '../../atoms/icon/icon.component';\n\nexport type DateRangeValue = { start: Date | null; end: Date | null };\n\nlet nextId = 0;\n\n@Component({\n selector: 'kms-date-input',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './date-input.component.html',\n styleUrls: ['./date-input.component.scss'],\n imports: [\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatDatepickerModule,\n IconComponent,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateInputComponent),\n multi: true,\n },\n ],\n})\nexport class DateInputComponent implements ControlValueAccessor {\n readonly Color = Color;\n readonly IconSizePx = IconSizePx;\n\n dateChange = output<Date | null>();\n rangeChange = output<DateRangeValue>();\n\n mode = input<'date' | 'range'>('date');\n disabled = input(false);\n label = input('');\n placeholder = input('');\n required = input(false);\n hint = input('');\n errorMessage = input('');\n minDate = input<Date | null>(null);\n maxDate = input<Date | null>(null);\n monthPicker = input(false);\n startView = input<'month' | 'year' | 'multi-year'>('month');\n\n value: WritableSignal<Date | null> = signal(null);\n disabledByForm: WritableSignal<boolean> = signal(false);\n isDisabled = computed(() => this.disabled() || this.disabledByForm());\n\n innerControl = new FormControl<Date | null>(null);\n rangeGroup = new FormGroup({\n start: new FormControl<Date | null>(null),\n end: new FormControl<Date | null>(null),\n });\n\n computedStartView = computed(() =>\n this.monthPicker() ? 'year' : this.startView()\n );\n\n private readonly disabledEffect = effect(() => {\n const disabled = this.isDisabled();\n if (disabled) {\n this.innerControl.disable({ emitEvent: false });\n this.rangeGroup.disable({ emitEvent: false });\n } else {\n this.innerControl.enable({ emitEvent: false });\n this.rangeGroup.enable({ emitEvent: false });\n }\n });\n\n readonly inputId = `kms-date-input-${nextId++}`;\n readonly hintId = `${this.inputId}-hint`;\n readonly errorId = `${this.inputId}-error`;\n\n errorStateMatcher: ErrorStateMatcher = {\n isErrorState: () => !!this.errorMessage(),\n };\n\n onChange: (value: Date | null | DateRangeValue) => void = () => {};\n onTouched: () => void = () => {};\n\n onDateChanged(date: Date | null): void {\n this.value.set(date);\n this.innerControl.setValue(date, { emitEvent: false });\n this.onChange(date);\n this.dateChange.emit(date);\n }\n\n onMonthSelected(date: Date, picker: MatDatepicker<Date>): void {\n if (this.monthPicker()) {\n this.onDateChanged(date);\n picker.close();\n }\n }\n\n onRangeChanged(): void {\n const rangeValue: DateRangeValue = {\n start: this.rangeGroup.value.start ?? null,\n end: this.rangeGroup.value.end ?? null,\n };\n this.onChange(rangeValue);\n this.rangeChange.emit(rangeValue);\n }\n\n writeValue(value: Date | null | DateRangeValue): void {\n if (this.mode() === 'range') {\n const range = (value as DateRangeValue) ?? { start: null, end: null };\n this.rangeGroup.setValue(\n { start: range.start, end: range.end },\n { emitEvent: false }\n );\n } else {\n const date = (value as Date | null) ?? null;\n this.value.set(date);\n this.innerControl.setValue(date, { emitEvent: false });\n }\n }\n\n registerOnChange(fn: (value: Date | null | DateRangeValue) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledByForm.set(isDisabled);\n }\n}\n","@if (mode() === 'date') {\n<mat-form-field class=\"kms-date-input__form-field\">\n <mat-label>{{ label() }}</mat-label>\n <input\n [id]=\"inputId\"\n matInput\n [matDatepicker]=\"picker\"\n [formControl]=\"innerControl\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [attr.aria-required]=\"required()\"\n [attr.aria-invalid]=\"errorMessage() ? true : null\"\n [attr.aria-describedby]=\"\n (hint() ? hintId : '') + (errorMessage() ? ' ' + errorId : '') || null\n \"\n (dateChange)=\"onDateChanged($event.value)\"\n (blur)=\"onTouched()\"\n (click)=\"picker.open()\"\n (keyup)=\"\n ($event.key === 'Enter' || $event.key === 'Space') && picker.open()\n \"\n />\n <mat-datepicker\n #picker\n [startView]=\"computedStartView()\"\n (monthSelected)=\"onMonthSelected($event, picker)\"\n ></mat-datepicker>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\">\n <kms-icon\n class=\"kms-date-input__icon\"\n icon=\"calendar\"\n [color]=\"Color.SECONDARY\"\n [size]=\"IconSizePx.XS\"\n matDatepickerToggleIcon\n ></kms-icon>\n </mat-datepicker-toggle>\n @if (hint()) {\n <mat-hint [id]=\"hintId\">{{ hint() }}</mat-hint>\n }\n <mat-error [id]=\"errorId\" role=\"alert\">{{ errorMessage() }}</mat-error>\n</mat-form-field>\n} @if (mode() === 'range') {\n<mat-form-field class=\"kms-date-input__form-field\">\n <mat-label>{{ label() }}</mat-label>\n <mat-date-range-input\n [rangePicker]=\"rangePicker\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n (click)=\"rangePicker.open()\"\n (keyup)=\"\n ($event.key === 'Enter' || $event.key === 'Space') && rangePicker.open()\n \"\n >\n <input\n matStartDate\n [formControl]=\"rangeGroup.controls.start\"\n [placeholder]=\"placeholder() || 'Start date'\"\n [required]=\"required()\"\n [attr.aria-required]=\"required()\"\n [attr.aria-invalid]=\"errorMessage() ? true : null\"\n [attr.aria-describedby]=\"\n (hint() ? hintId : '') + (errorMessage() ? ' ' + errorId : '') || null\n \"\n (dateChange)=\"onRangeChanged()\"\n (blur)=\"onTouched()\"\n />\n <input\n matEndDate\n [formControl]=\"rangeGroup.controls.end\"\n placeholder=\"End date\"\n (dateChange)=\"onRangeChanged()\"\n (blur)=\"onTouched()\"\n />\n </mat-date-range-input>\n <mat-date-range-picker #rangePicker></mat-date-range-picker>\n <mat-datepicker-toggle matIconSuffix [for]=\"rangePicker\">\n <kms-icon\n class=\"kms-date-input__icon\"\n icon=\"calendar\"\n [color]=\"Color.SECONDARY\"\n [size]=\"IconSizePx.XS\"\n matDatepickerToggleIcon\n ></kms-icon>\n </mat-datepicker-toggle>\n @if (hint()) {\n <mat-hint [id]=\"hintId\">{{ hint() }}</mat-hint>\n }\n <mat-error [id]=\"errorId\" role=\"alert\">{{ errorMessage() }}</mat-error>\n</mat-form-field>\n}\n","import { Component, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { NullAble } from '../../../models';\n\nimport { FormControlParentComponent } from './../../../parent-components/form-control.component';\n\n@Component({\n standalone: false,\n selector: 'kms-enum-radiogroup',\n templateUrl: './enum-radiogroup.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EnumRadiogroupComponent),\n multi: true,\n },\n ],\n})\nexport class EnumRadiogroupComponent\n extends FormControlParentComponent\n implements OnInit, ControlValueAccessor\n{\n @Input() header: NullAble<String>;\n @Input() optionsEnum: any;\n @Input() translationPrefix = '';\n\n public optionValues: any;\n\n constructor(public renderer: Renderer2) {\n super(renderer);\n }\n\n ngOnInit() {\n this.optionValues = Object.keys(this.optionsEnum).filter(\n (x) => !(parseInt(x) >= 0)\n );\n this.form = new UntypedFormGroup({\n enumData: new UntypedFormControl([]),\n });\n this.formInitialized = true;\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.enumData;\n this.onChange(value.enumData);\n });\n\n super.ngOnInit();\n }\n}\n","<form [formGroup]=\"form\">\n <div>{{ header }}</div>\n <mat-radio-group formControlName=\"enumData\" [disabled]=\"disabled\" #child>\n @for (choice of optionValues; track choice) {\n <mat-radio-button\n [value]=\"choice\"\n [checked]=\"value === choice\"\n >{{ translationPrefix + '.' + choice | translate }}</mat-radio-button\n >\n }\n </mat-radio-group>\n </form>\n","/**\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { NullAble } from \"./types/nullable.type\";\n\n\n/**\n * Check if null or undefined\n * @param value value that is being checked\n */\nexport function isValue<T>(value: NullAble<T>): value is T {\n if (value === null) {\n return false;\n }\n if (typeof value === 'undefined') {\n return false;\n }\n return true;\n}\n","import {\n ApplicationRef,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\n\nimport {\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { IconSizePx } from '../../../enums/iconSize.enum';\nimport { isValue } from '../../../models/is-value.function';\nimport { AttachedFileDTO } from '../../../models/types/attached-file-dto.model';\n\n// Max size in bytes of uploaded image\nconst MAX_SIZE_BYTES = 2097152;\n\n@Component({\n standalone: false,\n selector: 'kms-file-input',\n templateUrl: './file-input.component.html',\n styleUrls: ['./file-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileInputComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => FileInputComponent),\n multi: true,\n },\n ],\n})\nexport class FileInputComponent implements ControlValueAccessor, OnInit {\n @ViewChild('fileInput') public fileInput: any;\n\n @Input() label = '';\n\n @Input() previewImage = true;\n @Input() allowRemove = true;\n @Input() previewImageText = '';\n @Input() maxSizeBytes = MAX_SIZE_BYTES;\n @Input() resizePixels = 0;\n @Input() acceptedFileMimetypes = 'image/jpeg, image/jpg, image/png';\n\n form = new UntypedFormGroup({\n ImageIdent: new UntypedFormControl(''),\n ImageLink: new UntypedFormControl(''),\n Filename: new UntypedFormControl(''),\n ImageAsDataURL: new UntypedFormControl(''),\n Text: new UntypedFormControl(''),\n });\n\n subscriptions: Subscription[] = [];\n newImageLoading = false;\n\n IconSizePx = IconSizePx;\n\n @Output() formDataChanged: EventEmitter<UntypedFormGroup> =\n new EventEmitter();\n\n /**\n * Constructor\n * @param appRef\n * @param cd\n * @param translateService\n * @param renderer\n */\n constructor(\n public appRef: ApplicationRef,\n public cd: ChangeDetectorRef,\n public renderer: Renderer2\n ) {}\n\n /**\n * Click on button triggers file-input to open OS file dialog\n */\n selectImageOverlay() {\n this.fileInput.nativeElement.click();\n }\n\n /**\n * Function to manage the input image\n * Returns an error if the file exceeds maximum wanted filesize (Mb).\n * @param ev\n * @returns\n */\n selectImage(ev: any) {\n if (ev.target.files && ev.target.files[0]) {\n const file: File = ev.target.files[0];\n\n if (file.size > this.maxSizeBytes) {\n this.clearInputValue(ev);\n return;\n } else {\n this.newImageLoading = true;\n\n if (this.resizePixels > 0) {\n const logoUrl = URL.createObjectURL(file);\n const imgEl = document.createElement('img');\n imgEl.addEventListener('load', () => {\n const resizedLogo = this.resizeImage(imgEl, this.resizePixels);\n const newFile = this.generateModel(\n file.name,\n resizedLogo,\n this.value.ImageIdent,\n this.value.ImageLink,\n this.value.Text\n );\n this.value = newFile;\n this.newImageLoading = false;\n this.cd.markForCheck();\n });\n imgEl.src = logoUrl;\n } else {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (e: any) => {\n const newFile = this.generateModel(\n file.name,\n e.target.result,\n this.value.ImageIdent,\n this.value.ImageLink,\n this.value.Text\n );\n this.value = newFile;\n this.newImageLoading = false;\n this.cd.markForCheck();\n };\n }\n }\n } else {\n console.warn('No file selected');\n }\n }\n\n /**\n * Resize an image\n * @param imgEl\n * @param wantedWidth as number\n * @returns string\n */\n private resizeImage(imgEl: any, wantedWidth: number) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const aspect = imgEl.width / imgEl.height;\n canvas.width = wantedWidth;\n canvas.height = wantedWidth / aspect;\n if (isValue(ctx)) ctx.drawImage(imgEl, 0, 0, canvas.width, canvas.height);\n return canvas.toDataURL();\n }\n\n /**\n * Generate default object\n * @param name as string\n * @param content as string\n * @returns AttachedFileDTO\n */\n generateModel(\n name?: string,\n content?: string,\n ident?: string,\n imageLink?: string,\n text?: string\n ) {\n return {\n ImageIdent: ident ? ident : '',\n Filename: name ? name : '',\n ImageAsDataURL: content ? content : '',\n ImageLink: imageLink ? imageLink : '',\n Text: text ? text : '',\n } as AttachedFileDTO;\n }\n\n /**\n * Remove image\n */\n removeFromList() {\n this.value = this.generateModel('', '', '', '');\n }\n\n /**\n * get value\n */\n get value(): AttachedFileDTO {\n return this.form.value;\n }\n\n /**\n * set value\n */\n set value(value: AttachedFileDTO) {\n this.form.setValue(value);\n this.onChange(value);\n this.formDataChanged.emit(this.form);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ngOnInit() {}\n\n ngOnDestroy() {\n this.subscriptions.forEach((s) => s.unsubscribe());\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n writeValue(value: AttachedFileDTO | null) {\n if (value) {\n this.value = value;\n }\n\n if (value === null) {\n this.form.reset();\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\n validate(_: UntypedFormControl) {\n return this.form.valid ? null : { styles: { valid: false } };\n }\n\n /**\n * OnClick event listener of input#fileInput to clear his input value\n */\n clearInputValue(ev: any) {\n const element = ev.target as HTMLInputElement;\n element.value = '';\n }\n}\n","<form [formGroup]=\"form\" (change)=\"newImageLoading = true\" class=\"fileInput\">\n @if (form.value.Filename && previewImage) {\n <div>\n @if (newImageLoading) {\n <div>\n {{ 'file-input.loading' | translate }}\n </div>\n }\n @if (!newImageLoading) {\n <div>\n <div class=\"\">\n <div class=\"\">\n @if (\n form.value.ImageLink &&\n form.value.ImageLink !== '' &&\n !(form.value.ImageAsDataURL && form.value.ImageAsDataURL !== '')\n ) {\n <img\n [src]=\"form.value.ImageAsDataURL\"\n [src]=\"form.value.ImageLink\"\n style=\"height: 40px; width: fit-content\"\n />\n }\n @if (\n form.value.ImageAsDataURL && form.value.ImageAsDataURL !== ''\n ) {\n <img\n [src]=\"form.value.ImageAsDataURL\"\n style=\"height: 40px; width: fit-content\"\n />\n }\n </div>\n <div class=\"\">{{ form.value.Filename }}</div>\n <div class=\"\">\n @if (allowRemove) {\n <div (click)=\"removeFromList()\">\n <kms-icon\n icon=\"trash\"\n [size]=\"IconSizePx.XS\"\n iconClass=\"color-black\"\n ></kms-icon>\n {{ 'file-input.remove' }}\n </div>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n @if (!previewImage) {\n <div>\n <div class=\"\">{{ form.value.Filename }}</div>\n </div>\n }\n\n <button\n (click)=\"selectImageOverlay()\"\n class=\"button-primary-font-color\"\n mat-stroked-button\n >\n <span>{{ label }}</span>\n </button>\n <input\n type=\"file\"\n [accept]=\"acceptedFileMimetypes\"\n style=\"display: none\"\n #fileInput\n (click)=\"clearInputValue($event)\"\n (change)=\"selectImage($event)\"\n />\n\n <input type=\"hidden\" formControlName=\"ImageIdent\" />\n <input type=\"hidden\" formControlName=\"ImageLink\" />\n <input type=\"hidden\" formControlName=\"Filename\" />\n <input type=\"hidden\" formControlName=\"ImageAsDataURL\" />\n <input type=\"hidden\" formControlName=\"Text\" />\n</form>\n","/**\n * @copyright KMS GmbH\n */\n\nimport { state, style, trigger } from '@angular/animations';\nimport { Component, ElementRef, Input, ViewChild } from '@angular/core';\n\n@Component({\n standalone: false,\n selector: 'kms-flyout',\n templateUrl: './flyout.component.html',\n styleUrls: ['./flyout.component.scss'],\n animations: [\n trigger('dropdownAnimation', [\n state(\n 'true',\n style({\n height: '{{targetHeight}}',\n transition: 'height {{animationTime}}ms ease-in-out',\n }),\n {\n params: {\n targetHeight: '300px',\n animationTime: 3000,\n },\n }\n ),\n state(\n 'false',\n style({\n height: 0,\n transition: 'height {{animationTime}}ms ease-in-out',\n }),\n {\n params: {\n targetHeight: '300px',\n opacity: 0,\n animationTime: 3000,\n },\n }\n ),\n ]),\n ],\n})\nexport class FlyoutComponent {\n @Input() icon = 'filter';\n\n isDropdownOpened = false;\n targetHeight = '0';\n animationTime = 5000;\n\n @Input() headerCssClass = '';\n @Input() bodyCssClass = '';\n\n @Input() headerTitle = '';\n @Input() headerText = '';\n @Input() hasButtonForMore = false;\n @Input() moreText = '';\n @Input() lessText = '';\n\n @ViewChild('content') content: ElementRef | undefined;\n\n @ViewChild('flyoutHeader') flyoutHeader: ElementRef | undefined;\n\n /**\n * Open/close dropdown if click on header.\n * Except, if mode is set to hasButtonForMore. When there is a extra button to open/close\n */\n toggleDropdownHeader() {\n if (!this.hasButtonForMore) {\n this.toggleDropdown();\n }\n }\n\n /**\n * Open or close the dropdown\n */\n toggleDropdown() {\n this.isDropdownOpened = !this.isDropdownOpened;\n }\n\n /**\n * Set the height of the dropdown list items dynamic - needed for the animation\n */\n setDropdownListHeight(contentHeight: number) {\n this.targetHeight = `${contentHeight}px`;\n }\n}\n","<div class=\"flyout\">\n <div\n (click)=\"toggleDropdownHeader()\"\n [ngClass]=\"headerCssClass\"\n >\n <span [innerHtml]=\"headerTitle | kmsSafeHtml\"></span>\n <span [innerHtml]=\"headerText | kmsSafeHtml\"></span>\n\n <ng-content select=\"[header]\"></ng-content>\n\n @if (hasButtonForMore) {\n <button\n type=\"button\"\n (click)=\"toggleDropdown()\"\n class=\"flyout__more-toggle\"\n [attr.aria-expanded]=\"isDropdownOpened\"\n >\n @if (!isDropdownOpened) {\n <span>\n {{ moreText }}\n <kms-icon [icon]=\"'chevron-down'\" [size]=\"16\"> </kms-icon>\n </span>\n }\n @if (isDropdownOpened) {\n <span>\n {{ lessText }}\n <kms-icon [icon]=\"'chevron-top'\" [size]=\"16\"> </kms-icon>\n </span>\n }\n </button>\n }\n </div>\n <div\n class=\"flyout__body\"\n [ngClass]=\"bodyCssClass\"\n tabindex=\"0\"\n [@dropdownAnimation]=\"{\n value: isDropdownOpened,\n params: { targetHeight: targetHeight, animationTime: '500' }\n }\"\n getMaxHeight=\"flyout__content\"\n (sumOfHeight)=\"setDropdownListHeight($event)\"\n #flyoutHeader\n >\n @if (isDropdownOpened || !hasButtonForMore) {\n <div class=\"flyout__content\" #content>\n <ng-content></ng-content>\n </div>\n }\n </div>\n</div>\n","/**\n * @copyright KMS GmbH\n */\n\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n} from '@angular/core';\nimport { SwiperContainer, register } from 'swiper/element/bundle';\nimport { ImageSnippet } from '../../../models/image-snippet';\n\nregister();\n\n@Component({\n standalone: false,\n selector: 'kms-image-slider',\n templateUrl: './image-slider.component.html',\n})\nexport class ImageSliderComponent implements OnChanges, AfterViewInit {\n @Input() slides!: string[];\n @Input() editMode = false;\n @Input() imagesToSave?: ImageSnippet[];\n @Output() deleteImageEvent: EventEmitter<number> = new EventEmitter();\n @Output() orderChanged: EventEmitter<ImageSnippet[]> = new EventEmitter();\n\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit() {\n this.initializeSwipers();\n }\n\n ngOnChanges() {\n this.updateSwipers();\n }\n\n initializeSwipers() {\n const swiper1 = this.el.nativeElement.children[0]\n .children[0] as SwiperContainer;\n const swiper2 = this.el.nativeElement.children[0]\n .children[1] as SwiperContainer;\n\n Object.assign(swiper1, {\n slidesPerView: 1,\n navigation: true,\n thumbs: {\n swiper: swiper2,\n },\n pagination: {\n clickable: true,\n },\n });\n\n Object.assign(swiper2, {\n slidesPerView: 4,\n freeMode: true,\n navigation: true,\n });\n\n swiper1.initialize();\n swiper2.initialize();\n }\n\n updateSwipers(delayMs = 100) {\n const swiper1 = this.el.nativeElement.children[0]\n .children[0] as SwiperContainer;\n const swiper2 = this.el.nativeElement.children[0]\n .children[1] as SwiperContainer;\n\n if (swiper1.swiper && swiper2.swiper) {\n setTimeout(() => {\n swiper1.swiper.update();\n swiper2.swiper.update();\n }, delayMs);\n }\n }\n\n deleteImage(index: number) {\n this.deleteImageEvent.emit(index);\n this.updateSwipers(2500);\n }\n\n onOrderChanged(event: CdkDragDrop<string[]>) {\n if (this.slides && this.imagesToSave) {\n moveItemInArray(this.slides, event.previousIndex, event.currentIndex);\n moveItemInArray(\n this.imagesToSave,\n event.previousIndex,\n event.currentIndex\n );\n this.orderChanged.emit(this.imagesToSave);\n this.updateSwipers();\n }\n }\n}\n","<div class=\"image-slider-container\">\n <swiper-container\n class=\"swiper-main-view-container\"\n thumbs-swiper=\".swiper-carousel-container\"\n >\n @for (slide of slides; track slide) {\n <swiper-slide>\n <img [src]=\"slide\" loading=\"lazy\" />\n </swiper-slide>\n }\n </swiper-container>\n\n <swiper-container\n class=\"swiper-carousel-container\"\n thumbsSlider=\"\"\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"onOrderChanged($event)\"\n >\n @for (slide of slides; track slide; let index = $index) {\n <swiper-slide\n [class.swiper-slide-default]=\"index === 0 && editMode\"\n >\n @if (editMode) {\n <div>\n <button cdkDrag class=\"drag-button\" mat-menu-item></button>\n <button\n class=\"delete-button\"\n mat-menu-item\n (click)=\"deleteImage(index)\"\n >\n <kms-icon icon=\"trash\" [size]=\"15\"></kms-icon>\n </button>\n </div>\n }\n <img [src]=\"slide\" loading=\"lazy\" />\n @if (index === 0 && editMode) {\n <div class=\"swiper-slide-default-text\">\n {{ 'common.defaultImage' | translate }}\n </div>\n }\n </swiper-slide>\n }\n </swiper-container>\n</div>\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Component, Input, OnInit } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { Color } from '../../../enums/colors.enum';\n\n/**\n * A generic dialog component\n */\n@Component({\n standalone: false,\n selector: 'kms-accordion-item',\n templateUrl: './kms-accordion-item.component.html',\n styleUrls: ['./kms-accordion-item.component.scss'],\n})\nexport class KMSAccordionItemComponent implements OnInit {\n public itemTitleTrustHtml: SafeHtml | undefined;\n @Input() public showAsCard = false;\n @Input() public isSmall = false;\n @Input() public expanded = false;\n @Input()\n public set itemTitle(val: string) {\n this.itemTitleTrustHtml = this.sanitizer.bypassSecurityTrustHtml(val);\n }\n\n Color = Color;\n panelOpenState = false;\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n ngOnInit() {}\n}\n","<mat-expansion-panel\n class=\"kms-accordion\"\n [ngClass]=\"{\n 'kms-accordion--flat': !showAsCard,\n 'kms-accordion--small': isSmall\n }\"\n (opened)=\"panelOpenState = true\"\n (closed)=\"panelOpenState = false\"\n [expanded]=\"expanded\"\n hideToggle=\"true\"\n >\n <mat-expansion-panel-header class=\"kms-accordion__header\">\n <mat-panel-title class=\"mat-subheading-2 kms-accordion__title\">\n <div [innerHtml]=\"itemTitleTrustHtml\"></div>\n <ng-content select=\"[itemTitleElement]\"></ng-content>\n </mat-panel-title>\n <div class=\"kms-accordion__header-icon-wrapper\">\n @if (!panelOpenState) {\n <kms-icon\n icon=\"ic_plus\"\n [color]=\"Color.PRIMARY\"\n [size]=\"isSmall ? 16 : 22\"\n ></kms-icon>\n }\n @if (panelOpenState) {\n <kms-icon\n icon=\"ic_minus\"\n [color]=\"Color.PRIMARY\"\n [size]=\"isSmall ? 16 : 22\"\n ></kms-icon>\n }\n </div>\n </mat-expansion-panel-header>\n <ng-content></ng-content>\n</mat-expansion-panel>\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport {\n Component,\n forwardRef,\n input,\n model,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Color } from '../../../enums/colors.enum';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\n\n@Component({\n standalone: false,\n selector: 'kms-numeric-input',\n templateUrl: './numeric-input.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumericInputComponent),\n multi: true,\n },\n ],\n})\nexport class NumericInputComponent implements ControlValueAccessor {\n disabled = model(false);\n min = input<number>(0);\n label = input('');\n\n numericValue: WritableSignal<number> = signal(0);\n touched: WritableSignal<boolean> = signal(false);\n Color = Color;\n IconSizePx = IconSizePx;\n\n constructor() {}\n\n get value(): number {\n return this.numericValue();\n }\n\n set value(value: number) {\n this.numericValue.set(value);\n }\n\n onChange: (value?: number) => void = () => {\n //\n };\n onTouched = () => {\n //\n };\n\n writeValue(value: number) {\n this.value = value;\n }\n\n add() {\n this.markAsTouched();\n if (!this.disabled()) {\n this.numericValue.update((value) => value + 1);\n this.onChange(this.numericValue());\n }\n }\n\n minus() {\n this.markAsTouched();\n if (!this.disabled() && this.numericValue() > this.min()) {\n this.numericValue.update((value) => value - 1);\n this.onChange(this.numericValue());\n }\n }\n\n markAsTouched() {\n if (!this.touched) {\n this.onTouched();\n this.touched.set(true);\n }\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n registerOnChange(onChange: (value?: number) => void) {\n this.onChange = onChange;\n }\n\n registerOnTouched(onTouched: () => void) {\n this.onTouched = onTouched;\n }\n}\n","@if (label()) {\n <mat-label>{{ label() }}</mat-label>\n}\n<div class=\"numeric-input\" [ngClass]=\"{ disabled: disabled() }\">\n <kms-icon\n id=\"numeric-input-minus\"\n class=\"numeric-input__icon\"\n aria-hidden=\"true\"\n icon=\"ic_minus\"\n [color]=\"disabled() ? Color.DISABLED : Color.SECONDARY\"\n [size]=\"10\"\n (click)=\"minus()\"\n (keyup)=\"($event.key === 'Enter' || $event.key === 'Space') && minus()\"\n >\n </kms-icon>\n <strong>{{ numericValue() }}</strong>\n <kms-icon\n id=\"numeric-input-plus\"\n class=\"numeric-input__icon\"\n aria-hidden=\"true\"\n icon=\"ic_plus\"\n [color]=\"disabled() ? Color.DISABLED : Color.SECONDARY\"\n [size]=\"10\"\n (click)=\"add()\"\n (keyup)=\"($event.key === 'Enter' || $event.key === 'Space') && add()\"\n >\n </kms-icon>\n</div>\n","/**\n * @copyright KMS GmbH\n */\n\nimport {\n Component,\n computed,\n EventEmitter,\n forwardRef,\n input,\n Output,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { isEmpty } from 'lodash';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\n\n@Component({\n standalone: false,\n selector: 'kms-password',\n templateUrl: './password.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PasswordComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => PasswordComponent),\n multi: true,\n },\n ],\n})\nexport class PasswordComponent implements ControlValueAccessor, Validator {\n @Output() change: EventEmitter<string> = new EventEmitter();\n @Output() submit: EventEmitter<string> = new EventEmitter();\n\n disabled = input(false);\n label = input('Password');\n withStrength = input(false);\n lowerCaseCriteriaMsg = input('At least one lowercase letter');\n upperCaseCriteriaMsg = input('At least one uppercase letter');\n numberCriteriaMsg = input('At least one number');\n specialCharCriteriaMsg = input(\n 'At least one special character (-.!.?,$,&,*,+,#,%)'\n );\n minCharsCriteriaMsg = input('At least 10 characters');\n\n IconSizePx = IconSizePx;\n value: WritableSignal<string> = signal('');\n showPassword: WritableSignal<boolean> = signal(false);\n eyeIconIsBeingPressed = signal(false);\n\n validateUppercase = computed(() => {\n const regex = /^(?=.*?[A-Z]).{1,}$/;\n\n return regex.test(this.value());\n });\n\n validateLowercase = computed(() => {\n const regex = /^(?=.*?[a-z]).{1,}$/;\n\n return regex.test(this.value());\n });\n\n validateSpecialChar = computed(() => {\n const regex = /^(?=.*?[-!?$&*+#%]).{1,}$/;\n\n return regex.test(this.value());\n });\n\n validateNumber = computed(() => {\n const regex = /^(?=.*?[0-9]).{1,}$/;\n\n return regex.test(this.value());\n });\n\n validateMinimumChar = computed(() => {\n return this.value().length >= 10;\n });\n\n validations = computed(() => {\n return [\n {\n text: this.upperCaseCriteriaMsg,\n isValid: this.validateUppercase,\n error: 'uppercase',\n },\n {\n text: this.lowerCaseCriteriaMsg,\n isValid: this.validateLowercase,\n error: 'lowercase',\n },\n {\n text: this.specialCharCriteriaMsg,\n isValid: this.validateSpecialChar,\n error: 'specialChar',\n },\n {\n text: this.numberCriteriaMsg,\n isValid: this.validateNumber,\n error: 'number',\n },\n {\n text: this.minCharsCriteriaMsg,\n isValid: this.validateMinimumChar,\n error: 'minChars',\n },\n ];\n });\n\n keypress($event: KeyboardEvent) {\n if ($event.key === 'Enter') {\n this.submit.emit();\n }\n }\n\n valueChanged(event: Event) {\n const { value } = event.target as HTMLInputElement;\n this.onChange(value);\n this.value.set(value);\n this.change.emit(value);\n }\n\n onChange: any = () => {};\n onTouch: any = () => {};\n\n writeValue(value: any) {\n this.value.set(value);\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n validate({ value }: FormControl): ValidationErrors | null {\n if (!this.withStrength()) return null;\n\n this.value.set(value);\n const result = {};\n\n for (const validation of this.validations()) {\n if (!validation.isValid()) {\n result[validation.error] = true;\n }\n }\n\n return isEmpty(result) ? null : result;\n }\n}\n","<mat-form-field class=\"kms-password__form-field\">\n <mat-label>{{ label() }}</mat-label>\n <input\n [type]=\"showPassword() ? 'text' : 'password'\"\n matInput\n (input)=\"valueChanged($event)\"\n [disabled]=\"disabled()\"\n (keypress)=\"keypress($event)\"\n #password=\"matInput\"\n />\n @if (showPassword()) {\n <kms-icon\n class=\"kms-time-input__suffix\"\n matSuffix\n icon=\"ic_eye\"\n [size]=\"IconSizePx.XS\"\n (click)=\"showPassword.set(false)\"\n (mousedown)=\"eyeIconIsBeingPressed.set(true)\"\n (mouseup)=\"eyeIconIsBeingPressed.set(false)\"\n ></kms-icon>\n } @else {\n <kms-icon\n class=\"kms-time-input__suffix\"\n matSuffix\n icon=\"ic_eye_active\"\n [size]=\"IconSizePx.XS\"\n (click)=\"showPassword.set(true)\"\n (mousedown)=\"eyeIconIsBeingPressed.set(true)\"\n (mouseup)=\"eyeIconIsBeingPressed.set(false)\"\n ></kms-icon>\n }\n</mat-form-field>\n\n@if ((eyeIconIsBeingPressed() || password.focused) && withStrength()) {\n<mat-card appearance=\"outlined\">\n <mat-card-content class=\"kms-password__card\">\n <mat-list role=\"list\">\n @for (validation of validations(); track validation) {\n <mat-list-item role=\"listitem\">\n <div class=\"kms-password__strength-item\">\n @if(validation.isValid()) {\n <kms-icon\n [size]=\"IconSizePx.XS\"\n icon=\"ic_check\"\n iconClass=\"color-success\"\n ></kms-icon>\n }@else {\n <kms-icon\n [size]=\"IconSizePx.XS\"\n icon=\"ic_abbrechen\"\n iconClass=\"color-warn\"\n ></kms-icon>\n } {{ validation.text() }}\n </div></mat-list-item\n >\n }\n </mat-list>\n </mat-card-content>\n</mat-card>\n}\n","import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { StylingTheme } from '../../../enums/colors.enum';\nimport { RadioButtonSize } from '../../../enums/radioButtonSize.enum';\nimport { TextValuePair } from '../../../models';\n\nexport interface RadiobuttonInterface extends TextValuePair {\n Disabled?: boolean;\n InfoText?: string;\n}\n\n@Component({\n standalone: false,\n selector: 'kms-radiogroup',\n templateUrl: './radiogroup.component.html',\n styleUrls: ['./radiogroup.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n ],\n})\nexport class RadioGroupComponent implements ControlValueAccessor {\n @Input() options: RadiobuttonInterface[] = [];\n @Input() disabled: boolean = false;\n @Input() value: any = null;\n @Input() infoText?: string;\n\n @Input() color: StylingTheme = StylingTheme.PRIMARY;\n @Input() size: RadioButtonSize = RadioButtonSize.MD;\n @Input() direction: 'row' | 'column' = 'row';\n\n onChange = (value: any) => {\n this.value = value;\n };\n\n onTouched = () => {};\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n handleChange(value: any) {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n }\n}\n","@if (options && options.length > 0) {\n<mat-radio-group\n class=\"radiogroup\"\n [value]=\"value\"\n (change)=\"handleChange($event.value)\"\n [disabled]=\"disabled\"\n [ngStyle]=\"{ 'flex-direction': direction }\"\n>\n @if (infoText) {\n <kms-tooltip-icon\n [class.margin-left]=\"direction == 'column'\"\n [tooltipText]=\"infoText\"\n ></kms-tooltip-icon>\n } @for (option of options; track $index) {\n <div class=\"radiobutton-container\">\n <kms-radiobutton\n [label]=\"option.Text\"\n [value]=\"option.Value\"\n [checked]=\"value === option.Value\"\n [disabled]=\"disabled || option.Disabled\"\n [size]=\"size\"\n [color]=\"color\"\n ></kms-radiobutton>\n @if (option.InfoText) {\n <kms-tooltip-icon [tooltipText]=\"option.InfoText\"></kms-tooltip-icon>\n }\n </div>\n }\n</mat-radio-group>\n}\n","export enum SalutationEnum {\n NOT_SPECIFIED = 'Keine Anrede',\n MALE = 'Herr',\n FEMALE = 'Frau',\n}\n","import { Component, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { NullAble } from '../../../models';\nimport { SalutationEnum } from '../../../models/salutation.enum';\n\nimport { FormControlParentComponent } from './../../../parent-components/form-control.component';\n\n@Component({\n standalone: false,\n selector: 'kms-salutation-dropdown',\n templateUrl: './salutation-dropdown.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SalutationDropdownComponent),\n multi: true,\n },\n ],\n})\nexport class SalutationDropdownComponent\n extends FormControlParentComponent\n implements OnInit, ControlValueAccessor\n{\n @Input() placeholder: NullAble<string>;\n\n //For view\n SalutationEnum = SalutationEnum;\n Object = Object;\n\n constructor(public renderer: Renderer2) {\n super(renderer);\n }\n\n ngOnInit() {\n this.form = new UntypedFormGroup({\n salut: new UntypedFormControl(''),\n });\n this.formInitialized = true;\n\n //somehow for dropowns we have to set value manually with timeout for default value\n setTimeout(() => {\n this.form.controls['salut'].setValue(this.value ? this.value : '');\n }, 1000);\n\n this.form.valueChanges.subscribe((value) => {\n this.onChange(value.salut);\n });\n\n super.ngOnInit();\n }\n}\n","<form [formGroup]=\"form\" class=\"row\">\n <mat-form-field class=\"col\">\n <mat-select\n disableOptionCentering\n formControlName=\"salut\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n #child\n >\n <mat-option [value]=\"SalutationEnum.NOT_SPECIFIED\">{{\n 'general.salutation.' + Object.keys(SalutationEnum)[0]?.toLowerCase()\n | translate\n }}</mat-option>\n <mat-option [value]=\"SalutationEnum.MALE\">{{\n 'general.salutation.' + Object.keys(SalutationEnum)[1]?.toLowerCase()\n | translate\n }}</mat-option>\n <mat-option [value]=\"SalutationEnum.FEMALE\">{{\n 'general.salutation.' + Object.keys(SalutationEnum)[2]?.toLowerCase()\n | translate\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n</form>\n","/**\n * General Image Model\n */\nexport class ImageSnippet {\n status = 'init';\n constructor(\n public src: string,\n public fileName: string,\n public srcType = ImageSourceType.ByteArray,\n ) {}\n }\n\nexport enum ImageSourceType {\n Ident = 'Idnet',\n ByteArray = 'ByteArray',\n URL = 'URL'\n}\n","import { NullAble } from './types/nullable.type';\n\nexport class TextValuePairArray {\n Items: NullAble<TextValuePair[]>;\n}\n\nexport class TextValuePair {\n Text: NullAble<string>;\n Value: NullAble<any>;\n\n constructor(text: string, value: any) {\n this.Text = text;\n this.Value = value;\n }\n}\n\nexport class LabelValuePair {\n Label: NullAble<string>;\n Value: NullAble<string>;\n\n constructor(label: string, value: string) {\n this.Label = label;\n this.Value = value;\n }\n}\n\nexport class KeyValuePair {\n Key: NullAble<string>;\n Value: NullAble<string>;\n\n constructor(key: string, value: string) {\n this.Key = key;\n this.Value = value;\n }\n}\n","/**\n * Attached File DTO\n */\nexport class AttachedFileDTO {\n ImageIdent?: string;\n ImageLink?: string;\n Filename?: string;\n ImageAsDataURL?: string;\n CreateSmallImage?: boolean;\n Text?: string;\n}\n","/**\n * @copyright KMS GmbH\n */\n\nexport type NullAble<T> = T | null | undefined;\n","import { Component, forwardRef, OnInit, Renderer2 } from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { isValue } from '../../../models';\nimport { SalutationEnum } from '../../../models/salutation.enum';\nimport { FormControlParentComponent } from '../../../parent-components/form-control.component';\n\n@Component({\n standalone: false,\n selector: 'kms-salutation-radiogroup',\n templateUrl: './salutation-radiogroup.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SalutationRadiogroupComponent),\n multi: true,\n },\n ],\n})\nexport class SalutationRadiogroupComponent\n extends FormControlParentComponent\n implements OnInit, ControlValueAccessor\n{\n //For view\n SalutationEnum = SalutationEnum;\n Object = Object;\n\n constructor(public renderer: Renderer2) {\n super(renderer);\n }\n\n ngOnInit() {\n this.form = new UntypedFormGroup({\n salut: new UntypedFormControl(isValue(this.value) ? this.value : ''),\n });\n this.formInitialized = true;\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.salut;\n this.onChange(value.salut);\n });\n\n super.ngOnInit();\n }\n}\n","<form [formGroup]=\"form\">\n <mat-radio-group formControlName=\"salut\" [disabled]=\"disabled\" #radioGroup>\n <mat-radio-button\n color=\"primary\"\n [value]=\"SalutationEnum.NOT_SPECIFIED\"\n [checked]=\"value === SalutationEnum.NOT_SPECIFIED\"\n >\n {{\n 'general.salutation.' + Object.keys(SalutationEnum)[0]?.toLowerCase()\n | translate\n }}\n </mat-radio-button>\n <mat-radio-button\n color=\"primary\"\n [value]=\"SalutationEnum.MALE\"\n [checked]=\"value === SalutationEnum.MALE\"\n >\n {{\n 'general.salutation.' + Object.keys(SalutationEnum)[1]?.toLowerCase()\n | translate\n }}\n </mat-radio-button>\n <mat-radio-button\n color=\"primary\"\n [value]=\"SalutationEnum.FEMALE\"\n [checked]=\"value === SalutationEnum.FEMALE\"\n >\n {{\n 'general.salutation.' + Object.keys(SalutationEnum)[2]?.toLowerCase()\n | translate\n }}\n </mat-radio-button>\n </mat-radio-group>\n</form>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n forwardRef,\n input,\n output,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\n\nlet nextId = 0;\n\n@Component({\n standalone: false,\n selector: 'kms-text-input',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './text-input.component.html',\n styleUrls: ['./text-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextInputComponent),\n multi: true,\n },\n ],\n})\nexport class TextInputComponent implements ControlValueAccessor {\n valueChange = output<string>();\n\n disabled = input(false);\n label = input('');\n placeholder = input('');\n type = input<'text' | 'email' | 'tel' | 'url'>('text');\n required = input(false);\n hint = input('');\n errorMessage = input('');\n autocomplete = input('');\n prefix = input('');\n suffix = input('');\n prefixIcon = input('');\n suffixIcon = input('');\n\n IconSizePx = IconSizePx;\n\n value: WritableSignal<string> = signal('');\n innerControl = new FormControl('');\n disabledByForm: WritableSignal<boolean> = signal(false);\n\n isDisabled = computed(() => this.disabled() || this.disabledByForm());\n\n private readonly disabledEffect = effect(() => {\n if (this.isDisabled()) {\n this.innerControl.disable({ emitEvent: false });\n } else {\n this.innerControl.enable({ emitEvent: false });\n }\n });\n\n readonly inputId = `kms-text-input-${nextId++}`;\n readonly hintId = `${this.inputId}-hint`;\n readonly errorId = `${this.inputId}-error`;\n\n errorStateMatcher: ErrorStateMatcher = {\n isErrorState: () => !!this.errorMessage(),\n };\n\n onChange: (value?: string) => void = () => {};\n onTouched: () => void = () => {};\n\n valueChanged(event: Event) {\n const { value } = event.target as HTMLInputElement;\n this.value.set(value);\n this.innerControl.setValue(value, { emitEvent: false });\n this.onChange(value);\n this.valueChange.emit(value);\n }\n\n writeValue(value: string) {\n const val = value ?? '';\n this.value.set(val);\n this.innerControl.setValue(val, { emitEvent: false });\n }\n\n registerOnChange(fn: (value?: string) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabledByForm.set(isDisabled);\n }\n}\n","<mat-form-field class=\"kms-text-input__form-field\">\n <mat-label>{{ label() }}</mat-label>\n @if (prefixIcon()) {\n <kms-icon\n class=\"kms-text-input__prefix\"\n matIconPrefix\n [icon]=\"prefixIcon()\"\n [size]=\"IconSizePx.XS\"\n ></kms-icon>\n } @else if (prefix()) {\n <span matTextPrefix>{{ prefix() }} </span>\n }\n <input\n [id]=\"inputId\"\n [type]=\"type()\"\n matInput\n [formControl]=\"innerControl\"\n (input)=\"valueChanged($event)\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [attr.autocomplete]=\"autocomplete() || null\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [attr.aria-required]=\"required()\"\n [attr.aria-invalid]=\"errorMessage() ? true : null\"\n [attr.aria-describedby]=\"\n (hint() ? hintId : '') + (errorMessage() ? ' ' + errorId : '') || null\n \"\n (blur)=\"onTouched()\"\n />\n @if (suffixIcon()) {\n <kms-icon\n class=\"kms-text-input__suffix\"\n matIconSuffix\n [icon]=\"suffixIcon()\"\n [size]=\"IconSizePx.XS\"\n ></kms-icon>\n } @else if (suffix()) {\n <span matTextSuffix> {{ suffix() }}</span>\n } @if (hint()) {\n <mat-hint [id]=\"hintId\">{{ hint() }}</mat-hint>\n }\n <mat-error [id]=\"errorId\" role=\"alert\">{{ errorMessage() }}</mat-error>\n</mat-form-field>\n","import {\n Component,\n computed,\n forwardRef,\n Input,\n OnChanges,\n OnInit,\n Signal,\n signal,\n SimpleChanges,\n WritableSignal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport moment from 'moment';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\n@Component({\n standalone: false,\n selector: 'kms-time-input',\n templateUrl: './time-input.component.html',\n styleUrls: ['./time-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimeInputComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: TimeInputComponent,\n multi: true,\n },\n ],\n})\nexport class TimeInputComponent\n implements OnInit, OnChanges, ControlValueAccessor\n{\n @Input() label = '';\n @Input() value = '';\n @Input() interval = 15;\n @Input() allowEmpty = false;\n\n IconSizePx = IconSizePx;\n _value = signal('');\n private options: WritableSignal<Array<string>> = signal([]);\n\n filteredOptions: Signal<Array<string>> = computed(() => {\n return this.options().filter((option) => option.startsWith(this._value()));\n });\n\n ngOnInit() {\n this.options.set(this.getTimeRange());\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this._value.set(changes.value.currentValue);\n }\n }\n\n writeValue(value: string) {\n this._value.set(value);\n }\n\n onChange: any = () => {};\n\n onTouch: any = () => {};\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n getTimeRange() {\n const startTime = moment('00:00', 'HH');\n const endTime = moment('23:45', 'HH:mm:ss');\n const timeSeries = [startTime.format('HH:mm')];\n\n while (startTime.isBefore(endTime)) {\n timeSeries.push(startTime.add(this.interval, 'm').format('HH:mm'));\n }\n\n return timeSeries;\n }\n\n inputValueChanged(event: Event) {\n this.valueChanged((event.target as HTMLInputElement).value);\n }\n\n valueChanged(value: string) {\n this._value.set(value);\n this.onChange(value);\n this.onTouch(value);\n }\n\n autocompleteClosed() {\n if (this._value().slice(-1) === ':') {\n this._value.set(this._value() + '00');\n this.valueChanged(this._value());\n }\n }\n\n validate({ value }: FormControl) {\n // validate time format HH:mm and 24 hours and 59 minutes\n const timeRegex = /^(?:[01]\\d|2[0-3]):(?:[0-5]\\d)$/;\n\n if (\n this.allowEmpty &&\n (value === undefined || value === null || value === '')\n )\n return null;\n if (timeRegex.test(value)) return null;\n else\n return {\n invalid: true,\n };\n }\n}\n","<mat-form-field class=\"kms-time-input\">\n <mat-label>{{ label }}</mat-label>\n <input\n type=\"text\"\n aria-label=\"time\"\n matInput\n kmsTime\n [matAutocomplete]=\"auto\"\n [value]=\"_value()\"\n (input)=\"inputValueChanged($event)\"\n />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"valueChanged($event.option.value)\"\n (closed)=\"autocompleteClosed()\"\n >\n @for (option of filteredOptions(); track option) {\n <mat-option [value]=\"option\">\n {{ option }}\n </mat-option>\n }\n </mat-autocomplete>\n <kms-icon\n class=\"kms-time-input__suffix\"\n matSuffix\n icon=\"clock\"\n [size]=\"IconSizePx.XS\"\n ></kms-icon>\n</mat-form-field>\n","import {\n Component,\n ElementRef,\n forwardRef,\n Input,\n OnInit,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { NullAble } from '../../../models';\n\n@Component({\n standalone: false,\n selector: 'kms-yesno-radiogroup',\n templateUrl: './yes-no-radiogroup.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => YesNoRadiogroupComponent),\n multi: true,\n },\n ],\n})\nexport class YesNoRadiogroupComponent implements OnInit, ControlValueAccessor {\n @Input() header: NullAble<String>;\n @Input() disabled = false;\n @Input() textYes = '';\n @Input() textNo = '';\n public form!: UntypedFormGroup;\n\n @ViewChild('child') public child?: ElementRef<HTMLInputElement>;\n\n public internalValue: NullAble<boolean>;\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n get value(): NullAble<boolean> {\n return this.internalValue;\n }\n\n set value(value: NullAble<boolean>) {\n this.internalValue = value;\n if (value !== undefined && this.internalValue !== value) {\n this.onChange(value);\n this.onTouch(value);\n }\n }\n\n writeValue(value: any) {\n this.internalValue = value;\n this.value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n setDisabledState?(isDisabled: boolean) {\n if (this.child) {\n this.renderer.setProperty(\n this.child.nativeElement,\n 'disabled',\n isDisabled\n );\n }\n }\n\n constructor(public renderer: Renderer2) {}\n\n ngOnInit() {\n this.form = new UntypedFormGroup({\n yesno: new UntypedFormControl(this.value ?? null),\n });\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.yesno;\n this.onChange(value.yesno);\n });\n }\n}\n","<form [formGroup]=\"form\">\n <div>{{ header }}</div>\n <mat-radio-group formControlName=\"yesno\" [disabled]=\"disabled\" #child>\n <mat-radio-button [value]=\"true\" [checked]=\"internalValue === true\">\n {{ textYes }}</mat-radio-button\n >\n <mat-radio-button [value]=\"false\" [checked]=\"internalValue === false\">\n {{ textNo }}</mat-radio-button\n >\n </mat-radio-group>\n</form>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n output,\n} from '@angular/core';\nimport { FormActionsConfig } from '../../models/form-actions-config.model';\n\n@Component({\n selector: 'kms-form-actions',\n templateUrl: './form-actions.component.html',\n styleUrls: ['./form-actions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class FormActionsComponent {\n actionsConfig = input.required<FormActionsConfig>();\n disabled = input(false);\n\n submitClick = output<void>();\n\n submitLabel = computed(() => this.actionsConfig().submitLabel ?? 'Submit');\n}\n","<div class=\"kms-form-actions\">\n <kms-button\n [label]=\"submitLabel()\"\n type=\"submit\"\n [disabled]=\"disabled()\"\n (buttonClick)=\"submitClick.emit()\">\n </kms-button>\n</div>\n","/** Supported field types. Native types render inside `<mat-form-field>`; library types render via DynamicFieldDirective. */\nexport enum FieldType {\n TEXT = 'text',\n TEXTAREA = 'textarea',\n PASSWORD = 'password',\n NUMBER = 'number',\n DATE = 'date',\n DATE_RANGE = 'dateRange',\n TIME = 'time',\n SELECT = 'select',\n AUTOCOMPLETE = 'autocomplete',\n CHECKBOX = 'checkbox',\n RADIO = 'radio',\n RADIO_GROUP = 'radioGroup',\n SLIDE_TOGGLE = 'slideToggle',\n MULTI_SELECT = 'multiSelect',\n COLOR = 'color',\n MONTH_PICKER = 'monthPicker',\n TEMPLATE = 'template',\n OFFSET = 'offset',\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport {\n AsyncValidatorFn,\n FormControl,\n FormGroup,\n ValidationErrors,\n ValidatorFn,\n} from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { AsyncValidatorConfig } from '../models/async-validator-config.model';\nimport { FieldConfig } from '../models/field-config.model';\nimport {\n DateRangeFieldOptions,\n FieldTypeOptions,\n} from '../models/field-type-options.model';\nimport { FieldType } from '../models/field-type.enum';\nimport { GenericFormConfig } from '../models/form-config.model';\nimport { GenericFormState } from '../models/form-state.model';\nimport { ValidatorConfig } from '../models/validator-config.model';\n\n/** Component-scoped service managing the full internal form lifecycle. No UI. */\n@Injectable()\nexport class GenericFormService implements OnDestroy {\n private form!: FormGroup;\n private config!: GenericFormConfig;\n private readonly fieldConfigs = new Map<string, FieldConfig>(); // key → FieldConfig\n private readonly asyncValidatorMap = new Map<\n string,\n AsyncValidatorConfig[]\n >(); // key → async validators\n private readonly validatorMap = new Map<string, ValidatorConfig[]>(); // key → sync validators with error messages\n private destroy$ = new Subject<void>();\n private _submitted = false;\n\n constructor(private readonly translate: TranslateService) {}\n\n // --- Build ---\n\n buildForm(config: GenericFormConfig): FormGroup {\n this.cleanup();\n this.config = config;\n this.fieldConfigs.clear();\n this.asyncValidatorMap.clear();\n this.validatorMap.clear();\n this._submitted = false;\n\n const controls: Record<string, FormControl> = {};\n\n for (const section of config.sections) {\n for (const field of section.fields) {\n this.buildFieldControl(field, controls);\n }\n }\n\n this.form = new FormGroup(controls);\n return this.form;\n }\n\n private isValidatorConfig(\n v: ValidatorFn | ValidatorConfig\n ): v is ValidatorConfig {\n return typeof v === 'object' && 'validator' in v;\n }\n\n private buildFieldControl(\n field: FieldConfig,\n controls: Record<string, FormControl>\n ): void {\n if (field.type === FieldType.OFFSET || !field.key) return;\n this.fieldConfigs.set(field.key, field);\n\n const syncFns = this.registerSyncValidators(field);\n const asyncFns = this.registerAsyncValidators(field);\n\n const initial = this.resolveInitialValue(field.type);\n const control = new FormControl(initial, {\n validators: syncFns.length ? syncFns : undefined,\n asyncValidators: asyncFns.length ? asyncFns : undefined,\n });\n\n if (field.hidden || field.disabled) {\n control.disable();\n }\n\n controls[field.key] = control;\n this.buildDateRangeSubControls(field, controls);\n }\n\n private registerSyncValidators(field: FieldConfig): ValidatorFn[] {\n const syncFns: ValidatorFn[] = [];\n const syncConfigs: ValidatorConfig[] = [];\n for (const v of field.validators ?? []) {\n if (this.isValidatorConfig(v)) {\n syncFns.push(v.validator);\n syncConfigs.push(v);\n } else {\n syncFns.push(v);\n }\n }\n if (syncConfigs.length) {\n this.validatorMap.set(field.key, syncConfigs);\n }\n return syncFns;\n }\n\n private registerAsyncValidators(field: FieldConfig): AsyncValidatorFn[] {\n const asyncFns = (field.asyncValidators ?? []).map((a) => a.validator);\n if (field.asyncValidators?.length) {\n this.asyncValidatorMap.set(field.key, field.asyncValidators);\n }\n return asyncFns;\n }\n\n private buildDateRangeSubControls(\n field: FieldConfig,\n controls: Record<string, FormControl>\n ): void {\n if (field.type !== FieldType.DATE_RANGE || !field.options) return;\n const opts = field.options as DateRangeFieldOptions;\n if (opts.startKey && !controls[opts.startKey]) {\n controls[opts.startKey] = new FormControl(null);\n }\n if (opts.endKey && !controls[opts.endKey]) {\n controls[opts.endKey] = new FormControl(null);\n }\n }\n\n private resolveInitialValue(type: FieldType): any {\n switch (type) {\n case FieldType.TEXT:\n case FieldType.TEXTAREA:\n case FieldType.PASSWORD:\n return '';\n default:\n return null;\n }\n }\n\n // --- Patch ---\n\n patchValue(value: Record<string, any>, options?: { silent?: boolean }): void {\n if (!this.form) return;\n const emitEvent = !options?.silent;\n this.form.patchValue(value, { emitEvent });\n }\n\n // --- Validate ---\n\n validateAll(): boolean {\n if (!this.form) return false;\n this._submitted = true;\n this.form.markAllAsTouched();\n this.form.updateValueAndValidity();\n return this.form.valid;\n }\n\n get submitted(): boolean {\n return this._submitted;\n }\n\n // --- Values ---\n\n getRawValue(): Record<string, any> {\n return this.form?.getRawValue() ?? {};\n }\n\n getValue(): Record<string, any> {\n return this.form?.value ?? {};\n }\n\n // --- Errors ---\n\n getErrors(): Record<string, ValidationErrors> | null {\n if (!this.form) return null;\n const errors: Record<string, ValidationErrors> = {};\n let hasErrors = false;\n\n for (const [key, control] of Object.entries(this.form.controls)) {\n if (control.errors) {\n errors[key] = control.errors;\n hasErrors = true;\n }\n }\n\n return hasErrors ? errors : null;\n }\n\n // --- State ---\n\n getState(): GenericFormState {\n return {\n pristine: this.form?.pristine ?? true,\n dirty: this.form?.dirty ?? false,\n touched: this.form?.touched ?? false,\n untouched: this.form?.untouched ?? true,\n valid: this.form?.valid ?? false,\n invalid: this.form?.invalid ?? true,\n submitted: this._submitted,\n errors: this.getErrors(),\n };\n }\n\n // --- Field observables ---\n\n fieldValueChanges$(key: string): Observable<any> {\n const control = this.form?.get(key);\n if (!control) {\n throw new Error(`[GenericFormService] Control \"${key}\" not found`);\n }\n return control.valueChanges.pipe(takeUntil(this.destroy$));\n }\n\n // --- Field operations ---\n\n setFieldDisabled(key: string, disabled: boolean): void {\n const control = this.form?.get(key);\n if (!control) return;\n if (disabled) {\n control.disable({ emitEvent: false });\n } else {\n control.enable({ emitEvent: false });\n }\n }\n\n updateFieldOptions(key: string, options: Partial<FieldTypeOptions>): void {\n const fieldConfig = this.fieldConfigs.get(key);\n if (!fieldConfig) return;\n fieldConfig.options = {\n ...fieldConfig.options,\n ...options,\n } as FieldTypeOptions;\n }\n\n getFieldConfig(key: string): FieldConfig | undefined {\n return this.fieldConfigs.get(key);\n }\n\n getFormGroup(): FormGroup {\n return this.form;\n }\n\n // --- Visibility engine ---\n\n applyVisibility(config: GenericFormConfig): void {\n for (const section of config.sections) {\n for (const field of section.fields) {\n if (!field.key) continue;\n const control = this.form?.get(field.key);\n if (!control) continue;\n\n if (field.hidden || field.disabled) {\n control.disable({ emitEvent: false });\n } else {\n control.enable({ emitEvent: false });\n }\n }\n }\n }\n\n // --- Error message resolution ---\n\n resolveErrorMessage(\n key: string,\n validatorName: string,\n validatorMeta: any\n ): string {\n // 1. Custom validator with `message` property\n if (validatorMeta?.message) {\n return validatorMeta.message;\n }\n\n // 2. Sync validator with pre-translated errorMessage (ValidatorConfig)\n const syncConfigs = this.validatorMap.get(key);\n if (syncConfigs) {\n for (const sc of syncConfigs) {\n const testResult = sc.validator({ value: null } as any);\n if (testResult && validatorName in testResult) {\n return sc.errorMessage;\n }\n }\n }\n\n // 3. Async validator with pre-translated errorMessage\n const asyncConfigs = this.asyncValidatorMap.get(key);\n if (asyncConfigs) {\n for (const ac of asyncConfigs) {\n if (ac.errorMessage) {\n return ac.errorMessage;\n }\n }\n }\n\n // 4. Translate via @ngx-translate\n const translationKey = `uiPresentational.validatorMessages.${validatorName}`;\n const translated = this.translate.instant(translationKey, validatorMeta);\n if (translated !== translationKey) {\n return translated;\n }\n\n // 5. Fallback — validator key\n return validatorName;\n }\n\n // --- Cleanup ---\n\n private cleanup(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.destroy$ = new Subject<void>();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { CheckboxComponent } from '../../../atoms/checkbox/checkbox.component';\nimport { DropdownFromDataComponent } from '../../../atoms/dropdown-from-data/dropdown-from-data.component';\nimport { RadioButtonComponent } from '../../../atoms/radiobutton/radiobutton.component';\nimport { SlideToggleComponent } from '../../../atoms/slide-toggle/slide-toggle.component';\nimport { ColorInputComponent } from '../../../molecules/color-input/color-input.component';\nimport { NumericInputComponent } from '../../../molecules/numeric-input/numeric-input.component';\nimport { PasswordComponent } from '../../../molecules/password/password.component';\nimport { RadioGroupComponent } from '../../../molecules/radiogroup/radiogroup.component';\nimport { TimeInputComponent } from '../../../molecules/time-input/time-input.component';\nimport { FieldType } from '../models/field-type.enum';\n\nconst DEFAULT_REGISTRY = new Map<FieldType, Type<any>>([\n [FieldType.PASSWORD, PasswordComponent],\n [FieldType.NUMBER, NumericInputComponent],\n [FieldType.TIME, TimeInputComponent],\n [FieldType.SELECT, DropdownFromDataComponent],\n [FieldType.MULTI_SELECT, DropdownFromDataComponent],\n [FieldType.CHECKBOX, CheckboxComponent],\n [FieldType.RADIO, RadioButtonComponent],\n [FieldType.RADIO_GROUP, RadioGroupComponent],\n [FieldType.SLIDE_TOGGLE, SlideToggleComponent],\n [FieldType.COLOR, ColorInputComponent],\n]);\n\n@Injectable()\nexport class FieldRegistryService {\n private readonly registry = new Map<FieldType, Type<any>>(DEFAULT_REGISTRY);\n\n resolve(type: FieldType): Type<any> | null {\n return this.registry.get(type) ?? null;\n }\n}\n","import {\n ComponentRef,\n Directive,\n effect,\n inject,\n input,\n OnDestroy,\n output,\n untracked,\n ViewContainerRef,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { isObservable, Subject, takeUntil } from 'rxjs';\nimport { FieldConfig } from '../models/field-config.model';\nimport { FieldType } from '../models/field-type.enum';\nimport {\n NumberFieldOptions,\n PasswordFieldOptions,\n RadioGroupFieldOptions,\n SelectFieldOptions,\n} from '../models/field-type-options.model';\nimport { FieldRegistryService } from '../services/field-registry.service';\n\n/** Creates a library component dynamically and bridges ControlValueAccessor to a FormControl. */\n@Directive({ selector: '[kmsDynamicField]', standalone: false })\nexport class DynamicFieldDirective implements OnDestroy {\n fieldConfig = input.required<FieldConfig>();\n control = input.required<FormControl>();\n\n fieldTouched = output<void>(); // emitted when the library component reports a touch\n\n private readonly vcr = inject(ViewContainerRef);\n private readonly registry = inject(FieldRegistryService);\n private componentRef: ComponentRef<any> | null = null;\n private destroy$ = new Subject<void>();\n\n constructor() {\n effect(() => {\n const config = this.fieldConfig();\n const control = this.control();\n untracked(() => this.create(config, control));\n });\n }\n\n private create(config: FieldConfig, control: FormControl): void {\n this.teardown();\n\n const componentType = this.registry.resolve(config.type);\n if (!componentType) return;\n\n this.vcr.clear();\n this.componentRef = this.vcr.createComponent(componentType);\n this.bridgeCVA(control);\n this.mapInputs(config);\n }\n\n // --- CVA bridge ---\n\n private bridgeCVA(control: FormControl): void {\n const ref = this.componentRef;\n if (!ref) return;\n const inst = ref.instance;\n let syncing = false;\n\n if (typeof inst.writeValue === 'function') {\n inst.writeValue(control.value);\n }\n\n if (typeof inst.registerOnChange === 'function') {\n inst.registerOnChange((val: any) => {\n if (syncing) return;\n syncing = true;\n control.setValue(val);\n control.markAsDirty();\n syncing = false;\n });\n }\n\n if (typeof inst.registerOnTouched === 'function') {\n inst.registerOnTouched(() => {\n control.markAsTouched();\n this.fieldTouched.emit();\n });\n }\n\n // Sync control → component on external value changes\n control.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((val) => {\n if (syncing) return;\n syncing = true;\n if (typeof inst.writeValue === 'function') inst.writeValue(val);\n // Reset after microtask to cover async onChange triggers (e.g. ngModel two-way binding)\n Promise.resolve().then(() => { syncing = false; });\n });\n\n // Disabled state — defer initial call until after ngOnInit (form may not exist yet)\n if (typeof inst.setDisabledState === 'function') {\n control.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n inst.setDisabledState(control.disabled);\n });\n // Schedule initial sync after ngOnInit has run\n queueMicrotask(() => {\n if (typeof inst.setDisabledState === 'function') {\n inst.setDisabledState(control.disabled);\n }\n });\n }\n }\n\n // --- Input mapping ---\n\n private mapInputs(config: FieldConfig): void {\n const ref = this.componentRef;\n if (!ref) return;\n\n switch (config.type) {\n case FieldType.CHECKBOX:\n ref.setInput('infoText', config.label ?? '');\n break;\n\n case FieldType.SLIDE_TOGGLE:\n ref.setInput('leftLabel', config.label ?? '');\n break;\n\n case FieldType.RADIO:\n ref.setInput('label', config.label ?? '');\n break;\n\n case FieldType.RADIO_GROUP:\n this.mapRadioGroup(config, ref);\n break;\n\n case FieldType.SELECT:\n case FieldType.MULTI_SELECT:\n this.mapSelect(config, ref);\n break;\n\n case FieldType.NUMBER:\n this.mapNumber(config, ref);\n break;\n\n case FieldType.PASSWORD:\n this.mapPassword(config, ref);\n break;\n\n default: // TIME, COLOR\n this.trySetInput(ref, 'label', config.label ?? '');\n break;\n }\n\n if (config.placeholder) this.trySetInput(ref, 'placeholder', config.placeholder);\n }\n\n private mapRadioGroup(config: FieldConfig, ref: ComponentRef<any>): void {\n const opts = config.options as RadioGroupFieldOptions | undefined;\n if (opts?.items) {\n ref.setInput(\n 'options',\n opts.items.map((item) => {\n if (typeof item === 'string') return { Text: item, Value: item };\n const obj = item as Record<string, any>;\n return { Text: obj['Label'] ?? obj['label'], Value: obj['Value'] ?? obj['value'] };\n }),\n );\n }\n if (opts?.layout) ref.setInput('direction', opts.layout === 'horizontal' ? 'row' : 'column');\n if (opts?.size) ref.setInput('size', opts.size);\n }\n\n private mapSelect(config: FieldConfig, ref: ComponentRef<any>): void {\n ref.setInput('label', config.label ?? '');\n if (config.type === FieldType.MULTI_SELECT) ref.setInput('multiple', true);\n\n const opts = config.options as SelectFieldOptions | undefined;\n if (!opts) return;\n\n this.mapSelectDataSource(opts, ref);\n this.mapSelectBehaviour(opts, ref);\n this.mapPrefixSuffix(config, ref);\n }\n\n private mapSelectDataSource(opts: SelectFieldOptions, ref: ComponentRef<any>): void {\n if (opts.plainItems) {\n ref.setInput('optionsPlainArray', opts.plainItems);\n } else if (opts.enumItems) {\n ref.setInput('optionsEnum', opts.enumItems);\n if (opts.useEnumIndexAsValue) ref.setInput('useEnumIndexAsValue', true);\n } else if (opts.objItems) {\n ref.setInput('optionsObjArray', opts.objItems.data);\n ref.setInput('mapKey', opts.objItems.mapKey);\n if (opts.objItems.mapValue) ref.setInput('mapValue', opts.objItems.mapValue);\n } else if (opts.items) {\n this.mapSelectItems(opts, ref);\n }\n }\n\n private mapSelectItems(opts: SelectFieldOptions, ref: ComponentRef<any>): void {\n if (Array.isArray(opts.items)) {\n ref.setInput('optionsObjArray', opts.items);\n ref.setInput('mapKey', 'Label');\n ref.setInput('mapValue', 'Value');\n } else if (isObservable(opts.items)) {\n opts.items.pipe(takeUntil(this.destroy$)).subscribe((items) => {\n ref.setInput('optionsObjArray', items);\n ref.setInput('mapKey', 'Label');\n ref.setInput('mapValue', 'Value');\n });\n }\n }\n\n private mapSelectBehaviour(opts: SelectFieldOptions, ref: ComponentRef<any>): void {\n if (opts.hasNullOption) ref.setInput('hasNullOption', true);\n if (opts.selectAllText) ref.setInput('selectAllText', opts.selectAllText);\n if (opts.disableOptions) ref.setInput('disableOptions', true);\n if (opts.preselectedKeys !== undefined) ref.setInput('preselectedKeys', opts.preselectedKeys);\n if (opts.searchable) ref.setInput('searchable', true);\n if (opts.translation) ref.setInput('translation', opts.translation);\n }\n\n private mapPrefixSuffix(config: FieldConfig, ref: ComponentRef<any>): void {\n if (config.prefix?.type === 'text') ref.setInput('prefix', config.prefix.value);\n if (config.prefix?.type === 'icon') ref.setInput('prefixIcon', config.prefix.value);\n if (config.suffix?.type === 'text') ref.setInput('suffix', config.suffix.value);\n if (config.suffix?.type === 'icon') ref.setInput('suffixIcon', config.suffix.value);\n }\n\n private mapPassword(config: FieldConfig, ref: ComponentRef<any>): void {\n this.trySetInput(ref, 'label', config.label ?? '');\n const opts = config.options as PasswordFieldOptions | undefined;\n if (opts?.withStrength) ref.setInput('withStrength', true);\n }\n\n private mapNumber(config: FieldConfig, ref: ComponentRef<any>): void {\n this.trySetInput(ref, 'label', config.label ?? '');\n const opts = config.options as NumberFieldOptions | undefined;\n if (opts?.min !== undefined) ref.setInput('min', opts.min);\n }\n\n private trySetInput(ref: ComponentRef<any>, name: string, value: any): void {\n try {\n ref.setInput(name, value);\n } catch {\n // Component may not have this input\n }\n }\n\n private teardown(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.destroy$ = new Subject<void>();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n inject,\n input,\n signal,\n untracked,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { merge, Subject, Subscription, takeUntil } from 'rxjs';\nimport { DateRangeValue } from '../../../../molecules/date-input/date-input.component';\nimport { LabelValuePair } from '../../../../../models/text-value-pair.model';\nimport { DisabledConfig } from '../../models/disabled-config.model';\nimport { ErrorDisplayConfig } from '../../models/error-display-config.model';\nimport { FieldConfig } from '../../models/field-config.model';\nimport { FieldType } from '../../models/field-type.enum';\nimport {\n AutocompleteFieldOptions,\n DateFieldOptions,\n DateRangeFieldOptions,\n TextareaFieldOptions,\n} from '../../models/field-type-options.model';\nimport { GenericFormService } from '../../services/generic-form.service';\n\nconst NATIVE_TYPES = new Set([\n FieldType.TEXT,\n FieldType.TEXTAREA,\n FieldType.DATE,\n FieldType.DATE_RANGE,\n FieldType.MONTH_PICKER,\n FieldType.AUTOCOMPLETE,\n FieldType.OFFSET,\n]);\n\nconst GROUP_TYPES = new Set([FieldType.RADIO_GROUP]);\n\n\nconst AUTOCOMPLETE_FALLBACK: Record<string, string> = {\n firstname: 'given-name',\n givenname: 'given-name',\n lastname: 'family-name',\n familyname: 'family-name',\n surname: 'family-name',\n email: 'email',\n emailaddress: 'email',\n phone: 'tel',\n telephone: 'tel',\n phonenumber: 'tel',\n street: 'address-line1',\n streetaddress: 'address-line1',\n addressline1: 'address-line1',\n addressline2: 'address-line2',\n city: 'address-level2',\n locality: 'address-level2',\n state: 'address-level1',\n region: 'address-level1',\n province: 'address-level1',\n zip: 'postal-code',\n postalcode: 'postal-code',\n zipcode: 'postal-code',\n country: 'country',\n countrycode: 'country',\n company: 'organization',\n organization: 'organization',\n companyname: 'organization',\n username: 'username',\n login: 'username',\n password: 'current-password',\n newpassword: 'new-password',\n creditcard: 'cc-number',\n cardnumber: 'cc-number',\n birthdate: 'bday',\n dateofbirth: 'bday',\n};\n\n@Component({\n selector: 'kms-form-field',\n templateUrl: './form-field.component.html',\n styleUrls: ['./form-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class FormFieldComponent {\n // --- Inputs ---\n fieldConfig = input.required<FieldConfig>();\n control = input.required<FormControl>();\n formId = input('');\n formErrorDisplay = input<ErrorDisplayConfig>();\n formDisabledConfig = input<DisabledConfig>();\n submitted = input(false);\n\n readonly FieldType = FieldType;\n\n // --- Injections ---\n private readonly formService = inject(GenericFormService);\n private readonly destroyRef = inject(DestroyRef);\n\n // --- OnPush reactivity for control state ---\n private readonly controlTick = signal(0);\n private controlSub?: Subscription;\n private readonly dateRangeDestroy$ = new Subject<void>();\n\n constructor() {\n effect(() => {\n const control = this.control();\n untracked(() => this.subscribeToControl(control));\n });\n\n // DATE_RANGE: bidirectional sync between main control and start/end controls\n effect(() => {\n const config = this.fieldConfig();\n const control = this.control();\n untracked(() => {\n this.dateRangeDestroy$.next();\n if (config.type !== FieldType.DATE_RANGE) return;\n const opts = config.options as DateRangeFieldOptions;\n if (!opts?.startKey || !opts?.endKey) return;\n\n const fg = this.formService.getFormGroup();\n if (!fg) return;\n const startCtrl = fg.get(opts.startKey) as FormControl;\n const endCtrl = fg.get(opts.endKey) as FormControl;\n if (!startCtrl || !endCtrl) return;\n\n // main control → start/end controls (when user picks from date picker)\n control.valueChanges.pipe(takeUntil(this.dateRangeDestroy$)).subscribe((val: DateRangeValue | null) => {\n startCtrl.setValue(val?.start ?? null, { emitEvent: false });\n endCtrl.setValue(val?.end ?? null, { emitEvent: false });\n });\n\n // start/end controls → main control (when consumer patches values)\n merge(startCtrl.valueChanges, endCtrl.valueChanges)\n .pipe(takeUntil(this.dateRangeDestroy$))\n .subscribe(() => {\n control.setValue({ start: startCtrl.value, end: endCtrl.value }, { emitEvent: false });\n });\n });\n });\n\n this.destroyRef.onDestroy(() => {\n this.controlSub?.unsubscribe();\n this.dateRangeDestroy$.next();\n this.dateRangeDestroy$.complete();\n });\n }\n\n onFieldTouched(): void {\n this.controlTick.update((v) => v + 1);\n }\n\n private subscribeToControl(control: FormControl): void {\n this.controlSub?.unsubscribe();\n this.controlSub = merge(control.statusChanges, control.valueChanges).subscribe(() => {\n this.controlTick.update((v) => v + 1);\n });\n }\n\n // --- Computed: type classification ---\n\n isNativeType = computed(() => NATIVE_TYPES.has(this.fieldConfig().type));\n isGroupType = computed(() => GROUP_TYPES.has(this.fieldConfig().type));\n isTextInputType = computed(() => this.fieldConfig().type === FieldType.TEXT);\n\n isDateType = computed(() => {\n const type = this.fieldConfig().type;\n return type === FieldType.DATE || type === FieldType.DATE_RANGE || type === FieldType.MONTH_PICKER;\n });\n dateMode = computed((): 'date' | 'range' =>\n this.fieldConfig().type === FieldType.DATE_RANGE ? 'range' : 'date',\n );\n isMonthPicker = computed((): boolean =>\n this.fieldConfig().type === FieldType.MONTH_PICKER,\n );\n\n // --- Computed: error display ---\n\n resolvedErrorDisplay = computed((): ErrorDisplayConfig => ({\n strategy: 'onTouched',\n showMultiple: false,\n showOnSubmit: true,\n ...this.formErrorDisplay(),\n ...this.fieldConfig().errorDisplay,\n }));\n\n errorMatcher = computed((): ErrorStateMatcher => {\n const config = this.resolvedErrorDisplay();\n const submitted = this.submitted;\n\n if (config.strategy === 'custom' && config.matcher) return config.matcher;\n\n return {\n isErrorState: (control) => {\n if (!control?.errors) return false;\n if (config.showOnSubmit !== false && submitted()) return true;\n switch (config.strategy) {\n case 'onDirty':\n return control.dirty;\n case 'onSubmit':\n return false;\n case 'immediate':\n return true;\n case 'onTouched':\n default:\n return control.touched;\n }\n },\n };\n });\n\n shouldShowErrors = computed((): boolean => {\n this.controlTick();\n const control = this.control();\n if (!control.errors) return false;\n\n const config = this.resolvedErrorDisplay();\n if (config.showOnSubmit !== false && this.submitted()) return true;\n\n switch (config.strategy) {\n case 'onDirty':\n return control.dirty;\n case 'onSubmit':\n return false;\n case 'immediate':\n return true;\n case 'onTouched':\n default:\n return control.touched;\n }\n });\n\n errorMessages = computed((): string[] => {\n this.controlTick();\n const control = this.control();\n if (!control.errors) return [];\n\n const config = this.resolvedErrorDisplay();\n const messages: string[] = [];\n\n for (const [validatorName, meta] of Object.entries(control.errors)) {\n messages.push(this.formService.resolveErrorMessage(this.fieldConfig().key, validatorName, meta));\n if (!config.showMultiple) break;\n }\n return messages;\n });\n\n displayErrorMessage = computed((): string =>\n this.shouldShowErrors() ? this.errorMessages().join(', ') : '',\n );\n\n // --- Computed: autocomplete ---\n\n resolvedAutocomplete = computed((): string | null => {\n const config = this.fieldConfig();\n if (config.autocomplete) return config.autocomplete;\n return AUTOCOMPLETE_FALLBACK[config.key.toLowerCase()] ?? null;\n });\n\n // --- Computed: disabled background ---\n\n disabledBackground = computed((): string => {\n const enabled = this.fieldConfig().disabledConfig?.showDisabledBackground ?? this.formDisabledConfig()?.showDisabledBackground ?? false;\n return enabled ? 'rgba(0, 0, 0, 0.04)' : 'transparent';\n });\n\n disabledLine = computed((): string => {\n const enabled = this.fieldConfig().disabledConfig?.showDisabledBackground ?? this.formDisabledConfig()?.showDisabledBackground ?? false;\n return enabled ? 'block' : 'none';\n });\n\n // --- Computed: textarea ---\n\n textareaRows = computed((): number => {\n return (this.fieldConfig().options as TextareaFieldOptions | undefined)?.rows ?? 3;\n });\n\n // --- Computed: date / date-range ---\n\n dateMin = computed((): Date | null => {\n const min = (this.fieldConfig().options as DateFieldOptions | DateRangeFieldOptions)?.min;\n if (!min) return null;\n return min instanceof Date ? min : new Date(min);\n });\n\n dateMax = computed((): Date | null => {\n const max = (this.fieldConfig().options as DateFieldOptions | DateRangeFieldOptions)?.max;\n if (!max) return null;\n return max instanceof Date ? max : new Date(max);\n });\n\n // --- Computed: autocomplete options ---\n\n autocompleteSelectFirst = computed((): boolean => {\n return (this.fieldConfig().options as AutocompleteFieldOptions | undefined)?.selectFirst ?? false;\n });\n\n filteredAutoOptions = computed((): LabelValuePair[] => {\n this.controlTick();\n if (this.fieldConfig().type !== FieldType.AUTOCOMPLETE) return [];\n const opts = this.fieldConfig().options as AutocompleteFieldOptions | undefined;\n if (!opts?.items || !Array.isArray(opts.items)) return [];\n\n const value = (this.control().value ?? '').toString().toLowerCase();\n if (!value || value.length < (opts.minChars ?? 0)) return opts.items;\n return opts.items.filter((item) => item.Label?.toLowerCase().includes(value));\n });\n\n // --- Computed: required ---\n\n isRequired = computed((): boolean => {\n const validator = this.control().validator;\n if (!validator) return false;\n const result = validator({ value: null } as any);\n return !!result?.['required'];\n });\n\n // --- Computed: a11y IDs ---\n\n private idPrefix = computed((): string => {\n const fid = this.formId();\n return fid ? `${fid}-field` : 'field';\n });\n\n tooltipId = computed((): string | null => {\n return this.fieldConfig().tooltip ? `${this.idPrefix()}-${this.fieldConfig().key}-tooltip` : null;\n });\n\n errorsId = computed((): string => {\n return `${this.idPrefix()}-${this.fieldConfig().key}-errors`;\n });\n\n groupLabelId = computed((): string => {\n return `${this.idPrefix()}-${this.fieldConfig().key}-label`;\n });\n\n ariaDescribedBy = computed((): string | null => {\n const parts: string[] = [];\n const tipId = this.tooltipId();\n if (tipId) parts.push(tipId);\n if (this.shouldShowErrors() && this.errorMessages().length) parts.push(this.errorsId());\n return parts.length ? parts.join(' ') : null;\n });\n}\n","<div class=\"kms-form-field\"\n [attr.data-field-key]=\"fieldConfig().key\"\n [attr.data-test-id]=\"fieldConfig().testId\"\n [style.--kms-field-disabled-bg]=\"disabledBackground()\"\n [style.--kms-field-disabled-line]=\"disabledLine()\">\n\n @if (fieldConfig().type === FieldType.OFFSET) {\n <!-- ═══ OFFSET — empty spacer ═══ -->\n } @else if (isNativeType()) {\n <!-- ═══ NATIVE TYPES ═══ -->\n <div class=\"kms-form-field__row\">\n <div class=\"kms-form-field__control\">\n @if (isTextInputType()) {\n <!-- TEXT — delegates to kms-text-input CVA -->\n <kms-text-input\n [formControl]=\"control()\"\n [label]=\"fieldConfig().label ?? ''\"\n [placeholder]=\"fieldConfig().placeholder ?? ''\"\n [required]=\"isRequired()\"\n [autocomplete]=\"resolvedAutocomplete() ?? ''\"\n [prefix]=\"fieldConfig().prefix?.type === 'text' ? fieldConfig().prefix!.value : ''\"\n [prefixIcon]=\"fieldConfig().prefix?.type === 'icon' ? fieldConfig().prefix!.value : ''\"\n [suffix]=\"fieldConfig().suffix?.type === 'text' ? fieldConfig().suffix!.value : ''\"\n [suffixIcon]=\"fieldConfig().suffix?.type === 'icon' ? fieldConfig().suffix!.value : ''\"\n [errorMessage]=\"displayErrorMessage()\">\n </kms-text-input>\n } @else if (isDateType()) {\n <!-- DATE / DATE_RANGE / MONTH_PICKER — delegates to kms-date-input CVA -->\n <kms-date-input\n [formControl]=\"control()\"\n [mode]=\"dateMode()\"\n [label]=\"fieldConfig().label ?? ''\"\n [placeholder]=\"fieldConfig().placeholder ?? ''\"\n [required]=\"isRequired()\"\n [minDate]=\"dateMin()\"\n [maxDate]=\"dateMax()\"\n [monthPicker]=\"isMonthPicker()\"\n [errorMessage]=\"displayErrorMessage()\">\n </kms-date-input>\n } @else {\n <!-- TEXTAREA, AUTOCOMPLETE — keep existing mat-form-field -->\n <mat-form-field class=\"kms-form-field__mat-field\">\n @if (fieldConfig().label) {\n <mat-label>{{ fieldConfig().label }}</mat-label>\n }\n\n @switch (fieldConfig().type) {\n @case (FieldType.TEXTAREA) {\n <textarea matInput\n [formControl]=\"control()\"\n [placeholder]=\"fieldConfig().placeholder ?? ''\"\n [rows]=\"textareaRows()\"\n [attr.autocomplete]=\"resolvedAutocomplete()\"\n [attr.aria-required]=\"isRequired() ? true : null\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [errorStateMatcher]=\"errorMatcher()\">\n </textarea>\n }\n @case (FieldType.AUTOCOMPLETE) {\n <input matInput\n [formControl]=\"control()\"\n [matAutocomplete]=\"autoPanel\"\n [placeholder]=\"fieldConfig().placeholder ?? ''\"\n [attr.autocomplete]=\"resolvedAutocomplete()\"\n [attr.aria-required]=\"isRequired() ? true : null\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [errorStateMatcher]=\"errorMatcher()\">\n <mat-autocomplete #autoPanel=\"matAutocomplete\" [autoActiveFirstOption]=\"autocompleteSelectFirst()\">\n @for (opt of filteredAutoOptions(); track opt.Value) {\n <mat-option [value]=\"opt.Value\">{{ opt.Label }}</mat-option>\n }\n </mat-autocomplete>\n }\n }\n\n <!-- Prefix -->\n @if (fieldConfig().prefix) {\n @if (fieldConfig().prefix!.type === 'text') {\n <span matTextPrefix>{{ fieldConfig().prefix!.value }} </span>\n } @else {\n <kms-icon matPrefix [icon]=\"fieldConfig().prefix!.value\" aria-hidden=\"true\"></kms-icon>\n }\n }\n\n <!-- Suffix -->\n @if (fieldConfig().suffix) {\n @if (fieldConfig().suffix!.type === 'text') {\n <span matTextSuffix> {{ fieldConfig().suffix!.value }}</span>\n } @else {\n <kms-icon matSuffix [icon]=\"fieldConfig().suffix!.value\" aria-hidden=\"true\"></kms-icon>\n }\n }\n\n <!-- Errors -->\n @for (msg of errorMessages(); track msg) {\n <mat-error>{{ msg }}</mat-error>\n }\n </mat-form-field>\n }\n </div>\n\n @if (fieldConfig().tooltip) {\n <kms-tooltip-icon\n class=\"kms-form-field__tooltip\"\n [tooltipText]=\"fieldConfig().tooltip!\"\n [attr.id]=\"tooltipId()\">\n </kms-tooltip-icon>\n }\n </div>\n\n } @else if (fieldConfig().type === FieldType.TEMPLATE && fieldConfig().templateRef) {\n <!-- ═══ TEMPLATE — consumer-provided template ═══ -->\n <div class=\"kms-form-field__row\">\n <div class=\"kms-form-field__control\">\n <ng-container\n *ngTemplateOutlet=\"fieldConfig().templateRef!; context: { control: control(), $implicit: control() }\">\n </ng-container>\n </div>\n @if (fieldConfig().tooltip) {\n <kms-tooltip-icon\n class=\"kms-form-field__tooltip\"\n [tooltipText]=\"fieldConfig().tooltip!\"\n [attr.id]=\"tooltipId()\">\n </kms-tooltip-icon>\n }\n </div>\n @if (shouldShowErrors() && errorMessages().length) {\n <div class=\"kms-form-field__errors\" role=\"alert\" [attr.id]=\"errorsId()\">\n @for (msg of errorMessages(); track msg) {\n <div class=\"kms-form-field__error\">{{ msg }}</div>\n }\n </div>\n }\n } @else {\n <!-- ═══ LIBRARY TYPES — dynamic component ═══ -->\n @if (isGroupType()) {\n <div class=\"kms-form-field__label-row\">\n <span class=\"kms-form-field__group-label\" [attr.id]=\"groupLabelId()\">{{ fieldConfig().label }}</span>\n @if (fieldConfig().tooltip) {\n <kms-tooltip-icon [tooltipText]=\"fieldConfig().tooltip!\" [attr.id]=\"tooltipId()\"></kms-tooltip-icon>\n }\n </div>\n }\n\n <div class=\"kms-form-field__row\">\n <div class=\"kms-form-field__control\">\n <ng-container kmsDynamicField\n [fieldConfig]=\"fieldConfig()\"\n [control]=\"control()\"\n (fieldTouched)=\"onFieldTouched()\">\n </ng-container>\n </div>\n\n @if (!isGroupType() && fieldConfig().tooltip) {\n <kms-tooltip-icon\n class=\"kms-form-field__tooltip\"\n [tooltipText]=\"fieldConfig().tooltip!\"\n [attr.id]=\"tooltipId()\">\n </kms-tooltip-icon>\n }\n </div>\n\n @if (shouldShowErrors() && errorMessages().length) {\n <div class=\"kms-form-field__errors\" role=\"alert\" [attr.id]=\"errorsId()\">\n @for (msg of errorMessages(); track msg) {\n <div class=\"kms-form-field__error\">{{ msg }}</div>\n }\n </div>\n }\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { ViewportService } from '../../../../../services/viewport.service';\nimport { DisabledConfig } from '../../models/disabled-config.model';\nimport { ErrorDisplayConfig } from '../../models/error-display-config.model';\nimport { FieldConfig } from '../../models/field-config.model';\nimport { FormSectionConfig } from '../../models/form-config.model';\n\nconst ALIGN_MAP: Record<string, string> = { left: 'start', center: 'center', right: 'end', stretch: 'stretch' };\nconst VALIGN_MAP: Record<string, string> = { top: 'start', center: 'center', bottom: 'end', stretch: 'stretch' };\n\n@Component({\n selector: 'kms-form-section',\n templateUrl: './form-section.component.html',\n styleUrls: ['./form-section.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class FormSectionComponent {\n sectionConfig = input.required<FormSectionConfig>();\n formGroup = input.required<FormGroup>();\n formId = input('');\n formErrorDisplay = input<ErrorDisplayConfig>();\n formDisabledConfig = input<DisabledConfig>();\n submitted = input(false);\n\n private readonly viewportService = inject(ViewportService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly viewportWidth = signal(this.viewportService.getCurrentViewPortWidth());\n\n constructor() {\n const sub = this.viewportService.getViewportResizedObserver().subscribe((w) => this.viewportWidth.set(w));\n this.destroyRef.onDestroy(() => sub.unsubscribe());\n }\n\n // --- Responsive columns ---\n\n activeColumns = computed((): number => {\n const c = this.sectionConfig();\n const w = this.viewportWidth();\n if (w <= 768) return c.gridColumnsSm ?? 1;\n if (w <= 1024) return c.gridColumnsMd ?? c.gridColumns ?? 1;\n return c.gridColumns ?? 1;\n });\n\n // --- Visible fields ---\n\n visibleFields = computed((): FieldConfig[] => {\n return this.sectionConfig().fields.filter((f) => !f.hidden);\n });\n\n isVisible = computed((): boolean => {\n if (this.sectionConfig().hidden) return false;\n return this.visibleFields().length > 0;\n });\n\n // --- Grid styles ---\n\n gridStyles = computed((): Record<string, string> => {\n const c = this.sectionConfig();\n return {\n 'grid-template-columns': `repeat(${this.activeColumns()}, 1fr)`,\n gap: c.gap ?? '16px',\n padding: c.padding ?? '0',\n 'justify-items': ALIGN_MAP[c.align ?? 'stretch'],\n 'align-items': VALIGN_MAP[c.verticalAlign ?? 'top'],\n };\n });\n\n // --- Per-field cell styles ---\n\n cellStyles(field: FieldConfig): Record<string, string> {\n const cols = this.activeColumns();\n const span = Math.min(field.columnSize ?? 1, cols);\n const styles: Record<string, string> = { 'grid-column': `span ${span}` };\n if (field.align) {\n styles['justify-self'] = ALIGN_MAP[field.align];\n }\n return styles;\n }\n\n // --- Control accessor ---\n\n private static readonly DUMMY_CONTROL = new FormControl();\n\n getControl(key: string | undefined): FormControl {\n if (!key) return FormSectionComponent.DUMMY_CONTROL;\n return (this.formGroup().get(key) as FormControl) ?? FormSectionComponent.DUMMY_CONTROL;\n }\n}\n","@if (isVisible()) {\n <fieldset class=\"kms-form-section\">\n @if (sectionConfig().title) {\n <legend class=\"kms-form-section__legend\">\n {{ sectionConfig().title }}\n @if (sectionConfig().tooltip) {\n <kms-tooltip-icon [tooltipText]=\"sectionConfig().tooltip!\"></kms-tooltip-icon>\n }\n </legend>\n }\n\n <div class=\"kms-form-section__grid\" [ngStyle]=\"gridStyles()\">\n @for (field of visibleFields(); track field.key ?? $index) {\n <div class=\"kms-form-section__cell\" [ngStyle]=\"cellStyles(field)\">\n <kms-form-field\n [fieldConfig]=\"field\"\n [control]=\"getControl(field.key)\"\n [formId]=\"formId()\"\n [formErrorDisplay]=\"formErrorDisplay()\"\n [formDisabledConfig]=\"formDisabledConfig()\"\n [submitted]=\"submitted()\">\n </kms-form-field>\n </div>\n }\n </div>\n </fieldset>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormGroup,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { GenericFormConfig } from '../../models/form-config.model';\nimport { GenericFormState } from '../../models/form-state.model';\nimport { GenericFormService } from '../../services/generic-form.service';\n\n@Component({\n selector: 'kms-generic-form',\n templateUrl: './generic-form.component.html',\n styleUrls: ['./generic-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n providers: [\n GenericFormService,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => GenericFormComponent),\n multi: true,\n },\n ],\n})\nexport class GenericFormComponent implements ControlValueAccessor {\n // --- Signal inputs ---\n\n config = input.required<GenericFormConfig>();\n value = model<Record<string, any>>({});\n disabled = input(false);\n loading = input(false);\n\n // --- Signal outputs ---\n\n formSubmit = output<Record<string, any>>();\n formStateChange = output<GenericFormState>();\n formReady = output<FormGroup>();\n fieldValueChange = output<{ key: string; value: any }>();\n\n // --- Internal state ---\n\n private readonly formService = inject(GenericFormService);\n private readonly elementRef = inject(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly formSub$ = new Subject<void>();\n private lastEmittedValue: Record<string, any> = {};\n private cvaOnChange?: (value: Record<string, any>) => void;\n private cvaOnTouched?: () => void;\n\n form = signal<FormGroup>(new FormGroup({}));\n submitted = signal(false);\n errorAnnouncement = signal('');\n\n // --- Computed ---\n\n visibleSections = computed(() => {\n return this.config().sections.filter((s) => {\n if (s.hidden) return false;\n return s.fields.some((f) => !f.hidden);\n });\n });\n\n showActionsTop = computed(() => {\n const actions = this.config().submitAction;\n if (!actions) return false;\n const pos = actions.position ?? 'bottom';\n return pos === 'top' || pos === 'both';\n });\n\n showActionsBottom = computed(() => {\n const actions = this.config().submitAction;\n if (!actions) return false;\n const pos = actions.position ?? 'bottom';\n return pos === 'bottom' || pos === 'both';\n });\n\n constructor() {\n // Config effect — build form when config changes\n effect(() => {\n const config = this.config();\n untracked(() => this.onConfigChange(config));\n });\n\n // Value effect — patch form when external value changes\n effect(() => {\n const val = this.value();\n untracked(() => {\n if (val !== this.lastEmittedValue) {\n const fg = this.formService.getFormGroup();\n if (fg) {\n this.formService.patchValue(val, { silent: true });\n }\n }\n });\n });\n\n // Disabled effect — enable/disable entire form\n effect(() => {\n const disabled = this.disabled();\n untracked(() => {\n const fg = this.formService.getFormGroup();\n if (!fg) return;\n // Disable/enable individual controls (not the group) so that statusChanges\n // fires on each — DynamicFieldDirective listens to statusChanges to sync\n // the disabled state to the child CVA component.\n const controls = Object.values(fg.controls);\n if (disabled) {\n controls.forEach((c) => c.disable({ onlySelf: true }));\n } else {\n controls.forEach((c) => c.enable({ onlySelf: true }));\n this.formService.applyVisibility(this.config());\n }\n });\n });\n\n this.destroyRef.onDestroy(() => {\n this.formSub$.next();\n this.formSub$.complete();\n });\n }\n\n private onConfigChange(config: GenericFormConfig): void {\n this.formSub$.next();\n this.submitted.set(false);\n\n const fg = this.formService.buildForm(config);\n this.form.set(fg);\n\n // Apply initial value if present\n const initialValue = this.value();\n if (Object.keys(initialValue).length > 0) {\n this.formService.patchValue(initialValue, { silent: true });\n }\n\n // Apply overall disabled state\n if (this.disabled()) {\n fg.disable({ emitEvent: false });\n }\n\n // Form value changes → update model, emit state, CVA\n fg.valueChanges.pipe(takeUntil(this.formSub$)).subscribe(() => {\n const rawValue = this.formService.getRawValue();\n this.lastEmittedValue = rawValue;\n this.value.set(rawValue);\n this.formStateChange.emit(this.formService.getState());\n this.cvaOnChange?.(rawValue);\n });\n\n // Field-level value changes\n for (const section of config.sections) {\n for (const field of section.fields) {\n if (!field.key) continue;\n this.formService\n .fieldValueChanges$(field.key)\n .pipe(takeUntil(this.formSub$))\n .subscribe((fieldValue) => {\n this.fieldValueChange.emit({ key: field.key, value: fieldValue });\n });\n }\n }\n\n this.formReady.emit(fg);\n this.formStateChange.emit(this.formService.getState());\n }\n\n // --- Public methods ---\n\n onFormSubmit(event: Event): void {\n event.preventDefault();\n }\n\n onEnterKey(event: Event): void {\n const target = event.target as HTMLElement;\n if (target.tagName === 'TEXTAREA') return;\n event.preventDefault();\n this.submit();\n }\n\n submit(): boolean {\n const valid = this.formService.validateAll();\n this.submitted.set(true);\n if (valid) {\n this.formSubmit.emit(this.formService.getRawValue());\n this.errorAnnouncement.set('');\n } else {\n this.announceErrors();\n this.focusFirstInvalidField();\n }\n this.formStateChange.emit(this.formService.getState());\n return valid;\n }\n\n validate(): boolean {\n const valid = this.formService.validateAll();\n this.submitted.set(true);\n this.formStateChange.emit(this.formService.getState());\n return valid;\n }\n\n getFormGroup(): FormGroup {\n return this.formService.getFormGroup();\n }\n\n // --- A11y ---\n\n private announceErrors(): void {\n const errors = this.formService.getErrors();\n if (!errors) return;\n const count = Object.keys(errors).length;\n this.errorAnnouncement.set(\n count === 1\n ? '1 field has a validation error.'\n : `${count} fields have validation errors.`\n );\n }\n\n private focusFirstInvalidField(): void {\n const fg = this.formService.getFormGroup();\n for (const section of this.config().sections) {\n for (const field of section.fields) {\n if (!field.key || field.hidden) continue;\n const control = fg.get(field.key);\n if (control?.invalid && control.enabled) {\n const escapedKey = field.key.replace(/[\"\\\\]/g, '\\\\$&');\n const fieldEl = this.elementRef.nativeElement.querySelector(\n `[data-field-key=\"${escapedKey}\"]`\n );\n const focusable = fieldEl?.querySelector(\n 'input, textarea, select, [tabindex]'\n );\n if (focusable) {\n (focusable as HTMLElement).focus();\n return;\n }\n }\n }\n }\n }\n\n // --- CVA ---\n\n writeValue(value: Record<string, any>): void {\n if (value) {\n this.formService.patchValue(value, { silent: true });\n }\n }\n\n registerOnChange(fn: (value: Record<string, any>) => void): void {\n this.cvaOnChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.cvaOnTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n const fg = this.formService.getFormGroup();\n if (!fg) return;\n const controls = Object.values(fg.controls);\n if (isDisabled) {\n controls.forEach((c) => c.disable({ onlySelf: true }));\n } else {\n controls.forEach((c) => c.enable({ onlySelf: true }));\n this.formService.applyVisibility(this.config());\n }\n }\n}\n","<form class=\"kms-generic-form\"\n [class.kms-generic-form--loading]=\"loading()\"\n [class.kms-generic-form--disabled]=\"disabled()\"\n [attr.aria-busy]=\"loading() || null\"\n [attr.aria-disabled]=\"disabled() || null\"\n (submit)=\"onFormSubmit($event)\"\n (keydown.enter)=\"onEnterKey($event)\">\n\n @if (showActionsTop()) {\n <kms-form-actions\n [actionsConfig]=\"config().submitAction!\"\n [disabled]=\"loading()\"\n (submitClick)=\"submit()\">\n </kms-form-actions>\n }\n\n @for (section of visibleSections(); track section.key) {\n <kms-form-section\n [sectionConfig]=\"section\"\n [formGroup]=\"form()\"\n [formId]=\"config().formId\"\n [formErrorDisplay]=\"config().errorDisplay\"\n [formDisabledConfig]=\"config().disabledConfig\"\n [submitted]=\"submitted()\">\n </kms-form-section>\n }\n\n @if (showActionsBottom()) {\n <kms-form-actions\n [actionsConfig]=\"config().submitAction!\"\n [disabled]=\"loading()\"\n (submitClick)=\"submit()\">\n </kms-form-actions>\n }\n\n @if (loading()) {\n <div class=\"kms-generic-form__loading-overlay\"></div>\n }\n\n <output class=\"kms-generic-form__sr-only\" aria-live=\"polite\">\n {{ errorAnnouncement() }}\n </output>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { KmsUiPresentationalComponent } from './kms-ngx-ui-presentational.component';\n\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { CustomPipesModule } from './pipes/custom-pipes.module';\n\nimport { NgxSliderModule } from '@angular-slider/ngx-slider';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { GoogleMapsModule } from '@angular/google-maps';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSelectModule } from '@angular/material/select';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DirectivesModule } from './directives/directives.module';\nimport { ViewportService } from './services/viewport.service';\nimport { BackToTopComponent } from './ui/atoms/back-to-top/back-to-top.component';\nimport { CardComponent } from './ui/atoms/card/card.component';\nimport { CheckboxComponent } from './ui/atoms/checkbox/checkbox.component';\nimport { DropdownFromDataComponent } from './ui/atoms/dropdown-from-data/dropdown-from-data.component';\nimport { IconComponent } from './ui/atoms/icon/icon.component';\nimport { LoaderComponent } from './ui/atoms/loader/loader.component';\nimport { MapComponent } from './ui/atoms/map/map.component';\nimport { RadioButtonComponent } from './ui/atoms/radiobutton/radiobutton.component';\nimport { SlideToggleComponent } from './ui/atoms/slide-toggle/slide-toggle.component';\nimport { SliderComponent } from './ui/atoms/slider/slider.component';\nimport { ButtonComponent } from './ui/molecules/button/button.component';\nimport { ColorInputComponent } from './ui/molecules/color-input/color-input.component';\nimport { ConfirmationDialogComponent } from './ui/molecules/confirmation-dialog/confirmation-dialog.component';\nimport { DateInputComponent } from './ui/molecules/date-input/date-input.component';\nimport { EnumRadiogroupComponent } from './ui/molecules/enum-radiogroup/enum-radiogroup.component';\nimport { FileInputComponent } from './ui/molecules/file-input/file-input.component';\nimport { FlyoutComponent } from './ui/molecules/flyout/flyout.component';\nimport { ImageSliderComponent } from './ui/molecules/image-slider/image-slider.component';\nimport { KMSAccordionItemComponent } from './ui/molecules/kms-accordion-item/kms-accordion-item.component';\nimport { NumericInputComponent } from './ui/molecules/numeric-input/numeric-input.component';\nimport { PasswordComponent } from './ui/molecules/password/password.component';\nimport { RadioGroupComponent } from './ui/molecules/radiogroup/radiogroup.component';\nimport { SalutationDropdownComponent } from './ui/molecules/salutation-dropdown/salutation-dropdown.component';\nimport { SalutationRadiogroupComponent } from './ui/molecules/salutation-radiogroup/salutation-radiogroup.component';\nimport { TextInputComponent } from './ui/molecules/text-input/text-input.component';\nimport { TimeInputComponent } from './ui/molecules/time-input/time-input.component';\nimport { TooltipIconComponent } from './ui/molecules/tooltip-icon/tooltip-icon.component';\nimport { YesNoRadiogroupComponent } from './ui/molecules/yes-no-radiogroup/yes-no-radiogroup.component';\nimport { FormActionsComponent } from './ui/organisms/generic-form/components/form-actions/form-actions.component';\nimport { FormFieldComponent } from './ui/organisms/generic-form/components/form-field/form-field.component';\nimport { FormSectionComponent } from './ui/organisms/generic-form/components/form-section/form-section.component';\nimport { GenericFormComponent } from './ui/organisms/generic-form/components/generic-form/generic-form.component';\nimport { DynamicFieldDirective } from './ui/organisms/generic-form/directives/dynamic-field.directive';\n\n@NgModule({\n declarations: [\n BackToTopComponent,\n CheckboxComponent,\n ColorInputComponent,\n DropdownFromDataComponent,\n EnumRadiogroupComponent,\n FileInputComponent,\n FlyoutComponent,\n ConfirmationDialogComponent,\n ImageSliderComponent,\n KMSAccordionItemComponent,\n KmsUiPresentationalComponent,\n LoaderComponent,\n MapComponent,\n RadioButtonComponent,\n RadioGroupComponent,\n SalutationDropdownComponent,\n SalutationRadiogroupComponent,\n SlideToggleComponent,\n TimeInputComponent,\n TooltipIconComponent,\n YesNoRadiogroupComponent,\n PasswordComponent,\n SliderComponent,\n CardComponent,\n ButtonComponent,\n NumericInputComponent,\n GenericFormComponent,\n FormSectionComponent,\n FormFieldComponent,\n FormActionsComponent,\n DynamicFieldDirective,\n TextInputComponent,\n ],\n imports: [\n CommonModule,\n DragDropModule,\n MatCheckboxModule,\n MatButtonModule,\n MatRadioModule,\n MatDialogModule,\n FormsModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatMenuModule,\n CustomPipesModule,\n GoogleMapsModule,\n MatExpansionModule,\n MatSelectModule,\n NgxMatSelectSearchModule,\n MatProgressSpinnerModule,\n DirectivesModule,\n MatSlideToggleModule,\n TranslateModule,\n MatTooltipModule,\n NgxSliderModule,\n MatAutocompleteModule,\n MatListModule,\n MatCardModule,\n MatDatepickerModule,\n MatNativeDateModule,\n IconComponent,\n DateInputComponent,\n ],\n exports: [\n BackToTopComponent,\n CheckboxComponent,\n ColorInputComponent,\n DropdownFromDataComponent,\n EnumRadiogroupComponent,\n RadioGroupComponent,\n FileInputComponent,\n FlyoutComponent,\n ConfirmationDialogComponent,\n IconComponent,\n ImageSliderComponent,\n KMSAccordionItemComponent,\n KmsUiPresentationalComponent,\n LoaderComponent,\n MapComponent,\n RadioButtonComponent,\n SalutationDropdownComponent,\n SalutationRadiogroupComponent,\n SlideToggleComponent,\n TimeInputComponent,\n TooltipIconComponent,\n YesNoRadiogroupComponent,\n PasswordComponent,\n SliderComponent,\n CardComponent,\n ButtonComponent,\n NumericInputComponent,\n GenericFormComponent,\n FormSectionComponent,\n FormActionsComponent,\n DynamicFieldDirective,\n DateInputComponent,\n TextInputComponent,\n ],\n providers: [ViewportService],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class KmsUiPresentationalModule {}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KmsUiPresentationalService {\n\n constructor() { }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nexport enum ButtonResponseType {\n primary = 'primary',\n secondary = 'secondary',\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function noWhitespaceOnly(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value || typeof control.value !== 'string') {\n return null;\n }\n return control.value.trim().length === 0 ? { whitespaceOnly: true } : null;\n };\n}\n\nexport function noSpecialCharsOnly(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value || typeof control.value !== 'string') {\n return null;\n }\n const hasAlphanumeric = /[a-zA-Z0-9\\u00C0-\\u024F]/.test(control.value);\n return hasAlphanumeric ? null : { specialCharsOnly: true };\n };\n}\n","/**\n * Pre-translated validation error messages for all supported locales.\n * Merged into @ngx-translate via `GenericFormModule` constructor under\n * the key path `uiPresentational.validatorMessages.<validatorName>`.\n *\n * Interpolation placeholders (e.g. `{{requiredLength}}`) match the metadata\n * objects Angular validators attach to `ValidationErrors`.\n */\nexport const KMS_ERROR_MESSAGES: Record<string, Record<string, string>> = {\n en: {\n required: 'This field is required.',\n minlength: 'Minimum {{requiredLength}} characters required.',\n maxlength: 'Maximum {{requiredLength}} characters allowed.',\n min: 'Value must be at least {{min}}.',\n max: 'Value must be at most {{max}}.',\n email: 'Please enter a valid email address.',\n pattern: 'The value does not match the required format.',\n whitespaceOnly: 'Must not contain only whitespace.',\n specialCharsOnly: 'Must contain at least one letter or number.',\n },\n 'en-uk': {\n required: 'This field is required.',\n minlength: 'Minimum {{requiredLength}} characters required.',\n maxlength: 'Maximum {{requiredLength}} characters allowed.',\n min: 'Value must be at least {{min}}.',\n max: 'Value must be at most {{max}}.',\n email: 'Please enter a valid email address.',\n pattern: 'The value does not match the required format.',\n whitespaceOnly: 'Must not contain only whitespace.',\n specialCharsOnly: 'Must contain at least one letter or number.',\n },\n de: {\n required: 'Dieses Feld ist erforderlich.',\n minlength: 'Mindestens {{requiredLength}} Zeichen erforderlich.',\n maxlength: 'Maximal {{requiredLength}} Zeichen erlaubt.',\n min: 'Der Wert muss mindestens {{min}} betragen.',\n max: 'Der Wert darf h\\u00f6chstens {{max}} betragen.',\n email: 'Bitte geben Sie eine g\\u00fcltige E-Mail-Adresse ein.',\n pattern: 'Der Wert entspricht nicht dem erforderlichen Format.',\n whitespaceOnly: 'Darf nicht nur aus Leerzeichen bestehen.',\n specialCharsOnly: 'Muss mindestens einen Buchstaben oder eine Zahl enthalten.',\n },\n 'de-de': {\n required: 'Dieses Feld ist erforderlich.',\n minlength: 'Mindestens {{requiredLength}} Zeichen erforderlich.',\n maxlength: 'Maximal {{requiredLength}} Zeichen erlaubt.',\n min: 'Der Wert muss mindestens {{min}} betragen.',\n max: 'Der Wert darf h\\u00f6chstens {{max}} betragen.',\n email: 'Bitte geben Sie eine g\\u00fcltige E-Mail-Adresse ein.',\n pattern: 'Der Wert entspricht nicht dem erforderlichen Format.',\n whitespaceOnly: 'Darf nicht nur aus Leerzeichen bestehen.',\n specialCharsOnly: 'Muss mindestens einen Buchstaben oder eine Zahl enthalten.',\n },\n 'de-ch': {\n required: 'Dieses Feld ist erforderlich.',\n minlength: 'Mindestens {{requiredLength}} Zeichen erforderlich.',\n maxlength: 'Maximal {{requiredLength}} Zeichen erlaubt.',\n min: 'Der Wert muss mindestens {{min}} betragen.',\n max: 'Der Wert darf h\\u00f6chstens {{max}} betragen.',\n email: 'Bitte geben Sie eine g\\u00fcltige E-Mail-Adresse ein.',\n pattern: 'Der Wert entspricht nicht dem erforderlichen Format.',\n whitespaceOnly: 'Darf nicht nur aus Leerzeichen bestehen.',\n specialCharsOnly: 'Muss mindestens einen Buchstaben oder eine Zahl enthalten.',\n },\n};\n","import { NgModule } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { KMS_ERROR_MESSAGES } from './models/kms-error-messages';\nimport { FieldRegistryService } from './services/field-registry.service';\n\n/**\n * Lightweight facade module for the generic-form feature.\n *\n * - Provides `FieldRegistryService` (maps FieldType → library component classes).\n * - Merges pre-translated validation error messages into `@ngx-translate`\n * so that `GenericFormService.resolveErrorMessage()` can look them up.\n *\n * **Does NOT declare any components** — those live in `KmsUiPresentationalModule`\n * to avoid circular AOT imports.\n *\n * Consuming apps import both modules:\n * ```ts\n * imports: [KmsUiPresentationalModule, GenericFormModule]\n * ```\n */\n@NgModule({\n imports: [TranslateModule],\n providers: [FieldRegistryService],\n})\nexport class GenericFormModule {\n constructor(translate: TranslateService) {\n // Re-merge library error messages whenever the app loads/changes language.\n // The app's HTTP loader calls setTranslation() without merge, which\n // overwrites the store — this subscriber re-merges library messages on top.\n //\n // NOTE: We intentionally do NOT merge upfront for all languages, because\n // that would make ngx-translate skip the HTTP loader (it thinks translations\n // are already cached), breaking the app's own translations.\n // Merge immediately if a language is already active (e.g. APP_INITIALIZER\n // called translate.use() before this module was instantiated).\n const currentLang = translate.currentLang || translate.defaultLang;\n if (currentLang) {\n this.mergeMessages(translate, currentLang);\n }\n\n translate.onLangChange.subscribe((event) => {\n this.mergeMessages(translate, event.lang);\n });\n }\n\n private mergeMessages(translate: TranslateService, lang: string): void {\n const key = lang.toLowerCase();\n const messages =\n KMS_ERROR_MESSAGES[key] ??\n KMS_ERROR_MESSAGES[key.split('-')[0]] ??\n KMS_ERROR_MESSAGES['en'];\n if (messages) {\n translate.setTranslation(\n lang,\n { uiPresentational: { validatorMessages: messages } },\n true\n );\n }\n }\n}\n","/** Form layout mode. Currently only GRID is implemented. */\nexport enum FormLayout {\n VERTICAL = 'vertical',\n GRID = 'grid',\n INLINE = 'inline',\n}\n\n/** Horizontal alignment for fields within grid cells. Maps to CSS `justify-items` / `justify-self`. */\nexport type GridAlign = 'left' | 'center' | 'right' | 'stretch';\n\n/** Vertical alignment for fields within grid rows. Maps to CSS `align-items`. */\nexport type GridVerticalAlign = 'top' | 'center' | 'bottom' | 'stretch';\n","/*\n * Public API Surface of kms-ngx-ui-presentational\n */\n\nexport * from './lib/kms-ngx-ui-presentational.component';\nexport * from './lib/kms-ngx-ui-presentational.module';\nexport * from './lib/kms-ngx-ui-presentational.service';\n\nexport * from './lib/services/viewport.service';\n\nexport * from './lib/parent-components/form.component';\n\n// Models\nexport * from './lib/models/button-response-types.enum';\nexport * from './lib/models/image-snippet.model';\nexport * from './lib/models/salutation.enum';\nexport * from './lib/models/text-value-pair.model';\nexport * from './lib/models/types/nullable.type';\n\n// Directives\nexport * from './lib/directives/directives.module';\nexport * from './lib/directives/sum-of-height.directive';\nexport * from './lib/directives/swipe.directive';\nexport * from './lib/directives/time.directive';\nexport * from './lib/directives/tooltip.directive';\n\n// Pipes\nexport * from './lib/pipes/custom-pipes.module';\nexport * from './lib/pipes/integer-currency.pipe';\nexport * from './lib/pipes/safe-html.pipe';\nexport * from './lib/pipes/safe-resource-url.pipe';\nexport * from './lib/pipes/safe-url.pipe';\nexport * from './lib/pipes/sanitaze-null.pipe';\nexport * from './lib/pipes/trim.pipe';\nexport * from './lib/pipes/typeof.pipe';\n\n// Enums\nexport * from './lib/enums/buttonAppearance.enum';\nexport * from './lib/enums/colors.enum';\nexport * from './lib/enums/iconSize.enum';\nexport * from './lib/enums/radioButtonSize.enum';\n\n// Components\n\n// Atoms\nexport * from './lib/ui/atoms/back-to-top/back-to-top.component';\nexport * from './lib/ui/atoms/card/card.component';\nexport * from './lib/ui/atoms/checkbox/checkbox.component';\nexport * from './lib/ui/atoms/dropdown-from-data/dropdown-from-data.component';\nexport * from './lib/ui/atoms/icon/icon.component';\nexport * from './lib/ui/atoms/loader/loader.component';\nexport * from './lib/ui/atoms/map/map.component';\nexport * from './lib/ui/atoms/radiobutton/radiobutton.component';\nexport * from './lib/ui/atoms/slide-toggle/slide-toggle.component';\nexport * from './lib/ui/atoms/slider/slider.component';\nexport * from './lib/ui/atoms/slider/slider.model';\n\n// Molecules\nexport * from './lib/ui/molecules/button/button.component';\nexport * from './lib/ui/molecules/color-input/color-input.component';\nexport * from './lib/ui/molecules/confirmation-dialog/confirmation-dialog.component';\nexport * from './lib/ui/molecules/confirmation-dialog/dialog-data.model';\nexport * from './lib/ui/molecules/date-input/date-input.component';\nexport * from './lib/ui/molecules/enum-radiogroup/enum-radiogroup.component';\nexport * from './lib/ui/molecules/file-input/file-input.component';\nexport * from './lib/ui/molecules/flyout/flyout.component';\nexport * from './lib/ui/molecules/image-slider/image-slider.component';\nexport * from './lib/ui/molecules/kms-accordion-item/kms-accordion-item.component';\nexport * from './lib/ui/molecules/numeric-input/numeric-input.component';\nexport * from './lib/ui/molecules/password/password.component';\nexport * from './lib/ui/molecules/radiogroup/radiogroup.component';\nexport * from './lib/ui/molecules/salutation-dropdown/salutation-dropdown.component';\nexport * from './lib/ui/molecules/salutation-radiogroup/salutation-radiogroup.component';\nexport * from './lib/ui/molecules/text-input/text-input.component';\nexport * from './lib/ui/molecules/time-input/time-input.component';\nexport * from './lib/ui/molecules/tooltip-icon/tooltip-icon.component';\nexport * from './lib/ui/molecules/yes-no-radiogroup/yes-no-radiogroup.component';\n\n// Validators\nexport * from './lib/validators/content.validators';\n\n// Organisms — Generic Form\nexport * from './lib/ui/organisms/generic-form/generic-form.module';\nexport * from './lib/ui/organisms/generic-form/models/index';\nexport * from './lib/ui/organisms/generic-form/services/generic-form.service';\nexport * from './lib/ui/organisms/generic-form/services/field-registry.service';\nexport * from './lib/ui/organisms/generic-form/components/generic-form/generic-form.component';\nexport * from './lib/ui/organisms/generic-form/components/form-section/form-section.component';\nexport * from './lib/ui/organisms/generic-form/components/form-field/form-field.component';\nexport * from './lib/ui/organisms/generic-form/components/form-actions/form-actions.component';\nexport * from './lib/ui/organisms/generic-form/directives/dynamic-field.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.IconComponent","i3.SafeHtmlPipe","i3","i4","i6.IconComponent","i2","i4.IconComponent","i1.TooltipDirective","i5.TooltipIconComponent","nextId","i3.IconComponent","i2.GetMaxHeightDirective","i4.SafeHtmlPipe","i5.IconComponent","i3.RadioButtonComponent","i4.TooltipIconComponent","i4.TimeDirective","i5","i1.ButtonComponent","takeUntil","i6","i7.IconComponent","i8.DateInputComponent","i9.TooltipIconComponent","i10.DynamicFieldDirective","i11.TextInputComponent","i2.TooltipIconComponent","i3.FormFieldComponent","i2.FormSectionComponent","i3.FormActionsComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kms-ngx-ui-presentational.mjs","sources":["../../../../projects/kms-ngx-ui-presentational/src/lib/kms-ngx-ui-presentational.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/integer-currency.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/safe-html.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/safe-resource-url.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/safe-url.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/sanitaze-null.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/trim.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/typeof.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/custom-pipes.module.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/sum-of-height.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/swipe.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/time.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/tooltip.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/directives.module.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/services/viewport.service.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/enums/colors.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/enums/iconSize.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/icon/icon.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/icon/icon.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/back-to-top/back-to-top.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/back-to-top/back-to-top.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/card/card.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/card/card.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/checkbox/checkbox.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/checkbox/checkbox.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/parent-components/form.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/parent-components/form-control.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/dropdown-from-data/dropdown-from-data.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/dropdown-from-data/dropdown-from-data.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/loader/loader.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/loader/loader.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/models/address.model.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/map/map.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/map/map.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/enums/radioButtonSize.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/radiobutton/radiobutton.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/radiobutton/radiobutton.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/slide-toggle/slide-toggle.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/slide-toggle/slide-toggle.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/slider/slider.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/atoms/slider/slider.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/enums/buttonAppearance.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/button/button.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/button/button.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/tooltip-icon/tooltip-icon.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/tooltip-icon/tooltip-icon.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/color-input/color-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/color-input/color-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/confirmation-dialog/dialog-data.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/confirmation-dialog/confirmation-dialog.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/confirmation-dialog/confirmation-dialog.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/date-input/date-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/date-input/date-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/enum-radiogroup/enum-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/enum-radiogroup/enum-radiogroup.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/models/is-value.function.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/file-input/file-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/file-input/file-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/flyout/flyout.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/flyout/flyout.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/image-slider/image-slider.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/image-slider/image-slider.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/kms-accordion-item/kms-accordion-item.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/kms-accordion-item/kms-accordion-item.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/numeric-input/numeric-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/numeric-input/numeric-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/password/password.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/password/password.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/radiogroup/radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/radiogroup/radiogroup.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/models/salutation.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/salutation-dropdown/salutation-dropdown.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/salutation-dropdown/salutation-dropdown.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/models/image-snippet.model.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/text-value-pair.model.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/types/attached-file-dto.model.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/types/nullable.type.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/salutation-radiogroup/salutation-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/salutation-radiogroup/salutation-radiogroup.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/text-input/text-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/text-input/text-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/time-input/time-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/time-input/time-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/yes-no-radiogroup/yes-no-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/molecules/yes-no-radiogroup/yes-no-radiogroup.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/components/form-actions/form-actions.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/components/form-actions/form-actions.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/models/field-type.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/services/generic-form.service.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/services/field-registry.service.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/directives/dynamic-field.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/components/form-field/form-field.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/components/form-field/form-field.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/components/form-section/form-section.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/components/form-section/form-section.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/components/generic-form/generic-form.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/components/generic-form/generic-form.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/kms-ngx-ui-presentational.module.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/kms-ngx-ui-presentational.service.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/button-response-types.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/validators/content.validators.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/models/kms-error-messages.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/generic-form.module.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/organisms/generic-form/models/form-layout.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/public-api.ts","../../../../projects/kms-ngx-ui-presentational/src/kms-ngx-ui-presentational.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\n\n@Component({\n standalone: false,\n selector: 'lib-kms-ngx-ui-presentational',\n template: `\n <p>\n kms-ngx-ui-presentational works!\n </p>\n `,\n styles: [\n ]\n})\nexport class KmsUiPresentationalComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void { }\n\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { CurrencyPipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsIntegerCurrency',\n standalone: false,\n})\nexport class IntegerCurrency implements PipeTransform {\n constructor(private cp: CurrencyPipe) {}\n transform(\n value: any,\n currencyCode?: string,\n display?: boolean,\n digitsInfo?: string\n ): string | null {\n const currencyPipeValue = this.cp.transform(\n value,\n currencyCode,\n display,\n digitsInfo\n );\n if (currencyPipeValue) {\n const convertedValue =\n currencyPipeValue.split(',')[0] + ' ' + currencyPipeValue.slice(-1);\n return convertedValue;\n } else {\n throw new Error('No value provided');\n }\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeHtml',\n standalone: false,\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeResourceSUrl',\n standalone: false,\n})\nexport class SafeResourceUrlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(url: string): SafeResourceUrl {\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeSUrl',\n standalone: false,\n})\nexport class SafeUrlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustUrl(url);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'sanitizeNull', standalone: false })\nexport class SanitizeNullPipe implements PipeTransform {\n transform(value: any): string {\n return value === 'null' || value == null ? '' : value;\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'kmsTrim', standalone: false })\nexport class TrimPipe implements PipeTransform {\n transform(value: any) {\n if (!value) {\n return '';\n }\n\n return value.trim();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsTypeOf',\n standalone: false,\n})\nexport class TypeofPipe implements PipeTransform {\n transform(value: any): any {\n return typeof value;\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { CommonModule, CurrencyPipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IntegerCurrency } from './integer-currency.pipe';\nimport { SafeHtmlPipe } from './safe-html.pipe';\nimport { SafeResourceUrlPipe } from './safe-resource-url.pipe';\nimport { SafeUrlPipe } from './safe-url.pipe';\nimport { SanitizeNullPipe } from './sanitaze-null.pipe';\nimport { TrimPipe } from './trim.pipe';\nimport { TypeofPipe } from './typeof.pipe';\n\n@NgModule({\n declarations: [\n IntegerCurrency,\n SafeHtmlPipe,\n SanitizeNullPipe,\n SafeUrlPipe,\n TrimPipe,\n SafeResourceUrlPipe,\n TypeofPipe,\n ],\n imports: [CommonModule],\n exports: [\n IntegerCurrency,\n SafeHtmlPipe,\n SanitizeNullPipe,\n SafeUrlPipe,\n TrimPipe,\n SafeResourceUrlPipe,\n TypeofPipe,\n ],\n providers: [CurrencyPipe],\n})\nexport class CustomPipesModule {}\n","/**\n * @copyright KMS GmbH\n */\n\n// ng\nimport {\n AfterContentChecked,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\n/**\n * Directive to calc the height of all inner elements\n */\n@Directive({\n selector: '[getMaxHeight]',\n standalone: false,\n})\nexport class GetMaxHeightDirective implements AfterContentChecked {\n /**\n * CSS class name of the child items (markup elements) that should be checked for their height.\n * This is mandatory.\n */\n @Input('getMaxHeight') cssClassName = '';\n\n /**\n * Event that will pass the height of the tallest child inside the container.\n * Useful to calculate the target height of containers with different content (like accordion) for animations.\n */\n @Output() public maxHeightChanged: EventEmitter<number> = new EventEmitter();\n\n /**\n * Event that will pass the complete sum of all height values from each child.\n * Useful to calculate the full target height of a container (like dropdown) for animations.\n */\n @Output() public sumOfHeight: EventEmitter<number> = new EventEmitter();\n\n constructor(private el: ElementRef) {}\n\n ngAfterContentChecked(): void {\n this.checkHeightOfChildren(this.el.nativeElement, this.cssClassName);\n }\n\n private checkHeightOfChildren(parent: HTMLElement, cssClassName: string) {\n if (!parent) {\n return;\n }\n\n // find all the child elements with the selected class name\n const children = parent.getElementsByClassName(cssClassName);\n\n // failsafe\n if (!children) {\n return;\n }\n\n // get all the child elements heights\n const itemHeights = Array.from(children).map(\n (x) => x.getBoundingClientRect().height\n );\n\n // failsafe\n if (itemHeights.length === 0) {\n return;\n }\n\n // find out the tallest element\n const maxHeight = itemHeights.reduce((prev, curr) => {\n return curr > prev ? curr : prev;\n }, 0);\n\n // get sum of heights\n const sumOfHeight = itemHeights.reduce((pv, cv) => pv + cv, 0);\n\n // inform\n this.maxHeightChanged.emit(maxHeight);\n this.sumOfHeight.emit(sumOfHeight);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport {\n Directive,\n EventEmitter,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\n\nimport { SwipeMoveEvent, SwipeOptions, SwipeReleaseEvent } from './swipe.model';\n\n@Directive({\n selector: '[swipeDirective]',\n standalone: false,\n})\nexport class SwipeDirective {\n /**\n * Output Event that is emitted during swipe process (mouse move or touch move event).\n * Can be used for calculation purposes.\n */\n @Output() public moveEvent = new EventEmitter<SwipeMoveEvent>();\n\n /**\n * Output Event that is emitted when swipe process end (mouse up or touch end event).\n * Can be used for calculation purposes.\n */\n @Output() public releaseEvent = new EventEmitter<SwipeReleaseEvent>();\n\n private _swipeOptions: SwipeOptions | undefined;\n\n private _moveEventData: SwipeMoveEvent | undefined;\n private _startPosition = -1;\n\n private _lastPosX = 0;\n\n private _thresholdWasReached = false;\n\n private _isMobile: boolean | undefined;\n\n private _timeStart = 0;\n\n /**\n * Needed config that defines swipe behaviour.\n * @param options SwipeOptions\n */\n @Input('swipeDirective')\n set config(options: SwipeOptions) {\n if (options) {\n this._swipeOptions = options;\n }\n }\n\n @HostListener('mousedown', ['$event'])\n @HostListener('touchstart', ['$event'])\n onMouseDown(event: any) {\n this.calculateStartPosition(event);\n }\n\n @HostListener('mousemove', ['$event'])\n @HostListener('touchmove', ['$event'])\n onMove(event: any) {\n this.move(event);\n }\n\n @HostListener('mouseup', ['$event'])\n @HostListener('mouseleave', ['$event'])\n @HostListener('touchend', ['$event'])\n onRelease(event: any) {\n this.release(event);\n this.reset();\n }\n\n // ** PRIVATE ** //\n\n /**\n * Function checks if the current moving delta is inside the defined threshold.\n * Sets the flag to true if the threshold was reached once.\n */\n private checkThreshold(moveEvent: SwipeMoveEvent) {\n const percentage =\n this._swipeOptions && this._swipeOptions.swipeThresholdType === '%';\n\n if (\n !percentage &&\n this._swipeOptions &&\n moveEvent.swipeDistanceTotal < this._swipeOptions.swipeThreshold\n ) {\n return;\n } else if (\n percentage &&\n this._swipeOptions &&\n moveEvent.swipeDistancePercentage <\n this._swipeOptions.swipeThreshold / 100\n ) {\n return;\n } else {\n this._thresholdWasReached = true;\n }\n }\n\n private calculateStartPosition(event?: any) {\n // detect if touch or click\n this._isMobile = event.type === 'touchstart';\n\n // save start position\n\n if (this._swipeOptions && this._swipeOptions.swipeLocalPosition) {\n if (this._isMobile) {\n const touch: Touch = event.touches[0];\n this._startPosition = this._swipeOptions.swipeLocalPosition\n ? touch.clientX\n : touch.pageX;\n } else {\n this._startPosition = this._swipeOptions.swipeLocalPosition\n ? event.offsetX\n : event.pageX;\n }\n }\n\n this._lastPosX = this._startPosition;\n this._timeStart = event.timeStamp;\n this._thresholdWasReached = false;\n }\n\n private move(event: any) {\n // failsafe\n if (typeof event === 'undefined') {\n return;\n }\n\n let posX = 0;\n\n if (this._swipeOptions) {\n if (this._isMobile && event.type === 'touchmove') {\n const touch: Touch = event.touches[0];\n posX = this._swipeOptions.swipeLocalPosition\n ? touch.clientX\n : touch.pageX;\n } else {\n posX = this._swipeOptions.swipeLocalPosition\n ? event.offsetX\n : event.pageX;\n }\n }\n\n const offsetPerFrame: number = posX - this._lastPosX;\n const swipeDistanceTotal: number = Math.abs(posX - this._startPosition);\n const swipeDistancePercentage: number = Math.abs(\n swipeDistanceTotal / event.target.clientWidth\n );\n const timeDuration: number = Math.abs(event.timeStamp - this._timeStart);\n\n let direction: number;\n let speed: number = 1 - swipeDistanceTotal / timeDuration;\n speed = Math.max(0.1, speed);\n\n if (posX - this._startPosition > 0) {\n direction = 1; // a.k.a LTR\n } else {\n direction = -1; // a.k.a RTL\n }\n\n this._moveEventData = {\n position: posX,\n offsetPerFrame: offsetPerFrame,\n swipeDistanceTotal: swipeDistanceTotal,\n swipeDistancePercentage: swipeDistancePercentage,\n direction: direction,\n speed: speed,\n thresholdWasReached: this._thresholdWasReached,\n };\n\n this.checkThreshold(this._moveEventData);\n\n // update move delta\n this._lastPosX = posX;\n\n // inform\n this.moveEvent.emit(this._moveEventData);\n }\n\n private release(event: any) {\n // case: just a click/touch\n\n if (!this._moveEventData) {\n return;\n }\n\n const releaseEventData: SwipeReleaseEvent = {\n thresholdWasReached: this._thresholdWasReached,\n direction: this._moveEventData.direction,\n speed: this._moveEventData.speed,\n easingType: this.getEasingCurve(this._moveEventData.speed),\n target: event.currentTarget,\n };\n\n // inform\n this.releaseEvent.emit(releaseEventData);\n }\n\n private getEasingCurve(speed: number): string {\n return speed > 0.5 ? 'ease-in' : 'ease-out';\n }\n\n private reset() {\n this._startPosition = -1;\n this._thresholdWasReached = false;\n\n if (this._moveEventData) {\n this._moveEventData = undefined;\n }\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[kmsTime]',\n standalone: false,\n})\nexport class TimeDirective {\n constructor(private el: ElementRef) {}\n\n @HostListener('input', ['$event']) onInputChange(event: InputEvent) {\n this.handleInput(event);\n }\n\n @HostListener('beforeinput', ['$event']) onBeforeInput(event: InputEvent) {\n if (\n event.inputType === 'insertFromPaste' ||\n event.inputType === 'insertText'\n ) {\n const isAllTextHighlighted =\n (event.target as HTMLInputElement).selectionStart === 0 &&\n (event.target as HTMLInputElement).selectionEnd === 5;\n const textReachedMax =\n (event.target as HTMLInputElement).value.length > 4;\n const isNotANumber = isNaN(+event.data);\n\n if (isNotANumber || (textReachedMax && !isAllTextHighlighted)) {\n event.preventDefault();\n }\n this.handleInput(event);\n }\n }\n\n public handleInput(event: InputEvent) {\n const inputElement = this.el.nativeElement as HTMLInputElement;\n const originalValue = inputElement.value;\n\n if (originalValue.length === 2 && event.inputType === 'insertText') {\n inputElement.value += ':';\n inputElement.dispatchEvent(new Event('input'));\n }\n }\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\nimport {\n arrow,\n autoUpdate,\n computePosition,\n flip,\n offset,\n Placement,\n shift,\n} from '@floating-ui/dom';\n\n@Directive({ selector: '[kmsTooltip]', standalone: false })\nexport class TooltipDirective implements AfterViewInit, OnChanges {\n @Input() kmsTooltip: HTMLElement;\n @Input() placement: Placement = 'bottom';\n @Input() delay: number = 0;\n @Input() alwaysVisible = false;\n\n arrow: HTMLElement;\n showTimeout: NodeJS.Timeout;\n\n @HostListener('mouseover')\n onMouseOver() {\n if (this.alwaysVisible) return;\n\n this.showTimeout = setTimeout(() => {\n this.renderer.addClass(this.kmsTooltip, 'kms-tooltip--show');\n }, this.delay);\n }\n\n @HostListener('mouseout')\n onMouseOut() {\n if (this.alwaysVisible) return;\n\n clearTimeout(this.showTimeout);\n this.renderer.removeClass(this.kmsTooltip, 'kms-tooltip--show');\n }\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2) {}\n\n ngAfterViewInit() {\n this.renderer.addClass(this.kmsTooltip, 'kms-tooltip');\n this.addArrow();\n this.initTooltip();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.alwaysVisible.currentValue) {\n this.renderer.addClass(this.kmsTooltip, 'kms-tooltip--show');\n } else {\n this.renderer.removeClass(this.kmsTooltip, 'kms-tooltip--show');\n }\n }\n\n initTooltip() {\n autoUpdate(this.elementRef.nativeElement, this.kmsTooltip, () => {\n const arrowLength = this.arrow.offsetWidth;\n // Get half the arrow box's hypotenuse length\n const floatingOffset = Math.sqrt(2 * arrowLength ** 2) / 2;\n\n computePosition(this.elementRef.nativeElement, this.kmsTooltip, {\n placement: this.placement,\n middleware: [\n shift(),\n offset(floatingOffset),\n arrow({ element: this.arrow }),\n flip(),\n ],\n }).then(({ x, y, middlewareData, placement }) => {\n this.positionTooltip(x, y);\n\n if (middlewareData.arrow) {\n this.positionTooltipArrow(\n middlewareData.arrow.x,\n middlewareData.arrow.y,\n placement,\n arrowLength\n );\n }\n });\n });\n }\n\n positionTooltip(x: number, y: number) {\n Object.assign(this.kmsTooltip.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n }\n\n positionTooltipArrow(\n x: number,\n y: number,\n placement: Placement,\n arrowLength: number\n ) {\n const side = placement.split('-')[0];\n\n const staticSide = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[side];\n\n this.addArrowClass(staticSide);\n\n Object.assign(this.arrow.style, {\n left: x != null ? `${x}px` : '',\n top: y != null ? `${y}px` : '',\n // Ensure the static side gets unset when\n // flipping to other placements' axes.\n right: '',\n bottom: '',\n [staticSide]: `${-arrowLength / 2}px`,\n transform: 'rotate(45deg)',\n });\n }\n\n addArrow() {\n this.arrow = this.renderer.createElement('div');\n this.renderer.addClass(this.arrow, 'kms-tooltip__arrow');\n this.renderer.appendChild(this.kmsTooltip, this.arrow);\n }\n\n addArrowClass(side: string) {\n this.renderer.removeClass(this.arrow, 'kms-tooltip__arrow--left');\n this.renderer.removeClass(this.arrow, 'kms-tooltip__arrow--right');\n this.renderer.removeClass(this.arrow, 'kms-tooltip__arrow--bottom');\n this.renderer.removeClass(this.arrow, 'kms-tooltip__arrow--top');\n\n this.renderer.addClass(this.arrow, 'kms-tooltip__arrow--' + side);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { GetMaxHeightDirective } from './sum-of-height.directive';\nimport { SwipeDirective } from './swipe.directive';\nimport { TimeDirective } from './time.directive';\nimport { TooltipDirective } from './tooltip.directive';\n\n@NgModule({\n declarations: [\n SwipeDirective,\n GetMaxHeightDirective,\n TooltipDirective,\n TimeDirective,\n ],\n exports: [\n SwipeDirective,\n GetMaxHeightDirective,\n TooltipDirective,\n TimeDirective,\n ],\n})\nexport class DirectivesModule {}\n","/**\n * @copyright KMS GmbH\n */\nimport { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, OnDestroy, PLATFORM_ID, DOCUMENT } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { NullAble } from '../models';\n\ndeclare const window: any;\ndeclare const document: any;\n\nexport class WindowDimensions {\n constructor(data?: Partial<WindowDimensions>) {\n Object.assign(this, data);\n }\n Height!: number;\n Width!: number;\n Orientation!: \"landscape\" | \"portrait\";\n}\n\nexport class SimpleBreakpoint {\n constructor(data?: Partial<SimpleBreakpoint>) {\n Object.assign(this, data);\n }\n Number!: number;\n Name!: string;\n MaximumPixels!: number;\n}\n\nexport class Breakpoint {\n constructor(data?: Partial<Breakpoint>) {\n Object.assign(this, data);\n }\n Number!: number;\n Name!: string;\n Low!: number;\n High!: number;\n}\n\n/**\n * Service to get viewport\n */\n@Injectable()\nexport class ViewportService implements OnDestroy {\n public readonly simpleBreakpoints: SimpleBreakpoint[] = [\n { Number: 0, Name: 'mobile', MaximumPixels: 768 },\n { Number: 1, Name: 'tablet', MaximumPixels: 1024 },\n { Number: 2, Name: 'desktop', MaximumPixels: 1600 },\n { Number: 3, Name: 'high', MaximumPixels: 2500 },\n ];\n\n public readonly breakpoints: Breakpoint[] = [\n {\n Number: 0,\n Name: 'xs',\n Low: 360,\n High: 990,\n },\n {\n Number: 1,\n Name: 's',\n Low: 991,\n High: 1024,\n },\n {\n Number: 2,\n Name: 'm',\n Low: 1025,\n High: 1200,\n },\n {\n Number: 3,\n Name: 'l',\n Low: 1201,\n High: 1400,\n },\n {\n Number: 4,\n Name: 'xl',\n Low: 1401,\n High: 1600,\n },\n {\n Number: 5,\n Name: 'xxl',\n Low: 1601,\n High: 1920,\n },\n {\n Number: 6,\n Name: 'xxxl',\n Low: 1921,\n High: 99999,\n },\n ];\n\n private viewportChangedSubscriber: Subject<string> = new Subject<string>();\n private viewportResizedSubscriber: Subject<number> = new Subject<number>();\n\n private currentViewport!: string;\n private currentViewportObject!: Breakpoint;\n private isBrowser = false;\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: Object,\n @Inject(DOCUMENT) public document: Document\n ) {\n if (isPlatformBrowser(this.platformId)) {\n window.addEventListener('resize', this.documentSizeChanged.bind(this), {\n passive: true,\n });\n this.isBrowser = true;\n }\n }\n\n /**\n * Get document height\n */\n public getDocumentHeight(): number {\n return this.isBrowser ? document.body.clientHeight : 1200;\n }\n\n /**\n * Get document width\n */\n public getDocumentWidth(): number {\n return this.isBrowser ? document.body.clientWidth : 1200;\n }\n\n /**\n * Get window height\n */\n public getWindowHeight(): number {\n return this.isBrowser ? window.innerHeight : 1200;\n }\n\n /**\n * Get window width\n */\n public getWindowWidth(): number {\n return this.isBrowser ? window.innerWidth : 1200;\n }\n\n /**\n * Returns the current viewport MQ as string\n * @returns string\n */\n public getCurrentViewPort(): string {\n const currentWidth: number = this.isBrowser\n ? document.body.clientWidth\n : 1200;\n this.currentViewport = this.convertWidthToMediaQuery(currentWidth).Name;\n\n return this.currentViewport;\n }\n\n /**\n * Returns the current viewport MQ as object with all informations\n * @returns string\n */\n public getCurrentViewPortObject(): Breakpoint {\n const currentWidth: number = this.isBrowser\n ? document.body.clientWidth\n : 1200;\n this.currentViewportObject = this.convertWidthToMediaQuery(currentWidth);\n\n return this.currentViewportObject;\n }\n\n /**\n * Returns the current viewport as number\n * @deprecated use getCurrentViewPortDimensions instead\n * @returns string\n */\n public getCurrentViewPortNumber(): number {\n return this.isBrowser ? document.body.clientWidth : 1200;\n }\n\n /**\n * Returns the current viewport width as number\n * @returns string\n */\n public getCurrentViewPortWidth(): number {\n return this.isBrowser ? document.body.clientWidth : 1200;\n }\n\n /**\n * Returns the current viewport as number\n * @returns string\n */\n public getCurrentViewPortHeight(): number {\n return this.isBrowser ? document.body.clientHeight : 600;\n }\n\n /**\n * Returns the current viewport dimensions\n * @returns string\n */\n public getCurrentViewPortDimensions(): WindowDimensions {\n return this.isBrowser ? {Width:document.body.clientWidth,Height:document.body.clientWidth,Orientation:this.getOrientationAsString() } as WindowDimensions : {Width:800, Height:600, Orientation: \"landscape\"} as WindowDimensions;\n }\n\n /**\n * Provides mq´s as string\n */\n public getViewportChangedObserver(): Observable<string> {\n return this.viewportChangedSubscriber.asObservable();\n }\n\n /**\n * Provides the current window width as number\n */\n public getViewportResizedObserver(): Observable<number> {\n return this.viewportResizedSubscriber.asObservable();\n }\n\n /**\n * Scroll to element\n */\n public scrollToElementId(el: string, alignCenter = false) {\n if (this.isBrowser) {\n this.scrollToElement(document.querySelector('#' + el), alignCenter);\n }\n }\n\n /**\n * Helper function that scrolls to the given markup element.\n * @param el - nativeElement from markup\n * @param alignCenter - defines if the element needs to be centered on window\n */\n\n public scrollToElement(el: HTMLElement, alignCenter = false) {\n if (this.isBrowser) {\n let extraScrollTop = 0;\n\n if (alignCenter) {\n extraScrollTop = (window.innerHeight - el.clientHeight) / 2;\n }\n\n let offsetLeft = 0;\n let offsetTop = 0;\n\n let elTemp: NullAble<HTMLElement> = el;\n\n while (elTemp) {\n offsetLeft += elTemp.offsetLeft;\n offsetTop += elTemp.offsetTop;\n elTemp = elTemp.parentElement ? elTemp.parentElement : null;\n }\n\n window.scrollTo({\n left: offsetLeft,\n top: offsetTop - extraScrollTop,\n behavior: 'smooth',\n });\n }\n }\n\n /**\n * Scroll to the top position\n * @param top - top position value\n */\n public scrollTop(top: number) {\n if (this.isBrowser) {\n window.scrollTo({ left: 0, top: top, behavior: 'smooth' });\n }\n }\n\n /**\n * If orientation is portrait\n */\n public isPortrait() : boolean|undefined {\n if (this.isBrowser) return window.innerHeight > window.innerWidth;\n else return undefined;\n }\n\n /**\n * If orientation is landscape\n */\n public isLandscape() :boolean|undefined {\n if (this.isBrowser) {\n const isLandscape =\n window.orientation === 90 || window.orientation === -90;\n return isLandscape;\n } else {\n return undefined;\n }\n }\n\n /**\n * Get screen orientation (portrait/landscape)\n */\n public getOrientationAsString() : \"portrait\" | \"landscape\" {\n return this.isPortrait ? \"portrait\" : \"landscape\";\n }\n\n /**\n * If mobile breakpoint (below tablet)\n */\n public isMobile():boolean {\n return this.getCurrentViewPortNumber() < this.breakpoints[2].Low;\n }\n\n /**\n * Get height of an element\n * @deprecated\n */\n public calculateFullscreenElementsheight(\n id: string,\n defaultheight: string,\n extra: number\n ) {\n return this.calculateFullscreenElementsHeight(id, defaultheight, extra);\n }\n\n /**\n * Get height of an element\n */\n public calculateFullscreenElementsHeight(\n id: string,\n defaultheight: string,\n extra: number\n ) {\n \n if (!this.isBrowser || this.isMobile()) {\n return defaultheight;\n } else {\n const map = this.document.getElementById(id);\n const footer = this.document.getElementsByTagName('footer')[0];\n if (map && footer) {\n return `${window.innerHeight - map.offsetTop - footer.offsetHeight - extra\n }px`;\n } else {\n console.warn('could not calculate map height');\n return defaultheight;\n }\n }\n }\n\n /**\n * If viewport changed\n * @event\n */\n private documentSizeChanged(event: any) {\n const currentWindowWidth: number = event.target.innerWidth;\n // inform who´s interested\n this.viewportResizedSubscriber.next(currentWindowWidth);\n\n if (currentWindowWidth > 0) {\n for (const mqs of this.breakpoints) {\n if (currentWindowWidth > mqs.High) {\n continue;\n } else if (\n (currentWindowWidth >= mqs.Low || currentWindowWidth <= mqs.High) &&\n this.currentViewport !== mqs.Name\n ) {\n this.currentViewport = mqs.Name;\n // inform who´s interested\n this.viewportChangedSubscriber.next(mqs.Name);\n break;\n } else if (this.currentViewport === mqs.Name) {\n break;\n } else {\n console.error('ERROR');\n }\n }\n }\n }\n\n /**\n * Get the Media Query for the given width\n * @param width Width to get the according MQ for\n */\n private convertWidthToMediaQuery(width: number): Breakpoint {\n let currentViewport = this.breakpoints[0];\n\n for (const mqs of this.breakpoints) {\n if (width <= mqs.High && width >= mqs.Low) {\n currentViewport = mqs;\n break;\n }\n }\n\n return currentViewport;\n }\n\n /**\n * Get the breakpoint/device name like mobile,tablet,desktop, high\n */\n getSimpleBreakpoint(screenSize: number) :SimpleBreakpoint {\n let actualBreakpoint: SimpleBreakpoint | undefined;\n\n const sizes = this.simpleBreakpoints.slice().reverse(); // we need to reverse it to check step by step from biggest, which breakpoints still fits. Slice is a trick to not mutate the original array and make a copy\n for (const key in sizes) {\n if (screenSize < sizes[key].MaximumPixels) {\n actualBreakpoint = sizes[key];\n }\n }\n if (!actualBreakpoint) {\n actualBreakpoint = sizes[0]; // default screensize is biggest. Will be used if viewport is bigger as maximum. Remember, array is reversed\n }\n\n return actualBreakpoint;\n }\n\n ngOnDestroy() {\n if (this.isBrowser) {\n window.removeEventListener('resize', this.documentSizeChanged);\n }\n }\n}\n","export enum Color {\n PRIMARY = '--kms-primary',\n SECONDARY = '--kms-secondary',\n TERTIARY = '--kms-tertiary',\n SUCCESS = '--kms-success',\n ALERT = '--kms-alert',\n ERROR = '--kms-error',\n DISABLED = '--kms-disabled',\n WHITE = '--kms-white',\n BLACK = '--kms-black',\n}\n\nexport enum StylingTheme {\n PRIMARY = 'primary',\n SECONDARY = 'accent',\n WARN = 'warn',\n}\n","/**\n * @copyright KMS GmbH\n */\n\nexport enum IconSizePx {\n XXS = 16,\n XS = 20,\n SM = 32,\n MD = 64,\n LG = 128,\n XL = 256,\n XXL = 512,\n}\n\nexport const IconSizesArr = [\n IconSizePx.XXS,\n IconSizePx.XS,\n IconSizePx.SM,\n IconSizePx.MD,\n IconSizePx.LG,\n IconSizePx.XL,\n IconSizePx.XXL,\n];\n","/**\n * @copyright KMS GmbH\n */\n\nimport { NgClass, NgStyle } from '@angular/common';\nimport { Component, input, InputSignal, VERSION } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport * as icons from '@ui-presentational/assets/icons.json';\nimport { Color } from '../../../enums/colors.enum';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\n\n@Component({\n selector: 'kms-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n standalone: true,\n imports: [NgClass, NgStyle],\n})\nexport class IconComponent {\n /**\n * Required: Name of the SVG icon inside your sprite sheet file with name 'icons.svg'.\n * Pass 'none' if no icon should be rendered.\n */\n icon: InputSignal<(typeof icons)[number]> = input();\n\n /**\n * Optional: Different appearance via CSS class defined in this component´s style sheet.\n */\n iconClass = input('');\n\n size: InputSignal<number> = input(IconSizePx.XS);\n dontUseSprite = input(false);\n color = input(Color.BLACK);\n\n Version = VERSION.full;\n\n constructor(public sanitizer: DomSanitizer) {}\n}\n","@if (icon() !== 'none' && dontUseSprite() === false) {\n <span\n class=\"icon\"\n [ngClass]=\"iconClass()\"\n [ngStyle]=\"{\n color: 'var(' + color() + ')'\n }\"\n [style.width.px]=\"size()\"\n [style.height.px]=\"size()\"\n >\n <svg [style.width.px]=\"size()\" [style.height.px]=\"size()\">\n <use\n [attr.xlink:href]=\"\n 'assets/sprite.svg?Version=' + Version + '#' + icon()\n \"\n ></use>\n </svg>\n </span>\n}\n@if (icon() !== 'none' && dontUseSprite() === true) {\n <object\n [data]=\"\n sanitizer.bypassSecurityTrustResourceUrl('assets/icons/' + icon() + '')\n \"\n type=\"image/svg+xml\"\n class=\"icon\"\n [ngClass]=\"iconClass()\"\n ></object>\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport { Component, HostListener, Inject, PLATFORM_ID } from '@angular/core';\nimport { Color } from '../../../enums/colors.enum';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\n\n@Component({\n selector: 'kms-back-to-top',\n templateUrl: './back-to-top.component.html',\n standalone: false,\n})\nexport class BackToTopComponent {\n windowScrolled?: boolean;\n\n IconSizePx = IconSizePx;\n Color = Color;\n\n constructor(@Inject(PLATFORM_ID) public platformId: Object) {}\n\n @HostListener('window:scroll', [])\n onWindowScroll() {\n if (isPlatformBrowser(this.platformId)) {\n if (\n window.scrollY ||\n document.documentElement.scrollTop ||\n document.body.scrollTop > 100\n ) {\n this.windowScrolled = true;\n } else if (\n (this.windowScrolled && window.scrollY) ||\n document.documentElement.scrollTop ||\n document.body.scrollTop < 10\n ) {\n this.windowScrolled = false;\n }\n }\n }\n\n scrollToTop() {\n if (isPlatformBrowser(this.platformId)) {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n }\n }\n}\n","<div\n class=\"scrollToTop\"\n [ngClass]=\"{ show: windowScrolled }\"\n (click)=\"scrollToTop()\"\n>\n <div class=\"scrollToTop-inner\">\n <kms-icon\n icon=\"floating_button_clear\"\n [color]=\"Color.WHITE\"\n [size]=\"IconSizePx.SM\"\n ></kms-icon>\n </div>\n</div>\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'kms-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n standalone: false,\n})\nexport class CardComponent {\n imageUrl = input('');\n hoverEffect = input(false);\n}\n","<div class=\"card\" [ngClass]=\"{ hoverEffect: hoverEffect() }\">\n @if(imageUrl() !== '') {\n <div\n class=\"card-image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl() + ')' }\"\n ></div>\n }\n <div class=\"card-content\">\n <ng-content></ng-content>\n </div>\n</div>\n","/**\n * @copyright KMS GmbH\n */\n\nimport {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'kms-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() infoText = '';\n @Input() checked = false;\n @Input() disabled = false;\n\n /**\n * Internal description name. All checkboxes with the same name belong to the same group.\n * User can select none, one or all checkboxes with the same name.\n */\n @Input() name = '';\n\n @Output() change = new EventEmitter();\n\n valueChanged(value: boolean) {\n this.onChange(value);\n this.checked = value;\n this.change.emit(value);\n this.onTouched();\n }\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n writeValue(value: any) {\n this.checked = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n}\n","<div class=\"checkbox-container\" [class.disabled]=\"disabled\">\n <mat-checkbox\n [disabled]=\"disabled\"\n [name]=\"name\"\n [(ngModel)]=\"checked\"\n (change)=\"valueChanged($event.checked)\"\n color=\"primary\"\n >\n <span [innerHTML]=\"infoText | kmsSafeHtml\"></span>\n </mat-checkbox>\n</div>\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\n@Component({\n standalone: false,\n selector: 'kms-form',\n template: '',\n})\nexport class FormParentComponent implements OnInit {\n public form!: UntypedFormGroup;\n public formInitialized = false;\n\n @Output() formDataChanged: EventEmitter<UntypedFormGroup> =\n new EventEmitter();\n\n @Input() disabled = false;\n\n ngOnInit() {\n this.formDataChanged.emit(this.form);\n this.form.valueChanges.subscribe(() => {\n this.formDataChanged.emit(this.form);\n });\n }\n}\n","import {\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n inject,\n Injector,\n Input,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { NgControl, UntypedFormControl } from '@angular/forms';\nimport { FormParentComponent } from './form.component';\n\n@Component({\n standalone: false,\n selector: 'kms-formControlParent',\n template: '',\n})\nexport class FormControlParentComponent\n extends FormParentComponent\n implements DoCheck\n{\n @Input() defaultDataOverride = ''; // when we have NO form around, get default via input to set it manually\n @Output() onSelectItemEmitter = new EventEmitter<string>();\n\n @ViewChild('child') public child?: ElementRef<HTMLInputElement>;\n\n public internalValue = '';\n\n private injector = inject(Injector);\n private _ngControl: NgControl | null | undefined = undefined;\n\n get ngControl(): NgControl | null {\n if (this._ngControl === undefined) {\n this._ngControl = this.injector.get(NgControl, null);\n }\n return this._ngControl;\n }\n\n constructor(public renderer: Renderer2) {\n super();\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n\n ngDoCheck() {\n if (this.ngControl?.control?.touched) {\n this.form?.markAllAsTouched();\n }\n }\n\n change(value: string) {\n this.onChange(value);\n this.onTouched();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched: any = () => {};\n\n get value(): string {\n return this.internalValue;\n }\n\n set value(value: string) {\n this.internalValue = value;\n if (value !== undefined && this.internalValue !== value) {\n if (!this.internalValue && this.defaultDataOverride) {\n this.internalValue = this.defaultDataOverride;\n }\n this.onChange(value);\n this.onTouch(value);\n }\n }\n\n writeValue(value: string) {\n this.internalValue = value;\n this.value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n setDisabledState?(isDisabled: boolean) {\n if (this.child?.nativeElement) {\n this.renderer.setProperty(\n this.child.nativeElement,\n 'disabled',\n isDisabled\n );\n }\n\n this.disabled = isDisabled;\n\n if (isDisabled) {\n this.form.disable({ emitEvent: false });\n } else {\n this.form.enable({ emitEvent: false });\n }\n }\n\n validate(_: UntypedFormControl) {\n return this.form.valid ? null : false;\n }\n}\n","import {\n Component,\n computed,\n forwardRef,\n input,\n OnInit,\n Renderer2,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormArray,\n FormControl,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { Color } from '../../../enums/colors.enum';\nimport { FormControlParentComponent } from '../../../parent-components/form-control.component';\n\n/**\n * Dropdown from data component {@link https://leaseplan-dev.rentoffice.de/styleguide#ui-elements}\n */\n@Component({\n selector: 'kms-dropdown-from-data',\n templateUrl: './dropdown-from-data.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DropdownFromDataComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class DropdownFromDataComponent\n extends FormControlParentComponent\n implements OnInit, ControlValueAccessor\n{\n protected readonly Color = Color;\n\n // structured data as a enum set. Can be used in combination with 'optionsPlainArray' to set diferent values by index\n optionsEnum = input<any>();\n\n // structured data as a simple array of elements\n optionsPlainArray = input<any[]>();\n\n // structured data as an array of objects used in combination with the input 'mapKey' and 'mapValue'\n optionsObjArray = input<any[]>();\n // key identifier of the obj. If mapValue doesnt exist, mapKey is also the value\n mapKey = input<any>();\n // value identifier of the obj\n mapValue = input<any>();\n\n // options for the dropdown have a null value at the beginning of the array\n hasNullOption = input(false);\n\n // preselected keys of the dropdown\n preselectedKeys = input<any>();\n\n // translation object for the label and placeholder\n translation = input<ITranslation>();\n placeholder = input('');\n label = input('');\n required = input(false);\n useEnumIndexAsValue = input(false);\n\n // multiple selection\n multiple = input(false);\n\n selectAllText = input<string>();\n disableOptions = input(false);\n searchable = input(false);\n errorMessage = input('');\n\n // prefix / suffix\n prefix = input('');\n prefixIcon = input('');\n suffix = input('');\n suffixIcon = input('');\n\n private readonly _keysAndValues = computed((): { keys: any[]; values: any[] } => {\n let { keys, values } = this.resolveBaseKeysAndValues();\n ({ keys, values } = this.applyEnumOverrides(keys, values));\n\n if (this.hasNullOption()) {\n keys = [null, ...keys];\n values = [null, ...values];\n }\n\n return { keys, values };\n });\n\n private resolveBaseKeysAndValues(): { keys: any[]; values: any[] } {\n const plainArray = this.optionsPlainArray();\n if (plainArray) return { keys: [...plainArray], values: [...plainArray] };\n\n const optionsObjArrayValue = this.optionsObjArray();\n const mapKeyValue = this.mapKey();\n const mapValueValue = this.mapValue();\n\n if (optionsObjArrayValue && mapKeyValue && mapValueValue) {\n return {\n keys: optionsObjArrayValue.map((obj: any) => obj[`${mapKeyValue}`]),\n values: optionsObjArrayValue.map((obj: any) => obj[`${mapValueValue}`]),\n };\n }\n if (optionsObjArrayValue && mapKeyValue) {\n const mapped = optionsObjArrayValue.map((obj: any) => obj[`${mapKeyValue}`]);\n return { keys: mapped, values: mapped };\n }\n\n return { keys: [], values: [] };\n }\n\n private applyEnumOverrides(keys: any[], values: any[]): { keys: any[]; values: any[] } {\n const optionsEnumValue = this.optionsEnum();\n if (!optionsEnumValue) return { keys, values };\n\n const enumObj = optionsEnumValue;\n const enumKeys = Object.keys(enumObj).filter((k) => Number.isNaN(Number(k)));\n const plainArray = this.optionsPlainArray();\n\n if (plainArray) return { keys: enumKeys, values: plainArray };\n\n const enumValues = enumKeys.map((k) => enumObj[k]);\n const isKeyValueEnum = enumKeys.some((_, i) => i !== enumValues[i]);\n\n return {\n keys: enumKeys,\n values: isKeyValueEnum || this.useEnumIndexAsValue() ? enumValues : [...enumKeys],\n };\n }\n\n searchControl = new FormControl('');\n private searchTerm = '';\n\n get keys(): any[] {\n return this._keysAndValues().keys;\n }\n\n get values(): any[] {\n return this._keysAndValues().values;\n }\n\n get filteredKeys(): any[] {\n if (!this.searchTerm) return this.keys;\n return this.keys.filter((_, i) => this.matchesSearch(i));\n }\n\n get filteredValues(): any[] {\n if (!this.searchTerm) return this.values;\n return this.values.filter((_, i) => this.matchesSearch(i));\n }\n\n private matchesSearch(index: number): boolean {\n const display = String(this.setDisplayKey(this.keys[index]) ?? '').toLowerCase();\n return display.includes(this.searchTerm);\n }\n\n constructor(public renderer: Renderer2) {\n super(renderer);\n }\n\n ngOnInit() {\n this.form = new UntypedFormGroup({\n dropdownData: new UntypedFormControl([]),\n });\n this.formInitialized = true;\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.dropdownData;\n this.onChange(value.dropdownData);\n });\n\n this.searchControl.valueChanges.subscribe((term) => {\n this.searchTerm = (term ?? '').toLowerCase();\n });\n\n if (this.pendingValue !== undefined) {\n this.form.patchValue({ dropdownData: this.pendingValue }, { emitEvent: false });\n this.pendingValue = undefined;\n }\n\n const preselected = this.preselectedKeys();\n if (preselected)\n this.form.patchValue({\n dropdownData: preselected,\n });\n\n super.ngOnInit();\n }\n\n /**\n * set the value of the dropdown based if translation is set\n * @param key\n */\n public setDisplayKey(key: any) {\n const translationValue = this.translation();\n if (translationValue) {\n if (translationValue.isPrefix) {\n return translationValue.service?.instant?.(\n translationValue.path + '.' + key\n );\n } else if (translationValue.useKeyAsValue) {\n return translationValue.service?.instant?.(translationValue.path, {\n key: key,\n });\n } else {\n return translationValue.service?.instant?.(translationValue.path);\n }\n }\n return key;\n }\n\n valueChanged(value: any) {\n this.form.patchValue({\n dropdownData: value,\n });\n this.onSelectItemEmitter.emit(value);\n }\n\n get selectedElements() {\n return this.form.controls.dropdownData as FormArray;\n }\n\n allElementsChecked(): boolean {\n return (\n this.values && this.selectedElements?.value?.length === this.values.length\n );\n }\n\n isCheckboxIndeterminate(): boolean {\n return Boolean(\n this.values &&\n this.selectedElements?.value?.length < this.values.length &&\n this.selectedElements?.value?.length !== 0\n );\n }\n\n toggleAllSelection(change: MatCheckboxChange): void {\n if (change.checked) {\n this.checkAllFilters();\n } else {\n this.form.controls.dropdownData.setValue([]);\n }\n }\n\n checkAllFilters() {\n if (this.values) {\n this.form.controls.dropdownData.setValue(this.values);\n }\n }\n\n private pendingValue: any = undefined;\n\n override writeValue(value: any): void {\n super.writeValue(value);\n if (value !== undefined) {\n if (this.formInitialized) {\n this.form.patchValue({ dropdownData: value }, { emitEvent: false });\n } else {\n this.pendingValue = value;\n }\n }\n }\n}\n\n/**\n * Interface that defines the translation object in template\n */\ninterface ITranslation {\n path: string;\n isPrefix?: boolean;\n useKeyAsValue?: boolean;\n service: any;\n}\n","<form [formGroup]=\"form\">\n <mat-form-field\n [attr.required]=\"required()\"\n [floatLabel]=\"placeholder() ? 'always' : 'auto'\"\n >\n <mat-label>{{ label() }}</mat-label>\n <mat-select\n [placeholder]=\"placeholder()\"\n disableOptionCentering\n (selectionChange)=\"valueChanged($event?.value)\"\n [value]=\"value\"\n #child\n [multiple]=\"multiple()\"\n [required]=\"required()\"\n formControlName=\"dropdownData\"\n >\n @if (searchable()) {\n <mat-option>\n <ngx-mat-select-search\n [formControl]=\"searchControl\"\n [placeholderLabel]=\"'Search...'\"\n [noEntriesFoundLabel]=\"'No matches found'\"\n >\n </ngx-mat-select-search>\n </mat-option>\n } @if (selectAllText() && multiple() && !disableOptions()) {\n <mat-checkbox\n color=\"accent\"\n class=\"dropdown-from-data__checkbox\"\n [indeterminate]=\"isCheckboxIndeterminate()\"\n [checked]=\"allElementsChecked()\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleAllSelection($event)\"\n >\n {{ selectAllText() }}\n </mat-checkbox>\n } @for (key of filteredKeys; track key; let i = $index) {\n <mat-option [value]=\"filteredValues[i]\" [disabled]=\"disableOptions()\">\n {{ setDisplayKey(key) || '—' }}\n </mat-option>\n }\n </mat-select>\n @if (prefix()) {\n <span matTextPrefix>{{ prefix() }} </span>\n } @else if (prefixIcon()) {\n <kms-icon matPrefix [icon]=\"prefixIcon()\" aria-hidden=\"true\"></kms-icon>\n } @if (suffix()) {\n <span matTextSuffix> {{ suffix() }}</span>\n } @else if (suffixIcon()) {\n <kms-icon matSuffix [icon]=\"suffixIcon()\" aria-hidden=\"true\"></kms-icon>\n } @else {\n <kms-icon\n icon=\"chevron-down\"\n [size]=\"12\"\n [color]=\"Color.SECONDARY\"\n class=\"dropdown-from-data__arrow\"\n aria-hidden=\"true\"\n matSuffix\n ></kms-icon>\n } @if (errorMessage()) {\n <mat-error>{{ errorMessage() }}</mat-error>\n }\n </mat-form-field>\n</form>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'kms-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss'],\n standalone: false,\n})\nexport class LoaderComponent {\n @Input() loading = false;\n}\n","@if (loading) {\n <div class=\"loading-spinner-shade\">\n <mat-spinner class=\"spinnerMargin\" color=\"accent\" diameter=\"44\"></mat-spinner>\n </div>\n}\n","/**\n * @copyright KMS GmbH\n */\nimport { NullAble } from \"./types/nullable.type\";\n\n\n/**\n * Typical basic address data\n */\nexport class Address {\n public City: NullAble<string>;\n public Name1: NullAble<string>;\n public Name2: NullAble<string>;\n public Street: NullAble<string>;\n public Zip: NullAble<string>;\n}\n","/**\n * @copyright KMS GmbH\n */\nimport { Component, Input, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { Address } from '../../../models/address.model';\n\n/**\n * MarkerOptions class for Marker\n */\nexport class MarkerOptions {\n animation!: number;\n}\n\n/**\n * MarkerLabel class for Marker\n */\nexport class MarkerLabel {\n color!: string;\n text!: string;\n}\n\n/**\n * Marker class\n */\nexport class Marker {\n position!: google.maps.LatLngLiteral;\n label!: MarkerLabel;\n title!: string;\n options!: MarkerOptions;\n}\n\n/**\n * Component to show marker on google map for specific address\n */\n@Component({\n selector: 'kms-map',\n templateUrl: './map.component.html',\n styleUrls: ['./map.component.scss'],\n standalone: false,\n})\nexport class MapComponent implements OnInit {\n @Input() data!: Address;\n\n public markers: Marker[] = [];\n public geoDataFoundForAddress = false;\n public widthSet = false;\n\n public width = '100%';\n public zoom = 15;\n public center: google.maps.LatLngLiteral = {\n lat: 52.097449,\n lng: 12.7436911,\n };\n\n public options: google.maps.MapOptions = {\n mapTypeId: 'roadmap',\n zoomControl: false,\n scrollwheel: false,\n disableDoubleClickZoom: true,\n maxZoom: 15,\n minZoom: 8,\n };\n\n public google: any;\n\n public geocoder: any;\n\n public viewportSubscription?: Subscription;\n\n constructor() {}\n\n ngOnInit() {\n this.findLocation(\n this.data.Street + ' ' + this.data.Zip + ' ' + this.data.City\n );\n }\n\n /**\n * Asks google for geocoordinates of a given address string\n * @input address as string\n */\n findLocation(address: string) {\n if (!this.geocoder) {\n this.geocoder = new google.maps.Geocoder();\n }\n this.geocoder.geocode(\n {\n address: address,\n },\n (\n results: google.maps.GeocoderResult,\n status: google.maps.GeocoderStatus\n ) => {\n if (status === google.maps.GeocoderStatus.OK) {\n this.center.lat = results[0].geometry.location.lat();\n this.center.lng = results[0].geometry.location.lng();\n\n this.addMarker();\n this.geoDataFoundForAddress = true;\n } else {\n console.error(\n 'Sorry, this search of map address produced no results.'\n );\n }\n }\n );\n }\n\n /**\n * Adds a marker to the map\n */\n addMarker() {\n this.markers.push({\n position: {\n lat: this.center.lat,\n lng: this.center.lng,\n },\n label: {\n color: 'blue',\n\n text: this.data.Name1 || '',\n },\n title: this.data.Name1 + ' ' + this.data.Street + ' ' + this.data.Zip,\n options: { animation: google.maps.Animation.DROP },\n });\n }\n\n /**\n * Zooms in into map\n */\n zoomIn() {\n if (this.options.maxZoom && this.zoom < this.options.maxZoom) {\n this.zoom++;\n }\n }\n\n /**\n * Zooms out from map\n */\n zoomOut() {\n if (this.options.minZoom && this.zoom > this.options.minZoom) {\n this.zoom--;\n }\n }\n}\n","@if (geoDataFoundForAddress) {\n <div>\n <google-map\n height=\"415px\"\n [width]=\"width\"\n [zoom]=\"zoom\"\n [center]=\"center\"\n [options]=\"options\"\n >\n @for (marker of markers; track marker) {\n <map-marker\n [position]=\"marker.position\"\n [label]=\"marker.label\"\n [title]=\"marker.title\"\n [options]=\"marker.options\"\n >\n </map-marker>\n }\n </google-map>\n </div>\n}","export enum RadioButtonSize {\n SM = 'small',\n MD = 'medium',\n LG = 'large',\n}\n","/**\n * @copyright KMS GmbH\n */\nimport {\n Component,\n EventEmitter,\n Input,\n Output,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { StylingTheme } from '../../../enums/colors.enum';\nimport { RadioButtonSize } from '../../../enums/radioButtonSize.enum';\n\n@Component({\n selector: 'kms-radiobutton',\n templateUrl: './radiobutton.component.html',\n styleUrls: ['./radiobutton.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioButtonComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class RadioButtonComponent implements ControlValueAccessor {\n @Input() label: string = '';\n @Input() checked: boolean = false;\n @Input() disabled: boolean = false;\n @Input() value: any;\n @Input() size: RadioButtonSize = RadioButtonSize.MD;\n @Input() color: StylingTheme = StylingTheme.PRIMARY;\n\n @Output() onChange: EventEmitter<void> = new EventEmitter<void>();\n\n onRadioChange(event: any): void {\n this.onChange.emit(event);\n }\n\n onTouched: () => void = () => {};\n\n writeValue(value: any): void {\n this.checked = value === this.value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onChange = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<mat-radio-button\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n [ngClass]=\"size\"\n [color]=\"color\"\n [value]=\"value\"\n (change)=\"onChange.emit()\"\n ngDefaultControl\n>\n {{ label }}\n</mat-radio-button>\n","/**\n * @copyright KMS GmbH\n */\n\nimport {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\n\n@Component({\n selector: 'kms-slide-toggle',\n templateUrl: './slide-toggle.component.html',\n styleUrls: ['./slide-toggle.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SlideToggleComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class SlideToggleComponent implements ControlValueAccessor {\n @Input() leftLabel?: string;\n @Input() rightLabel?: string;\n @Input() checked = false;\n @Input() disabled = false;\n\n @Input() name = '';\n\n @Output() change = new EventEmitter();\n\n onChange: any = () => {};\n\n onTouch: any = () => {};\n\n get value(): boolean {\n return this.checked;\n }\n\n set value(value: boolean) {\n this.checked = value;\n this.onChange(value);\n this.onTouch(value);\n }\n\n writeValue(value: any) {\n this.value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n emitOnChange($event: MatSlideToggleChange) {\n this.change.emit($event.checked);\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<div class=\"kms-slide-toggle\">\n @if (leftLabel) {\n <mat-label\n class=\"kms-slide-toggle__label\"\n [class.kms-slide-toggle__label--bold]=\"rightLabel && !checked\"\n >{{ leftLabel }}</mat-label\n >\n }\n <mat-slide-toggle\n [name]=\"name\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [hideIcon]=\"true\"\n (change)=\"emitOnChange($event)\"\n />\n @if (rightLabel) {\n <mat-label\n class=\"kms-slide-toggle__label\"\n [class.kms-slide-toggle__label--bold]=\"leftLabel && checked\"\n >{{ rightLabel }}</mat-label\n >\n }\n </div>\n","/**\n * @copyright KMS GmbH\n */\n\nimport { ChangeContext, Options } from '@angular-slider/ngx-slider';\nimport {\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'kms-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SliderComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class SliderComponent implements ControlValueAccessor {\n @HostBinding('class.kms-slider') kmsSliderClass = true;\n @HostBinding('class.kms-slider--disabled') get disabledClass() {\n return this.disabled;\n }\n\n @Input() disabled = false;\n @Input() options: Options = {};\n @Input() max: number;\n\n @Output() change: EventEmitter<ChangeContext> = new EventEmitter();\n\n private _value = 0;\n\n onChange: any = () => {};\n\n onTouch: any = () => {};\n\n get value(): number {\n return this._value;\n }\n\n set value(value: number) {\n this._value = value;\n this.onChange(value);\n this.onTouch(value);\n }\n\n writeValue(value: any) {\n this._value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n emitOnChange($event: any) {\n this.change.emit($event);\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<ngx-slider\n [(value)]=\"value\"\n [options]=\"options\"\n [highValue]=\"max\"\n (userChangeEnd)=\"change.emit($event)\"\n></ngx-slider>\n","export enum ButtonAppearance {\n BASIC = 'mat-button',\n FLAT = 'mat-flat-button',\n RAISED = 'mat-raised-button',\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Component, computed, input, output, Signal } from '@angular/core';\nimport * as icons from '../../../../assets/icons.json';\nimport { ButtonAppearance } from '../../../enums/buttonAppearance.enum';\nimport { Color, StylingTheme } from '../../../enums/colors.enum';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\n\n@Component({\n selector: 'kms-button',\n templateUrl: './button.component.html',\n standalone: false,\n})\nexport class ButtonComponent {\n color = input<StylingTheme>(StylingTheme.PRIMARY);\n type = input<'button' | 'submit' | 'reset'>('button');\n appearance = input<ButtonAppearance>(ButtonAppearance.FLAT);\n loading = input(false);\n label = input('');\n icon = input<(typeof icons)[number]>();\n disabled = input(false);\n buttonClick = output<Event>();\n rounded = input(false);\n\n public readonly StylingTheme = StylingTheme;\n public readonly IconSize = IconSizePx;\n public readonly ButtonAppearance = ButtonAppearance;\n\n public iconColor: Signal<Color> = computed(() => {\n if (this.disabled() || this.loading()) {\n return Color.DISABLED;\n }\n\n if (this.appearance() !== ButtonAppearance.BASIC) {\n return Color.WHITE;\n }\n\n switch (this.color()) {\n case StylingTheme.PRIMARY:\n return Color.PRIMARY;\n case StylingTheme.SECONDARY:\n return Color.TERTIARY;\n case StylingTheme.WARN:\n return Color.ERROR;\n }\n });\n}\n","<!-- Basic -->\n@if (appearance() == ButtonAppearance.BASIC) {\n<button\n mat-button\n [color]=\"color()\"\n class=\"kms-button\"\n [ngClass]=\"{\n 'kms-button--loading': loading(),\n 'kms-button--basic-primary': color() === StylingTheme.PRIMARY,\n 'kms-button--basic-accent': color() === StylingTheme.SECONDARY,\n 'kms-button--basic-warn': color() === StylingTheme.WARN,\n 'kms-button--rounded': rounded()\n }\"\n [disabled]=\"disabled() || loading()\"\n (click)=\"buttonClick.emit($event)\"\n [type]=\"type()\"\n (keyup)=\"\n ($event.key === 'Enter' || $event.key === 'Space') &&\n buttonClick.emit($event)\n \"\n>\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n}\n\n<!-- Flat -->\n@else if (appearance() == ButtonAppearance.FLAT) {\n<button\n mat-flat-button\n [color]=\"color()\"\n class=\"kms-button\"\n [ngClass]=\"{\n 'kms-button--loading': loading(),\n 'kms-button--flat-primary': color() === StylingTheme.PRIMARY,\n 'kms-button--flat-accent': color() === StylingTheme.SECONDARY,\n 'kms-button--flat-warn': color() === StylingTheme.WARN,\n 'kms-button--rounded': rounded()\n }\"\n [disabled]=\"disabled() || loading()\"\n (click)=\"buttonClick.emit($event)\"\n [type]=\"type()\"\n (keyup)=\"\n ($event.key === 'Enter' || $event.key === 'Space') &&\n buttonClick.emit($event)\n \"\n>\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n}\n\n<!-- Raised -->\n@else if (appearance() == ButtonAppearance.RAISED) {\n<button\n mat-raised-button\n [color]=\"color()\"\n class=\"kms-button\"\n [ngClass]=\"{\n 'kms-button--loading': loading(),\n 'kms-button--raised-primary': color() === StylingTheme.PRIMARY,\n 'kms-button--raised-accent': color() === StylingTheme.SECONDARY,\n 'kms-button--raised-warn': color() === StylingTheme.WARN,\n 'kms-button--rounded': rounded()\n }\"\n [disabled]=\"disabled() || loading()\"\n (click)=\"buttonClick.emit($event)\"\n [type]=\"type()\"\n (keyup)=\"\n ($event.key === 'Enter' || $event.key === 'Space') &&\n buttonClick.emit($event)\n \"\n>\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n}\n\n<ng-template #buttonTemplate>\n @if (loading()) {\n <mat-spinner class=\"kms-button__spinner\" diameter=\"22\"></mat-spinner>\n } @if (icon()) {\n <kms-icon\n class=\"kms-button__icon\"\n [color]=\"iconColor()\"\n [size]=\"IconSize.XXS\"\n [icon]=\"icon()\"\n ></kms-icon>\n }\n {{ label() }}\n</ng-template>\n","import { Component, ElementRef, input, Signal, ViewChild } from '@angular/core';\nimport { Placement } from '@floating-ui/dom';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\n@Component({\n standalone: false,\n selector: 'kms-tooltip-icon',\n templateUrl: './tooltip-icon.component.html',\n styleUrls: ['./tooltip-icon.component.scss'],\n})\nexport class TooltipIconComponent {\n @ViewChild('button') button: ElementRef;\n @ViewChild('tooltip') tooltip: ElementRef;\n tooltipText = input('');\n placement: Signal<Placement> = input();\n delay = input(1000);\n iconSize: Signal<IconSizePx> = input(IconSizePx.XS);\n tooltipAlwaysVisible = input(false);\n icon = input('ic_info');\n}\n","<div #tooltipContent>\n @if (tooltipText()) {\n {{ tooltipText() }}\n } @else {\n <ng-content></ng-content>\n }\n</div>\n\n<kms-icon\n [icon]=\"icon()\"\n [size]=\"iconSize()\"\n [kmsTooltip]=\"tooltipContent\"\n [placement]=\"placement()\"\n [delay]=\"delay()\"\n [alwaysVisible]=\"tooltipAlwaysVisible()\"\n></kms-icon>\n","import { Component, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { FormControlParentComponent } from './../../../parent-components/form-control.component';\n\n@Component({\n standalone: false,\n selector: 'kms-color-input',\n templateUrl: './color-input.component.html',\n styleUrls: ['./color-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorInputComponent),\n multi: true,\n },\n ],\n})\nexport class ColorInputComponent\n extends FormControlParentComponent\n implements OnInit, ControlValueAccessor\n{\n @Input() label = '';\n @Input() tooltipText = '';\n @Input() placeholder = '';\n valid: boolean | null | undefined;\n\n constructor(public renderer: Renderer2) {\n super(renderer);\n }\n\n ngOnInit() {\n this.form = new UntypedFormGroup({\n color: new UntypedFormControl(''),\n });\n\n super.ngOnInit();\n\n this.formInitialized = true;\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.color;\n this.onChange(value.color);\n });\n }\n\n validate(_: UntypedFormControl) {\n // TODO fix to validate complete form\n this.valid = this.matchesHex(this.form.value) ? null : false;\n return (\n this.valid && {\n invalid: !this.valid,\n }\n );\n }\n\n matchesHex(match?: string) {\n if (match) {\n const ret = match.match(/^#[0-9a-f]{6}$/i);\n this.valid = ret && ret.length > 0;\n return ret;\n }\n return false;\n }\n\n updateSelectedColor(value: any) {\n const color = value.target.value;\n this.value = color;\n this.internalValue = color;\n this.change(color);\n }\n}\n","\n@if (formInitialized) {\n <form [formGroup]=\"form\">\n <div>\n <mat-form-field class=\"colorInput\">\n @if (tooltipText) {\n <kms-tooltip-icon [tooltipText]=\"tooltipText\"></kms-tooltip-icon>\n }\n <mat-label>{{ label }}</mat-label>\n <input type=\"text\" [(ngModel)]=\"value\" matInput formControlName=\"color\" [placeholder]=\"placeholder\" [ngClass]=\"{'my-inValid': !matchesHex(value)}\" />\n <input type=\"color\" [value]=\"value && matchesHex(value) ? value : '#ffffff'\" (change)=\"updateSelectedColor($event)\" [ngClass]=\"{'my-inValid': !matchesHex(value)}\" />\n </mat-form-field>\n </div>\n </form>\n}","export enum ButtonDialogType {\n primary = 'primary',\n secondary = 'secondary',\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Component, Inject, NgZone } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ButtonDialogType } from './dialog-data.enum';\nimport { DialogData } from './dialog-data.model';\n\n/**\n * A confirmation dialog component\n */\n@Component({\n standalone: false,\n selector: 'kms-confirmation-dialog',\n templateUrl: './confirmation-dialog.component.html',\n styleUrls: ['./confirmation-dialog.component.scss'],\n})\nexport class ConfirmationDialogComponent {\n ButtonDialogType = ButtonDialogType;\n\n public constructor(\n public dialogRef: MatDialogRef<ConfirmationDialogComponent>,\n public zone: NgZone,\n @Inject(MAT_DIALOG_DATA) public data: DialogData\n ) {\n data.buttons ?? { primary: 'Yes', secondary: 'No' };\n data.message ?? '';\n data.panelClass ?? 'size-auto';\n }\n\n /**\n * Action called when clicked\n * @param clickedButton Whether the primary or secondary button was clicked\n */\n public onClickAction(clickedButton: ButtonDialogType): void {\n this.zone.run(() => {\n this.dialogRef.close(clickedButton);\n this.dialogRef.afterClosed().subscribe(() => {\n const buttonList = document.querySelectorAll(\n '.mat-flat-button, .mat-button'\n );\n let i = 0;\n for (i; i < buttonList.length; i++) {\n buttonList[i].classList.remove('cdk-focused');\n buttonList[i].classList.remove('cdk-program-focused');\n }\n });\n });\n }\n}\n","<div class=\"dialog-container\">\n <div class=\"dialog-header\">\n <h4>{{ data.title }}</h4>\n </div>\n <div class=\"dialog-content\">\n {{ data.message }}\n </div>\n <div class=\"dialog-footer\">\n <button\n mat-flat-button\n color=\"accent\"\n (click)=\"onClickAction(ButtonDialogType.secondary)\"\n >\n {{ data.buttons.secondary }}\n </button>\n <button\n mat-flat-button\n color=\"primary\"\n (click)=\"onClickAction(ButtonDialogType.primary)\"\n >\n {{ data.buttons.primary }}\n </button>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n forwardRef,\n input,\n output,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n FormGroup,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport {\n MatDatepicker,\n MatDatepickerModule,\n} from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { Color } from '../../../enums/colors.enum';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\nimport { IconComponent } from '../../atoms/icon/icon.component';\n\nexport type DateRangeValue = { start: Date | null; end: Date | null };\n\nlet nextId = 0;\n\n@Component({\n selector: 'kms-date-input',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './date-input.component.html',\n styleUrls: ['./date-input.component.scss'],\n imports: [\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatDatepickerModule,\n IconComponent,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateInputComponent),\n multi: true,\n },\n ],\n})\nexport class DateInputComponent implements ControlValueAccessor {\n readonly Color = Color;\n readonly IconSizePx = IconSizePx;\n\n dateChange = output<Date | null>();\n rangeChange = output<DateRangeValue>();\n\n mode = input<'date' | 'range'>('date');\n disabled = input(false);\n label = input('');\n placeholder = input('');\n required = input(false);\n hint = input('');\n errorMessage = input('');\n minDate = input<Date | null>(null);\n maxDate = input<Date | null>(null);\n monthPicker = input(false);\n startView = input<'month' | 'year' | 'multi-year'>('month');\n\n value: WritableSignal<Date | null> = signal(null);\n disabledByForm: WritableSignal<boolean> = signal(false);\n isDisabled = computed(() => this.disabled() || this.disabledByForm());\n\n innerControl = new FormControl<Date | null>(null);\n rangeGroup = new FormGroup({\n start: new FormControl<Date | null>(null),\n end: new FormControl<Date | null>(null),\n });\n\n computedStartView = computed(() =>\n this.monthPicker() ? 'year' : this.startView()\n );\n\n private readonly disabledEffect = effect(() => {\n const disabled = this.isDisabled();\n if (disabled) {\n this.innerControl.disable({ emitEvent: false });\n this.rangeGroup.disable({ emitEvent: false });\n } else {\n this.innerControl.enable({ emitEvent: false });\n this.rangeGroup.enable({ emitEvent: false });\n }\n });\n\n readonly inputId = `kms-date-input-${nextId++}`;\n readonly hintId = `${this.inputId}-hint`;\n readonly errorId = `${this.inputId}-error`;\n\n errorStateMatcher: ErrorStateMatcher = {\n isErrorState: () => !!this.errorMessage(),\n };\n\n onChange: (value: Date | null | DateRangeValue) => void = () => {};\n onTouched: () => void = () => {};\n\n onDateChanged(date: Date | null): void {\n this.value.set(date);\n this.innerControl.setValue(date, { emitEvent: false });\n this.onChange(date);\n this.dateChange.emit(date);\n }\n\n onMonthSelected(date: Date, picker: MatDatepicker<Date>): void {\n if (this.monthPicker()) {\n this.onDateChanged(date);\n picker.close();\n }\n }\n\n onRangeChanged(): void {\n const rangeValue: DateRangeValue = {\n start: this.rangeGroup.value.start ?? null,\n end: this.rangeGroup.value.end ?? null,\n };\n this.onChange(rangeValue);\n this.rangeChange.emit(rangeValue);\n }\n\n writeValue(value: Date | null | DateRangeValue): void {\n if (this.mode() === 'range') {\n const range = (value as DateRangeValue) ?? { start: null, end: null };\n this.rangeGroup.setValue(\n { start: range.start, end: range.end },\n { emitEvent: false }\n );\n } else {\n const date = (value as Date | null) ?? null;\n this.value.set(date);\n this.innerControl.setValue(date, { emitEvent: false });\n }\n }\n\n registerOnChange(fn: (value: Date | null | DateRangeValue) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledByForm.set(isDisabled);\n }\n}\n","@if (mode() === 'date') {\n<mat-form-field class=\"kms-date-input__form-field\">\n <mat-label>{{ label() }}</mat-label>\n <input\n [id]=\"inputId\"\n matInput\n [matDatepicker]=\"picker\"\n [formControl]=\"innerControl\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [attr.aria-required]=\"required()\"\n [attr.aria-invalid]=\"errorMessage() ? true : null\"\n [attr.aria-describedby]=\"\n (hint() ? hintId : '') + (errorMessage() ? ' ' + errorId : '') || null\n \"\n (dateChange)=\"onDateChanged($event.value)\"\n (blur)=\"onTouched()\"\n (click)=\"picker.open()\"\n (keyup)=\"\n ($event.key === 'Enter' || $event.key === 'Space') && picker.open()\n \"\n />\n <mat-datepicker\n #picker\n [startView]=\"computedStartView()\"\n (monthSelected)=\"onMonthSelected($event, picker)\"\n ></mat-datepicker>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\">\n <kms-icon\n class=\"kms-date-input__icon\"\n icon=\"calendar\"\n [color]=\"Color.SECONDARY\"\n [size]=\"IconSizePx.XS\"\n matDatepickerToggleIcon\n ></kms-icon>\n </mat-datepicker-toggle>\n @if (hint()) {\n <mat-hint [id]=\"hintId\">{{ hint() }}</mat-hint>\n }\n <mat-error [id]=\"errorId\" role=\"alert\">{{ errorMessage() }}</mat-error>\n</mat-form-field>\n} @if (mode() === 'range') {\n<mat-form-field class=\"kms-date-input__form-field\">\n <mat-label>{{ label() }}</mat-label>\n <mat-date-range-input\n [rangePicker]=\"rangePicker\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n (click)=\"rangePicker.open()\"\n (keyup)=\"\n ($event.key === 'Enter' || $event.key === 'Space') && rangePicker.open()\n \"\n >\n <input\n matStartDate\n [formControl]=\"rangeGroup.controls.start\"\n [placeholder]=\"placeholder() || 'Start date'\"\n [required]=\"required()\"\n [attr.aria-required]=\"required()\"\n [attr.aria-invalid]=\"errorMessage() ? true : null\"\n [attr.aria-describedby]=\"\n (hint() ? hintId : '') + (errorMessage() ? ' ' + errorId : '') || null\n \"\n (dateChange)=\"onRangeChanged()\"\n (blur)=\"onTouched()\"\n />\n <input\n matEndDate\n [formControl]=\"rangeGroup.controls.end\"\n placeholder=\"End date\"\n (dateChange)=\"onRangeChanged()\"\n (blur)=\"onTouched()\"\n />\n </mat-date-range-input>\n <mat-date-range-picker #rangePicker></mat-date-range-picker>\n <mat-datepicker-toggle matIconSuffix [for]=\"rangePicker\">\n <kms-icon\n class=\"kms-date-input__icon\"\n icon=\"calendar\"\n [color]=\"Color.SECONDARY\"\n [size]=\"IconSizePx.XS\"\n matDatepickerToggleIcon\n ></kms-icon>\n </mat-datepicker-toggle>\n @if (hint()) {\n <mat-hint [id]=\"hintId\">{{ hint() }}</mat-hint>\n }\n <mat-error [id]=\"errorId\" role=\"alert\">{{ errorMessage() }}</mat-error>\n</mat-form-field>\n}\n","import { Component, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { NullAble } from '../../../models';\n\nimport { FormControlParentComponent } from './../../../parent-components/form-control.component';\n\n@Component({\n standalone: false,\n selector: 'kms-enum-radiogroup',\n templateUrl: './enum-radiogroup.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EnumRadiogroupComponent),\n multi: true,\n },\n ],\n})\nexport class EnumRadiogroupComponent\n extends FormControlParentComponent\n implements OnInit, ControlValueAccessor\n{\n @Input() header: NullAble<String>;\n @Input() optionsEnum: any;\n @Input() translationPrefix = '';\n\n public optionValues: any;\n\n constructor(public renderer: Renderer2) {\n super(renderer);\n }\n\n ngOnInit() {\n this.optionValues = Object.keys(this.optionsEnum).filter(\n (x) => !(parseInt(x) >= 0)\n );\n this.form = new UntypedFormGroup({\n enumData: new UntypedFormControl([]),\n });\n this.formInitialized = true;\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.enumData;\n this.onChange(value.enumData);\n });\n\n super.ngOnInit();\n }\n}\n","<form [formGroup]=\"form\">\n <div>{{ header }}</div>\n <mat-radio-group formControlName=\"enumData\" [disabled]=\"disabled\" #child>\n @for (choice of optionValues; track choice) {\n <mat-radio-button\n [value]=\"choice\"\n [checked]=\"value === choice\"\n >{{ translationPrefix + '.' + choice | translate }}</mat-radio-button\n >\n }\n </mat-radio-group>\n </form>\n","/**\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { NullAble } from \"./types/nullable.type\";\n\n\n/**\n * Check if null or undefined\n * @param value value that is being checked\n */\nexport function isValue<T>(value: NullAble<T>): value is T {\n if (value === null) {\n return false;\n }\n if (typeof value === 'undefined') {\n return false;\n }\n return true;\n}\n","import {\n ApplicationRef,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\n\nimport {\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { IconSizePx } from '../../../enums/iconSize.enum';\nimport { isValue } from '../../../models/is-value.function';\nimport { AttachedFileDTO } from '../../../models/types/attached-file-dto.model';\n\n// Max size in bytes of uploaded image\nconst MAX_SIZE_BYTES = 2097152;\n\n@Component({\n standalone: false,\n selector: 'kms-file-input',\n templateUrl: './file-input.component.html',\n styleUrls: ['./file-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileInputComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => FileInputComponent),\n multi: true,\n },\n ],\n})\nexport class FileInputComponent implements ControlValueAccessor, OnInit {\n @ViewChild('fileInput') public fileInput: any;\n\n @Input() label = '';\n\n @Input() previewImage = true;\n @Input() allowRemove = true;\n @Input() previewImageText = '';\n @Input() maxSizeBytes = MAX_SIZE_BYTES;\n @Input() resizePixels = 0;\n @Input() acceptedFileMimetypes = 'image/jpeg, image/jpg, image/png';\n\n form = new UntypedFormGroup({\n ImageIdent: new UntypedFormControl(''),\n ImageLink: new UntypedFormControl(''),\n Filename: new UntypedFormControl(''),\n ImageAsDataURL: new UntypedFormControl(''),\n Text: new UntypedFormControl(''),\n });\n\n subscriptions: Subscription[] = [];\n newImageLoading = false;\n\n IconSizePx = IconSizePx;\n\n @Output() formDataChanged: EventEmitter<UntypedFormGroup> =\n new EventEmitter();\n\n /**\n * Constructor\n * @param appRef\n * @param cd\n * @param translateService\n * @param renderer\n */\n constructor(\n public appRef: ApplicationRef,\n public cd: ChangeDetectorRef,\n public renderer: Renderer2\n ) {}\n\n /**\n * Click on button triggers file-input to open OS file dialog\n */\n selectImageOverlay() {\n this.fileInput.nativeElement.click();\n }\n\n /**\n * Function to manage the input image\n * Returns an error if the file exceeds maximum wanted filesize (Mb).\n * @param ev\n * @returns\n */\n selectImage(ev: any) {\n if (ev.target.files && ev.target.files[0]) {\n const file: File = ev.target.files[0];\n\n if (file.size > this.maxSizeBytes) {\n this.clearInputValue(ev);\n return;\n } else {\n this.newImageLoading = true;\n\n if (this.resizePixels > 0) {\n const logoUrl = URL.createObjectURL(file);\n const imgEl = document.createElement('img');\n imgEl.addEventListener('load', () => {\n const resizedLogo = this.resizeImage(imgEl, this.resizePixels);\n const newFile = this.generateModel(\n file.name,\n resizedLogo,\n this.value.ImageIdent,\n this.value.ImageLink,\n this.value.Text\n );\n this.value = newFile;\n this.newImageLoading = false;\n this.cd.markForCheck();\n });\n imgEl.src = logoUrl;\n } else {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (e: any) => {\n const newFile = this.generateModel(\n file.name,\n e.target.result,\n this.value.ImageIdent,\n this.value.ImageLink,\n this.value.Text\n );\n this.value = newFile;\n this.newImageLoading = false;\n this.cd.markForCheck();\n };\n }\n }\n } else {\n console.warn('No file selected');\n }\n }\n\n /**\n * Resize an image\n * @param imgEl\n * @param wantedWidth as number\n * @returns string\n */\n private resizeImage(imgEl: any, wantedWidth: number) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const aspect = imgEl.width / imgEl.height;\n canvas.width = wantedWidth;\n canvas.height = wantedWidth / aspect;\n if (isValue(ctx)) ctx.drawImage(imgEl, 0, 0, canvas.width, canvas.height);\n return canvas.toDataURL();\n }\n\n /**\n * Generate default object\n * @param name as string\n * @param content as string\n * @returns AttachedFileDTO\n */\n generateModel(\n name?: string,\n content?: string,\n ident?: string,\n imageLink?: string,\n text?: string\n ) {\n return {\n ImageIdent: ident ? ident : '',\n Filename: name ? name : '',\n ImageAsDataURL: content ? content : '',\n ImageLink: imageLink ? imageLink : '',\n Text: text ? text : '',\n } as AttachedFileDTO;\n }\n\n /**\n * Remove image\n */\n removeFromList() {\n this.value = this.generateModel('', '', '', '');\n }\n\n /**\n * get value\n */\n get value(): AttachedFileDTO {\n return this.form.value;\n }\n\n /**\n * set value\n */\n set value(value: AttachedFileDTO) {\n this.form.setValue(value);\n this.onChange(value);\n this.onTouch();\n this.formDataChanged.emit(this.form);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ngOnInit() {}\n\n ngOnDestroy() {\n this.subscriptions.forEach((s) => s.unsubscribe());\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n writeValue(value: AttachedFileDTO | null) {\n if (value) {\n this.form.setValue(value);\n }\n\n if (value === null) {\n this.form.reset();\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\n validate(_: UntypedFormControl) {\n return this.form.valid ? null : { styles: { valid: false } };\n }\n\n /**\n * OnClick event listener of input#fileInput to clear his input value\n */\n clearInputValue(ev: any) {\n const element = ev.target as HTMLInputElement;\n element.value = '';\n }\n}\n","<form [formGroup]=\"form\" (change)=\"newImageLoading = true\" class=\"fileInput\">\n @if (form.value.Filename && previewImage) {\n <div>\n @if (newImageLoading) {\n <div>\n {{ 'file-input.loading' | translate }}\n </div>\n }\n @if (!newImageLoading) {\n <div>\n <div class=\"\">\n <div class=\"\">\n @if (\n form.value.ImageLink &&\n form.value.ImageLink !== '' &&\n !(form.value.ImageAsDataURL && form.value.ImageAsDataURL !== '')\n ) {\n <img\n [src]=\"form.value.ImageAsDataURL\"\n [src]=\"form.value.ImageLink\"\n style=\"height: 40px; width: fit-content\"\n />\n }\n @if (\n form.value.ImageAsDataURL && form.value.ImageAsDataURL !== ''\n ) {\n <img\n [src]=\"form.value.ImageAsDataURL\"\n style=\"height: 40px; width: fit-content\"\n />\n }\n </div>\n <div class=\"\">{{ form.value.Filename }}</div>\n <div class=\"\">\n @if (allowRemove) {\n <div (click)=\"removeFromList()\">\n <kms-icon\n icon=\"trash\"\n [size]=\"IconSizePx.XS\"\n iconClass=\"color-black\"\n ></kms-icon>\n {{ 'file-input.remove' }}\n </div>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n @if (!previewImage) {\n <div>\n <div class=\"\">{{ form.value.Filename }}</div>\n </div>\n }\n\n <button\n (click)=\"selectImageOverlay()\"\n class=\"button-primary-font-color\"\n mat-stroked-button\n >\n <span>{{ label }}</span>\n </button>\n <input\n type=\"file\"\n [accept]=\"acceptedFileMimetypes\"\n style=\"display: none\"\n #fileInput\n (click)=\"clearInputValue($event)\"\n (change)=\"selectImage($event)\"\n />\n\n <input type=\"hidden\" formControlName=\"ImageIdent\" />\n <input type=\"hidden\" formControlName=\"ImageLink\" />\n <input type=\"hidden\" formControlName=\"Filename\" />\n <input type=\"hidden\" formControlName=\"ImageAsDataURL\" />\n <input type=\"hidden\" formControlName=\"Text\" />\n</form>\n","/**\n * @copyright KMS GmbH\n */\n\nimport { state, style, trigger } from '@angular/animations';\nimport { Component, ElementRef, Input, ViewChild } from '@angular/core';\n\n@Component({\n standalone: false,\n selector: 'kms-flyout',\n templateUrl: './flyout.component.html',\n styleUrls: ['./flyout.component.scss'],\n animations: [\n trigger('dropdownAnimation', [\n state(\n 'true',\n style({\n height: '{{targetHeight}}',\n transition: 'height {{animationTime}}ms ease-in-out',\n }),\n {\n params: {\n targetHeight: '300px',\n animationTime: 3000,\n },\n }\n ),\n state(\n 'false',\n style({\n height: 0,\n transition: 'height {{animationTime}}ms ease-in-out',\n }),\n {\n params: {\n targetHeight: '300px',\n opacity: 0,\n animationTime: 3000,\n },\n }\n ),\n ]),\n ],\n})\nexport class FlyoutComponent {\n @Input() icon = 'filter';\n\n isDropdownOpened = false;\n targetHeight = '0';\n animationTime = 5000;\n\n @Input() headerCssClass = '';\n @Input() bodyCssClass = '';\n\n @Input() headerTitle = '';\n @Input() headerText = '';\n @Input() hasButtonForMore = false;\n @Input() moreText = '';\n @Input() lessText = '';\n\n @ViewChild('content') content: ElementRef | undefined;\n\n @ViewChild('flyoutHeader') flyoutHeader: ElementRef | undefined;\n\n /**\n * Open/close dropdown if click on header.\n * Except, if mode is set to hasButtonForMore. When there is a extra button to open/close\n */\n toggleDropdownHeader() {\n if (!this.hasButtonForMore) {\n this.toggleDropdown();\n }\n }\n\n /**\n * Open or close the dropdown\n */\n toggleDropdown() {\n this.isDropdownOpened = !this.isDropdownOpened;\n }\n\n /**\n * Set the height of the dropdown list items dynamic - needed for the animation\n */\n setDropdownListHeight(contentHeight: number) {\n this.targetHeight = `${contentHeight}px`;\n }\n}\n","<div class=\"flyout\">\n <div\n (click)=\"toggleDropdownHeader()\"\n [ngClass]=\"headerCssClass\"\n >\n <span [innerHtml]=\"headerTitle | kmsSafeHtml\"></span>\n <span [innerHtml]=\"headerText | kmsSafeHtml\"></span>\n\n <ng-content select=\"[header]\"></ng-content>\n\n @if (hasButtonForMore) {\n <button\n type=\"button\"\n (click)=\"toggleDropdown()\"\n class=\"flyout__more-toggle\"\n [attr.aria-expanded]=\"isDropdownOpened\"\n >\n @if (!isDropdownOpened) {\n <span>\n {{ moreText }}\n <kms-icon [icon]=\"'chevron-down'\" [size]=\"16\"> </kms-icon>\n </span>\n }\n @if (isDropdownOpened) {\n <span>\n {{ lessText }}\n <kms-icon [icon]=\"'chevron-top'\" [size]=\"16\"> </kms-icon>\n </span>\n }\n </button>\n }\n </div>\n <div\n class=\"flyout__body\"\n [ngClass]=\"bodyCssClass\"\n tabindex=\"0\"\n [@dropdownAnimation]=\"{\n value: isDropdownOpened,\n params: { targetHeight: targetHeight, animationTime: '500' }\n }\"\n getMaxHeight=\"flyout__content\"\n (sumOfHeight)=\"setDropdownListHeight($event)\"\n #flyoutHeader\n >\n @if (isDropdownOpened || !hasButtonForMore) {\n <div class=\"flyout__content\" #content>\n <ng-content></ng-content>\n </div>\n }\n </div>\n</div>\n","/**\n * @copyright KMS GmbH\n */\n\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n} from '@angular/core';\nimport { SwiperContainer, register } from 'swiper/element/bundle';\nimport { ImageSnippet } from '../../../models/image-snippet';\n\nregister();\n\n@Component({\n standalone: false,\n selector: 'kms-image-slider',\n templateUrl: './image-slider.component.html',\n})\nexport class ImageSliderComponent implements OnChanges, AfterViewInit {\n @Input() slides!: string[];\n @Input() editMode = false;\n @Input() imagesToSave?: ImageSnippet[];\n @Output() deleteImageEvent: EventEmitter<number> = new EventEmitter();\n @Output() orderChanged: EventEmitter<ImageSnippet[]> = new EventEmitter();\n\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit() {\n this.initializeSwipers();\n }\n\n ngOnChanges() {\n this.updateSwipers();\n }\n\n initializeSwipers() {\n const swiper1 = this.el.nativeElement.children[0]\n .children[0] as SwiperContainer;\n const swiper2 = this.el.nativeElement.children[0]\n .children[1] as SwiperContainer;\n\n Object.assign(swiper1, {\n slidesPerView: 1,\n navigation: true,\n thumbs: {\n swiper: swiper2,\n },\n pagination: {\n clickable: true,\n },\n });\n\n Object.assign(swiper2, {\n slidesPerView: 4,\n freeMode: true,\n navigation: true,\n });\n\n swiper1.initialize();\n swiper2.initialize();\n }\n\n updateSwipers(delayMs = 100) {\n const swiper1 = this.el.nativeElement.children[0]\n .children[0] as SwiperContainer;\n const swiper2 = this.el.nativeElement.children[0]\n .children[1] as SwiperContainer;\n\n if (swiper1.swiper && swiper2.swiper) {\n setTimeout(() => {\n swiper1.swiper.update();\n swiper2.swiper.update();\n }, delayMs);\n }\n }\n\n deleteImage(index: number) {\n this.deleteImageEvent.emit(index);\n this.updateSwipers(2500);\n }\n\n onOrderChanged(event: CdkDragDrop<string[]>) {\n if (this.slides && this.imagesToSave) {\n moveItemInArray(this.slides, event.previousIndex, event.currentIndex);\n moveItemInArray(\n this.imagesToSave,\n event.previousIndex,\n event.currentIndex\n );\n this.orderChanged.emit(this.imagesToSave);\n this.updateSwipers();\n }\n }\n}\n","<div class=\"image-slider-container\">\n <swiper-container\n class=\"swiper-main-view-container\"\n thumbs-swiper=\".swiper-carousel-container\"\n >\n @for (slide of slides; track slide) {\n <swiper-slide>\n <img [src]=\"slide\" loading=\"lazy\" />\n </swiper-slide>\n }\n </swiper-container>\n\n <swiper-container\n class=\"swiper-carousel-container\"\n thumbsSlider=\"\"\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"onOrderChanged($event)\"\n >\n @for (slide of slides; track slide; let index = $index) {\n <swiper-slide\n [class.swiper-slide-default]=\"index === 0 && editMode\"\n >\n @if (editMode) {\n <div>\n <button cdkDrag class=\"drag-button\" mat-menu-item></button>\n <button\n class=\"delete-button\"\n mat-menu-item\n (click)=\"deleteImage(index)\"\n >\n <kms-icon icon=\"trash\" [size]=\"15\"></kms-icon>\n </button>\n </div>\n }\n <img [src]=\"slide\" loading=\"lazy\" />\n @if (index === 0 && editMode) {\n <div class=\"swiper-slide-default-text\">\n {{ 'common.defaultImage' | translate }}\n </div>\n }\n </swiper-slide>\n }\n </swiper-container>\n</div>\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Component, Input, OnInit } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { Color } from '../../../enums/colors.enum';\n\n/**\n * A generic dialog component\n */\n@Component({\n standalone: false,\n selector: 'kms-accordion-item',\n templateUrl: './kms-accordion-item.component.html',\n styleUrls: ['./kms-accordion-item.component.scss'],\n})\nexport class KMSAccordionItemComponent implements OnInit {\n public itemTitleTrustHtml: SafeHtml | undefined;\n @Input() public showAsCard = false;\n @Input() public isSmall = false;\n @Input() public expanded = false;\n @Input()\n public set itemTitle(val: string) {\n this.itemTitleTrustHtml = this.sanitizer.bypassSecurityTrustHtml(val);\n }\n\n Color = Color;\n panelOpenState = false;\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n ngOnInit() {}\n}\n","<mat-expansion-panel\n class=\"kms-accordion\"\n [ngClass]=\"{\n 'kms-accordion--flat': !showAsCard,\n 'kms-accordion--small': isSmall\n }\"\n (opened)=\"panelOpenState = true\"\n (closed)=\"panelOpenState = false\"\n [expanded]=\"expanded\"\n hideToggle=\"true\"\n >\n <mat-expansion-panel-header class=\"kms-accordion__header\">\n <mat-panel-title class=\"mat-subheading-2 kms-accordion__title\">\n <div [innerHtml]=\"itemTitleTrustHtml\"></div>\n <ng-content select=\"[itemTitleElement]\"></ng-content>\n </mat-panel-title>\n <div class=\"kms-accordion__header-icon-wrapper\">\n @if (!panelOpenState) {\n <kms-icon\n icon=\"ic_plus\"\n [color]=\"Color.PRIMARY\"\n [size]=\"isSmall ? 16 : 22\"\n ></kms-icon>\n }\n @if (panelOpenState) {\n <kms-icon\n icon=\"ic_minus\"\n [color]=\"Color.PRIMARY\"\n [size]=\"isSmall ? 16 : 22\"\n ></kms-icon>\n }\n </div>\n </mat-expansion-panel-header>\n <ng-content></ng-content>\n</mat-expansion-panel>\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport {\n Component,\n forwardRef,\n input,\n model,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Color } from '../../../enums/colors.enum';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\n\n@Component({\n standalone: false,\n selector: 'kms-numeric-input',\n templateUrl: './numeric-input.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumericInputComponent),\n multi: true,\n },\n ],\n})\nexport class NumericInputComponent implements ControlValueAccessor {\n disabled = model(false);\n min = input<number>(0);\n label = input('');\n\n numericValue: WritableSignal<number> = signal(0);\n touched: WritableSignal<boolean> = signal(false);\n Color = Color;\n IconSizePx = IconSizePx;\n\n constructor() {}\n\n get value(): number {\n return this.numericValue();\n }\n\n set value(value: number) {\n this.numericValue.set(value);\n }\n\n onChange: (value?: number) => void = () => {\n //\n };\n onTouched = () => {\n //\n };\n\n writeValue(value: number) {\n this.value = value;\n }\n\n add() {\n this.markAsTouched();\n if (!this.disabled()) {\n this.numericValue.update((value) => value + 1);\n this.onChange(this.numericValue());\n }\n }\n\n minus() {\n this.markAsTouched();\n if (!this.disabled() && this.numericValue() > this.min()) {\n this.numericValue.update((value) => value - 1);\n this.onChange(this.numericValue());\n }\n }\n\n markAsTouched() {\n if (!this.touched) {\n this.onTouched();\n this.touched.set(true);\n }\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n registerOnChange(onChange: (value?: number) => void) {\n this.onChange = onChange;\n }\n\n registerOnTouched(onTouched: () => void) {\n this.onTouched = onTouched;\n }\n}\n","@if (label()) {\n <mat-label>{{ label() }}</mat-label>\n}\n<div class=\"numeric-input\" [ngClass]=\"{ disabled: disabled() }\">\n <kms-icon\n id=\"numeric-input-minus\"\n class=\"numeric-input__icon\"\n aria-hidden=\"true\"\n icon=\"ic_minus\"\n [color]=\"disabled() ? Color.DISABLED : Color.SECONDARY\"\n [size]=\"10\"\n (click)=\"minus()\"\n (keyup)=\"($event.key === 'Enter' || $event.key === 'Space') && minus()\"\n >\n </kms-icon>\n <strong>{{ numericValue() }}</strong>\n <kms-icon\n id=\"numeric-input-plus\"\n class=\"numeric-input__icon\"\n aria-hidden=\"true\"\n icon=\"ic_plus\"\n [color]=\"disabled() ? Color.DISABLED : Color.SECONDARY\"\n [size]=\"10\"\n (click)=\"add()\"\n (keyup)=\"($event.key === 'Enter' || $event.key === 'Space') && add()\"\n >\n </kms-icon>\n</div>\n","/**\n * @copyright KMS GmbH\n */\n\nimport {\n Component,\n computed,\n EventEmitter,\n forwardRef,\n input,\n Output,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { isEmpty } from 'lodash';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\n\n@Component({\n standalone: false,\n selector: 'kms-password',\n templateUrl: './password.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PasswordComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => PasswordComponent),\n multi: true,\n },\n ],\n})\nexport class PasswordComponent implements ControlValueAccessor, Validator {\n @Output() change: EventEmitter<string> = new EventEmitter();\n @Output() submit: EventEmitter<string> = new EventEmitter();\n\n disabled = input(false);\n label = input('Password');\n withStrength = input(false);\n lowerCaseCriteriaMsg = input('At least one lowercase letter');\n upperCaseCriteriaMsg = input('At least one uppercase letter');\n numberCriteriaMsg = input('At least one number');\n specialCharCriteriaMsg = input(\n 'At least one special character (-.!.?,$,&,*,+,#,%)'\n );\n minCharsCriteriaMsg = input('At least 10 characters');\n\n IconSizePx = IconSizePx;\n value: WritableSignal<string> = signal('');\n showPassword: WritableSignal<boolean> = signal(false);\n eyeIconIsBeingPressed = signal(false);\n\n validateUppercase = computed(() => {\n const regex = /^(?=.*?[A-Z]).{1,}$/;\n\n return regex.test(this.value());\n });\n\n validateLowercase = computed(() => {\n const regex = /^(?=.*?[a-z]).{1,}$/;\n\n return regex.test(this.value());\n });\n\n validateSpecialChar = computed(() => {\n const regex = /^(?=.*?[-!?$&*+#%]).{1,}$/;\n\n return regex.test(this.value());\n });\n\n validateNumber = computed(() => {\n const regex = /^(?=.*?[0-9]).{1,}$/;\n\n return regex.test(this.value());\n });\n\n validateMinimumChar = computed(() => {\n return this.value().length >= 10;\n });\n\n validations = computed(() => {\n return [\n {\n text: this.upperCaseCriteriaMsg,\n isValid: this.validateUppercase,\n error: 'uppercase',\n },\n {\n text: this.lowerCaseCriteriaMsg,\n isValid: this.validateLowercase,\n error: 'lowercase',\n },\n {\n text: this.specialCharCriteriaMsg,\n isValid: this.validateSpecialChar,\n error: 'specialChar',\n },\n {\n text: this.numberCriteriaMsg,\n isValid: this.validateNumber,\n error: 'number',\n },\n {\n text: this.minCharsCriteriaMsg,\n isValid: this.validateMinimumChar,\n error: 'minChars',\n },\n ];\n });\n\n keypress($event: KeyboardEvent) {\n if ($event.key === 'Enter') {\n this.submit.emit();\n }\n }\n\n valueChanged(event: Event) {\n const { value } = event.target as HTMLInputElement;\n this.onChange(value);\n this.value.set(value);\n this.change.emit(value);\n }\n\n onChange: any = () => {};\n onTouch: any = () => {};\n\n writeValue(value: any) {\n this.value.set(value);\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n validate({ value }: FormControl): ValidationErrors | null {\n if (!this.withStrength()) return null;\n\n this.value.set(value);\n const result = {};\n\n for (const validation of this.validations()) {\n if (!validation.isValid()) {\n result[validation.error] = true;\n }\n }\n\n return isEmpty(result) ? null : result;\n }\n}\n","<mat-form-field class=\"kms-password__form-field\">\n <mat-label>{{ label() }}</mat-label>\n <input\n [type]=\"showPassword() ? 'text' : 'password'\"\n matInput\n (input)=\"valueChanged($event)\"\n [disabled]=\"disabled()\"\n (keypress)=\"keypress($event)\"\n #password=\"matInput\"\n />\n @if (showPassword()) {\n <kms-icon\n class=\"kms-time-input__suffix\"\n matSuffix\n icon=\"ic_eye\"\n [size]=\"IconSizePx.XS\"\n (click)=\"showPassword.set(false)\"\n (mousedown)=\"eyeIconIsBeingPressed.set(true)\"\n (mouseup)=\"eyeIconIsBeingPressed.set(false)\"\n ></kms-icon>\n } @else {\n <kms-icon\n class=\"kms-time-input__suffix\"\n matSuffix\n icon=\"ic_eye_active\"\n [size]=\"IconSizePx.XS\"\n (click)=\"showPassword.set(true)\"\n (mousedown)=\"eyeIconIsBeingPressed.set(true)\"\n (mouseup)=\"eyeIconIsBeingPressed.set(false)\"\n ></kms-icon>\n }\n</mat-form-field>\n\n@if ((eyeIconIsBeingPressed() || password.focused) && withStrength()) {\n<mat-card appearance=\"outlined\">\n <mat-card-content class=\"kms-password__card\">\n <mat-list role=\"list\">\n @for (validation of validations(); track validation) {\n <mat-list-item role=\"listitem\">\n <div class=\"kms-password__strength-item\">\n @if(validation.isValid()) {\n <kms-icon\n [size]=\"IconSizePx.XS\"\n icon=\"ic_check\"\n iconClass=\"color-success\"\n ></kms-icon>\n }@else {\n <kms-icon\n [size]=\"IconSizePx.XS\"\n icon=\"ic_abbrechen\"\n iconClass=\"color-warn\"\n ></kms-icon>\n } {{ validation.text() }}\n </div></mat-list-item\n >\n }\n </mat-list>\n </mat-card-content>\n</mat-card>\n}\n","import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { StylingTheme } from '../../../enums/colors.enum';\nimport { RadioButtonSize } from '../../../enums/radioButtonSize.enum';\nimport { TextValuePair } from '../../../models';\n\nexport interface RadiobuttonInterface extends TextValuePair {\n Disabled?: boolean;\n InfoText?: string;\n}\n\n@Component({\n standalone: false,\n selector: 'kms-radiogroup',\n templateUrl: './radiogroup.component.html',\n styleUrls: ['./radiogroup.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n ],\n})\nexport class RadioGroupComponent implements ControlValueAccessor {\n @Input() options: RadiobuttonInterface[] = [];\n @Input() disabled: boolean = false;\n @Input() value: any = null;\n @Input() infoText?: string;\n\n @Input() color: StylingTheme = StylingTheme.PRIMARY;\n @Input() size: RadioButtonSize = RadioButtonSize.MD;\n @Input() direction: 'row' | 'column' = 'row';\n\n onChange = (value: any) => {\n this.value = value;\n };\n\n onTouched = () => {};\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n handleChange(value: any) {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n }\n}\n","@if (options && options.length > 0) {\n<mat-radio-group\n class=\"radiogroup\"\n [value]=\"value\"\n (change)=\"handleChange($event.value)\"\n [disabled]=\"disabled\"\n [ngStyle]=\"{ 'flex-direction': direction }\"\n>\n @if (infoText) {\n <kms-tooltip-icon\n [class.margin-left]=\"direction == 'column'\"\n [tooltipText]=\"infoText\"\n ></kms-tooltip-icon>\n } @for (option of options; track $index) {\n <div class=\"radiobutton-container\">\n <kms-radiobutton\n [label]=\"option.Text\"\n [value]=\"option.Value\"\n [checked]=\"value === option.Value\"\n [disabled]=\"disabled || option.Disabled\"\n [size]=\"size\"\n [color]=\"color\"\n ></kms-radiobutton>\n @if (option.InfoText) {\n <kms-tooltip-icon [tooltipText]=\"option.InfoText\"></kms-tooltip-icon>\n }\n </div>\n }\n</mat-radio-group>\n}\n","export enum SalutationEnum {\n NOT_SPECIFIED = 'Keine Anrede',\n MALE = 'Herr',\n FEMALE = 'Frau',\n}\n","import { Component, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { NullAble } from '../../../models';\nimport { SalutationEnum } from '../../../models/salutation.enum';\n\nimport { FormControlParentComponent } from './../../../parent-components/form-control.component';\n\n@Component({\n standalone: false,\n selector: 'kms-salutation-dropdown',\n templateUrl: './salutation-dropdown.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SalutationDropdownComponent),\n multi: true,\n },\n ],\n})\nexport class SalutationDropdownComponent\n extends FormControlParentComponent\n implements OnInit, ControlValueAccessor\n{\n @Input() placeholder: NullAble<string>;\n\n //For view\n SalutationEnum = SalutationEnum;\n Object = Object;\n\n constructor(public renderer: Renderer2) {\n super(renderer);\n }\n\n ngOnInit() {\n this.form = new UntypedFormGroup({\n salut: new UntypedFormControl(''),\n });\n this.formInitialized = true;\n\n //somehow for dropowns we have to set value manually with timeout for default value\n setTimeout(() => {\n this.form.controls['salut'].setValue(this.value ? this.value : '');\n }, 1000);\n\n this.form.valueChanges.subscribe((value) => {\n this.onChange(value.salut);\n });\n\n super.ngOnInit();\n }\n}\n","<form [formGroup]=\"form\" class=\"row\">\n <mat-form-field class=\"col\">\n <mat-select\n disableOptionCentering\n formControlName=\"salut\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n #child\n >\n <mat-option [value]=\"SalutationEnum.NOT_SPECIFIED\">{{\n 'general.salutation.' + Object.keys(SalutationEnum)[0]?.toLowerCase()\n | translate\n }}</mat-option>\n <mat-option [value]=\"SalutationEnum.MALE\">{{\n 'general.salutation.' + Object.keys(SalutationEnum)[1]?.toLowerCase()\n | translate\n }}</mat-option>\n <mat-option [value]=\"SalutationEnum.FEMALE\">{{\n 'general.salutation.' + Object.keys(SalutationEnum)[2]?.toLowerCase()\n | translate\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n</form>\n","/**\n * General Image Model\n */\nexport class ImageSnippet {\n status = 'init';\n constructor(\n public src: string,\n public fileName: string,\n public srcType = ImageSourceType.ByteArray,\n ) {}\n }\n\nexport enum ImageSourceType {\n Ident = 'Idnet',\n ByteArray = 'ByteArray',\n URL = 'URL'\n}\n","import { NullAble } from './types/nullable.type';\n\nexport class TextValuePairArray {\n Items: NullAble<TextValuePair[]>;\n}\n\nexport class TextValuePair {\n Text: NullAble<string>;\n Value: NullAble<any>;\n\n constructor(text: string, value: any) {\n this.Text = text;\n this.Value = value;\n }\n}\n\nexport class LabelValuePair {\n Label: NullAble<string>;\n Value: NullAble<string>;\n\n constructor(label: string, value: string) {\n this.Label = label;\n this.Value = value;\n }\n}\n\nexport class KeyValuePair {\n Key: NullAble<string>;\n Value: NullAble<string>;\n\n constructor(key: string, value: string) {\n this.Key = key;\n this.Value = value;\n }\n}\n","/**\n * Attached File DTO\n */\nexport class AttachedFileDTO {\n ImageIdent?: string;\n ImageLink?: string;\n Filename?: string;\n ImageAsDataURL?: string;\n CreateSmallImage?: boolean;\n Text?: string;\n}\n","/**\n * @copyright KMS GmbH\n */\n\nexport type NullAble<T> = T | null | undefined;\n","import { Component, forwardRef, OnInit, Renderer2 } from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { isValue } from '../../../models';\nimport { SalutationEnum } from '../../../models/salutation.enum';\nimport { FormControlParentComponent } from '../../../parent-components/form-control.component';\n\n@Component({\n standalone: false,\n selector: 'kms-salutation-radiogroup',\n templateUrl: './salutation-radiogroup.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SalutationRadiogroupComponent),\n multi: true,\n },\n ],\n})\nexport class SalutationRadiogroupComponent\n extends FormControlParentComponent\n implements OnInit, ControlValueAccessor\n{\n //For view\n SalutationEnum = SalutationEnum;\n Object = Object;\n\n constructor(public renderer: Renderer2) {\n super(renderer);\n }\n\n ngOnInit() {\n this.form = new UntypedFormGroup({\n salut: new UntypedFormControl(isValue(this.value) ? this.value : ''),\n });\n this.formInitialized = true;\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.salut;\n this.onChange(value.salut);\n });\n\n super.ngOnInit();\n }\n}\n","<form [formGroup]=\"form\">\n <mat-radio-group formControlName=\"salut\" [disabled]=\"disabled\" #radioGroup>\n <mat-radio-button\n color=\"primary\"\n [value]=\"SalutationEnum.NOT_SPECIFIED\"\n [checked]=\"value === SalutationEnum.NOT_SPECIFIED\"\n >\n {{\n 'general.salutation.' + Object.keys(SalutationEnum)[0]?.toLowerCase()\n | translate\n }}\n </mat-radio-button>\n <mat-radio-button\n color=\"primary\"\n [value]=\"SalutationEnum.MALE\"\n [checked]=\"value === SalutationEnum.MALE\"\n >\n {{\n 'general.salutation.' + Object.keys(SalutationEnum)[1]?.toLowerCase()\n | translate\n }}\n </mat-radio-button>\n <mat-radio-button\n color=\"primary\"\n [value]=\"SalutationEnum.FEMALE\"\n [checked]=\"value === SalutationEnum.FEMALE\"\n >\n {{\n 'general.salutation.' + Object.keys(SalutationEnum)[2]?.toLowerCase()\n | translate\n }}\n </mat-radio-button>\n </mat-radio-group>\n</form>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n forwardRef,\n input,\n output,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\n\nlet nextId = 0;\n\n@Component({\n standalone: false,\n selector: 'kms-text-input',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './text-input.component.html',\n styleUrls: ['./text-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextInputComponent),\n multi: true,\n },\n ],\n})\nexport class TextInputComponent implements ControlValueAccessor {\n valueChange = output<string>();\n\n disabled = input(false);\n label = input('');\n placeholder = input('');\n type = input<'text' | 'email' | 'tel' | 'url'>('text');\n required = input(false);\n hint = input('');\n errorMessage = input('');\n autocomplete = input('');\n prefix = input('');\n suffix = input('');\n numericOnly = input(false);\n prefixIcon = input('');\n suffixIcon = input('');\n\n IconSizePx = IconSizePx;\n\n value: WritableSignal<string> = signal('');\n innerControl = new FormControl('');\n disabledByForm: WritableSignal<boolean> = signal(false);\n\n isDisabled = computed(() => this.disabled() || this.disabledByForm());\n\n private readonly disabledEffect = effect(() => {\n if (this.isDisabled()) {\n this.innerControl.disable({ emitEvent: false });\n } else {\n this.innerControl.enable({ emitEvent: false });\n }\n });\n\n readonly inputId = `kms-text-input-${nextId++}`;\n readonly hintId = `${this.inputId}-hint`;\n readonly errorId = `${this.inputId}-error`;\n\n errorStateMatcher: ErrorStateMatcher = {\n isErrorState: () => !!this.errorMessage(),\n };\n\n onChange: (value?: string) => void = () => {};\n onTouched: () => void = () => {};\n\n valueChanged(event: Event) {\n const input = event.target as HTMLInputElement;\n let { value } = input;\n\n if (this.numericOnly()) {\n value = value.replaceAll(/\\D/g, '');\n input.value = value;\n }\n\n this.value.set(value);\n this.innerControl.setValue(value, { emitEvent: false });\n this.onChange(value);\n this.valueChange.emit(value);\n }\n\n writeValue(value: string) {\n const val = value ?? '';\n this.value.set(val);\n this.innerControl.setValue(val, { emitEvent: false });\n }\n\n registerOnChange(fn: (value?: string) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabledByForm.set(isDisabled);\n }\n}\n","<mat-form-field class=\"kms-text-input__form-field\">\n <mat-label>{{ label() }}</mat-label>\n @if (prefixIcon()) {\n <kms-icon\n class=\"kms-text-input__prefix\"\n matIconPrefix\n [icon]=\"prefixIcon()\"\n [size]=\"IconSizePx.XS\"\n ></kms-icon>\n } @else if (prefix()) {\n <span matTextPrefix>{{ prefix() }} </span>\n }\n <input\n [id]=\"inputId\"\n [type]=\"type()\"\n matInput\n [formControl]=\"innerControl\"\n (input)=\"valueChanged($event)\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [attr.inputmode]=\"numericOnly() ? 'numeric' : null\"\n [attr.autocomplete]=\"autocomplete() || null\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [attr.aria-required]=\"required()\"\n [attr.aria-invalid]=\"errorMessage() ? true : null\"\n [attr.aria-describedby]=\"\n (hint() ? hintId : '') + (errorMessage() ? ' ' + errorId : '') || null\n \"\n (blur)=\"onTouched()\"\n />\n @if (suffixIcon()) {\n <kms-icon\n class=\"kms-text-input__suffix\"\n matIconSuffix\n [icon]=\"suffixIcon()\"\n [size]=\"IconSizePx.XS\"\n ></kms-icon>\n } @else if (suffix()) {\n <span matTextSuffix> {{ suffix() }}</span>\n } @if (hint()) {\n <mat-hint [id]=\"hintId\">{{ hint() }}</mat-hint>\n }\n <mat-error [id]=\"errorId\" role=\"alert\">{{ errorMessage() }}</mat-error>\n</mat-form-field>\n","import {\n Component,\n computed,\n forwardRef,\n Input,\n OnChanges,\n OnInit,\n Signal,\n signal,\n SimpleChanges,\n WritableSignal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport moment from 'moment';\nimport { IconSizePx } from '../../../enums/iconSize.enum';\n@Component({\n standalone: false,\n selector: 'kms-time-input',\n templateUrl: './time-input.component.html',\n styleUrls: ['./time-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimeInputComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: TimeInputComponent,\n multi: true,\n },\n ],\n})\nexport class TimeInputComponent\n implements OnInit, OnChanges, ControlValueAccessor\n{\n @Input() label = '';\n @Input() value = '';\n @Input() interval = 15;\n @Input() allowEmpty = false;\n\n IconSizePx = IconSizePx;\n _value = signal('');\n private options: WritableSignal<Array<string>> = signal([]);\n\n filteredOptions: Signal<Array<string>> = computed(() => {\n return this.options().filter((option) => option.startsWith(this._value()));\n });\n\n ngOnInit() {\n this.options.set(this.getTimeRange());\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this._value.set(changes.value.currentValue);\n }\n }\n\n writeValue(value: string) {\n this._value.set(value);\n }\n\n onChange: any = () => {};\n\n onTouch: any = () => {};\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n getTimeRange() {\n const startTime = moment('00:00', 'HH');\n const endTime = moment('23:45', 'HH:mm:ss');\n const timeSeries = [startTime.format('HH:mm')];\n\n while (startTime.isBefore(endTime)) {\n timeSeries.push(startTime.add(this.interval, 'm').format('HH:mm'));\n }\n\n return timeSeries;\n }\n\n inputValueChanged(event: Event) {\n this.valueChanged((event.target as HTMLInputElement).value);\n }\n\n valueChanged(value: string) {\n this._value.set(value);\n this.onChange(value);\n this.onTouch(value);\n }\n\n autocompleteClosed() {\n if (this._value().slice(-1) === ':') {\n this._value.set(this._value() + '00');\n this.valueChanged(this._value());\n }\n }\n\n validate({ value }: FormControl) {\n // validate time format HH:mm and 24 hours and 59 minutes\n const timeRegex = /^(?:[01]\\d|2[0-3]):(?:[0-5]\\d)$/;\n\n if (\n this.allowEmpty &&\n (value === undefined || value === null || value === '')\n )\n return null;\n if (timeRegex.test(value)) return null;\n else\n return {\n invalid: true,\n };\n }\n}\n","<mat-form-field class=\"kms-time-input\">\n <mat-label>{{ label }}</mat-label>\n <input\n type=\"text\"\n aria-label=\"time\"\n matInput\n kmsTime\n [matAutocomplete]=\"auto\"\n [value]=\"_value()\"\n (input)=\"inputValueChanged($event)\"\n />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"valueChanged($event.option.value)\"\n (closed)=\"autocompleteClosed()\"\n >\n @for (option of filteredOptions(); track option) {\n <mat-option [value]=\"option\">\n {{ option }}\n </mat-option>\n }\n </mat-autocomplete>\n <kms-icon\n class=\"kms-time-input__suffix\"\n matSuffix\n icon=\"clock\"\n [size]=\"IconSizePx.XS\"\n ></kms-icon>\n</mat-form-field>\n","import {\n Component,\n ElementRef,\n forwardRef,\n Input,\n OnInit,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { NullAble } from '../../../models';\n\n@Component({\n standalone: false,\n selector: 'kms-yesno-radiogroup',\n templateUrl: './yes-no-radiogroup.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => YesNoRadiogroupComponent),\n multi: true,\n },\n ],\n})\nexport class YesNoRadiogroupComponent implements OnInit, ControlValueAccessor {\n @Input() header: NullAble<String>;\n @Input() disabled = false;\n @Input() textYes = '';\n @Input() textNo = '';\n public form!: UntypedFormGroup;\n\n @ViewChild('child') public child?: ElementRef<HTMLInputElement>;\n\n public internalValue: NullAble<boolean>;\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n get value(): NullAble<boolean> {\n return this.internalValue;\n }\n\n set value(value: NullAble<boolean>) {\n this.internalValue = value;\n if (value !== undefined && this.internalValue !== value) {\n this.onChange(value);\n this.onTouch(value);\n }\n }\n\n writeValue(value: any) {\n this.internalValue = value;\n this.value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n setDisabledState?(isDisabled: boolean) {\n if (this.child) {\n this.renderer.setProperty(\n this.child.nativeElement,\n 'disabled',\n isDisabled\n );\n }\n }\n\n constructor(public renderer: Renderer2) {}\n\n ngOnInit() {\n this.form = new UntypedFormGroup({\n yesno: new UntypedFormControl(this.value ?? null),\n });\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.yesno;\n this.onChange(value.yesno);\n });\n }\n}\n","<form [formGroup]=\"form\">\n <div>{{ header }}</div>\n <mat-radio-group formControlName=\"yesno\" [disabled]=\"disabled\" #child>\n <mat-radio-button [value]=\"true\" [checked]=\"internalValue === true\">\n {{ textYes }}</mat-radio-button\n >\n <mat-radio-button [value]=\"false\" [checked]=\"internalValue === false\">\n {{ textNo }}</mat-radio-button\n >\n </mat-radio-group>\n</form>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n output,\n} from '@angular/core';\nimport { FormActionsConfig } from '../../models/form-actions-config.model';\n\n@Component({\n selector: 'kms-form-actions',\n templateUrl: './form-actions.component.html',\n styleUrls: ['./form-actions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class FormActionsComponent {\n actionsConfig = input.required<FormActionsConfig>();\n disabled = input(false);\n\n submitClick = output<void>();\n\n submitLabel = computed(() => this.actionsConfig().submitLabel ?? 'Submit');\n}\n","<div class=\"kms-form-actions\">\n <kms-button\n [label]=\"submitLabel()\"\n type=\"submit\"\n [disabled]=\"disabled()\"\n (buttonClick)=\"submitClick.emit()\">\n </kms-button>\n</div>\n","/** Supported field types. Native types render inside `<mat-form-field>`; library types render via DynamicFieldDirective. */\nexport enum FieldType {\n TEXT = 'text',\n TEXTAREA = 'textarea',\n PASSWORD = 'password',\n NUMBER = 'number',\n DATE = 'date',\n DATE_RANGE = 'dateRange',\n TIME = 'time',\n SELECT = 'select',\n AUTOCOMPLETE = 'autocomplete',\n CHECKBOX = 'checkbox',\n RADIO = 'radio',\n RADIO_GROUP = 'radioGroup',\n SLIDE_TOGGLE = 'slideToggle',\n MULTI_SELECT = 'multiSelect',\n COLOR = 'color',\n COUNTER = 'counter',\n MONTH_PICKER = 'monthPicker',\n TEMPLATE = 'template',\n OFFSET = 'offset',\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport {\n AsyncValidatorFn,\n FormControl,\n FormGroup,\n ValidationErrors,\n ValidatorFn,\n} from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { AsyncValidatorConfig } from '../models/async-validator-config.model';\nimport { FieldConfig } from '../models/field-config.model';\nimport {\n DateRangeFieldOptions,\n FieldTypeOptions,\n} from '../models/field-type-options.model';\nimport { FieldType } from '../models/field-type.enum';\nimport { GenericFormConfig } from '../models/form-config.model';\nimport { GenericFormState } from '../models/form-state.model';\nimport { ValidatorConfig } from '../models/validator-config.model';\n\n/** Component-scoped service managing the full internal form lifecycle. No UI. */\n@Injectable()\nexport class GenericFormService implements OnDestroy {\n private form!: FormGroup;\n private config!: GenericFormConfig;\n private readonly fieldConfigs = new Map<string, FieldConfig>(); // key → FieldConfig\n private readonly asyncValidatorMap = new Map<\n string,\n AsyncValidatorConfig[]\n >(); // key → async validators\n private readonly validatorMap = new Map<string, ValidatorConfig[]>(); // key → sync validators with error messages\n private destroy$ = new Subject<void>();\n private _submitted = false;\n\n constructor(private readonly translate: TranslateService) {}\n\n // --- Build ---\n\n buildForm(config: GenericFormConfig): FormGroup {\n this.cleanup();\n this.config = config;\n this.fieldConfigs.clear();\n this.asyncValidatorMap.clear();\n this.validatorMap.clear();\n this._submitted = false;\n\n const controls: Record<string, FormControl> = {};\n\n for (const section of config.sections) {\n for (const field of section.fields) {\n this.buildFieldControl(field, controls);\n }\n }\n\n this.form = new FormGroup(controls);\n return this.form;\n }\n\n private isValidatorConfig(\n v: ValidatorFn | ValidatorConfig\n ): v is ValidatorConfig {\n return typeof v === 'object' && 'validator' in v;\n }\n\n private buildFieldControl(\n field: FieldConfig,\n controls: Record<string, FormControl>\n ): void {\n if (field.type === FieldType.OFFSET || !field.key) return;\n this.fieldConfigs.set(field.key, field);\n\n const syncFns = this.registerSyncValidators(field);\n const asyncFns = this.registerAsyncValidators(field);\n\n const initial = this.resolveInitialValue(field.type);\n const control = new FormControl(initial, {\n validators: syncFns.length ? syncFns : undefined,\n asyncValidators: asyncFns.length ? asyncFns : undefined,\n });\n\n if (field.hidden || field.disabled) {\n control.disable();\n }\n\n controls[field.key] = control;\n this.buildDateRangeSubControls(field, controls);\n }\n\n private registerSyncValidators(field: FieldConfig): ValidatorFn[] {\n const syncFns: ValidatorFn[] = [];\n const syncConfigs: ValidatorConfig[] = [];\n for (const v of field.validators ?? []) {\n if (this.isValidatorConfig(v)) {\n syncFns.push(v.validator);\n syncConfigs.push(v);\n } else {\n syncFns.push(v);\n }\n }\n if (syncConfigs.length) {\n this.validatorMap.set(field.key, syncConfigs);\n }\n return syncFns;\n }\n\n private registerAsyncValidators(field: FieldConfig): AsyncValidatorFn[] {\n const asyncFns = (field.asyncValidators ?? []).map((a) => a.validator);\n if (field.asyncValidators?.length) {\n this.asyncValidatorMap.set(field.key, field.asyncValidators);\n }\n return asyncFns;\n }\n\n private buildDateRangeSubControls(\n field: FieldConfig,\n controls: Record<string, FormControl>\n ): void {\n if (field.type !== FieldType.DATE_RANGE || !field.options) return;\n const opts = field.options as DateRangeFieldOptions;\n if (opts.startKey && !controls[opts.startKey]) {\n controls[opts.startKey] = new FormControl(null);\n }\n if (opts.endKey && !controls[opts.endKey]) {\n controls[opts.endKey] = new FormControl(null);\n }\n }\n\n private resolveInitialValue(type: FieldType): any {\n switch (type) {\n case FieldType.TEXT:\n case FieldType.TEXTAREA:\n case FieldType.PASSWORD:\n return '';\n default:\n return null;\n }\n }\n\n // --- Patch ---\n\n patchValue(value: Record<string, any>, options?: { silent?: boolean }): void {\n if (!this.form) return;\n const emitEvent = !options?.silent;\n this.form.patchValue(value, { emitEvent });\n }\n\n // --- Validate ---\n\n validateAll(): boolean {\n if (!this.form) return false;\n this._submitted = true;\n this.form.markAllAsTouched();\n this.form.updateValueAndValidity();\n return this.form.valid;\n }\n\n get submitted(): boolean {\n return this._submitted;\n }\n\n // --- Values ---\n\n getRawValue(): Record<string, any> {\n return this.form?.getRawValue() ?? {};\n }\n\n getValue(): Record<string, any> {\n return this.form?.value ?? {};\n }\n\n // --- Errors ---\n\n getErrors(): Record<string, ValidationErrors> | null {\n if (!this.form) return null;\n const errors: Record<string, ValidationErrors> = {};\n let hasErrors = false;\n\n for (const [key, control] of Object.entries(this.form.controls)) {\n if (control.errors) {\n errors[key] = control.errors;\n hasErrors = true;\n }\n }\n\n return hasErrors ? errors : null;\n }\n\n // --- State ---\n\n getState(): GenericFormState {\n return {\n pristine: this.form?.pristine ?? true,\n dirty: this.form?.dirty ?? false,\n touched: this.form?.touched ?? false,\n untouched: this.form?.untouched ?? true,\n valid: this.form?.valid ?? false,\n invalid: this.form?.invalid ?? true,\n submitted: this._submitted,\n errors: this.getErrors(),\n };\n }\n\n // --- Field observables ---\n\n fieldValueChanges$(key: string): Observable<any> {\n const control = this.form?.get(key);\n if (!control) {\n throw new Error(`[GenericFormService] Control \"${key}\" not found`);\n }\n return control.valueChanges.pipe(takeUntil(this.destroy$));\n }\n\n // --- Field operations ---\n\n setFieldDisabled(key: string, disabled: boolean): void {\n const control = this.form?.get(key);\n if (!control) return;\n if (disabled) {\n control.disable({ emitEvent: false });\n } else {\n control.enable({ emitEvent: false });\n }\n }\n\n updateFieldOptions(key: string, options: Partial<FieldTypeOptions>): void {\n const fieldConfig = this.fieldConfigs.get(key);\n if (!fieldConfig) return;\n fieldConfig.options = {\n ...fieldConfig.options,\n ...options,\n } as FieldTypeOptions;\n }\n\n getFieldConfig(key: string): FieldConfig | undefined {\n return this.fieldConfigs.get(key);\n }\n\n getFormGroup(): FormGroup {\n return this.form;\n }\n\n // --- Visibility engine ---\n\n applyVisibility(config: GenericFormConfig): void {\n for (const section of config.sections) {\n for (const field of section.fields) {\n if (!field.key) continue;\n const control = this.form?.get(field.key);\n if (!control) continue;\n\n if (field.hidden || field.disabled) {\n control.disable({ emitEvent: false });\n } else {\n control.enable({ emitEvent: false });\n }\n }\n }\n }\n\n // --- Error message resolution ---\n\n resolveErrorMessage(\n key: string,\n validatorName: string,\n validatorMeta: any\n ): string {\n // 1. Custom validator with `message` property\n if (validatorMeta?.message) {\n return validatorMeta.message;\n }\n\n // 2. Sync validator with pre-translated errorMessage (ValidatorConfig)\n const syncConfigs = this.validatorMap.get(key);\n if (syncConfigs) {\n for (const sc of syncConfigs) {\n const testResult = sc.validator({ value: null } as any);\n if (testResult && validatorName in testResult) {\n return sc.errorMessage;\n }\n }\n }\n\n // 3. Async validator with pre-translated errorMessage\n const asyncConfigs = this.asyncValidatorMap.get(key);\n if (asyncConfigs) {\n for (const ac of asyncConfigs) {\n if (ac.errorMessage) {\n return ac.errorMessage;\n }\n }\n }\n\n // 4. Translate via @ngx-translate\n const translationKey = `uiPresentational.validatorMessages.${validatorName}`;\n const translated = this.translate.instant(translationKey, validatorMeta);\n if (translated !== translationKey) {\n return translated;\n }\n\n // 5. Fallback — validator key\n return validatorName;\n }\n\n // --- Cleanup ---\n\n private cleanup(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.destroy$ = new Subject<void>();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { CheckboxComponent } from '../../../atoms/checkbox/checkbox.component';\nimport { DropdownFromDataComponent } from '../../../atoms/dropdown-from-data/dropdown-from-data.component';\nimport { RadioButtonComponent } from '../../../atoms/radiobutton/radiobutton.component';\nimport { SlideToggleComponent } from '../../../atoms/slide-toggle/slide-toggle.component';\nimport { ColorInputComponent } from '../../../molecules/color-input/color-input.component';\nimport { NumericInputComponent } from '../../../molecules/numeric-input/numeric-input.component';\nimport { PasswordComponent } from '../../../molecules/password/password.component';\nimport { RadioGroupComponent } from '../../../molecules/radiogroup/radiogroup.component';\nimport { TimeInputComponent } from '../../../molecules/time-input/time-input.component';\nimport { FieldType } from '../models/field-type.enum';\n\nconst DEFAULT_REGISTRY = new Map<FieldType, Type<any>>([\n [FieldType.PASSWORD, PasswordComponent],\n [FieldType.COUNTER, NumericInputComponent],\n [FieldType.TIME, TimeInputComponent],\n [FieldType.SELECT, DropdownFromDataComponent],\n [FieldType.MULTI_SELECT, DropdownFromDataComponent],\n [FieldType.CHECKBOX, CheckboxComponent],\n [FieldType.RADIO, RadioButtonComponent],\n [FieldType.RADIO_GROUP, RadioGroupComponent],\n [FieldType.SLIDE_TOGGLE, SlideToggleComponent],\n [FieldType.COLOR, ColorInputComponent],\n]);\n\n@Injectable()\nexport class FieldRegistryService {\n private readonly registry = new Map<FieldType, Type<any>>(DEFAULT_REGISTRY);\n\n resolve(type: FieldType): Type<any> | null {\n return this.registry.get(type) ?? null;\n }\n}\n","import {\n ComponentRef,\n Directive,\n effect,\n inject,\n input,\n OnDestroy,\n output,\n untracked,\n ViewContainerRef,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { isObservable, Subject, takeUntil } from 'rxjs';\nimport { FieldConfig } from '../models/field-config.model';\nimport { FieldType } from '../models/field-type.enum';\nimport {\n CounterFieldOptions,\n PasswordFieldOptions,\n RadioGroupFieldOptions,\n SelectFieldOptions,\n} from '../models/field-type-options.model';\nimport { FieldRegistryService } from '../services/field-registry.service';\n\n/** Creates a library component dynamically and bridges ControlValueAccessor to a FormControl. */\n@Directive({ selector: '[kmsDynamicField]', standalone: false })\nexport class DynamicFieldDirective implements OnDestroy {\n fieldConfig = input.required<FieldConfig>();\n control = input.required<FormControl>();\n\n fieldTouched = output<void>(); // emitted when the library component reports a touch\n\n private readonly vcr = inject(ViewContainerRef);\n private readonly registry = inject(FieldRegistryService);\n private componentRef: ComponentRef<any> | null = null;\n private destroy$ = new Subject<void>();\n\n constructor() {\n effect(() => {\n const config = this.fieldConfig();\n const control = this.control();\n untracked(() => this.create(config, control));\n });\n }\n\n private create(config: FieldConfig, control: FormControl): void {\n this.teardown();\n\n const componentType = this.registry.resolve(config.type);\n if (!componentType) return;\n\n this.vcr.clear();\n this.componentRef = this.vcr.createComponent(componentType);\n this.bridgeCVA(control);\n this.mapInputs(config);\n }\n\n // --- CVA bridge ---\n\n private bridgeCVA(control: FormControl): void {\n const ref = this.componentRef;\n if (!ref) return;\n const inst = ref.instance;\n let syncing = false;\n\n if (typeof inst.writeValue === 'function') {\n inst.writeValue(control.value);\n }\n\n if (typeof inst.registerOnChange === 'function') {\n inst.registerOnChange((val: any) => {\n if (syncing) return;\n syncing = true;\n control.setValue(val);\n control.markAsDirty();\n syncing = false;\n });\n }\n\n if (typeof inst.registerOnTouched === 'function') {\n inst.registerOnTouched(() => {\n control.markAsTouched();\n this.fieldTouched.emit();\n });\n }\n\n // Sync control → component on external value changes\n control.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((val) => {\n if (syncing) return;\n syncing = true;\n if (typeof inst.writeValue === 'function') inst.writeValue(val);\n // Reset after microtask to cover async onChange triggers (e.g. ngModel two-way binding)\n Promise.resolve().then(() => { syncing = false; });\n });\n\n // Disabled state — defer initial call until after ngOnInit (form may not exist yet)\n if (typeof inst.setDisabledState === 'function') {\n control.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n inst.setDisabledState(control.disabled);\n });\n // Schedule initial sync after ngOnInit has run\n queueMicrotask(() => {\n if (typeof inst.setDisabledState === 'function') {\n inst.setDisabledState(control.disabled);\n }\n });\n }\n }\n\n // --- Input mapping ---\n\n private mapInputs(config: FieldConfig): void {\n const ref = this.componentRef;\n if (!ref) return;\n\n switch (config.type) {\n case FieldType.CHECKBOX:\n ref.setInput('infoText', config.label ?? '');\n break;\n\n case FieldType.SLIDE_TOGGLE:\n ref.setInput('leftLabel', config.label ?? '');\n break;\n\n case FieldType.RADIO:\n ref.setInput('label', config.label ?? '');\n break;\n\n case FieldType.RADIO_GROUP:\n this.mapRadioGroup(config, ref);\n break;\n\n case FieldType.SELECT:\n case FieldType.MULTI_SELECT:\n this.mapSelect(config, ref);\n break;\n\n case FieldType.COUNTER:\n this.mapCounter(config, ref);\n break;\n\n case FieldType.PASSWORD:\n this.mapPassword(config, ref);\n break;\n\n default: // TIME, COLOR\n this.trySetInput(ref, 'label', config.label ?? '');\n break;\n }\n\n if (config.placeholder) this.trySetInput(ref, 'placeholder', config.placeholder);\n }\n\n private mapRadioGroup(config: FieldConfig, ref: ComponentRef<any>): void {\n const opts = config.options as RadioGroupFieldOptions | undefined;\n if (opts?.items) {\n ref.setInput(\n 'options',\n opts.items.map((item) => {\n if (typeof item === 'string') return { Text: item, Value: item };\n const obj = item as Record<string, any>;\n return { Text: obj['Label'] ?? obj['label'], Value: obj['Value'] ?? obj['value'] };\n }),\n );\n }\n if (opts?.layout) ref.setInput('direction', opts.layout === 'horizontal' ? 'row' : 'column');\n if (opts?.size) ref.setInput('size', opts.size);\n }\n\n private mapSelect(config: FieldConfig, ref: ComponentRef<any>): void {\n ref.setInput('label', config.label ?? '');\n if (config.type === FieldType.MULTI_SELECT) ref.setInput('multiple', true);\n\n const opts = config.options as SelectFieldOptions | undefined;\n if (!opts) return;\n\n this.mapSelectDataSource(opts, ref);\n this.mapSelectBehaviour(opts, ref);\n this.mapPrefixSuffix(config, ref);\n }\n\n private mapSelectDataSource(opts: SelectFieldOptions, ref: ComponentRef<any>): void {\n if (opts.plainItems) {\n ref.setInput('optionsPlainArray', opts.plainItems);\n } else if (opts.enumItems) {\n ref.setInput('optionsEnum', opts.enumItems);\n if (opts.useEnumIndexAsValue) ref.setInput('useEnumIndexAsValue', true);\n } else if (opts.objItems) {\n ref.setInput('optionsObjArray', opts.objItems.data);\n ref.setInput('mapKey', opts.objItems.mapKey);\n if (opts.objItems.mapValue) ref.setInput('mapValue', opts.objItems.mapValue);\n } else if (opts.items) {\n this.mapSelectItems(opts, ref);\n }\n }\n\n private mapSelectItems(opts: SelectFieldOptions, ref: ComponentRef<any>): void {\n if (Array.isArray(opts.items)) {\n ref.setInput('optionsObjArray', opts.items);\n ref.setInput('mapKey', 'Label');\n ref.setInput('mapValue', 'Value');\n } else if (isObservable(opts.items)) {\n opts.items.pipe(takeUntil(this.destroy$)).subscribe((items) => {\n ref.setInput('optionsObjArray', items);\n ref.setInput('mapKey', 'Label');\n ref.setInput('mapValue', 'Value');\n });\n }\n }\n\n private mapSelectBehaviour(opts: SelectFieldOptions, ref: ComponentRef<any>): void {\n if (opts.hasNullOption) ref.setInput('hasNullOption', true);\n if (opts.selectAllText) ref.setInput('selectAllText', opts.selectAllText);\n if (opts.disableOptions) ref.setInput('disableOptions', true);\n if (opts.preselectedKeys !== undefined) ref.setInput('preselectedKeys', opts.preselectedKeys);\n if (opts.searchable) ref.setInput('searchable', true);\n if (opts.translation) ref.setInput('translation', opts.translation);\n }\n\n private mapPrefixSuffix(config: FieldConfig, ref: ComponentRef<any>): void {\n if (config.prefix?.type === 'text') ref.setInput('prefix', config.prefix.value);\n if (config.prefix?.type === 'icon') ref.setInput('prefixIcon', config.prefix.value);\n if (config.suffix?.type === 'text') ref.setInput('suffix', config.suffix.value);\n if (config.suffix?.type === 'icon') ref.setInput('suffixIcon', config.suffix.value);\n }\n\n private mapPassword(config: FieldConfig, ref: ComponentRef<any>): void {\n this.trySetInput(ref, 'label', config.label ?? '');\n const opts = config.options as PasswordFieldOptions | undefined;\n if (opts?.withStrength) ref.setInput('withStrength', true);\n }\n\n private mapCounter(config: FieldConfig, ref: ComponentRef<any>): void {\n this.trySetInput(ref, 'label', config.label ?? '');\n const opts = config.options as CounterFieldOptions | undefined;\n if (opts?.min !== undefined) ref.setInput('min', opts.min);\n }\n\n private trySetInput(ref: ComponentRef<any>, name: string, value: any): void {\n try {\n ref.setInput(name, value);\n } catch {\n // Component may not have this input\n }\n }\n\n private teardown(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.destroy$ = new Subject<void>();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n inject,\n input,\n signal,\n untracked,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { merge, Subject, Subscription, takeUntil } from 'rxjs';\nimport { DateRangeValue } from '../../../../molecules/date-input/date-input.component';\nimport { LabelValuePair } from '../../../../../models/text-value-pair.model';\nimport { DisabledConfig } from '../../models/disabled-config.model';\nimport { ErrorDisplayConfig } from '../../models/error-display-config.model';\nimport { FieldConfig } from '../../models/field-config.model';\nimport { FieldType } from '../../models/field-type.enum';\nimport {\n AutocompleteFieldOptions,\n DateFieldOptions,\n DateRangeFieldOptions,\n TextareaFieldOptions,\n} from '../../models/field-type-options.model';\nimport { GenericFormService } from '../../services/generic-form.service';\n\nconst NATIVE_TYPES = new Set([\n FieldType.TEXT,\n FieldType.NUMBER,\n FieldType.TEXTAREA,\n FieldType.DATE,\n FieldType.DATE_RANGE,\n FieldType.MONTH_PICKER,\n FieldType.AUTOCOMPLETE,\n FieldType.OFFSET,\n]);\n\nconst GROUP_TYPES = new Set([FieldType.RADIO_GROUP]);\n\n\nconst AUTOCOMPLETE_FALLBACK: Record<string, string> = {\n firstname: 'given-name',\n givenname: 'given-name',\n lastname: 'family-name',\n familyname: 'family-name',\n surname: 'family-name',\n email: 'email',\n emailaddress: 'email',\n phone: 'tel',\n telephone: 'tel',\n phonenumber: 'tel',\n street: 'address-line1',\n streetaddress: 'address-line1',\n addressline1: 'address-line1',\n addressline2: 'address-line2',\n city: 'address-level2',\n locality: 'address-level2',\n state: 'address-level1',\n region: 'address-level1',\n province: 'address-level1',\n zip: 'postal-code',\n postalcode: 'postal-code',\n zipcode: 'postal-code',\n country: 'country',\n countrycode: 'country',\n company: 'organization',\n organization: 'organization',\n companyname: 'organization',\n username: 'username',\n login: 'username',\n password: 'current-password',\n newpassword: 'new-password',\n creditcard: 'cc-number',\n cardnumber: 'cc-number',\n birthdate: 'bday',\n dateofbirth: 'bday',\n};\n\n@Component({\n selector: 'kms-form-field',\n templateUrl: './form-field.component.html',\n styleUrls: ['./form-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class FormFieldComponent {\n // --- Inputs ---\n fieldConfig = input.required<FieldConfig>();\n control = input.required<FormControl>();\n formId = input('');\n formErrorDisplay = input<ErrorDisplayConfig>();\n formDisabledConfig = input<DisabledConfig>();\n submitted = input(false);\n\n readonly FieldType = FieldType;\n\n // --- Injections ---\n private readonly formService = inject(GenericFormService);\n private readonly destroyRef = inject(DestroyRef);\n\n // --- OnPush reactivity for control state ---\n private readonly controlTick = signal(0);\n private controlSub?: Subscription;\n private readonly dateRangeDestroy$ = new Subject<void>();\n\n constructor() {\n effect(() => {\n const control = this.control();\n untracked(() => this.subscribeToControl(control));\n });\n\n // DATE_RANGE: bidirectional sync between main control and start/end controls\n effect(() => {\n const config = this.fieldConfig();\n const control = this.control();\n untracked(() => {\n this.dateRangeDestroy$.next();\n if (config.type !== FieldType.DATE_RANGE) return;\n const opts = config.options as DateRangeFieldOptions;\n if (!opts?.startKey || !opts?.endKey) return;\n\n const fg = this.formService.getFormGroup();\n if (!fg) return;\n const startCtrl = fg.get(opts.startKey) as FormControl;\n const endCtrl = fg.get(opts.endKey) as FormControl;\n if (!startCtrl || !endCtrl) return;\n\n // main control → start/end controls (when user picks from date picker)\n control.valueChanges.pipe(takeUntil(this.dateRangeDestroy$)).subscribe((val: DateRangeValue | null) => {\n startCtrl.setValue(val?.start ?? null, { emitEvent: false });\n endCtrl.setValue(val?.end ?? null, { emitEvent: false });\n });\n\n // start/end controls → main control (when consumer patches values)\n merge(startCtrl.valueChanges, endCtrl.valueChanges)\n .pipe(takeUntil(this.dateRangeDestroy$))\n .subscribe(() => {\n control.setValue({ start: startCtrl.value, end: endCtrl.value }, { emitEvent: false });\n });\n });\n });\n\n this.destroyRef.onDestroy(() => {\n this.controlSub?.unsubscribe();\n this.dateRangeDestroy$.next();\n this.dateRangeDestroy$.complete();\n });\n }\n\n onFieldTouched(): void {\n this.controlTick.update((v) => v + 1);\n }\n\n private subscribeToControl(control: FormControl): void {\n this.controlSub?.unsubscribe();\n this.controlSub = merge(control.statusChanges, control.valueChanges).subscribe(() => {\n this.controlTick.update((v) => v + 1);\n });\n }\n\n // --- Computed: type classification ---\n\n isNativeType = computed(() => NATIVE_TYPES.has(this.fieldConfig().type));\n isGroupType = computed(() => GROUP_TYPES.has(this.fieldConfig().type));\n isTextInputType = computed(() => this.fieldConfig().type === FieldType.TEXT);\n isNumberInputType = computed(() => this.fieldConfig().type === FieldType.NUMBER);\n\n isDateType = computed(() => {\n const type = this.fieldConfig().type;\n return type === FieldType.DATE || type === FieldType.DATE_RANGE || type === FieldType.MONTH_PICKER;\n });\n dateMode = computed((): 'date' | 'range' =>\n this.fieldConfig().type === FieldType.DATE_RANGE ? 'range' : 'date',\n );\n isMonthPicker = computed((): boolean =>\n this.fieldConfig().type === FieldType.MONTH_PICKER,\n );\n\n // --- Computed: error display ---\n\n resolvedErrorDisplay = computed((): ErrorDisplayConfig => ({\n strategy: 'onTouched',\n showMultiple: false,\n showOnSubmit: true,\n ...this.formErrorDisplay(),\n ...this.fieldConfig().errorDisplay,\n }));\n\n errorMatcher = computed((): ErrorStateMatcher => {\n const config = this.resolvedErrorDisplay();\n const submitted = this.submitted;\n\n if (config.strategy === 'custom' && config.matcher) return config.matcher;\n\n return {\n isErrorState: (control) => {\n if (!control?.errors) return false;\n if (config.showOnSubmit !== false && submitted()) return true;\n switch (config.strategy) {\n case 'onDirty':\n return control.dirty;\n case 'onSubmit':\n return false;\n case 'immediate':\n return true;\n case 'onTouched':\n default:\n return control.touched;\n }\n },\n };\n });\n\n shouldShowErrors = computed((): boolean => {\n this.controlTick();\n const control = this.control();\n if (!control.errors) return false;\n\n const config = this.resolvedErrorDisplay();\n if (config.showOnSubmit !== false && this.submitted()) return true;\n\n switch (config.strategy) {\n case 'onDirty':\n return control.dirty;\n case 'onSubmit':\n return false;\n case 'immediate':\n return true;\n case 'onTouched':\n default:\n return control.touched;\n }\n });\n\n errorMessages = computed((): string[] => {\n this.controlTick();\n const control = this.control();\n if (!control.errors) return [];\n\n const config = this.resolvedErrorDisplay();\n const messages: string[] = [];\n\n for (const [validatorName, meta] of Object.entries(control.errors)) {\n messages.push(this.formService.resolveErrorMessage(this.fieldConfig().key, validatorName, meta));\n if (!config.showMultiple) break;\n }\n return messages;\n });\n\n displayErrorMessage = computed((): string =>\n this.shouldShowErrors() ? this.errorMessages().join(', ') : '',\n );\n\n // --- Computed: autocomplete ---\n\n resolvedAutocomplete = computed((): string | null => {\n const config = this.fieldConfig();\n if (config.autocomplete) return config.autocomplete;\n return AUTOCOMPLETE_FALLBACK[config.key.toLowerCase()] ?? null;\n });\n\n // --- Computed: disabled background ---\n\n disabledBackground = computed((): string => {\n const enabled = this.fieldConfig().disabledConfig?.showDisabledBackground ?? this.formDisabledConfig()?.showDisabledBackground ?? false;\n return enabled ? 'rgba(0, 0, 0, 0.04)' : 'transparent';\n });\n\n disabledLine = computed((): string => {\n const enabled = this.fieldConfig().disabledConfig?.showDisabledBackground ?? this.formDisabledConfig()?.showDisabledBackground ?? false;\n return enabled ? 'block' : 'none';\n });\n\n // --- Computed: textarea ---\n\n textareaRows = computed((): number => {\n return (this.fieldConfig().options as TextareaFieldOptions | undefined)?.rows ?? 3;\n });\n\n // --- Computed: date / date-range ---\n\n dateMin = computed((): Date | null => {\n const min = (this.fieldConfig().options as DateFieldOptions | DateRangeFieldOptions)?.min;\n if (!min) return null;\n return min instanceof Date ? min : new Date(min);\n });\n\n dateMax = computed((): Date | null => {\n const max = (this.fieldConfig().options as DateFieldOptions | DateRangeFieldOptions)?.max;\n if (!max) return null;\n return max instanceof Date ? max : new Date(max);\n });\n\n // --- Computed: autocomplete options ---\n\n autocompleteSelectFirst = computed((): boolean => {\n return (this.fieldConfig().options as AutocompleteFieldOptions | undefined)?.selectFirst ?? false;\n });\n\n filteredAutoOptions = computed((): LabelValuePair[] => {\n this.controlTick();\n if (this.fieldConfig().type !== FieldType.AUTOCOMPLETE) return [];\n const opts = this.fieldConfig().options as AutocompleteFieldOptions | undefined;\n if (!opts?.items || !Array.isArray(opts.items)) return [];\n\n const value = (this.control().value ?? '').toString().toLowerCase();\n if (!value || value.length < (opts.minChars ?? 0)) return opts.items;\n return opts.items.filter((item) => item.Label?.toLowerCase().includes(value));\n });\n\n // --- Computed: required ---\n\n isRequired = computed((): boolean => {\n const validator = this.control().validator;\n if (!validator) return false;\n const result = validator({ value: null } as any);\n return !!result?.['required'];\n });\n\n // --- Computed: a11y IDs ---\n\n private idPrefix = computed((): string => {\n const fid = this.formId();\n return fid ? `${fid}-field` : 'field';\n });\n\n tooltipId = computed((): string | null => {\n return this.fieldConfig().tooltip ? `${this.idPrefix()}-${this.fieldConfig().key}-tooltip` : null;\n });\n\n errorsId = computed((): string => {\n return `${this.idPrefix()}-${this.fieldConfig().key}-errors`;\n });\n\n groupLabelId = computed((): string => {\n return `${this.idPrefix()}-${this.fieldConfig().key}-label`;\n });\n\n ariaDescribedBy = computed((): string | null => {\n const parts: string[] = [];\n const tipId = this.tooltipId();\n if (tipId) parts.push(tipId);\n if (this.shouldShowErrors() && this.errorMessages().length) parts.push(this.errorsId());\n return parts.length ? parts.join(' ') : null;\n });\n}\n","<div class=\"kms-form-field\"\n [attr.data-field-key]=\"fieldConfig().key\"\n [attr.data-test-id]=\"fieldConfig().testId\"\n [style.--kms-field-disabled-bg]=\"disabledBackground()\"\n [style.--kms-field-disabled-line]=\"disabledLine()\">\n\n @if (fieldConfig().type === FieldType.OFFSET) {\n <!-- ═══ OFFSET — empty spacer ═══ -->\n } @else if (isNativeType()) {\n <!-- ═══ NATIVE TYPES ═══ -->\n <div class=\"kms-form-field__row\">\n <div class=\"kms-form-field__control\">\n @if (isTextInputType() || isNumberInputType()) {\n <!-- TEXT / NUMBER — delegates to kms-text-input CVA -->\n <kms-text-input\n [formControl]=\"control()\"\n [label]=\"fieldConfig().label ?? ''\"\n [placeholder]=\"fieldConfig().placeholder ?? ''\"\n [required]=\"isRequired()\"\n [numericOnly]=\"isNumberInputType()\"\n [autocomplete]=\"resolvedAutocomplete() ?? ''\"\n [prefix]=\"fieldConfig().prefix?.type === 'text' ? fieldConfig().prefix!.value : ''\"\n [prefixIcon]=\"fieldConfig().prefix?.type === 'icon' ? fieldConfig().prefix!.value : ''\"\n [suffix]=\"fieldConfig().suffix?.type === 'text' ? fieldConfig().suffix!.value : ''\"\n [suffixIcon]=\"fieldConfig().suffix?.type === 'icon' ? fieldConfig().suffix!.value : ''\"\n [errorMessage]=\"displayErrorMessage()\">\n </kms-text-input>\n } @else if (isDateType()) {\n <!-- DATE / DATE_RANGE / MONTH_PICKER — delegates to kms-date-input CVA -->\n <kms-date-input\n [formControl]=\"control()\"\n [mode]=\"dateMode()\"\n [label]=\"fieldConfig().label ?? ''\"\n [placeholder]=\"fieldConfig().placeholder ?? ''\"\n [required]=\"isRequired()\"\n [minDate]=\"dateMin()\"\n [maxDate]=\"dateMax()\"\n [monthPicker]=\"isMonthPicker()\"\n [errorMessage]=\"displayErrorMessage()\">\n </kms-date-input>\n } @else {\n <!-- TEXTAREA, AUTOCOMPLETE — keep existing mat-form-field -->\n <mat-form-field class=\"kms-form-field__mat-field\">\n @if (fieldConfig().label) {\n <mat-label>{{ fieldConfig().label }}</mat-label>\n }\n\n @switch (fieldConfig().type) {\n @case (FieldType.TEXTAREA) {\n <textarea matInput\n [formControl]=\"control()\"\n [placeholder]=\"fieldConfig().placeholder ?? ''\"\n [rows]=\"textareaRows()\"\n [attr.autocomplete]=\"resolvedAutocomplete()\"\n [attr.aria-required]=\"isRequired() ? true : null\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [errorStateMatcher]=\"errorMatcher()\">\n </textarea>\n }\n @case (FieldType.AUTOCOMPLETE) {\n <input matInput\n [formControl]=\"control()\"\n [matAutocomplete]=\"autoPanel\"\n [placeholder]=\"fieldConfig().placeholder ?? ''\"\n [attr.autocomplete]=\"resolvedAutocomplete()\"\n [attr.aria-required]=\"isRequired() ? true : null\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [errorStateMatcher]=\"errorMatcher()\">\n <mat-autocomplete #autoPanel=\"matAutocomplete\" [autoActiveFirstOption]=\"autocompleteSelectFirst()\">\n @for (opt of filteredAutoOptions(); track opt.Value) {\n <mat-option [value]=\"opt.Value\">{{ opt.Label }}</mat-option>\n }\n </mat-autocomplete>\n }\n }\n\n <!-- Prefix -->\n @if (fieldConfig().prefix) {\n @if (fieldConfig().prefix!.type === 'text') {\n <span matTextPrefix>{{ fieldConfig().prefix!.value }} </span>\n } @else {\n <kms-icon matPrefix [icon]=\"fieldConfig().prefix!.value\" aria-hidden=\"true\"></kms-icon>\n }\n }\n\n <!-- Suffix -->\n @if (fieldConfig().suffix) {\n @if (fieldConfig().suffix!.type === 'text') {\n <span matTextSuffix> {{ fieldConfig().suffix!.value }}</span>\n } @else {\n <kms-icon matSuffix [icon]=\"fieldConfig().suffix!.value\" aria-hidden=\"true\"></kms-icon>\n }\n }\n\n <!-- Errors -->\n @for (msg of errorMessages(); track msg) {\n <mat-error>{{ msg }}</mat-error>\n }\n </mat-form-field>\n }\n </div>\n\n @if (fieldConfig().tooltip) {\n <kms-tooltip-icon\n class=\"kms-form-field__tooltip\"\n [tooltipText]=\"fieldConfig().tooltip!\"\n [attr.id]=\"tooltipId()\">\n </kms-tooltip-icon>\n }\n </div>\n\n } @else if (fieldConfig().type === FieldType.TEMPLATE && fieldConfig().templateRef) {\n <!-- ═══ TEMPLATE — consumer-provided template ═══ -->\n <div class=\"kms-form-field__row\">\n <div class=\"kms-form-field__control\">\n <ng-container\n *ngTemplateOutlet=\"fieldConfig().templateRef!; context: { control: control(), $implicit: control() }\">\n </ng-container>\n </div>\n @if (fieldConfig().tooltip) {\n <kms-tooltip-icon\n class=\"kms-form-field__tooltip\"\n [tooltipText]=\"fieldConfig().tooltip!\"\n [attr.id]=\"tooltipId()\">\n </kms-tooltip-icon>\n }\n </div>\n @if (shouldShowErrors() && errorMessages().length) {\n <div class=\"kms-form-field__errors\" role=\"alert\" [attr.id]=\"errorsId()\">\n @for (msg of errorMessages(); track msg) {\n <div class=\"kms-form-field__error\">{{ msg }}</div>\n }\n </div>\n }\n } @else {\n <!-- ═══ LIBRARY TYPES — dynamic component ═══ -->\n @if (isGroupType()) {\n <div class=\"kms-form-field__label-row\">\n <span class=\"kms-form-field__group-label\" [attr.id]=\"groupLabelId()\">{{ fieldConfig().label }}</span>\n @if (fieldConfig().tooltip) {\n <kms-tooltip-icon [tooltipText]=\"fieldConfig().tooltip!\" [attr.id]=\"tooltipId()\"></kms-tooltip-icon>\n }\n </div>\n }\n\n <div class=\"kms-form-field__row\">\n <div class=\"kms-form-field__control\">\n <ng-container kmsDynamicField\n [fieldConfig]=\"fieldConfig()\"\n [control]=\"control()\"\n (fieldTouched)=\"onFieldTouched()\">\n </ng-container>\n </div>\n\n @if (!isGroupType() && fieldConfig().tooltip) {\n <kms-tooltip-icon\n class=\"kms-form-field__tooltip\"\n [tooltipText]=\"fieldConfig().tooltip!\"\n [attr.id]=\"tooltipId()\">\n </kms-tooltip-icon>\n }\n </div>\n\n @if (shouldShowErrors() && errorMessages().length) {\n <div class=\"kms-form-field__errors\" role=\"alert\" [attr.id]=\"errorsId()\">\n @for (msg of errorMessages(); track msg) {\n <div class=\"kms-form-field__error\">{{ msg }}</div>\n }\n </div>\n }\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { ViewportService } from '../../../../../services/viewport.service';\nimport { DisabledConfig } from '../../models/disabled-config.model';\nimport { ErrorDisplayConfig } from '../../models/error-display-config.model';\nimport { FieldConfig } from '../../models/field-config.model';\nimport { FormSectionConfig } from '../../models/form-config.model';\n\nconst ALIGN_MAP: Record<string, string> = { left: 'start', center: 'center', right: 'end', stretch: 'stretch' };\nconst VALIGN_MAP: Record<string, string> = { top: 'start', center: 'center', bottom: 'end', stretch: 'stretch' };\n\n@Component({\n selector: 'kms-form-section',\n templateUrl: './form-section.component.html',\n styleUrls: ['./form-section.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class FormSectionComponent {\n sectionConfig = input.required<FormSectionConfig>();\n formGroup = input.required<FormGroup>();\n formId = input('');\n formErrorDisplay = input<ErrorDisplayConfig>();\n formDisabledConfig = input<DisabledConfig>();\n submitted = input(false);\n\n private readonly viewportService = inject(ViewportService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly viewportWidth = signal(this.viewportService.getCurrentViewPortWidth());\n\n constructor() {\n const sub = this.viewportService.getViewportResizedObserver().subscribe((w) => this.viewportWidth.set(w));\n this.destroyRef.onDestroy(() => sub.unsubscribe());\n }\n\n // --- Responsive columns ---\n\n activeColumns = computed((): number => {\n const c = this.sectionConfig();\n const w = this.viewportWidth();\n if (w <= 768) return c.gridColumnsSm ?? 1;\n if (w <= 1024) return c.gridColumnsMd ?? c.gridColumns ?? 1;\n return c.gridColumns ?? 1;\n });\n\n // --- Visible fields ---\n\n visibleFields = computed((): FieldConfig[] => {\n return this.sectionConfig().fields.filter((f) => !f.hidden);\n });\n\n isVisible = computed((): boolean => {\n if (this.sectionConfig().hidden) return false;\n return this.visibleFields().length > 0;\n });\n\n // --- Grid styles ---\n\n gridStyles = computed((): Record<string, string> => {\n const c = this.sectionConfig();\n return {\n 'grid-template-columns': `repeat(${this.activeColumns()}, 1fr)`,\n gap: c.gap ?? '32px',\n padding: c.padding ?? '0',\n 'justify-items': ALIGN_MAP[c.align ?? 'stretch'],\n 'align-items': VALIGN_MAP[c.verticalAlign ?? 'top'],\n };\n });\n\n // --- Per-field cell styles ---\n\n cellStyles(field: FieldConfig): Record<string, string> {\n const cols = this.activeColumns();\n const span = Math.min(field.columnSize ?? 1, cols);\n const styles: Record<string, string> = { 'grid-column': `span ${span}` };\n if (field.align) {\n styles['justify-self'] = ALIGN_MAP[field.align];\n }\n return styles;\n }\n\n // --- Control accessor ---\n\n private static readonly DUMMY_CONTROL = new FormControl();\n\n getControl(key: string | undefined): FormControl {\n if (!key) return FormSectionComponent.DUMMY_CONTROL;\n return (this.formGroup().get(key) as FormControl) ?? FormSectionComponent.DUMMY_CONTROL;\n }\n}\n","@if (isVisible()) {\n <fieldset class=\"kms-form-section\">\n @if (sectionConfig().title) {\n <legend class=\"kms-form-section__legend\">\n {{ sectionConfig().title }}\n @if (sectionConfig().tooltip) {\n <kms-tooltip-icon [tooltipText]=\"sectionConfig().tooltip!\"></kms-tooltip-icon>\n }\n </legend>\n }\n\n <div class=\"kms-form-section__grid\" [ngStyle]=\"gridStyles()\">\n @for (field of visibleFields(); track field.key ?? $index) {\n <div class=\"kms-form-section__cell\" [ngStyle]=\"cellStyles(field)\">\n <kms-form-field\n [fieldConfig]=\"field\"\n [control]=\"getControl(field.key)\"\n [formId]=\"formId()\"\n [formErrorDisplay]=\"formErrorDisplay()\"\n [formDisabledConfig]=\"formDisabledConfig()\"\n [submitted]=\"submitted()\">\n </kms-form-field>\n </div>\n }\n </div>\n </fieldset>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormGroup,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { GenericFormConfig } from '../../models/form-config.model';\nimport { GenericFormState } from '../../models/form-state.model';\nimport { GenericFormService } from '../../services/generic-form.service';\n\n@Component({\n selector: 'kms-generic-form',\n templateUrl: './generic-form.component.html',\n styleUrls: ['./generic-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n providers: [\n GenericFormService,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => GenericFormComponent),\n multi: true,\n },\n ],\n})\nexport class GenericFormComponent implements ControlValueAccessor {\n // --- Signal inputs ---\n\n config = input.required<GenericFormConfig>();\n value = model<Record<string, any>>({});\n disabled = input(false);\n loading = input(false);\n\n // --- Signal outputs ---\n\n formSubmit = output<Record<string, any>>();\n formStateChange = output<GenericFormState>();\n formReady = output<FormGroup>();\n fieldValueChange = output<{ key: string; value: any }>();\n\n // --- Internal state ---\n\n private readonly formService = inject(GenericFormService);\n private readonly elementRef = inject(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly formSub$ = new Subject<void>();\n private lastEmittedValue: Record<string, any> = {};\n private cvaOnChange?: (value: Record<string, any>) => void;\n private cvaOnTouched?: () => void;\n\n form = signal<FormGroup>(new FormGroup({}));\n submitted = signal(false);\n errorAnnouncement = signal('');\n\n // --- Computed ---\n\n visibleSections = computed(() => {\n return this.config().sections.filter((s) => {\n if (s.hidden) return false;\n return s.fields.some((f) => !f.hidden);\n });\n });\n\n showActionsTop = computed(() => {\n const actions = this.config().submitAction;\n if (!actions) return false;\n const pos = actions.position ?? 'bottom';\n return pos === 'top' || pos === 'both';\n });\n\n showActionsBottom = computed(() => {\n const actions = this.config().submitAction;\n if (!actions) return false;\n const pos = actions.position ?? 'bottom';\n return pos === 'bottom' || pos === 'both';\n });\n\n constructor() {\n // Config effect — build form when config changes\n effect(() => {\n const config = this.config();\n untracked(() => this.onConfigChange(config));\n });\n\n // Value effect — patch form when external value changes\n effect(() => {\n const val = this.value();\n untracked(() => {\n if (val !== this.lastEmittedValue) {\n const fg = this.formService.getFormGroup();\n if (fg) {\n this.formService.patchValue(val, { silent: true });\n }\n }\n });\n });\n\n // Disabled effect — enable/disable entire form\n effect(() => {\n const disabled = this.disabled();\n untracked(() => {\n const fg = this.formService.getFormGroup();\n if (!fg) return;\n // Disable/enable individual controls (not the group) so that statusChanges\n // fires on each — DynamicFieldDirective listens to statusChanges to sync\n // the disabled state to the child CVA component.\n const controls = Object.values(fg.controls);\n if (disabled) {\n controls.forEach((c) => c.disable({ onlySelf: true }));\n } else {\n controls.forEach((c) => c.enable({ onlySelf: true }));\n this.formService.applyVisibility(this.config());\n }\n });\n });\n\n this.destroyRef.onDestroy(() => {\n this.formSub$.next();\n this.formSub$.complete();\n });\n }\n\n private onConfigChange(config: GenericFormConfig): void {\n this.formSub$.next();\n this.submitted.set(false);\n\n const fg = this.formService.buildForm(config);\n this.form.set(fg);\n\n // Apply initial value if present\n const initialValue = this.value();\n if (Object.keys(initialValue).length > 0) {\n this.formService.patchValue(initialValue, { silent: true });\n }\n\n // Apply overall disabled state\n if (this.disabled()) {\n fg.disable({ emitEvent: false });\n }\n\n // Form value changes → update model, emit state, CVA\n fg.valueChanges.pipe(takeUntil(this.formSub$)).subscribe(() => {\n const rawValue = this.formService.getRawValue();\n this.lastEmittedValue = rawValue;\n this.value.set(rawValue);\n this.formStateChange.emit(this.formService.getState());\n this.cvaOnChange?.(rawValue);\n });\n\n // Field-level value changes\n for (const section of config.sections) {\n for (const field of section.fields) {\n if (!field.key) continue;\n this.formService\n .fieldValueChanges$(field.key)\n .pipe(takeUntil(this.formSub$))\n .subscribe((fieldValue) => {\n this.fieldValueChange.emit({ key: field.key, value: fieldValue });\n });\n }\n }\n\n this.formReady.emit(fg);\n this.formStateChange.emit(this.formService.getState());\n }\n\n // --- Public methods ---\n\n onFormSubmit(event: Event): void {\n event.preventDefault();\n }\n\n onEnterKey(event: Event): void {\n const target = event.target as HTMLElement;\n if (target.tagName === 'TEXTAREA') return;\n event.preventDefault();\n this.submit();\n }\n\n submit(): boolean {\n const valid = this.formService.validateAll();\n this.submitted.set(true);\n if (valid) {\n this.formSubmit.emit(this.formService.getRawValue());\n this.errorAnnouncement.set('');\n } else {\n this.announceErrors();\n this.focusFirstInvalidField();\n }\n this.formStateChange.emit(this.formService.getState());\n return valid;\n }\n\n validate(): boolean {\n const valid = this.formService.validateAll();\n this.submitted.set(true);\n this.formStateChange.emit(this.formService.getState());\n return valid;\n }\n\n getFormGroup(): FormGroup {\n return this.formService.getFormGroup();\n }\n\n // --- A11y ---\n\n private announceErrors(): void {\n const errors = this.formService.getErrors();\n if (!errors) return;\n const count = Object.keys(errors).length;\n this.errorAnnouncement.set(\n count === 1\n ? '1 field has a validation error.'\n : `${count} fields have validation errors.`\n );\n }\n\n private focusFirstInvalidField(): void {\n const fg = this.formService.getFormGroup();\n for (const section of this.config().sections) {\n for (const field of section.fields) {\n if (!field.key || field.hidden) continue;\n const control = fg.get(field.key);\n if (control?.invalid && control.enabled) {\n const escapedKey = field.key.replace(/[\"\\\\]/g, '\\\\$&');\n const fieldEl = this.elementRef.nativeElement.querySelector(\n `[data-field-key=\"${escapedKey}\"]`\n );\n const focusable = fieldEl?.querySelector(\n 'input, textarea, select, [tabindex]'\n );\n if (focusable) {\n (focusable as HTMLElement).focus();\n return;\n }\n }\n }\n }\n }\n\n // --- CVA ---\n\n writeValue(value: Record<string, any>): void {\n if (value) {\n this.formService.patchValue(value, { silent: true });\n }\n }\n\n registerOnChange(fn: (value: Record<string, any>) => void): void {\n this.cvaOnChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.cvaOnTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n const fg = this.formService.getFormGroup();\n if (!fg) return;\n const controls = Object.values(fg.controls);\n if (isDisabled) {\n controls.forEach((c) => c.disable({ onlySelf: true }));\n } else {\n controls.forEach((c) => c.enable({ onlySelf: true }));\n this.formService.applyVisibility(this.config());\n }\n }\n}\n","<form class=\"kms-generic-form\"\n [class.kms-generic-form--loading]=\"loading()\"\n [class.kms-generic-form--disabled]=\"disabled()\"\n [attr.aria-busy]=\"loading() || null\"\n [attr.aria-disabled]=\"disabled() || null\"\n (submit)=\"onFormSubmit($event)\"\n (keydown.enter)=\"onEnterKey($event)\">\n\n @if (showActionsTop()) {\n <kms-form-actions\n [actionsConfig]=\"config().submitAction!\"\n [disabled]=\"loading()\"\n (submitClick)=\"submit()\">\n </kms-form-actions>\n }\n\n @for (section of visibleSections(); track section.key) {\n <kms-form-section\n [sectionConfig]=\"section\"\n [formGroup]=\"form()\"\n [formId]=\"config().formId\"\n [formErrorDisplay]=\"config().errorDisplay\"\n [formDisabledConfig]=\"config().disabledConfig\"\n [submitted]=\"submitted()\">\n </kms-form-section>\n }\n\n @if (showActionsBottom()) {\n <kms-form-actions\n [actionsConfig]=\"config().submitAction!\"\n [disabled]=\"loading()\"\n (submitClick)=\"submit()\">\n </kms-form-actions>\n }\n\n @if (loading()) {\n <div class=\"kms-generic-form__loading-overlay\"></div>\n }\n\n <output class=\"kms-generic-form__sr-only\" aria-live=\"polite\">\n {{ errorAnnouncement() }}\n </output>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { KmsUiPresentationalComponent } from './kms-ngx-ui-presentational.component';\n\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { CustomPipesModule } from './pipes/custom-pipes.module';\n\nimport { NgxSliderModule } from '@angular-slider/ngx-slider';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { GoogleMapsModule } from '@angular/google-maps';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSelectModule } from '@angular/material/select';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DirectivesModule } from './directives/directives.module';\nimport { ViewportService } from './services/viewport.service';\nimport { BackToTopComponent } from './ui/atoms/back-to-top/back-to-top.component';\nimport { CardComponent } from './ui/atoms/card/card.component';\nimport { CheckboxComponent } from './ui/atoms/checkbox/checkbox.component';\nimport { DropdownFromDataComponent } from './ui/atoms/dropdown-from-data/dropdown-from-data.component';\nimport { IconComponent } from './ui/atoms/icon/icon.component';\nimport { LoaderComponent } from './ui/atoms/loader/loader.component';\nimport { MapComponent } from './ui/atoms/map/map.component';\nimport { RadioButtonComponent } from './ui/atoms/radiobutton/radiobutton.component';\nimport { SlideToggleComponent } from './ui/atoms/slide-toggle/slide-toggle.component';\nimport { SliderComponent } from './ui/atoms/slider/slider.component';\nimport { ButtonComponent } from './ui/molecules/button/button.component';\nimport { ColorInputComponent } from './ui/molecules/color-input/color-input.component';\nimport { ConfirmationDialogComponent } from './ui/molecules/confirmation-dialog/confirmation-dialog.component';\nimport { DateInputComponent } from './ui/molecules/date-input/date-input.component';\nimport { EnumRadiogroupComponent } from './ui/molecules/enum-radiogroup/enum-radiogroup.component';\nimport { FileInputComponent } from './ui/molecules/file-input/file-input.component';\nimport { FlyoutComponent } from './ui/molecules/flyout/flyout.component';\nimport { ImageSliderComponent } from './ui/molecules/image-slider/image-slider.component';\nimport { KMSAccordionItemComponent } from './ui/molecules/kms-accordion-item/kms-accordion-item.component';\nimport { NumericInputComponent } from './ui/molecules/numeric-input/numeric-input.component';\nimport { PasswordComponent } from './ui/molecules/password/password.component';\nimport { RadioGroupComponent } from './ui/molecules/radiogroup/radiogroup.component';\nimport { SalutationDropdownComponent } from './ui/molecules/salutation-dropdown/salutation-dropdown.component';\nimport { SalutationRadiogroupComponent } from './ui/molecules/salutation-radiogroup/salutation-radiogroup.component';\nimport { TextInputComponent } from './ui/molecules/text-input/text-input.component';\nimport { TimeInputComponent } from './ui/molecules/time-input/time-input.component';\nimport { TooltipIconComponent } from './ui/molecules/tooltip-icon/tooltip-icon.component';\nimport { YesNoRadiogroupComponent } from './ui/molecules/yes-no-radiogroup/yes-no-radiogroup.component';\nimport { FormActionsComponent } from './ui/organisms/generic-form/components/form-actions/form-actions.component';\nimport { FormFieldComponent } from './ui/organisms/generic-form/components/form-field/form-field.component';\nimport { FormSectionComponent } from './ui/organisms/generic-form/components/form-section/form-section.component';\nimport { GenericFormComponent } from './ui/organisms/generic-form/components/generic-form/generic-form.component';\nimport { DynamicFieldDirective } from './ui/organisms/generic-form/directives/dynamic-field.directive';\n\n@NgModule({\n declarations: [\n BackToTopComponent,\n CheckboxComponent,\n ColorInputComponent,\n DropdownFromDataComponent,\n EnumRadiogroupComponent,\n FileInputComponent,\n FlyoutComponent,\n ConfirmationDialogComponent,\n ImageSliderComponent,\n KMSAccordionItemComponent,\n KmsUiPresentationalComponent,\n LoaderComponent,\n MapComponent,\n RadioButtonComponent,\n RadioGroupComponent,\n SalutationDropdownComponent,\n SalutationRadiogroupComponent,\n SlideToggleComponent,\n TimeInputComponent,\n TooltipIconComponent,\n YesNoRadiogroupComponent,\n PasswordComponent,\n SliderComponent,\n CardComponent,\n ButtonComponent,\n NumericInputComponent,\n GenericFormComponent,\n FormSectionComponent,\n FormFieldComponent,\n FormActionsComponent,\n DynamicFieldDirective,\n TextInputComponent,\n ],\n imports: [\n CommonModule,\n DragDropModule,\n MatCheckboxModule,\n MatButtonModule,\n MatRadioModule,\n MatDialogModule,\n FormsModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatMenuModule,\n CustomPipesModule,\n GoogleMapsModule,\n MatExpansionModule,\n MatSelectModule,\n NgxMatSelectSearchModule,\n MatProgressSpinnerModule,\n DirectivesModule,\n MatSlideToggleModule,\n TranslateModule,\n MatTooltipModule,\n NgxSliderModule,\n MatAutocompleteModule,\n MatListModule,\n MatCardModule,\n MatDatepickerModule,\n MatNativeDateModule,\n IconComponent,\n DateInputComponent,\n ],\n exports: [\n BackToTopComponent,\n CheckboxComponent,\n ColorInputComponent,\n DropdownFromDataComponent,\n EnumRadiogroupComponent,\n RadioGroupComponent,\n FileInputComponent,\n FlyoutComponent,\n ConfirmationDialogComponent,\n IconComponent,\n ImageSliderComponent,\n KMSAccordionItemComponent,\n KmsUiPresentationalComponent,\n LoaderComponent,\n MapComponent,\n RadioButtonComponent,\n SalutationDropdownComponent,\n SalutationRadiogroupComponent,\n SlideToggleComponent,\n TimeInputComponent,\n TooltipIconComponent,\n YesNoRadiogroupComponent,\n PasswordComponent,\n SliderComponent,\n CardComponent,\n ButtonComponent,\n NumericInputComponent,\n GenericFormComponent,\n FormSectionComponent,\n FormActionsComponent,\n DynamicFieldDirective,\n DateInputComponent,\n TextInputComponent,\n ],\n providers: [ViewportService],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class KmsUiPresentationalModule {}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KmsUiPresentationalService {\n\n constructor() { }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nexport enum ButtonResponseType {\n primary = 'primary',\n secondary = 'secondary',\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function noWhitespaceOnly(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value || typeof control.value !== 'string') {\n return null;\n }\n return control.value.trim().length === 0 ? { whitespaceOnly: true } : null;\n };\n}\n\nexport function noSpecialCharsOnly(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value || typeof control.value !== 'string') {\n return null;\n }\n const hasAlphanumeric = /[a-zA-Z0-9\\u00C0-\\u024F]/.test(control.value);\n return hasAlphanumeric ? null : { specialCharsOnly: true };\n };\n}\n","/**\n * Pre-translated validation error messages for all supported locales.\n * Merged into @ngx-translate via `GenericFormModule` constructor under\n * the key path `uiPresentational.validatorMessages.<validatorName>`.\n *\n * Interpolation placeholders (e.g. `{{requiredLength}}`) match the metadata\n * objects Angular validators attach to `ValidationErrors`.\n */\nexport const KMS_ERROR_MESSAGES: Record<string, Record<string, string>> = {\n en: {\n required: 'This field is required.',\n minlength: 'Minimum {{requiredLength}} characters required.',\n maxlength: 'Maximum {{requiredLength}} characters allowed.',\n min: 'Value must be at least {{min}}.',\n max: 'Value must be at most {{max}}.',\n email: 'Please enter a valid email address.',\n pattern: 'The value does not match the required format.',\n whitespaceOnly: 'Must not contain only whitespace.',\n specialCharsOnly: 'Must contain at least one letter or number.',\n },\n 'en-uk': {\n required: 'This field is required.',\n minlength: 'Minimum {{requiredLength}} characters required.',\n maxlength: 'Maximum {{requiredLength}} characters allowed.',\n min: 'Value must be at least {{min}}.',\n max: 'Value must be at most {{max}}.',\n email: 'Please enter a valid email address.',\n pattern: 'The value does not match the required format.',\n whitespaceOnly: 'Must not contain only whitespace.',\n specialCharsOnly: 'Must contain at least one letter or number.',\n },\n de: {\n required: 'Dieses Feld ist erforderlich.',\n minlength: 'Mindestens {{requiredLength}} Zeichen erforderlich.',\n maxlength: 'Maximal {{requiredLength}} Zeichen erlaubt.',\n min: 'Der Wert muss mindestens {{min}} betragen.',\n max: 'Der Wert darf h\\u00f6chstens {{max}} betragen.',\n email: 'Bitte geben Sie eine g\\u00fcltige E-Mail-Adresse ein.',\n pattern: 'Der Wert entspricht nicht dem erforderlichen Format.',\n whitespaceOnly: 'Darf nicht nur aus Leerzeichen bestehen.',\n specialCharsOnly: 'Muss mindestens einen Buchstaben oder eine Zahl enthalten.',\n },\n 'de-de': {\n required: 'Dieses Feld ist erforderlich.',\n minlength: 'Mindestens {{requiredLength}} Zeichen erforderlich.',\n maxlength: 'Maximal {{requiredLength}} Zeichen erlaubt.',\n min: 'Der Wert muss mindestens {{min}} betragen.',\n max: 'Der Wert darf h\\u00f6chstens {{max}} betragen.',\n email: 'Bitte geben Sie eine g\\u00fcltige E-Mail-Adresse ein.',\n pattern: 'Der Wert entspricht nicht dem erforderlichen Format.',\n whitespaceOnly: 'Darf nicht nur aus Leerzeichen bestehen.',\n specialCharsOnly: 'Muss mindestens einen Buchstaben oder eine Zahl enthalten.',\n },\n 'de-ch': {\n required: 'Dieses Feld ist erforderlich.',\n minlength: 'Mindestens {{requiredLength}} Zeichen erforderlich.',\n maxlength: 'Maximal {{requiredLength}} Zeichen erlaubt.',\n min: 'Der Wert muss mindestens {{min}} betragen.',\n max: 'Der Wert darf h\\u00f6chstens {{max}} betragen.',\n email: 'Bitte geben Sie eine g\\u00fcltige E-Mail-Adresse ein.',\n pattern: 'Der Wert entspricht nicht dem erforderlichen Format.',\n whitespaceOnly: 'Darf nicht nur aus Leerzeichen bestehen.',\n specialCharsOnly: 'Muss mindestens einen Buchstaben oder eine Zahl enthalten.',\n },\n};\n","import { NgModule } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { KMS_ERROR_MESSAGES } from './models/kms-error-messages';\nimport { FieldRegistryService } from './services/field-registry.service';\n\n/**\n * Lightweight facade module for the generic-form feature.\n *\n * - Provides `FieldRegistryService` (maps FieldType → library component classes).\n * - Merges pre-translated validation error messages into `@ngx-translate`\n * so that `GenericFormService.resolveErrorMessage()` can look them up.\n *\n * **Does NOT declare any components** — those live in `KmsUiPresentationalModule`\n * to avoid circular AOT imports.\n *\n * Consuming apps import both modules:\n * ```ts\n * imports: [KmsUiPresentationalModule, GenericFormModule]\n * ```\n */\n@NgModule({\n imports: [TranslateModule],\n providers: [FieldRegistryService],\n})\nexport class GenericFormModule {\n constructor(translate: TranslateService) {\n // Re-merge library error messages whenever the app loads/changes language.\n // The app's HTTP loader calls setTranslation() without merge, which\n // overwrites the store — this subscriber re-merges library messages on top.\n //\n // NOTE: We intentionally do NOT merge upfront for all languages, because\n // that would make ngx-translate skip the HTTP loader (it thinks translations\n // are already cached), breaking the app's own translations.\n // Merge immediately if a language is already active (e.g. APP_INITIALIZER\n // called translate.use() before this module was instantiated).\n const currentLang = translate.currentLang || translate.defaultLang;\n if (currentLang) {\n this.mergeMessages(translate, currentLang);\n }\n\n translate.onLangChange.subscribe((event) => {\n this.mergeMessages(translate, event.lang);\n });\n }\n\n private mergeMessages(translate: TranslateService, lang: string): void {\n const key = lang.toLowerCase();\n const messages =\n KMS_ERROR_MESSAGES[key] ??\n KMS_ERROR_MESSAGES[key.split('-')[0]] ??\n KMS_ERROR_MESSAGES['en'];\n if (messages) {\n translate.setTranslation(\n lang,\n { uiPresentational: { validatorMessages: messages } },\n true\n );\n }\n }\n}\n","/** Form layout mode. Currently only GRID is implemented. */\nexport enum FormLayout {\n VERTICAL = 'vertical',\n GRID = 'grid',\n INLINE = 'inline',\n}\n\n/** Horizontal alignment for fields within grid cells. Maps to CSS `justify-items` / `justify-self`. */\nexport type GridAlign = 'left' | 'center' | 'right' | 'stretch';\n\n/** Vertical alignment for fields within grid rows. Maps to CSS `align-items`. */\nexport type GridVerticalAlign = 'top' | 'center' | 'bottom' | 'stretch';\n","/*\n * Public API Surface of kms-ngx-ui-presentational\n */\n\nexport * from './lib/kms-ngx-ui-presentational.component';\nexport * from './lib/kms-ngx-ui-presentational.module';\nexport * from './lib/kms-ngx-ui-presentational.service';\n\nexport * from './lib/services/viewport.service';\n\nexport * from './lib/parent-components/form.component';\n\n// Models\nexport * from './lib/models/button-response-types.enum';\nexport * from './lib/models/image-snippet.model';\nexport * from './lib/models/salutation.enum';\nexport * from './lib/models/text-value-pair.model';\nexport * from './lib/models/types/nullable.type';\n\n// Directives\nexport * from './lib/directives/directives.module';\nexport * from './lib/directives/sum-of-height.directive';\nexport * from './lib/directives/swipe.directive';\nexport * from './lib/directives/time.directive';\nexport * from './lib/directives/tooltip.directive';\n\n// Pipes\nexport * from './lib/pipes/custom-pipes.module';\nexport * from './lib/pipes/integer-currency.pipe';\nexport * from './lib/pipes/safe-html.pipe';\nexport * from './lib/pipes/safe-resource-url.pipe';\nexport * from './lib/pipes/safe-url.pipe';\nexport * from './lib/pipes/sanitaze-null.pipe';\nexport * from './lib/pipes/trim.pipe';\nexport * from './lib/pipes/typeof.pipe';\n\n// Enums\nexport * from './lib/enums/buttonAppearance.enum';\nexport * from './lib/enums/colors.enum';\nexport * from './lib/enums/iconSize.enum';\nexport * from './lib/enums/radioButtonSize.enum';\n\n// Components\n\n// Atoms\nexport * from './lib/ui/atoms/back-to-top/back-to-top.component';\nexport * from './lib/ui/atoms/card/card.component';\nexport * from './lib/ui/atoms/checkbox/checkbox.component';\nexport * from './lib/ui/atoms/dropdown-from-data/dropdown-from-data.component';\nexport * from './lib/ui/atoms/icon/icon.component';\nexport * from './lib/ui/atoms/loader/loader.component';\nexport * from './lib/ui/atoms/map/map.component';\nexport * from './lib/ui/atoms/radiobutton/radiobutton.component';\nexport * from './lib/ui/atoms/slide-toggle/slide-toggle.component';\nexport * from './lib/ui/atoms/slider/slider.component';\nexport * from './lib/ui/atoms/slider/slider.model';\n\n// Molecules\nexport * from './lib/ui/molecules/button/button.component';\nexport * from './lib/ui/molecules/color-input/color-input.component';\nexport * from './lib/ui/molecules/confirmation-dialog/confirmation-dialog.component';\nexport * from './lib/ui/molecules/confirmation-dialog/dialog-data.model';\nexport * from './lib/ui/molecules/date-input/date-input.component';\nexport * from './lib/ui/molecules/enum-radiogroup/enum-radiogroup.component';\nexport * from './lib/ui/molecules/file-input/file-input.component';\nexport * from './lib/ui/molecules/flyout/flyout.component';\nexport * from './lib/ui/molecules/image-slider/image-slider.component';\nexport * from './lib/ui/molecules/kms-accordion-item/kms-accordion-item.component';\nexport * from './lib/ui/molecules/numeric-input/numeric-input.component';\nexport * from './lib/ui/molecules/password/password.component';\nexport * from './lib/ui/molecules/radiogroup/radiogroup.component';\nexport * from './lib/ui/molecules/salutation-dropdown/salutation-dropdown.component';\nexport * from './lib/ui/molecules/salutation-radiogroup/salutation-radiogroup.component';\nexport * from './lib/ui/molecules/text-input/text-input.component';\nexport * from './lib/ui/molecules/time-input/time-input.component';\nexport * from './lib/ui/molecules/tooltip-icon/tooltip-icon.component';\nexport * from './lib/ui/molecules/yes-no-radiogroup/yes-no-radiogroup.component';\n\n// Validators\nexport * from './lib/validators/content.validators';\n\n// Organisms — Generic Form\nexport * from './lib/ui/organisms/generic-form/generic-form.module';\nexport * from './lib/ui/organisms/generic-form/models/index';\nexport * from './lib/ui/organisms/generic-form/services/generic-form.service';\nexport * from './lib/ui/organisms/generic-form/services/field-registry.service';\nexport * from './lib/ui/organisms/generic-form/components/generic-form/generic-form.component';\nexport * from './lib/ui/organisms/generic-form/components/form-section/form-section.component';\nexport * from './lib/ui/organisms/generic-form/components/form-field/form-field.component';\nexport * from './lib/ui/organisms/generic-form/components/form-actions/form-actions.component';\nexport * from './lib/ui/organisms/generic-form/directives/dynamic-field.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.IconComponent","i3.SafeHtmlPipe","i3","i4","i6.IconComponent","i2","i4.IconComponent","i1.TooltipDirective","i5.TooltipIconComponent","nextId","i3.IconComponent","i2.GetMaxHeightDirective","i4.SafeHtmlPipe","i5.IconComponent","i3.RadioButtonComponent","i4.TooltipIconComponent","i4.TimeDirective","i5","i1.ButtonComponent","takeUntil","i6","i7.IconComponent","i8.DateInputComponent","i9.TooltipIconComponent","i10.DynamicFieldDirective","i11.TextInputComponent","i2.TooltipIconComponent","i3.FormFieldComponent","i2.FormSectionComponent","i3.FormActionsComponent"],"mappings":"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"}
|