@yuuvis/client-framework 0.7.3 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/actions/lib/components/contextmenu/contextmenu.component.mjs +2 -2
- package/esm2022/forms/index.mjs +5 -1
- package/esm2022/forms/lib/elements/datetime-range/datetime-range.component.mjs +32 -32
- package/esm2022/forms/lib/elements/number/number.component.mjs +3 -3
- package/esm2022/forms/lib/elements/number-range/number-range.component.mjs +3 -3
- package/esm2022/forms/lib/elements/range-select-date/date-range-picker/date-range-picker.component.mjs +38 -0
- package/esm2022/forms/lib/elements/range-select-date/range-select-date.component.mjs +181 -0
- package/esm2022/forms/lib/elements/range-select-date/range-select-date.interface.mjs +2 -0
- package/esm2022/forms/lib/elements/range-select-filesize/range-select-filesize.component.mjs +98 -0
- package/esm2022/forms/lib/elements/range-select-filesize/range-select-filesize.interface.mjs +2 -0
- package/esm2022/forms/lib/elements/string/string.component.mjs +10 -3
- package/esm2022/list/lib/list.component.mjs +6 -4
- package/esm2022/metadata-form/lib/metadata-default-templates/metadata-default-templates.component.mjs +3 -3
- package/esm2022/metadata-form/lib/metadata-form-field/metadata-form-field.component.mjs +5 -3
- package/esm2022/object-details/lib/object-audit/object-audit.component.mjs +3 -3
- package/esm2022/object-flavor/lib/object-flavor/object-flavor.component.mjs +2 -2
- package/esm2022/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.mjs +2 -2
- package/esm2022/tile-list/lib/tile-config/tile-config.component.mjs +2 -2
- package/fesm2022/yuuvis-client-framework-actions.mjs +1 -1
- package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-forms.mjs +339 -44
- package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-list.mjs +5 -3
- package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs +6 -4
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-details.mjs +2 -2
- package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs +2 -2
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-tile-list.mjs +1 -1
- package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
- package/forms/index.d.ts +4 -0
- package/forms/lib/elements/datetime-range/datetime-range.component.d.ts +2 -1
- package/forms/lib/elements/range-select-date/date-range-picker/date-range-picker.component.d.ts +13 -0
- package/forms/lib/elements/range-select-date/range-select-date.component.d.ts +33 -0
- package/forms/lib/elements/range-select-date/range-select-date.interface.d.ts +5 -0
- package/forms/lib/elements/range-select-filesize/range-select-filesize.component.d.ts +28 -0
- package/forms/lib/elements/range-select-filesize/range-select-filesize.interface.d.ts +5 -0
- package/list/lib/list.component.d.ts +2 -1
- package/metadata-form/lib/metadata-form-field/metadata-form-field.component.d.ts +1 -0
- package/package.json +28 -28
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yuuvis-client-framework-forms.mjs","sources":["../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/catalog/catalog.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/catalog/catalog.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/datetime/datetime.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/datetime/datetime.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/datetime-range/datetime-range.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/datetime-range/datetime-range.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/number/number.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/number/number.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/number-range/number-range.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/number-range/number-range.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/organization/organization.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/organization/organization.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/string/string.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/string/string.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/form-input/form-input.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/form-input/form-input.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/forms.module.ts","../../../../../libs/yuuvis/client-framework/forms/src/yuuvis-client-framework-forms.ts"],"sourcesContent":["import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Classification, ClassificationEntry, SystemService } from '@yuuvis/client-core';\nimport { DropdownOption, YvcDropdownModule } from '@yuuvis/components/dropdown';\n\n/**\n * Component rendering a simple catalog as form element.\n * There are two ways how to use this component. One is to add options as an array\n * of strings on your own, the second one is to apply a special classification.\n *\n * Classifications are used within form models and rendered as object forms. Elements\n * with a classification of `catalog[Item1, Item2, Item3]` will use this component\n * as well. So you may also choose to set a classification like this in order to\n * apply your options.\n *\n * @example\n * <!-- setting options as string array -->\n * <yuv-catalog [options]=\"cities\" [(ngModel)]=\"hometown\"></yuv-catalog>\n *\n * <!-- setting options using a classification -->\n * <yuv-catalog [classification]=\"'catalog[Berlin, Chicago, Paris]'\" [(ngModel)]=\"hometown\"></yuv-catalog>\n */\n@Component({\n selector: 'yuv-catalog',\n standalone: true,\n imports: [FormsModule, YvcDropdownModule],\n templateUrl: './catalog.component.html',\n styleUrls: ['./catalog.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CatalogComponent),\n multi: true\n }\n ],\n host: { class: 'yuv-catalog' }\n})\nexport class CatalogComponent implements ControlValueAccessor {\n value?: string | string[];\n _options: DropdownOption[] = [];\n\n getLabel = (value: any) => (this._options ? this._options.find((o) => o.value === value) || { label: value } : { label: value }).label;\n\n /**\n * Enable filtering of options\n */\n @Input() filter = false;\n /**\n * Possibles values are `EDIT` (default),`SEARCH`,`CREATE`. In search situation validation of the form element will be turned off, so you are able to enter search terms that do not meet the elements validators.\n */\n @Input() situation?: string;\n /**\n * By default a filter panel will shown if the number of options exceeds 10 entries. You could\n * change this number.\n */\n @Input() enableFilterWhenOptionsExceed = 10;\n /**\n * Array of selectable entries\n */\n @Input() set options(options: (string | any)[]) {\n this._options = options && typeof options[0] === 'string' ? options.map((o) => ({ label: o, value: o })) : options || [];\n this.filter = this.filter || this._options?.length > this.enableFilterWhenOptionsExceed;\n }\n /**\n * Indicator that multiple items could be selected\n */\n @Input() multiselect = false;\n /**\n * Additional semantics for the form element.\n */\n @Input() set classifications(c: string[]) {\n const ce: ClassificationEntry | undefined = this.systemService.getClassifications(c).get(Classification.STRING_CATALOG);\n if (ce && ce.options) {\n this.options = ce.options;\n }\n }\n\n /**\n * Will attch the overlay to this HTMLelement\n */\n @Input() appendTo = null;\n\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n\n constructor(private systemService: SystemService) {}\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: any): void {\n this.value = value === undefined ? null : value;\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(fn: any): void {}\n\n onChange(value: string[] | string | undefined) {\n this.value = value;\n this.propagateChange(this.value);\n }\n}\n","<yvc-dropdown [multiple]=\"multiselect\" [options]=\"_options\" [(ngModel)]=\"value\" (ngModelChange)=\"onChange($event)\" [filter]=\"filter\"\n [disabled]=\"readonly\"></yvc-dropdown>\n","import { Component, Input, forwardRef, inject } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport { DatepickerLabels, YvcDatepickerModule } from '@yuuvis/components/datepicker';\n\n@Component({\n selector: 'yuv-datetime',\n standalone: true,\n imports: [FormsModule, YvcDatepickerModule, DatetimeComponent],\n templateUrl: './datetime.component.html',\n styleUrl: './datetime.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatetimeComponent),\n multi: true\n }\n ]\n})\nexport class DatetimeComponent implements ControlValueAccessor {\n private translate = inject(TranslateService);\n\n value: Date | null = null;\n locale: string = this.translate.currentLang;\n labels?: DatepickerLabels;\n\n /**\n * Whether or not to allow only values in the future (default: false)\n */\n @Input() onlyFutureDates = false;\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n\n /**\n * Enables setting time as well (default: false)\n */\n @Input() withTime = false;\n\n constructor() {\n this._setLabels();\n this.translate.onLangChange.subscribe((e: LangChangeEvent) => (this.locale = e.lang));\n }\n\n private _setLabels() {\n this.labels = {\n calendarApply: this.translate.instant('yuv.form.element.datetime.calendar.select'),\n calendarCancel: this.translate.instant('yuv.form.element.datetime.calendar.cancel'),\n shortcut: { today: this.translate.instant('yuv.form.element.datetime.calendar.today') }\n };\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (fn: () => void) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n validationChange = () => {};\n\n writeValue(value: any): void {\n if (typeof value === 'string') {\n value = new Date(value);\n this.propagateChange(value);\n }\n this.value = value || null;\n }\n\n registerOnChange(fn: () => void): void {\n this.propagateChange = fn;\n }\n\n registerOnValidatorChange?(fn: () => void): void {\n this.validationChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(): void {}\n\n onValueChange(e: any) {\n this.propagateChange(e);\n }\n}\n","<yvc-datepicker #picker [calendar]=\"true\" [disabled]=\"readonly\" [locale]=\"locale\" [withTime]=\"withTime\" [labels]=\"labels!\"\n [onlyFutureDates]=\"onlyFutureDates\"\n [ngModelOptions]=\"{standalone: true}\" [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"></yvc-datepicker>","import { Component, Input, OnInit, forwardRef, inject } from '@angular/core';\nimport { ControlValueAccessor, FormBuilder, FormGroup, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ReactiveFormsModule, Validator, Validators } from '@angular/forms';\nimport { Operator, OperatorLabel, RangeValue } from '@yuuvis/client-core';\nimport { YvcDropdownModule } from '@yuuvis/components/dropdown';\nimport { DatetimeComponent } from '../datetime/datetime.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'yuv-datetime-range',\n standalone: true,\n imports: [CommonModule, FormsModule, YvcDropdownModule, ReactiveFormsModule, DatetimeComponent],\n templateUrl: './datetime-range.component.html',\n styleUrl: './datetime-range.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatetimeRangeComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DatetimeRangeComponent),\n multi: true\n }\n ]\n})\nexport class DatetimeRangeComponent implements ControlValueAccessor, Validator, OnInit {\n private fb = inject(FormBuilder);\n\n /**\n * Enables setting time as well (default: false)\n */\n @Input() withTime = false;\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n @Input() operator = 'eq';\n\n rangeForm: FormGroup = this.fb.group({\n dateValue: [undefined, Validators.required],\n dateValueFrom: []\n });\n value?: RangeValue;\n\n private _isValid = true;\n\n // options for search situation\n availableSearchOptions = [\n { label: OperatorLabel.EQUAL, value: Operator.EQUAL },\n { label: OperatorLabel.GREATER_OR_EQUAL, value: Operator.GREATER_OR_EQUAL },\n { label: OperatorLabel.LESS_OR_EQUAL, value: Operator.LESS_OR_EQUAL },\n { label: OperatorLabel.INTERVAL_INCLUDE_BOTH, value: Operator.INTERVAL_INCLUDE_BOTH }\n ];\n // the selected search option\n searchOption = this.availableSearchOptions[1].value;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: RangeValue): void {\n if (value && (value.firstValue || value.secondValue)) {\n const match = this.availableSearchOptions.find((o) => o.value === value.operator);\n this.searchOption = match ? match.value : this.availableSearchOptions[0].value;\n\n this.value = value;\n this.rangeForm.patchValue({\n dateValueFrom: value.secondValue && value.firstValue,\n dateValue: value.secondValue || value.firstValue\n });\n } else {\n this.searchOption = this.availableSearchOptions[0].value;\n this.value = undefined;\n this.rangeForm.reset();\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n registerOnTouched(fn: any): void {}\n\n onValueChange() {\n const dateValue = this.rangeForm.value.dateValue || undefined;\n if (this.searchOption === Operator.INTERVAL_INCLUDE_BOTH) {\n const dateValueFrom = this.rangeForm.value.dateValueFrom || undefined;\n\n if (dateValueFrom || dateValue) {\n this._isValid = this.rangeForm.valid && !!dateValueFrom && !!dateValue;\n this.value = !this._isValid ? \n // {\n // operator: this.searchOption,\n // firstValue: undefined,\n // secondValue: undefined\n // } \n undefined\n : \n {\n operator: this.searchOption,\n firstValue: dateValueFrom,\n secondValue: dateValue\n };\n }\n } else {\n this._isValid = this.rangeForm.valid;\n this.value = !this._isValid ? \n // {\n // operator: this.searchOption,\n // firstValue: undefined,\n // secondValue: undefined\n // } \n undefined\n : \n {\n operator: this.searchOption,\n firstValue: dateValue,\n secondValue: undefined\n }\n }\n\n this.propagateChange(this.value);\n }\n\n validate() {\n let err;\n if (this.searchOption === Operator.EQUAL) {\n err = {\n datecontrol: {\n valid: false\n }\n };\n } else {\n // make sure that on ranges, the first value is earlier than the last\n if (this.searchOption === Operator.INTERVAL_INCLUDE_BOTH && this.value && this.value.firstValue && this.value.secondValue) {\n this._isValid = new Date(this.value.firstValue as Date).getTime() < new Date(this.value.secondValue as Date).getTime();\n err = {\n daterangeorder: {\n valid: false\n }\n };\n } else {\n err = {\n daterange: {\n valid: false\n }\n };\n }\n }\n return this._isValid ? null : err;\n }\n\n ngOnInit(): void {\n this.rangeForm.valueChanges.subscribe(() => this.onValueChange());\n }\n}\n","<form class=\"eo-datetime-range\" [formGroup]=\"rangeForm\">\n @if (searchOption === 'gtelte') {\n <yuv-datetime [withTime]=\"withTime\" formControlName=\"dateValueFrom\"></yuv-datetime>\n }\n <yvc-dropdown\n [disableClearButton]=\"true\"\n [(ngModel)]=\"searchOption\"\n (ngModelChange)=\"onValueChange()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [options]=\"availableSearchOptions\"\n ></yvc-dropdown>\n\n <yuv-datetime [withTime]=\"withTime\" formControlName=\"dateValue\"></yuv-datetime>\n</form>\n","import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { Classification, TranslateService, Utils } from '@yuuvis/client-core';\nimport { FileSizePipe, LocaleNumberPipe } from '@yuuvis/client-core';\n\n/**\n * Creates form input for number values.\n *\n * Implements `ControlValueAccessor` so it can be used within Angular forms.\n *\n * @example\n * <yuv-number [scale]=\"2\"></yuv-number>\n *\n */\n@Component({\n selector: 'yuv-number',\n standalone: true,\n imports: [FormsModule],\n templateUrl: './number.component.html',\n styleUrls: ['./number.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NumberComponent),\n multi: true\n }\n ]\n})\nexport class NumberComponent implements ControlValueAccessor, Validator {\n value?: number;\n innerValue: string | null = null;\n _scale?: number;\n _precision?: number;\n _pattern?: string;\n _grouping = false;\n validationErrors: ValidationErrors[] = [];\n numberPipe: LocaleNumberPipe | FileSizePipe;\n\n /**\n * Number of decimal places\n */\n @Input()\n set scale(val: number | undefined) {\n this._scale = Math.min(val || 0, 30);\n }\n get scale(): number | undefined {\n return this._scale;\n }\n /**\n * Overall amount of digits allowed (including decimal places)\n */\n @Input()\n set precision(val: number | undefined) {\n this._precision = Math.min(val || 100, 100);\n }\n get precision(): number | undefined {\n return this._precision;\n }\n /**\n * Set to true to group number by pattern\n */\n @Input()\n set grouping(val: boolean) {\n this._grouping = val ?? true;\n }\n get grouping(): boolean {\n return this._grouping;\n }\n /**\n * The pattern to group number value by\n */\n @Input()\n set groupPattern(val: string | undefined) {\n this._pattern = val;\n }\n get groupPattern(): string | undefined {\n return this._pattern;\n }\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n\n /**\n * set minimum input value\n */\n @Input() minValue?: number;\n\n /**\n * set maximum input value\n *\n */\n @Input() maxValue?: number;\n\n /**\n * classification property adds some semantics to the value of this component.\n * If you provide a value of `filesize` numbers typed into the control will be\n * handled like file sizes (calculates differnt units)\n */\n @Input() set classifications(classifications: string[]) {\n this.numberPipe =\n classifications && classifications.includes(Classification.NUMBER_FILESIZE) ? new FileSizePipe(this.translate) : new LocaleNumberPipe(this.translate);\n }\n\n static betweenTwoNumbers(val: number, minVal: number | undefined, maxVal: number | undefined) {\n const min = !Utils.isEmpty(minVal) ? minVal : -Infinity;\n const max = !Utils.isEmpty(maxVal) ? maxVal : Infinity;\n return val >= (min as number) && val <= (max as number);\n }\n\n constructor(private translate: TranslateService) {\n this.numberPipe = new LocaleNumberPipe(this.translate);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: any): void {\n this.value = value != null ? value : null;\n this.innerValue = value != null ? this.numberPipe.numberToString(value, this.grouping, this.groupPattern, this.scale) : null;\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(): void {}\n\n onValueChange(evt: any) {\n this.validationErrors = [];\n\n if (Utils.isEmpty(evt)) {\n this.value = undefined;\n this.propagateChange(this.value);\n return;\n }\n\n // validate input\n const val = this.numberPipe.stringToNumber(evt);\n // general number validation\n if (isNaN(val) || typeof val !== 'number') {\n this.validationErrors.push({ key: 'number' });\n } else {\n const split = evt.replaceAll(this.numberPipe.separator, '').split(this.numberPipe.decimalSeparator);\n // check precision\n if (this.precision !== undefined) {\n const prePointDigits = this.precision - (this.scale || 0);\n if (split[0]?.length > prePointDigits) {\n this.validationErrors.push({ key: 'precision', params: { prePointDigits } });\n }\n }\n // check scale\n if (this.scale && split[1]?.length > this.scale) {\n this.validationErrors.push({ key: 'scale', params: { scale: this.scale } });\n }\n\n // min max\n if (!NumberComponent.betweenTwoNumbers(val, this.minValue, this.maxValue)) {\n if (Utils.isEmpty(this.minValue)) {\n this.validationErrors.push({ key: 'maxvalue', params: { maxValue: this.maxValue } });\n } else if (Utils.isEmpty(this.maxValue)) {\n this.validationErrors.push({ key: 'minvalue', params: { minValue: this.minValue } });\n } else {\n this.validationErrors.push({ key: 'minmax', params: { minValue: this.minValue, maxValue: this.maxValue } });\n }\n }\n\n if (!this.validationErrors.length) {\n this.value = val;\n }\n }\n this.propagateChange(this.value);\n }\n\n // called when the input looses focus\n public format() {\n if (!this.readonly && typeof this.value === 'number' && this.validationErrors.length === 0) {\n this.innerValue = this.numberPipe.numberToString(this.value, this.grouping, this.groupPattern, this.scale);\n }\n }\n\n // called when the input get focus\n public unformat() {\n if (!this.readonly && typeof this.value === 'number' && this.validationErrors.length === 0) {\n this.innerValue = this.numberPipe.transform(this.value, false);\n }\n }\n\n // returns null when valid else the validation object\n public validate() {\n return this.validationErrors.length ? Utils.arrayToObject(this.validationErrors, 'key', (err) => ({ valid: false, ...err })) : null;\n }\n}\n","<input type=\"string\" [(ngModel)]=\"innerValue\" (focus)=\"unformat()\" (blur)=\"format()\" class=\"input-number\"\n [readonly]=\"readonly\" (ngModelChange)=\"onValueChange($event)\" />\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, Input } from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n UntypedFormControl,\n UntypedFormGroup,\n Validator\n} from '@angular/forms';\nimport { Operator, OperatorLabel, RangeValue } from '@yuuvis/client-core';\nimport { YvcDropdownModule } from '@yuuvis/components/dropdown';\nimport { NumberComponent } from '../number/number.component';\n\n/**\n * Creates form input for ranges of numeric values.\n *\n * Implements `ControlValueAccessor` so it can be used within Angular forms.\n *\n * @example\n * <yuv-number-range [scale]=\"2\"></yuv-number-range>\n *\n */\n@Component({\n selector: 'yuv-number-range',\n standalone: true,\n imports: [CommonModule, NumberComponent, YvcDropdownModule, FormsModule, ReactiveFormsModule],\n templateUrl: './number-range.component.html',\n styleUrls: ['./number-range.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberRangeComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NumberRangeComponent),\n multi: true\n }\n ]\n})\nexport class NumberRangeComponent implements ControlValueAccessor, Validator {\n /**\n * Number of decimal places\n */\n @Input() scale?: number;\n /**\n * Overall amount of digits allowed (including decimal places)\n */\n @Input() precision?: number;\n /**\n * Set to true to group number by pattern\n */\n @Input() grouping = false;\n /**\n * The pattern to group number value by\n */\n @Input() pattern?: string;\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n\n /**\n * classification property adds some semantics to the value of this component.\n * If you provide a value of `filesize` numbers typed into the control will be\n * handled like file sizes (calculates differnt units)\n */\n @Input() classifications: string[] = [];\n /**\n * set minimum input value\n */\n @Input() minValue?: number;\n /**\n * set maximum input value\n *\n */\n @Input() maxValue?: number;\n\n public rangeForm = new UntypedFormGroup({\n numberValue: new UntypedFormControl(),\n numberValueFrom: new UntypedFormControl()\n });\n\n value?: RangeValue;\n private isValid = true;\n\n // options for search situation\n public availableSearchOptions = [\n { label: OperatorLabel.EQUAL, value: Operator.EQUAL },\n { label: OperatorLabel.GREATER_OR_EQUAL, value: Operator.GREATER_OR_EQUAL },\n { label: OperatorLabel.LESS_OR_EQUAL, value: Operator.LESS_OR_EQUAL },\n { label: OperatorLabel.INTERVAL_INCLUDE_BOTH, value: Operator.INTERVAL_INCLUDE_BOTH }\n ];\n // the selected search option\n public searchOption = this.availableSearchOptions[1].value;\n\n constructor() {\n this.rangeForm.valueChanges.forEach(() => {\n this.onValueChange();\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: RangeValue): void {\n if (value && (value.firstValue != null || value.secondValue != null)) {\n const match = this.availableSearchOptions.find((o) => o.value === value.operator);\n this.searchOption = match ? match.value : this.availableSearchOptions[0].value;\n\n this.value = value;\n if (value.secondValue == null) {\n this.rangeForm.setValue({\n numberValueFrom: null,\n numberValue: value.firstValue != null ? value.firstValue : null\n });\n } else {\n this.rangeForm.setValue({\n numberValueFrom: value.firstValue != null ? value.firstValue : null,\n numberValue: value.secondValue\n });\n }\n } else {\n this.searchOption = this.availableSearchOptions[0].value;\n this.value = undefined;\n this.rangeForm.reset();\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n registerOnTouched(fn: any): void {}\n\n onValueChange() {\n this.isValid = this.rangeForm.valid;\n if (this.searchOption === Operator.INTERVAL_INCLUDE_BOTH) {\n this.isValid = this.rangeForm.valid && this.rangeForm.value.numberValueFrom != null && this.rangeForm.value.numberValue != null;\n this.value = !this.isValid\n ? {\n operator: this.searchOption,\n firstValue: undefined,\n secondValue: undefined\n }\n : {\n operator: this.searchOption,\n firstValue: this.rangeForm.value.numberValueFrom,\n secondValue: this.rangeForm.value.numberValue\n };\n } else {\n this.value = !this.isValid\n ? {\n operator: this.searchOption,\n firstValue: undefined,\n secondValue: undefined\n }\n : {\n operator: this.searchOption,\n firstValue: this.rangeForm.value.numberValue,\n secondValue: undefined\n };\n }\n this.propagateChange(this.value);\n }\n\n // returns null when valid else the validation object\n public validate() {\n let err: any;\n if (this.searchOption === Operator.EQUAL) {\n err = { number: { valid: false } };\n } else if (this.searchOption === Operator.INTERVAL_INCLUDE_BOTH && this.value?.firstValue && this.value?.secondValue) {\n // make sure that on ranges, the first value is earlier than the last\n this.isValid = this.value!.firstValue < this.value!.secondValue;\n err = { numberrangeorder: { valid: false } };\n } else {\n err = { numberrange: { valid: false } };\n }\n return this.isValid ? null : err;\n }\n}\n","<form class=\"yuv-number-range\" [formGroup]=\"rangeForm\">\n @if(searchOption === 'gtelte'){\n <yuv-number\n class=\"first\"\n [readonly]=\"readonly\"\n [scale]=\"scale\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [groupPattern]=\"pattern\"\n formControlName=\"numberValueFrom\"\n [classifications]=\"classifications\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n ></yuv-number>}\n\n <yvc-dropdown\n class=\"no-trigger\"\n [(ngModel)]=\"searchOption\"\n (ngModelChange)=\"onValueChange()\"\n [disabled]=\"readonly\"\n [disableClearButton]=\"true\"\n [ngModelOptions]=\"{ standalone: true }\"\n [options]=\"availableSearchOptions\"\n ></yvc-dropdown>\n\n <yuv-number\n [scale]=\"scale\"\n [readonly]=\"readonly\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [groupPattern]=\"pattern\"\n formControlName=\"numberValue\"\n [classifications]=\"classifications\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n >\n </yuv-number>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, forwardRef, HostBinding, HostListener, inject, input, Input, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\nimport { Classification, SystemService, TranslateModule, UserService, YuvUser } from '@yuuvis/client-core';\nimport { YUV_ICONS } from '@yuuvis/client-framework/icons';\nimport { AutoComplete, YvcAutocompleteModule } from '@yuuvis/components/autocomplete';\nimport { YvcIconModule } from '@yuuvis/components/icon';\nimport { forkJoin, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\n/**\n * Creates form input for organisation values.\n * Implements `ControlValueAccessor` so it can be used within Angular forms.\n *\n * [Screenshot](../assets/images/yuv-organization.gif)\n *\n * @example\n * <yuv-organization [multiselect]=\"true\"></yuv-organization>\n */\n\n@Component({\n selector: 'yuv-organization',\n standalone: true,\n imports: [CommonModule, FormsModule, YvcAutocompleteModule, YvcIconModule, TranslateModule],\n templateUrl: './organization.component.html',\n styleUrls: ['./organization.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => OrganizationComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => OrganizationComponent),\n multi: true\n }\n ]\n})\nexport class OrganizationComponent implements ControlValueAccessor, Validator {\n private system = inject(SystemService);\n private userService = inject(UserService);\n\n @ViewChild('autocomplete') autoCompleteInput!: AutoComplete;\n minLength = 2;\n\n icons = {\n organizationMulti: YUV_ICONS['group'],\n organization: YUV_ICONS['user']\n };\n\n private isValidInput = true;\n value: string | string[] | null = null;\n _innerValue: YuvUser[] = [];\n set innerValue(iv: YuvUser[]) {\n this._innerValue = iv || [];\n this.userSelect.emit(this._innerValue);\n }\n get innerValue() {\n return this._innerValue;\n }\n autocompleteRes: YuvUser[] = [];\n private filterRoles: string[] = [];\n\n // prevent ENTER from being propagated, because the component could be located\n // inside some other component that also relys on ENTER\n @HostListener('keydown.enter', ['$event'])\n onKeydownHandler(event: KeyboardEvent) {\n event.stopPropagation();\n }\n\n @HostBinding('class.inputDisabled') get _inputDisabled() {\n return !this.multiselect && this.innerValue?.length === 1;\n }\n // @HostBinding('class.inputDirty') get _inputDirty() {\n // return this.autoCompleteInput?.multiInputEL?.nativeElement?.value;\n // }\n\n @Input() placeholder?: string;\n /**\n * Possibles values are `EDIT` (default),`SEARCH`,`CREATE`. In search situation validation of the form element will be turned off, so you are able to enter search terms that do not meet the elements validators.\n */\n @Input() situation?: string;\n /**\n * Indicator that multiple strings could be inserted, they will be rendered as chips (default: false).\n */\n @Input() multiselect = false;\n /**\n * Additional semantics for the form element.\n */\n private _classifications?: string[];\n @Input() set classifications(c: string[] | undefined) {\n this._classifications = c;\n if (c?.length) {\n const classifications = this.system.getClassifications(c);\n if (classifications.has(Classification.STRING_ORGANIZATION)) {\n const options = classifications.get(Classification.STRING_ORGANIZATION)!.options;\n this.filterRoles = options;\n }\n } else {\n this.filterRoles = [];\n }\n }\n get classifications() {\n return this._classifications;\n }\n\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n /**\n * Set this to true and the component will try to gain focus once it has been rendered.\n * Notice that this is not reliable. If there are any other components that are rendered\n * later and also try to be focused, they will 'win', because there can only be one focus.\n */\n @Input() autofocus = false;\n\n /**\n * Will attch the overlay to this HTMLelement\n */\n @Input() appendTo = null;\n\n /**\n * Whether or not to exclude the current user from autocomplete result\n */\n @Input() excludeMe = false;\n\n /**\n * Whether or not the emitted value should be an object containing id and title\n * or, if set to false only the ID\n */\n withMetadata = input<boolean>(false);\n\n @Output() userSelect = new EventEmitter<YuvUser[]>();\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n propagateChange = (_: any) => {};\n\n writeValue(value: any): void {\n if (value) {\n this.value = value;\n this.resolveFn(value);\n } else {\n this.value = null;\n this.innerValue = [];\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n registerOnTouched(fn: any): void {}\n\n private propagate() {\n this.propagateChange(this.#getPropagateValue());\n }\n\n #getPropagateValue() {\n return this.multiselect\n ? this.withMetadata()\n ? this.value\n ? this._innerValue.map((v) => ({\n id: v.id,\n title: v.title\n }))\n : this.value\n : this.value\n : this.withMetadata()\n ? this.value\n ? {\n id: this._innerValue[0].id,\n title: this._innerValue[0].title\n }\n : this.value\n : this.value;\n }\n\n focusInput() {\n this.autoCompleteInput.focusInput();\n }\n\n resolveFn(value: any) {\n const map = (value instanceof Array ? value : [value]).map((v) => {\n const match = this.innerValue.find((iv) => iv.id === v);\n return match\n ? of(match)\n : this.userService.getUserById(v).pipe(\n catchError(() =>\n of(\n new YuvUser(\n {\n id: v,\n title: v,\n image: null\n },\n undefined\n )\n )\n )\n );\n });\n return forkJoin(map).subscribe((data) => {\n this.innerValue = data;\n // setTimeout(() => this.autoCompleteInput.cd.markForCheck());\n });\n }\n\n autocompleteFn(query: string) {\n if (query.length >= this.minLength) {\n this.userService.queryUser(query, this.excludeMe, this.filterRoles).subscribe({\n next: (users: YuvUser[]) => {\n this.autocompleteRes = users.filter((user) => !this.innerValue.some((value) => value.id === user.id));\n this.propagateValidity(this.autocompleteRes.length > 0);\n },\n error: () => {\n this.autocompleteRes = [];\n this.propagateValidity(this.autocompleteRes.length > 0);\n }\n });\n } else {\n this.autocompleteRes = [];\n }\n }\n\n // returns null when valid else the validation object\n public validate() {\n return this.isValidInput ? null : { empty: { valid: false } };\n }\n\n propagateValidity(valid = true) {\n if (this.isValidInput !== valid) {\n this.isValidInput = valid;\n this.propagate();\n }\n }\n\n // handle selection changes to the model\n onSelect() {\n if (this.multiselect) {\n this.value = this.innerValue.map((v) => v.id);\n } else {\n // internal autocomplete control is always set to multiselect\n // so the resolved value is always an array\n this.innerValue = this.innerValue.slice(-1);\n this.value = this.innerValue[0].id;\n }\n this.propagate();\n }\n\n // handle selection changes to the model\n onUnselect(value: any) {\n this.innerValue = this.innerValue.filter((v) => v.id !== value.id);\n const _value = this.innerValue.map((v) => v.id);\n this.value = this.multiselect ? _value : null;\n if (!this.multiselect) {\n this.clearInnerInput();\n }\n this.propagate();\n }\n\n onAutoCompleteBlur() {\n this.clearInnerInput();\n }\n\n private clearInnerInput() {\n this.autoCompleteInput.clearInput();\n }\n}\n","<yvc-autocomplete\n [(ngModel)]=\"innerValue\"\n #autocomplete\n (suggestionSelect)=\"onSelect()\"\n [placeholder]=\"placeholder\"\n (suggestionUnselect)=\"onUnselect($event)\"\n (blur)=\"onAutoCompleteBlur()\"\n [disabled]=\"readonly\"\n [autocompleteValues]=\"autocompleteRes\"\n field=\"id\"\n [forceSelection]=\"true\"\n (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"true\"\n>\n <!-- template for item inside the dropdown -->\n <ng-template #autocompleteOptionTemplate let-item>\n <span class=\"chip\">{{ item.title }}</span>\n </ng-template>\n \n <!-- template for chip -->\n <ng-template #chipTemplate let-item>\n <span class=\"chip\">{{ item.title }}</span>\n </ng-template>\n</yvc-autocomplete>\n\n<yvc-icon\n class=\"classify\"\n [title]=\"'yuv.form.element.organization.classify.icon.title' | translate\"\n [svg]=\"multiselect ? icons.organizationMulti : icons.organization\"\n (click)=\"focusInput()\"\n></yvc-icon>\n","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, forwardRef, HostBinding, inject, Input } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, UntypedFormControl, ValidationErrors, Validator } from '@angular/forms';\nimport { Classification, ClassificationPrefix, FormattedMailTo, Situation, Utils } from '@yuuvis/client-core';\nimport { IconService } from '@yuuvis/client-framework/icons';\nimport { YvcChipsModule } from '@yuuvis/components/chips';\nimport { YvcIconModule } from '@yuuvis/components/icon';\n\n/**\n * Creates form input for strings. Based on the input values different kinds of inputs will be generated.\n *\n * Implements `ControlValueAccessor` so it can be used within Angular forms.\n *\n * @example\n * <!-- string input validating input to be between 5 and 10 characters -->\n * <yuv-string [minLength]=\"5\" [maxLength]=\"10\"></yuv-string>\n *\n * <!-- string input that only allow digits -->\n * <yuv-string [regex]=\"[0-9]*\"></yuv-string>\n *\n * <!-- string input rendering a large textarea -->\n * <yuv-string [rows]=\"10\"></yuv-string>\n *\n */\n@Component({\n selector: 'yuv-string',\n standalone: true,\n imports: [CommonModule, YvcChipsModule, YvcIconModule, FormsModule],\n templateUrl: './string.component.html',\n styleUrls: ['./string.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StringComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => StringComponent),\n multi: true\n }\n ]\n})\nexport class StringComponent implements ControlValueAccessor, Validator, AfterViewInit {\n private iconsService = inject(IconService);\n private elementRef = inject(ElementRef);\n\n classifiytionIcons = {\n email: this.iconsService.getIcon(ClassificationPrefix.EMAIL_ICON) || '',\n url: this.iconsService.getIcon(ClassificationPrefix.URL_ICON) || '',\n phone: this.iconsService.getIcon(ClassificationPrefix.PHONE_ICON) || ''\n };\n maxEntryCountIfInvalid?: number;\n\n // provides all css variables defined by |yuuvis/comonents\n @HostBinding('class.yvc-form-element') fe = true;\n\n /**\n * Indicator that multiple strings could be inserted, they will be rendered as chips (default: false).\n */\n @Input() multiselect = false;\n /**\n * Setting rows to more than 1 will generate a textarea instead of an input tag\n * and apply the rows property to it\n */\n @Input() rows?: number;\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n /**\n * Enable autofucus for the input (default: false)\n */\n @Input() autofocus = false;\n /**\n * Additional semantics for the form element. Possible values are\n * `email` (validates and creates a link to send an email once there\n * is a valid email address) and `url` (validates and creates a link\n * to an URL typed into the form element).\n */\n @Input()\n set classifications(c: string[]) {\n this._classifications = c;\n if (c && c.length) {\n if (c.includes(Classification.STRING_EMAIL)) {\n this.classify = {\n hrefPrefix: ClassificationPrefix.EMAIL,\n icon: this.classifiytionIcons.email\n };\n } else if (c.includes(Classification.STRING_URL)) {\n this.classify = {\n hrefPrefix: ClassificationPrefix.URL,\n icon: this.classifiytionIcons.url\n };\n } else if (c.includes(Classification.STRING_PHONE)) {\n this.classify = {\n hrefPrefix: ClassificationPrefix.PHONE,\n icon: this.classifiytionIcons.phone\n };\n }\n }\n }\n\n get classifications() {\n return this._classifications;\n }\n /**\n * Possibles values are `EDIT` (default),`SEARCH`,`CREATE`. In search situation validation of the form element will be turned off, so you are able to enter search terms that do not meet the elements validators.\n */\n @Input() situation?: string;\n\n /**\n * Regular expression to validate the input value against\n */\n @Input() regex?: string;\n /**\n * Minimal number of characters\n */\n @Input() minLength?: number;\n /**\n * Maximum number of characters\n */\n @Input() maxLength?: number;\n\n // model value\n value: any;\n formatedValue?: FormattedMailTo;\n valid = false;\n validationErrors: { [key: string]: any }[] = [];\n classify?: { hrefPrefix: string; icon: string | undefined };\n private _classifications: string[] = [];\n\n propagateChange = (_: any) => {};\n\n private propagate() {\n this.propagateChange(this.value);\n }\n\n writeValue(value: any): void {\n this.formatedValue = Utils.formatMailTo(value, this.classify?.hrefPrefix === ClassificationPrefix.EMAIL);\n this.value = value || null;\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(): void {}\n\n onValueChange(val: any) {\n this.maxEntryCountIfInvalid = undefined;\n this.validationErrors = [];\n\n if (Utils.isEmpty(val)) {\n this.value = null;\n this.propagate();\n\n return;\n }\n\n const multiCheck = (check: (s: string) => boolean) => !!(this.multiselect ? val : [val]).find((v: string) => check(v));\n\n // validate regular expression\n if (this.regex && multiCheck((v: string) => !RegExp(this.regex!).test(v))) {\n this.validationErrors.push({ key: 'regex' });\n }\n\n // validate classification settings\n if (this.classifications && this.classifications.length) {\n this.classifications.forEach((c) => {\n if (multiCheck((v) => !this.validateClassification(v, c))) {\n this.validationErrors.push({ key: 'classification' + c });\n }\n });\n }\n // validate min length\n if (!Utils.isEmpty(this.minLength) && multiCheck((v) => v.length < this.minLength!)) {\n this.validationErrors.push({ key: 'minlength', params: { minLength: this.minLength } });\n }\n\n // validate max length\n if (!Utils.isEmpty(this.maxLength) && multiCheck((v) => v.length > this.maxLength!)) {\n this.validationErrors.push({ key: 'maxlength', params: { maxLength: this.maxLength } });\n }\n\n // validate invalid if only whitespaces\n if (multiCheck((v) => v.length > 0 && !v.trim().length)) {\n this.validationErrors.push({ key: 'onlyWhitespaces' });\n }\n\n if (this.validationErrors.length && this.multiselect && this.value) {\n // Setting maxEntryCountIfInvalid to the actual length of the value array to prevent the user to add more entries.\n this.maxEntryCountIfInvalid = this.value.length;\n }\n\n this.formatedValue = Utils.formatMailTo(val, this.classify?.hrefPrefix === ClassificationPrefix.EMAIL);\n this.propagate();\n }\n\n onBlur() {\n if (this.trimValue()) {\n this.propagate();\n }\n }\n\n /**\n * Trims the current value and returns wether or not it has been trimmed\n */\n private trimValue(): boolean {\n if (this.value) {\n if (this.multiselect) {\n const lengthBefore = this.value.join('').length;\n this.value = this.value.map((v: string) => v.trim());\n return this.value.join('').length !== lengthBefore;\n } else {\n const lengthBefore = this.value.length;\n this.value = this.value.trim();\n return this.value.length !== lengthBefore;\n }\n }\n return false;\n }\n\n private validateClassification(string: string, classification: string): boolean {\n if (this.situation === Situation.SEARCH) {\n return true;\n } else {\n let pattern;\n if (classification === Classification.STRING_EMAIL) {\n pattern =\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n } else if (classification === Classification.STRING_URL) {\n pattern = /(http|ftp|https):\\/\\/[\\w-]+(\\.[\\w-]+)?([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?/;\n } else if (classification === Classification.STRING_PHONE) {\n pattern = /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-x\\s\\./0-9]*$/g;\n }\n return pattern ? pattern.test(string) : true;\n }\n }\n\n /**\n * returns null when valid else the validation object\n */\n public validate() {\n if (this.validationErrors.length) {\n this.valid = false;\n return Utils.arrayToObject(this.validationErrors, 'key', (err) => ({ valid: false, ...err }));\n } else {\n this.valid = true;\n return null;\n }\n }\n\n ngAfterViewInit(): void {\n if (this.autofocus) {\n if (!this.multiselect) {\n const el = this.elementRef.nativeElement.querySelector(this.rows && this.rows > 1 ? 'textarea' : 'input');\n if (el) el.focus();\n }\n }\n }\n}\n","@if ((!rows || rows <= 1) && !multiselect) {\n <input type=\"text\" (blur)=\"onBlur()\" [readonly]=\"readonly\" [(ngModel)]=\"value\" (ngModelChange)=\"onValueChange($event)\" />\n}\n@else if ((!rows || rows <= 1) && multiselect) {\n <!-- single line input with multiselect-->\n <yvc-chips\n [(ngModel)]=\"value\"\n [disabled]=\"readonly\"\n [max]=\"maxEntryCountIfInvalid\"\n (onBlur)=\"onBlur()\"\n (ngModelChange)=\"onValueChange($event)\"\n [ngClass]=\"{ invalid: validationErrors.length }\"\n >\n <ng-template let-item #chipTemplate>\n <span class=\"p-autocomplete-token-label\">\n @if (classify && !validationErrors.length) {\n <div class=\"classify inchip\">\n <a href=\"{{ classify.hrefPrefix + item }}\">\n <yvc-icon [svg]=\"classify.icon!\"></yvc-icon>\n </a>\n </div>\n }\n <div class=\"label\">\n {{ item }}\n </div>\n </span>\n </ng-template>\n </yvc-chips>\n} @else if (rows && rows > 1) {\n <!-- multi line text inputs -->\n <textarea\n class=\"input-textarea\"\n pInputTextarea\n (blur)=\"onBlur()\"\n [(ngModel)]=\"value\"\n [rows]=\"rows\"\n [readonly]=\"readonly\"\n (ngModelChange)=\"onValueChange($event)\"\n ></textarea>\n}\n\n@if (classify) {\n <div class=\"classify\">\n @if (value && !validationErrors.length && (classify.hrefPrefix !== '' || !multiselect || value.length <= 1)) {\n <a href=\"{{ classify.hrefPrefix + formatedValue }}\">\n <yvc-icon [svg]=\"classify.icon!\"></yvc-icon>\n </a>\n } @else {\n <yvc-icon [svg]=\"classify.icon!\"></yvc-icon>\n }\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, HostBinding, Input, Renderer2, ViewChild, ViewEncapsulation, inject } from '@angular/core';\nimport { FocusWithinDirective } from '@yuuvis/client-framework/common';\n\n/**\n * Component for wrapping a form element. Provides a label and focus behaviour.\n *\n * @example\n * <yuv-form-input [label]=\"'my form element'\">\n * <!-- form element to be wrapped -->\n * </yuv-form-input>\n */\n@Component({\n selector: 'yuv-form-input',\n standalone: true,\n imports: [CommonModule, FocusWithinDirective],\n templateUrl: './form-input.component.html',\n styleUrls: ['./form-input.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FormInputComponent {\n @ViewChild('label', { static: true }) labelEl!: ElementRef;\n\n private renderer = inject(Renderer2);\n\n _label?: string;\n\n /**\n * A label string for the wrapped form element\n */\n @Input() set label(val: string) {\n this._label = val;\n }\n\n /**\n * A tag that can be applied to the input (including title that shows up once the user hovers the tag)\n */\n @Input() tag?: { label: string; title: string };\n /**\n * Optional description for the form input\n */\n @Input() description?: string;\n\n /**\n * Indicator that the wrapped form element is invalid. Will then render appropriate styles.\n * You may also provide an array of error messages.\n */\n @Input() set invalid(iv: boolean | string[] | undefined) {\n if (iv === null || iv === undefined) {\n this.isInvalid = false;\n this.renderer.removeAttribute(this.labelEl.nativeElement, 'title');\n } else if (Array.isArray(iv)) {\n this.isInvalid = iv.length > 0;\n if (this.isInvalid) {\n this.renderer.setAttribute(this.labelEl.nativeElement, 'title', iv.join(';'));\n }\n } else {\n this.isInvalid = iv;\n }\n }\n /**\n * Indicator that the wrapped form element is disabled. Will then render appropriate styles.\n */\n @Input() set disabled(d: boolean) {\n this.isDisabled = d;\n }\n\n /**\n * Indicator that the wrapped form element is mandatory. Will then render appropriate styles.\n */\n @Input()\n set required(d: boolean) {\n this.isRequired = d;\n }\n\n @HostBinding('class.disabled') isDisabled = false;\n @HostBinding('class.invalid') isInvalid = false;\n @HostBinding('class.required') isRequired = false;\n}\n","<div class=\"fe-wrapper\" yuvFocusWithin>\n @if (tag) {\n <div class=\"tag\" title=\"{{ tag.title }}\">{{ tag.label }}</div>\n }\n <label class=\"form-input__label\" #label>{{ _label }}</label>\n <div class=\"control\">\n <ng-content></ng-content>\n </div>\n</div>\n@if (description) {\n <div class=\"description\">{{ description }}</div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { YvcAutocompleteModule } from '@yuuvis/components/autocomplete';\nimport { YvcCheckboxModule } from '@yuuvis/components/checkbox';\nimport { YvcChipsModule } from '@yuuvis/components/chips';\nimport { YvcFocusWithin } from '@yuuvis/components/common';\nimport { YvcDatepickerModule } from '@yuuvis/components/datepicker';\nimport { YvcDropdownModule } from '@yuuvis/components/dropdown';\nimport { YvcIconModule } from '@yuuvis/components/icon';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TranslateModule,\n ReactiveFormsModule,\n YvcFocusWithin,\n YvcAutocompleteModule,\n YvcDatepickerModule,\n FormsModule,\n YvcCheckboxModule,\n YvcIconModule,\n YvcChipsModule,\n YvcDropdownModule,\n ]\n})\nexport class YuvFormsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i4","TranslateModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA;;;;;;;;;;;;;;;;AAgBG;MAgBU,gBAAgB,CAAA;AAmB3B;;AAEG;IACH,IAAa,OAAO,CAAC,OAAyB,EAAA;AAC5C,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,IAAI,EAAE,CAAC;AACzH,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,6BAA6B,CAAC;KACzF;AAKD;;AAEG;IACH,IAAa,eAAe,CAAC,CAAW,EAAA;AACtC,QAAA,MAAM,EAAE,GAAoC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;AACxH,QAAA,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;AACpB,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;SAC3B;KACF;AAYD,IAAA,WAAA,CAAoB,aAA4B,EAAA;QAA5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAhDhD,IAAQ,CAAA,QAAA,GAAqB,EAAE,CAAC;QAEhC,IAAQ,CAAA,QAAA,GAAG,CAAC,KAAU,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC;AAEvI;;AAEG;QACM,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AAKxB;;;AAGG;QACM,IAA6B,CAAA,6BAAA,GAAG,EAAE,CAAC;AAQ5C;;AAEG;QACM,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAW7B;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;AAEzB;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;AAK1B,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;KAHmB;AAKpD,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC;KACjD;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;;IAGD,iBAAiB,CAAC,EAAO,EAAA,GAAU;AAEnC,IAAA,QAAQ,CAAC,KAAoC,EAAA;AAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;+GArEU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAThB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,6BAAA,EAAA,+BAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,gBAAgB,CAAC;AAC/C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClCH,8LAEA,EAAA,MAAA,EAAA,CAAA,mLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDuBY,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAY7B,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAf5B,SAAS;+BACE,aAAa,EAAA,UAAA,EACX,IAAI,EACP,OAAA,EAAA,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAG9B,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,sBAAsB,CAAC;AAC/C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,IAAA,EACK,EAAE,KAAK,EAAE,aAAa,EAAE,EAAA,QAAA,EAAA,8LAAA,EAAA,MAAA,EAAA,CAAA,mLAAA,CAAA,EAAA,CAAA;kFAWrB,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAIG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKG,6BAA6B,EAAA,CAAA;sBAArC,KAAK;gBAIO,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAOG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAIO,eAAe,EAAA,CAAA;sBAA3B,KAAK;gBAUG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAKG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MElEK,iBAAiB,CAAA;AAqB5B,IAAA,WAAA,GAAA;AApBQ,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAE7C,IAAK,CAAA,KAAA,GAAgB,IAAI,CAAC;AAC1B,QAAA,IAAA,CAAA,MAAM,GAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;AAG5C;;AAEG;QACM,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AACjC;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;AAe1B,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,EAAc,KAAI,GAAG,CAAC;;AAEzC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAK,GAAG,CAAC;QAd1B,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAkB,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;KACvF;IAEO,UAAU,GAAA;QAChB,IAAI,CAAC,MAAM,GAAG;YACZ,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2CAA2C,CAAC;YAClF,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2CAA2C,CAAC;AACnF,YAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,0CAA0C,CAAC,EAAE;SACxF,CAAC;KACH;AAMD,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC7B;AACD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC;KAC5B;AAED,IAAA,gBAAgB,CAAC,EAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;AAED,IAAA,yBAAyB,CAAE,EAAc,EAAA;AACvC,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC5B;;AAGD,IAAA,iBAAiB,MAAW;AAE5B,IAAA,aAAa,CAAC,CAAM,EAAA;AAClB,QAAA,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;KACzB;+GA3DU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EARjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjBH,qTAG6D,EAAA,MAAA,EAAA,CAAA,mDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDKjD,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAW/B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAd7B,SAAS;+BACE,cAAc,EAAA,UAAA,EACZ,IAAI,EACP,OAAA,EAAA,CAAC,WAAW,EAAE,mBAAmB,oBAAoB,EAGnD,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AAChD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,qTAAA,EAAA,MAAA,EAAA,CAAA,mDAAA,CAAA,EAAA,CAAA;wDAYQ,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAIG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAKG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEZK,sBAAsB,CAAA;AAnBnC,IAAA,WAAA,GAAA;AAoBU,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAEjC;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAC1B;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;AAEzB,QAAA,IAAA,CAAA,SAAS,GAAc,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AACnC,YAAA,SAAS,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC3C,YAAA,aAAa,EAAE,EAAE;AAClB,SAAA,CAAC,CAAC;QAGK,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;;AAGxB,QAAA,IAAA,CAAA,sBAAsB,GAAG;YACvB,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE;YACrD,EAAE,KAAK,EAAE,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,gBAAgB,EAAE;YAC3E,EAAE,KAAK,EAAE,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,aAAa,EAAE;YACrE,EAAE,KAAK,EAAE,aAAa,CAAC,qBAAqB,EAAE,KAAK,EAAE,QAAQ,CAAC,qBAAqB,EAAE;SACtF,CAAC;;QAEF,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;;AAGpD,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;AAiGlC,KAAA;AA/FC,IAAA,UAAU,CAAC,KAAiB,EAAA;AAC1B,QAAA,IAAI,KAAK,KAAK,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE;YACpD,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC;YAClF,IAAI,CAAC,YAAY,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAE/E,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AACxB,gBAAA,aAAa,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,UAAU;AACpD,gBAAA,SAAS,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,UAAU;AACjD,aAAA,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACzD,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;AACvB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;SACxB;KACF;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;;IAED,iBAAiB,CAAC,EAAO,EAAA,GAAU;IAEnC,aAAa,GAAA;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC;QAC9D,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,qBAAqB,EAAE;YACxD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,IAAI,SAAS,CAAC;AAEtE,YAAA,IAAI,aAAa,IAAI,SAAS,EAAE;AAC9B,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,SAAS,CAAC;gBACvE,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ;;;;;;oBAM3B,SAAS;;AAET,wBAAA;4BACE,QAAQ,EAAE,IAAI,CAAC,YAAY;AAC3B,4BAAA,UAAU,EAAE,aAAa;AACzB,4BAAA,WAAW,EAAE,SAAS;yBACvB,CAAC;aACH;SACF;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACrC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ;;;;;;gBAM3B,SAAS;;AAET,oBAAA;wBACE,QAAQ,EAAE,IAAI,CAAC,YAAY;AAC3B,wBAAA,UAAU,EAAE,SAAS;AACrB,wBAAA,WAAW,EAAE,SAAS;qBACvB,CAAA;SACF;AAED,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,GAAG,CAAC;QACR,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,KAAK,EAAE;AACxC,YAAA,GAAG,GAAG;AACJ,gBAAA,WAAW,EAAE;AACX,oBAAA,KAAK,EAAE,KAAK;AACb,iBAAA;aACF,CAAC;SACH;aAAM;;YAEL,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,qBAAqB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AACzH,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAkB,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAmB,CAAC,CAAC,OAAO,EAAE,CAAC;AACvH,gBAAA,GAAG,GAAG;AACJ,oBAAA,cAAc,EAAE;AACd,wBAAA,KAAK,EAAE,KAAK;AACb,qBAAA;iBACF,CAAC;aACH;iBAAM;AACL,gBAAA,GAAG,GAAG;AACJ,oBAAA,SAAS,EAAE;AACT,wBAAA,KAAK,EAAE,KAAK;AACb,qBAAA;iBACF,CAAC;aACH;SACF;QACD,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;KACnC;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;KACnE;+GAhIU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAbtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;AACrD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;AACrD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,ECxBH,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,qhBAcA,EDJY,MAAA,EAAA,CAAA,uaAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAG,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,mmBAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAgBpF,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAnBlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAClB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAG,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,EAGrF,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,4BAA4B,CAAC;AACrD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,4BAA4B,CAAC;AACrD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,qhBAAA,EAAA,MAAA,EAAA,CAAA,uaAAA,CAAA,EAAA,CAAA;8BAQQ,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAIG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;AEhCR;;;;;;;;AAQG;MAoBU,eAAe,CAAA;AAU1B;;AAEG;IACH,IACI,KAAK,CAAC,GAAuB,EAAA;AAC/B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;KACtC;AACD,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;AACD;;AAEG;IACH,IACI,SAAS,CAAC,GAAuB,EAAA;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;KAC7C;AACD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AACD;;AAEG;IACH,IACI,QAAQ,CAAC,GAAY,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,IAAI,IAAI,CAAC;KAC9B;AACD,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;AACD;;AAEG;IACH,IACI,YAAY,CAAC,GAAuB,EAAA;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;KACrB;AACD,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AAiBD;;;;AAIG;IACH,IAAa,eAAe,CAAC,eAAyB,EAAA;AACpD,QAAA,IAAI,CAAC,UAAU;AACb,YAAA,eAAe,IAAI,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACzJ;AAED,IAAA,OAAO,iBAAiB,CAAC,GAAW,EAAE,MAA0B,EAAE,MAA0B,EAAA;AAC1F,QAAA,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC;AACxD,QAAA,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,QAAQ,CAAC;AACvD,QAAA,OAAO,GAAG,IAAK,GAAc,IAAI,GAAG,IAAK,GAAc,CAAC;KACzD;AAED,IAAA,WAAA,CAAoB,SAA2B,EAAA;QAA3B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAhF/C,IAAU,CAAA,UAAA,GAAkB,IAAI,CAAC;QAIjC,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAgB,CAAA,gBAAA,GAAuB,EAAE,CAAC;AA2C1C;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;AAkC1B,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;QAJ/B,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACxD;AAKD,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAC1C,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;KAC9H;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;;AAGD,IAAA,iBAAiB,MAAW;AAE5B,IAAA,aAAa,CAAC,GAAQ,EAAA;AACpB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAE3B,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;AACvB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,OAAO;SACR;;QAGD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;;QAEhD,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YACzC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;SAC/C;aAAM;YACL,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;;AAEpG,YAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AAChC,gBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBAC1D,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE;AACrC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;iBAC9E;aACF;;AAED,YAAA,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE;gBAC/C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;aAC7E;;AAGD,YAAA,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACzE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBAChC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;iBACtF;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBACvC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;iBACtF;qBAAM;oBACL,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;iBAC7G;aACF;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;AACjC,gBAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;aAClB;SACF;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;;IAGM,MAAM,GAAA;QACX,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1F,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5G;KACF;;IAGM,QAAQ,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1F,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAChE;KACF;;IAGM,QAAQ,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;KACrI;+GApKU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAbf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EC/BH,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,+LAEA,4IDeY,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAgBV,eAAe,EAAA,UAAA,EAAA,CAAA;kBAnB3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cACV,IAAI,EAAA,OAAA,EACP,CAAC,WAAW,CAAC,EAGX,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,+LAAA,EAAA,MAAA,EAAA,CAAA,qFAAA,CAAA,EAAA,CAAA;qFAgBG,KAAK,EAAA,CAAA;sBADR,KAAK;gBAWF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBAWF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAWF,YAAY,EAAA,CAAA;sBADf,KAAK;gBAUG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAKG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAMG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAOO,eAAe,EAAA,CAAA;sBAA3B,KAAK;;;AExFR;;;;;;;;AAQG;MAoBU,oBAAoB,CAAA;AAwD/B,IAAA,WAAA,GAAA;AA/CA;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAK1B;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;AAIG;QACM,IAAe,CAAA,eAAA,GAAa,EAAE,CAAC;QAWjC,IAAS,CAAA,SAAA,GAAG,IAAI,gBAAgB,CAAC;YACtC,WAAW,EAAE,IAAI,kBAAkB,EAAE;YACrC,eAAe,EAAE,IAAI,kBAAkB,EAAE;AAC1C,SAAA,CAAC,CAAC;QAGK,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;;AAGhB,QAAA,IAAA,CAAA,sBAAsB,GAAG;YAC9B,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE;YACrD,EAAE,KAAK,EAAE,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,gBAAgB,EAAE;YAC3E,EAAE,KAAK,EAAE,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,aAAa,EAAE;YACrE,EAAE,KAAK,EAAE,aAAa,CAAC,qBAAqB,EAAE,KAAK,EAAE,QAAQ,CAAC,qBAAqB,EAAE;SACtF,CAAC;;QAEK,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;;AAS3D,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;QAN/B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,MAAK;YACvC,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACJ;AAKD,IAAA,UAAU,CAAC,KAAiB,EAAA;AAC1B,QAAA,IAAI,KAAK,KAAK,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,EAAE;YACpE,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC;YAClF,IAAI,CAAC,YAAY,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAE/E,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,YAAA,IAAI,KAAK,CAAC,WAAW,IAAI,IAAI,EAAE;AAC7B,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AACtB,oBAAA,eAAe,EAAE,IAAI;AACrB,oBAAA,WAAW,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,GAAG,IAAI;AAChE,iBAAA,CAAC,CAAC;aACJ;iBAAM;AACL,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AACtB,oBAAA,eAAe,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,GAAG,IAAI;oBACnE,WAAW,EAAE,KAAK,CAAC,WAAW;AAC/B,iBAAA,CAAC,CAAC;aACJ;SACF;aAAM;YACL,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACzD,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;AACvB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;SACxB;KACF;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;;IAED,iBAAiB,CAAC,EAAO,EAAA,GAAU;IAEnC,aAAa,GAAA;QACX,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACpC,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,qBAAqB,EAAE;AACxD,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC;AAChI,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO;AACxB,kBAAE;oBACE,QAAQ,EAAE,IAAI,CAAC,YAAY;AAC3B,oBAAA,UAAU,EAAE,SAAS;AACrB,oBAAA,WAAW,EAAE,SAAS;AACvB,iBAAA;AACH,kBAAE;oBACE,QAAQ,EAAE,IAAI,CAAC,YAAY;AAC3B,oBAAA,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe;AAChD,oBAAA,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW;iBAC9C,CAAC;SACP;aAAM;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO;AACxB,kBAAE;oBACE,QAAQ,EAAE,IAAI,CAAC,YAAY;AAC3B,oBAAA,UAAU,EAAE,SAAS;AACrB,oBAAA,WAAW,EAAE,SAAS;AACvB,iBAAA;AACH,kBAAE;oBACE,QAAQ,EAAE,IAAI,CAAC,YAAY;AAC3B,oBAAA,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW;AAC5C,oBAAA,WAAW,EAAE,SAAS;iBACvB,CAAC;SACP;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;;IAGM,QAAQ,GAAA;AACb,QAAA,IAAI,GAAQ,CAAC;QACb,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,KAAK,EAAE;YACxC,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;SACpC;aAAM,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,qBAAqB,IAAI,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE;;AAEpH,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAM,CAAC,WAAW,CAAC;YAChE,GAAG,GAAG,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;SAC9C;aAAM;YACL,GAAG,GAAG,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;SACzC;QACD,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,GAAG,CAAC;KAClC;+GA3IU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAbpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EC1CH,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,siCAsCA,EDVY,MAAA,EAAA,CAAA,yeAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,yKAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAgBjF,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAnBhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAChB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,CAAC,EAGlF,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,0BAA0B,CAAC;AACnD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,0BAA0B,CAAC;AACnD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,siCAAA,EAAA,MAAA,EAAA,CAAA,yeAAA,CAAA,EAAA,CAAA;wDAMQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAIG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAIG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAIG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAIG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAOG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAIG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAKG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;AEtER;;;;;;;;AAQG;MAqBU,qBAAqB,CAAA;AAnBlC,IAAA,WAAA,GAAA;AAoBU,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAG1C,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;AAEd,QAAA,IAAA,CAAA,KAAK,GAAG;AACN,YAAA,iBAAiB,EAAE,SAAS,CAAC,OAAO,CAAC;AACrC,YAAA,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC;SAChC,CAAC;QAEM,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QAC5B,IAAK,CAAA,KAAA,GAA6B,IAAI,CAAC;QACvC,IAAW,CAAA,WAAA,GAAc,EAAE,CAAC;QAQ5B,IAAe,CAAA,eAAA,GAAc,EAAE,CAAC;QACxB,IAAW,CAAA,WAAA,GAAa,EAAE,CAAC;AAqBnC;;AAEG;QACM,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAqB7B;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAC1B;;;;AAIG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAE3B;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;AAEzB;;AAEG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAE3B;;;AAGG;AACH,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAE3B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAa,CAAC;;AAGrD,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;AAqIlC,KAAA;IAxNC,IAAI,UAAU,CAAC,EAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACxC;AACD,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;;;AAOD,IAAA,gBAAgB,CAAC,KAAoB,EAAA;QACnC,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB;AAED,IAAA,IAAwC,cAAc,GAAA;AACpD,QAAA,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,CAAC;KAC3D;IAkBD,IAAa,eAAe,CAAC,CAAuB,EAAA;AAClD,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,EAAE,MAAM,EAAE;YACb,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAI,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE;AAC3D,gBAAA,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,mBAAmB,CAAE,CAAC,OAAO,CAAC;AACjF,gBAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;aAC5B;SACF;aAAM;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SACvB;KACF;AACD,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;AAkCD,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACvB;aAAM;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACtB;KACF;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;;IAGD,iBAAiB,CAAC,EAAO,EAAA,GAAU;IAE3B,SAAS,GAAA;QACf,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;KACjD;IAED,kBAAkB,GAAA;QAChB,OAAO,IAAI,CAAC,WAAW;AACrB,cAAE,IAAI,CAAC,YAAY,EAAE;kBACjB,IAAI,CAAC,KAAK;AACV,sBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;wBAC3B,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,KAAK,EAAE,CAAC,CAAC,KAAK;AACf,qBAAA,CAAC,CAAC;sBACH,IAAI,CAAC,KAAK;kBACZ,IAAI,CAAC,KAAK;AACd,cAAE,IAAI,CAAC,YAAY,EAAE;kBACjB,IAAI,CAAC,KAAK;AACV,sBAAE;wBACE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;wBAC1B,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK;AACjC,qBAAA;sBACD,IAAI,CAAC,KAAK;AACd,kBAAE,IAAI,CAAC,KAAK,CAAC;KAClB;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;KACrC;AAED,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,MAAM,GAAG,GAAG,CAAC,KAAK,YAAY,KAAK,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAI;AAC/D,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACxD,YAAA,OAAO,KAAK;AACV,kBAAE,EAAE,CAAC,KAAK,CAAC;kBACT,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAClC,UAAU,CAAC,MACT,EAAE,CACA,IAAI,OAAO,CACT;AACE,oBAAA,EAAE,EAAE,CAAC;AACL,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA,EACD,SAAS,CACV,CACF,CACF,CACF,CAAC;AACR,SAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AACtC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;;AAEzB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,cAAc,CAAC,KAAa,EAAA;QAC1B,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;AAClC,YAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC;AAC5E,gBAAA,IAAI,EAAE,CAAC,KAAgB,KAAI;AACzB,oBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;oBACtG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBACzD;gBACD,KAAK,EAAE,MAAK;AACV,oBAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;oBAC1B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBACzD;AACF,aAAA,CAAC,CAAC;SACJ;aAAM;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;SAC3B;KACF;;IAGM,QAAQ,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;KAC/D;IAED,iBAAiB,CAAC,KAAK,GAAG,IAAI,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;AAC/B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;KACF;;IAGD,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SAC/C;aAAM;;;AAGL,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;;AAGD,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;AACnE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;AAC9C,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAEO,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;KACrC;+GAtOU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAbrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,0BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,ECrCH,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,68BA+BA,EDRY,MAAA,EAAA,CAAA,mXAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,8VAAE,qBAAqB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAgB/E,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAnBjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAChB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,aAAa,EAAE,eAAe,CAAC,EAGhF,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACpD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACpD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,68BAAA,EAAA,MAAA,EAAA,CAAA,mXAAA,CAAA,EAAA,CAAA;8BAM0B,iBAAiB,EAAA,CAAA;sBAA3C,SAAS;uBAAC,cAAc,CAAA;gBAwBzB,gBAAgB,EAAA,CAAA;sBADf,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAKD,cAAc,EAAA,CAAA;sBAArD,WAAW;uBAAC,qBAAqB,CAAA;gBAOzB,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAIG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAIG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAKO,eAAe,EAAA,CAAA;sBAA3B,KAAK;gBAmBG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAMG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAKG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQI,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;AE9HT;;;;;;;;;;;;;;;AAeG;MAoBU,eAAe,CAAA;AAnB5B,IAAA,WAAA,GAAA;AAoBU,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAExC,QAAA,IAAA,CAAA,kBAAkB,GAAG;AACnB,YAAA,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,EAAE;AACvE,YAAA,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE;AACnE,YAAA,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,EAAE;SACxE,CAAC;;QAIqC,IAAE,CAAA,EAAA,GAAG,IAAI,CAAC;AAEjD;;AAEG;QACM,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAM7B;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAC1B;;AAEG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAsD3B,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;QACd,IAAgB,CAAA,gBAAA,GAA6B,EAAE,CAAC;QAExC,IAAgB,CAAA,gBAAA,GAAa,EAAE,CAAC;AAExC,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;AAiIlC,KAAA;AA3LC;;;;;AAKG;IACH,IACI,eAAe,CAAC,CAAW,EAAA;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;YACjB,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;gBAC3C,IAAI,CAAC,QAAQ,GAAG;oBACd,UAAU,EAAE,oBAAoB,CAAC,KAAK;AACtC,oBAAA,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK;iBACpC,CAAC;aACH;iBAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;gBAChD,IAAI,CAAC,QAAQ,GAAG;oBACd,UAAU,EAAE,oBAAoB,CAAC,GAAG;AACpC,oBAAA,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG;iBAClC,CAAC;aACH;iBAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;gBAClD,IAAI,CAAC,QAAQ,GAAG;oBACd,UAAU,EAAE,oBAAoB,CAAC,KAAK;AACtC,oBAAA,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK;iBACpC,CAAC;aACH;SACF;KACF;AAED,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;IA6BO,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,KAAK,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACzG,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC;KAC5B;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;AAED,IAAA,iBAAiB,MAAW;AAE5B,IAAA,aAAa,CAAC,GAAQ,EAAA;AACpB,QAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;AACxC,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAE3B,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,SAAS,EAAE,CAAC;YAEjB,OAAO;SACR;AAED,QAAA,MAAM,UAAU,GAAG,CAAC,KAA6B,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;;QAGvH,IAAI,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,CAAS,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACzE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;SAC9C;;QAGD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YACvD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACjC,gBAAA,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACzD,oBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,gBAAgB,GAAG,CAAC,EAAE,CAAC,CAAC;iBAC3D;AACH,aAAC,CAAC,CAAC;SACJ;;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,SAAU,CAAC,EAAE;YACnF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SACzF;;QAGD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,SAAU,CAAC,EAAE;YACnF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SACzF;;QAGD,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;YACvD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;SACxD;AAED,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE;;YAElE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;SACjD;AAED,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,KAAK,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACvG,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YACpB,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;KACF;AAED;;AAEG;IACK,SAAS,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;AAChD,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAS,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACrD,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC;aACpD;iBAAM;AACL,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC/B,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,YAAY,CAAC;aAC3C;SACF;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAEO,sBAAsB,CAAC,MAAc,EAAE,cAAsB,EAAA;QACnE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM,EAAE;AACvC,YAAA,OAAO,IAAI,CAAC;SACb;aAAM;AACL,YAAA,IAAI,OAAO,CAAC;AACZ,YAAA,IAAI,cAAc,KAAK,cAAc,CAAC,YAAY,EAAE;gBAClD,OAAO;AACL,oBAAA,wJAAwJ,CAAC;aAC5J;AAAM,iBAAA,IAAI,cAAc,KAAK,cAAc,CAAC,UAAU,EAAE;gBACvD,OAAO,GAAG,uFAAuF,CAAC;aACnG;AAAM,iBAAA,IAAI,cAAc,KAAK,cAAc,CAAC,YAAY,EAAE;gBACzD,OAAO,GAAG,gDAAgD,CAAC;aAC5D;AACD,YAAA,OAAO,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;SAC9C;KACF;AAED;;AAEG;IACI,QAAQ,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;AAChC,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,OAAO,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;SAC/F;aAAM;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,YAAA,OAAO,IAAI,CAAC;SACb;KACF;IAED,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,UAAU,GAAG,OAAO,CAAC,CAAC;AAC1G,gBAAA,IAAI,EAAE;oBAAE,EAAE,CAAC,KAAK,EAAE,CAAC;aACpB;SACF;KACF;+GAzNU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAbf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,ECzCH,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,qpDAoDA,ohCDzBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,KAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,KAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,gIAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAgBvD,eAAe,EAAA,UAAA,EAAA,CAAA;kBAnB3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACV,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC,EAGxD,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,qpDAAA,EAAA,MAAA,EAAA,CAAA,69BAAA,CAAA,EAAA,CAAA;8BAcsC,EAAE,EAAA,CAAA;sBAAxC,WAAW;uBAAC,wBAAwB,CAAA;gBAK5B,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAKG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAIG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAIG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQF,eAAe,EAAA,CAAA;sBADlB,KAAK;gBA6BG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAIG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAIG,SAAS,EAAA,CAAA;sBAAjB,KAAK;;;AEtHR;;;;;;;AAOG;MASU,kBAAkB,CAAA;AAR/B,IAAA,WAAA,GAAA;AAWU,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAoDN,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACpB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QACjB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AACnD,KAAA;AAnDC;;AAEG;IACH,IAAa,KAAK,CAAC,GAAW,EAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;KACnB;AAWD;;;AAGG;IACH,IAAa,OAAO,CAAC,EAAkC,EAAA;QACrD,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE;AACnC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;SACpE;AAAM,aAAA,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YAC5B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/B,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aAC/E;SACF;aAAM;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACrB;KACF;AACD;;AAEG;IACH,IAAa,QAAQ,CAAC,CAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;KACrB;AAED;;AAEG;IACH,IACI,QAAQ,CAAC,CAAU,EAAA;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;KACrB;+GArDU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,ECpB/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,qWAYA,EDGY,MAAA,EAAA,CAAA,6vHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+BAAE,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAKjC,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,oBAAoB,CAAC,EAAA,aAAA,EAG9B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,qWAAA,EAAA,MAAA,EAAA,CAAA,6vHAAA,CAAA,EAAA,CAAA;8BAGC,OAAO,EAAA,CAAA;sBAA5C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBASvB,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAOG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAIG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAMO,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAgBO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAQF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAKyB,UAAU,EAAA,CAAA;sBAAxC,WAAW;uBAAC,gBAAgB,CAAA;gBACC,SAAS,EAAA,CAAA;sBAAtC,WAAW;uBAAC,eAAe,CAAA;gBACG,UAAU,EAAA,CAAA;sBAAxC,WAAW;uBAAC,gBAAgB,CAAA;;;MEjDlB,cAAc,CAAA;+GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAdvB,YAAY;YACZ,WAAW;YACXC,iBAAe;YACf,mBAAmB;YACnB,cAAc;YACd,qBAAqB;YACrB,mBAAmB;YACnB,WAAW;YACX,iBAAiB;YACjB,aAAa;YACb,cAAc;YACd,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAdvB,YAAY;YACZ,WAAW;YACXA,iBAAe;YACf,mBAAmB;YAEnB,qBAAqB;YACrB,mBAAmB;YACnB,WAAW;YACX,iBAAiB;YACjB,aAAa;YACb,cAAc;YACd,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGR,cAAc,EAAA,UAAA,EAAA,CAAA;kBAhB1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACXA,iBAAe;wBACf,mBAAmB;wBACnB,cAAc;wBACd,qBAAqB;wBACrB,mBAAmB;wBACnB,WAAW;wBACX,iBAAiB;wBACjB,aAAa;wBACb,cAAc;wBACd,iBAAiB;AAClB,qBAAA;AACF,iBAAA,CAAA;;;AC3BD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"yuuvis-client-framework-forms.mjs","sources":["../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/catalog/catalog.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/catalog/catalog.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/datetime/datetime.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/datetime/datetime.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/datetime-range/datetime-range.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/datetime-range/datetime-range.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/number/number.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/number/number.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/number-range/number-range.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/number-range/number-range.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/organization/organization.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/organization/organization.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/string/string.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/string/string.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/form-input/form-input.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/form-input/form-input.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/forms.module.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-date/date-range-picker/date-range-picker.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-date/date-range-picker/date-range-picker.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-date/range-select-date.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-date/range-select-date.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-filesize/range-select-filesize.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-filesize/range-select-filesize.component.html","../../../../../libs/yuuvis/client-framework/forms/src/yuuvis-client-framework-forms.ts"],"sourcesContent":["import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Classification, ClassificationEntry, SystemService } from '@yuuvis/client-core';\nimport { DropdownOption, YvcDropdownModule } from '@yuuvis/components/dropdown';\n\n/**\n * Component rendering a simple catalog as form element.\n * There are two ways how to use this component. One is to add options as an array\n * of strings on your own, the second one is to apply a special classification.\n *\n * Classifications are used within form models and rendered as object forms. Elements\n * with a classification of `catalog[Item1, Item2, Item3]` will use this component\n * as well. So you may also choose to set a classification like this in order to\n * apply your options.\n *\n * @example\n * <!-- setting options as string array -->\n * <yuv-catalog [options]=\"cities\" [(ngModel)]=\"hometown\"></yuv-catalog>\n *\n * <!-- setting options using a classification -->\n * <yuv-catalog [classification]=\"'catalog[Berlin, Chicago, Paris]'\" [(ngModel)]=\"hometown\"></yuv-catalog>\n */\n@Component({\n selector: 'yuv-catalog',\n standalone: true,\n imports: [FormsModule, YvcDropdownModule],\n templateUrl: './catalog.component.html',\n styleUrls: ['./catalog.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CatalogComponent),\n multi: true\n }\n ],\n host: { class: 'yuv-catalog' }\n})\nexport class CatalogComponent implements ControlValueAccessor {\n value?: string | string[];\n _options: DropdownOption[] = [];\n\n getLabel = (value: any) => (this._options ? this._options.find((o) => o.value === value) || { label: value } : { label: value }).label;\n\n /**\n * Enable filtering of options\n */\n @Input() filter = false;\n /**\n * Possibles values are `EDIT` (default),`SEARCH`,`CREATE`. In search situation validation of the form element will be turned off, so you are able to enter search terms that do not meet the elements validators.\n */\n @Input() situation?: string;\n /**\n * By default a filter panel will shown if the number of options exceeds 10 entries. You could\n * change this number.\n */\n @Input() enableFilterWhenOptionsExceed = 10;\n /**\n * Array of selectable entries\n */\n @Input() set options(options: (string | any)[]) {\n this._options = options && typeof options[0] === 'string' ? options.map((o) => ({ label: o, value: o })) : options || [];\n this.filter = this.filter || this._options?.length > this.enableFilterWhenOptionsExceed;\n }\n /**\n * Indicator that multiple items could be selected\n */\n @Input() multiselect = false;\n /**\n * Additional semantics for the form element.\n */\n @Input() set classifications(c: string[]) {\n const ce: ClassificationEntry | undefined = this.systemService.getClassifications(c).get(Classification.STRING_CATALOG);\n if (ce && ce.options) {\n this.options = ce.options;\n }\n }\n\n /**\n * Will attch the overlay to this HTMLelement\n */\n @Input() appendTo = null;\n\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n\n constructor(private systemService: SystemService) {}\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: any): void {\n this.value = value === undefined ? null : value;\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(fn: any): void {}\n\n onChange(value: string[] | string | undefined) {\n this.value = value;\n this.propagateChange(this.value);\n }\n}\n","<yvc-dropdown [multiple]=\"multiselect\" [options]=\"_options\" [(ngModel)]=\"value\" (ngModelChange)=\"onChange($event)\" [filter]=\"filter\"\n [disabled]=\"readonly\"></yvc-dropdown>\n","import { Component, Input, forwardRef, inject } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport { DatepickerLabels, YvcDatepickerModule } from '@yuuvis/components/datepicker';\n\n@Component({\n selector: 'yuv-datetime',\n standalone: true,\n imports: [FormsModule, YvcDatepickerModule, DatetimeComponent],\n templateUrl: './datetime.component.html',\n styleUrl: './datetime.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatetimeComponent),\n multi: true\n }\n ]\n})\nexport class DatetimeComponent implements ControlValueAccessor {\n private translate = inject(TranslateService);\n\n value: Date | null = null;\n locale: string = this.translate.currentLang;\n labels?: DatepickerLabels;\n\n /**\n * Whether or not to allow only values in the future (default: false)\n */\n @Input() onlyFutureDates = false;\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n\n /**\n * Enables setting time as well (default: false)\n */\n @Input() withTime = false;\n\n constructor() {\n this._setLabels();\n this.translate.onLangChange.subscribe((e: LangChangeEvent) => (this.locale = e.lang));\n }\n\n private _setLabels() {\n this.labels = {\n calendarApply: this.translate.instant('yuv.form.element.datetime.calendar.select'),\n calendarCancel: this.translate.instant('yuv.form.element.datetime.calendar.cancel'),\n shortcut: { today: this.translate.instant('yuv.form.element.datetime.calendar.today') }\n };\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (fn: () => void) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n validationChange = () => {};\n\n writeValue(value: any): void {\n if (typeof value === 'string') {\n value = new Date(value);\n this.propagateChange(value);\n }\n this.value = value || null;\n }\n\n registerOnChange(fn: () => void): void {\n this.propagateChange = fn;\n }\n\n registerOnValidatorChange?(fn: () => void): void {\n this.validationChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(): void {}\n\n onValueChange(e: any) {\n this.propagateChange(e);\n }\n}\n","<yvc-datepicker #picker [calendar]=\"true\" [disabled]=\"readonly\" [locale]=\"locale\" [withTime]=\"withTime\" [labels]=\"labels!\"\n [onlyFutureDates]=\"onlyFutureDates\"\n [ngModelOptions]=\"{standalone: true}\" [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"></yvc-datepicker>","import { Component, Input, OnInit, forwardRef, inject } from '@angular/core';\nimport {\n ControlValueAccessor,\n FormBuilder,\n FormGroup,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n Validator,\n Validators\n} from '@angular/forms';\nimport { Operator, OperatorLabel, RangeValue, Situation } from '@yuuvis/client-core';\nimport { YvcDropdownModule } from '@yuuvis/components/dropdown';\nimport { DatetimeComponent } from '../datetime/datetime.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'yuv-datetime-range',\n standalone: true,\n imports: [CommonModule, FormsModule, YvcDropdownModule, ReactiveFormsModule, DatetimeComponent],\n templateUrl: './datetime-range.component.html',\n styleUrl: './datetime-range.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatetimeRangeComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DatetimeRangeComponent),\n multi: true\n }\n ]\n})\nexport class DatetimeRangeComponent implements ControlValueAccessor, Validator, OnInit {\n private fb = inject(FormBuilder);\n\n /**\n * Enables setting time as well (default: false)\n */\n @Input() withTime = false;\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n @Input() operator = 'eq';\n @Input() situation?: string;\n\n rangeForm: FormGroup = this.fb.group({\n dateValue: [undefined, Validators.required],\n dateValueFrom: []\n });\n value?: RangeValue;\n\n private _isValid = true;\n\n // options for search situation\n availableSearchOptions = [\n { label: OperatorLabel.EQUAL, value: Operator.EQUAL },\n { label: OperatorLabel.GREATER_OR_EQUAL, value: Operator.GREATER_OR_EQUAL },\n { label: OperatorLabel.LESS_OR_EQUAL, value: Operator.LESS_OR_EQUAL },\n { label: OperatorLabel.INTERVAL_INCLUDE_BOTH, value: Operator.INTERVAL_INCLUDE_BOTH }\n ];\n // the selected search option\n searchOption = this.availableSearchOptions[1].value;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: RangeValue): void {\n if (value && (value.firstValue || value.secondValue)) {\n const match = this.availableSearchOptions.find((o) => o.value === value.operator);\n this.searchOption = match ? match.value : this.availableSearchOptions[0].value;\n\n this.value = value;\n this.rangeForm.patchValue({\n dateValueFrom: value.secondValue && value.firstValue,\n dateValue: value.secondValue || value.firstValue\n });\n } else {\n this.searchOption = this.availableSearchOptions[0].value;\n this.value = undefined;\n this.rangeForm.reset();\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n registerOnTouched(fn: any): void {}\n\n onValueChange() {\n const dateValue = this.rangeForm.value.dateValue || undefined;\n if (this.searchOption === Operator.INTERVAL_INCLUDE_BOTH) {\n const dateValueFrom = this.rangeForm.value.dateValueFrom || undefined;\n\n if (dateValueFrom || dateValue) {\n this._isValid = this.rangeForm.valid && !!dateValueFrom && !!dateValue;\n this.value = !this._isValid\n ? // {\n // operator: this.searchOption,\n // firstValue: undefined,\n // secondValue: undefined\n // }\n undefined\n : {\n operator: this.searchOption,\n firstValue: dateValueFrom,\n secondValue: dateValue\n };\n }\n } else {\n this._isValid = this.rangeForm.valid;\n this.value = !this._isValid\n ? // {\n // operator: this.searchOption,\n // firstValue: undefined,\n // secondValue: undefined\n // }\n undefined\n : {\n operator: this.searchOption,\n firstValue: dateValue,\n secondValue: undefined\n };\n }\n\n this.propagateChange(this.value);\n }\n\n validate() {\n let err;\n if (this.searchOption === Operator.EQUAL) {\n err = {\n datecontrol: {\n valid: false\n }\n };\n } else {\n // make sure that on ranges, the first value is earlier than the last\n if (this.searchOption === Operator.INTERVAL_INCLUDE_BOTH && this.value && this.value.firstValue && this.value.secondValue) {\n this._isValid = new Date(this.value.firstValue as Date).getTime() < new Date(this.value.secondValue as Date).getTime();\n err = {\n daterangeorder: {\n valid: false\n }\n };\n } else {\n err = {\n daterange: {\n valid: false\n }\n };\n }\n }\n return this.situation === Situation.SEARCH || this._isValid ? null : err;\n }\n\n ngOnInit(): void {\n this.rangeForm.valueChanges.subscribe(() => this.onValueChange());\n }\n}\n","<form class=\"eo-datetime-range\" [formGroup]=\"rangeForm\">\n @if (searchOption === 'gtelte') {\n <yuv-datetime [withTime]=\"withTime\" formControlName=\"dateValueFrom\"></yuv-datetime>\n }\n <yvc-dropdown\n [disableClearButton]=\"true\"\n [(ngModel)]=\"searchOption\"\n (ngModelChange)=\"onValueChange()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [options]=\"availableSearchOptions\"\n ></yvc-dropdown>\n\n <yuv-datetime [withTime]=\"withTime\" formControlName=\"dateValue\"></yuv-datetime>\n</form>\n","import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { Classification, TranslateService, Utils } from '@yuuvis/client-core';\nimport { FileSizePipe, LocaleNumberPipe } from '@yuuvis/client-core';\n\n/**\n * Creates form input for number values.\n *\n * Implements `ControlValueAccessor` so it can be used within Angular forms.\n *\n * @example\n * <yuv-number [scale]=\"2\"></yuv-number>\n *\n */\n@Component({\n selector: 'yuv-number',\n standalone: true,\n imports: [FormsModule],\n templateUrl: './number.component.html',\n styleUrls: ['./number.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NumberComponent),\n multi: true\n }\n ]\n})\nexport class NumberComponent implements ControlValueAccessor, Validator {\n value?: number;\n innerValue: string | null = null;\n _scale?: number;\n _precision?: number;\n _pattern?: string;\n _grouping = false;\n validationErrors: ValidationErrors[] = [];\n numberPipe: LocaleNumberPipe | FileSizePipe;\n\n /**\n * Number of decimal places\n */\n @Input()\n set scale(val: number | undefined) {\n this._scale = Math.min(val || 0, 30);\n }\n get scale(): number | undefined {\n return this._scale;\n }\n /**\n * Overall amount of digits allowed (including decimal places)\n */\n @Input()\n set precision(val: number | undefined) {\n this._precision = Math.min(val || 100, 100);\n }\n get precision(): number | undefined {\n return this._precision;\n }\n /**\n * Set to true to group number by pattern\n */\n @Input()\n set grouping(val: boolean) {\n this._grouping = val ?? true;\n }\n get grouping(): boolean {\n return this._grouping;\n }\n /**\n * The pattern to group number value by\n */\n @Input()\n set groupPattern(val: string | undefined) {\n this._pattern = val;\n }\n get groupPattern(): string | undefined {\n return this._pattern;\n }\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n\n /**\n * set minimum input value\n */\n @Input() minValue?: number;\n\n /**\n * set maximum input value\n *\n */\n @Input() maxValue?: number;\n\n /**\n * classification property adds some semantics to the value of this component.\n * If you provide a value of `filesize` numbers typed into the control will be\n * handled like file sizes (calculates differnt units)\n */\n @Input() set classifications(classifications: string[]) {\n this.numberPipe =\n classifications && classifications.includes(Classification.NUMBER_FILESIZE) ? new FileSizePipe(this.translate) : new LocaleNumberPipe(this.translate);\n }\n\n static betweenTwoNumbers(val: number, minVal: number | undefined, maxVal: number | undefined) {\n const min = !Utils.isEmpty(minVal) ? minVal : -Infinity;\n const max = !Utils.isEmpty(maxVal) ? maxVal : Infinity;\n return val >= (min as number) && val <= (max as number);\n }\n\n constructor(private translate: TranslateService) {\n this.numberPipe = new LocaleNumberPipe(this.translate);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: any): void {\n this.value = value != null ? value : null;\n this.innerValue = value != null ? this.numberPipe.numberToString(value, this.grouping, this.groupPattern, this.scale) : null;\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(): void {}\n\n onValueChange(evt: any) {\n this.validationErrors = [];\n\n if (Utils.isEmpty(evt)) {\n this.value = undefined;\n this.propagateChange(this.value);\n return;\n }\n\n // validate input\n const val = this.numberPipe.stringToNumber(evt);\n // general number validation\n if (isNaN(val) || typeof val !== 'number') {\n this.validationErrors.push({ key: 'number' });\n } else {\n const split = evt.replaceAll(this.numberPipe.separator, '').split(this.numberPipe.decimalSeparator);\n // check precision\n if (this.precision !== undefined) {\n const prePointDigits = this.precision - (this.scale || 0);\n if (split[0]?.length > prePointDigits) {\n this.validationErrors.push({ key: 'precision', params: { prePointDigits } });\n }\n }\n // check scale\n if (this.scale && split[1]?.length > this.scale) {\n this.validationErrors.push({ key: 'scale', params: { scale: this.scale } });\n }\n\n // min max\n if (!NumberComponent.betweenTwoNumbers(val, this.minValue, this.maxValue)) {\n if (Utils.isEmpty(this.minValue)) {\n this.validationErrors.push({ key: 'maxvalue', params: { maxValue: this.maxValue } });\n } else if (Utils.isEmpty(this.maxValue)) {\n this.validationErrors.push({ key: 'minvalue', params: { minValue: this.minValue } });\n } else {\n this.validationErrors.push({ key: 'minmax', params: { minValue: this.minValue, maxValue: this.maxValue } });\n }\n }\n\n if (!this.validationErrors.length) {\n this.value = val;\n }\n }\n this.propagateChange(this.value);\n }\n\n // called when the input looses focus\n public format() {\n if (!this.readonly && typeof this.value === 'number' && this.validationErrors.length === 0) {\n this.innerValue = this.numberPipe.numberToString(this.value, this.grouping, this.groupPattern, this.scale);\n }\n }\n\n // called when the input get focus\n public unformat() {\n if (!this.readonly && typeof this.value === 'number' && this.validationErrors.length === 0) {\n this.innerValue = this.numberPipe.transform(this.value, false);\n }\n }\n\n // returns null when valid else the validation object\n public validate() {\n return this.validationErrors.length ? Utils.arrayToObject(this.validationErrors, 'key', (err) => ({ valid: false, ...err })) : null;\n }\n}\n","<input type=\"string\" [(ngModel)]=\"innerValue\" (focus)=\"unformat()\" (blur)=\"format()\" class=\"input-number\"\n [readonly]=\"readonly\" (ngModelChange)=\"onValueChange($event)\" />\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, Input } from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n UntypedFormControl,\n UntypedFormGroup,\n Validator\n} from '@angular/forms';\nimport { Operator, OperatorLabel, RangeValue } from '@yuuvis/client-core';\nimport { YvcDropdownModule } from '@yuuvis/components/dropdown';\nimport { NumberComponent } from '../number/number.component';\n\n/**\n * Creates form input for ranges of numeric values.\n *\n * Implements `ControlValueAccessor` so it can be used within Angular forms.\n *\n * @example\n * <yuv-number-range [scale]=\"2\"></yuv-number-range>\n *\n */\n@Component({\n selector: 'yuv-number-range',\n standalone: true,\n imports: [CommonModule, NumberComponent, YvcDropdownModule, FormsModule, ReactiveFormsModule],\n templateUrl: './number-range.component.html',\n styleUrls: ['./number-range.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberRangeComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NumberRangeComponent),\n multi: true\n }\n ]\n})\nexport class NumberRangeComponent implements ControlValueAccessor, Validator {\n /**\n * Number of decimal places\n */\n @Input() scale?: number;\n /**\n * Overall amount of digits allowed (including decimal places)\n */\n @Input() precision?: number;\n /**\n * Set to true to group number by pattern\n */\n @Input() grouping = false;\n /**\n * The pattern to group number value by\n */\n @Input() pattern?: string;\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n\n /**\n * classification property adds some semantics to the value of this component.\n * If you provide a value of `filesize` numbers typed into the control will be\n * handled like file sizes (calculates differnt units)\n */\n @Input() classifications: string[] = [];\n /**\n * set minimum input value\n */\n @Input() minValue?: number;\n /**\n * set maximum input value\n *\n */\n @Input() maxValue?: number;\n\n public rangeForm = new UntypedFormGroup({\n numberValue: new UntypedFormControl(),\n numberValueFrom: new UntypedFormControl()\n });\n\n value?: RangeValue;\n private isValid = true;\n\n // options for search situation\n public availableSearchOptions = [\n { label: OperatorLabel.EQUAL, value: Operator.EQUAL },\n { label: OperatorLabel.GREATER_OR_EQUAL, value: Operator.GREATER_OR_EQUAL },\n { label: OperatorLabel.LESS_OR_EQUAL, value: Operator.LESS_OR_EQUAL },\n { label: OperatorLabel.INTERVAL_INCLUDE_BOTH, value: Operator.INTERVAL_INCLUDE_BOTH }\n ];\n // the selected search option\n public searchOption = this.availableSearchOptions[1].value;\n\n constructor() {\n this.rangeForm.valueChanges.forEach(() => {\n this.onValueChange();\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: RangeValue): void {\n if (value && (value.firstValue != null || value.secondValue != null)) {\n const match = this.availableSearchOptions.find((o) => o.value === value.operator);\n this.searchOption = match ? match.value : this.availableSearchOptions[0].value;\n\n this.value = value;\n if (value.secondValue == null) {\n this.rangeForm.setValue({\n numberValueFrom: null,\n numberValue: value.firstValue != null ? value.firstValue : null\n });\n } else {\n this.rangeForm.setValue({\n numberValueFrom: value.firstValue != null ? value.firstValue : null,\n numberValue: value.secondValue\n });\n }\n } else {\n this.searchOption = this.availableSearchOptions[0].value;\n this.value = undefined;\n this.rangeForm.reset();\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n registerOnTouched(fn: any): void {}\n\n onValueChange() {\n this.isValid = this.rangeForm.valid;\n if (this.searchOption === Operator.INTERVAL_INCLUDE_BOTH) {\n this.isValid = this.rangeForm.valid && this.rangeForm.value.numberValueFrom != null && this.rangeForm.value.numberValue != null;\n this.value = !this.isValid\n ? {\n operator: this.searchOption,\n firstValue: undefined,\n secondValue: undefined\n }\n : {\n operator: this.searchOption,\n firstValue: this.rangeForm.value.numberValueFrom,\n secondValue: this.rangeForm.value.numberValue\n };\n } else {\n this.value = !this.isValid\n ? {\n operator: this.searchOption,\n firstValue: undefined,\n secondValue: undefined\n }\n : {\n operator: this.searchOption,\n firstValue: this.rangeForm.value.numberValue,\n secondValue: undefined\n };\n }\n this.propagateChange(this.value);\n }\n\n // returns null when valid else the validation object\n public validate() {\n let err: any;\n if (this.searchOption === Operator.EQUAL) {\n err = { number: { valid: false } };\n } else if (this.searchOption === Operator.INTERVAL_INCLUDE_BOTH && this.value?.firstValue && this.value?.secondValue) {\n // make sure that on ranges, the first value is earlier than the last\n this.isValid = this.value!.firstValue < this.value!.secondValue;\n err = { numberrangeorder: { valid: false } };\n } else {\n err = { numberrange: { valid: false } };\n }\n return this.isValid ? null : err;\n }\n}\n","<form class=\"yuv-number-range\" [formGroup]=\"rangeForm\">\n @if(searchOption === 'gtelte'){\n <yuv-number\n class=\"first\"\n [readonly]=\"readonly\"\n [scale]=\"scale\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [groupPattern]=\"pattern\"\n formControlName=\"numberValueFrom\"\n [classifications]=\"classifications\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n ></yuv-number>}\n\n <yvc-dropdown\n class=\"no-trigger\"\n [(ngModel)]=\"searchOption\"\n (ngModelChange)=\"onValueChange()\"\n [disabled]=\"readonly\"\n [disableClearButton]=\"true\"\n [ngModelOptions]=\"{ standalone: true }\"\n [options]=\"availableSearchOptions\"\n ></yvc-dropdown>\n\n <yuv-number\n [scale]=\"scale\"\n [readonly]=\"readonly\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [groupPattern]=\"pattern\"\n formControlName=\"numberValue\"\n [classifications]=\"classifications\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n >\n </yuv-number>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, forwardRef, HostBinding, HostListener, inject, input, Input, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\nimport { Classification, SystemService, TranslateModule, UserService, YuvUser } from '@yuuvis/client-core';\nimport { YUV_ICONS } from '@yuuvis/client-framework/icons';\nimport { AutoComplete, YvcAutocompleteModule } from '@yuuvis/components/autocomplete';\nimport { YvcIconModule } from '@yuuvis/components/icon';\nimport { forkJoin, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\n/**\n * Creates form input for organisation values.\n * Implements `ControlValueAccessor` so it can be used within Angular forms.\n *\n * [Screenshot](../assets/images/yuv-organization.gif)\n *\n * @example\n * <yuv-organization [multiselect]=\"true\"></yuv-organization>\n */\n\n@Component({\n selector: 'yuv-organization',\n standalone: true,\n imports: [CommonModule, FormsModule, YvcAutocompleteModule, YvcIconModule, TranslateModule],\n templateUrl: './organization.component.html',\n styleUrls: ['./organization.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => OrganizationComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => OrganizationComponent),\n multi: true\n }\n ]\n})\nexport class OrganizationComponent implements ControlValueAccessor, Validator {\n private system = inject(SystemService);\n private userService = inject(UserService);\n\n @ViewChild('autocomplete') autoCompleteInput!: AutoComplete;\n minLength = 2;\n\n icons = {\n organizationMulti: YUV_ICONS['group'],\n organization: YUV_ICONS['user']\n };\n\n private isValidInput = true;\n value: string | string[] | null = null;\n _innerValue: YuvUser[] = [];\n set innerValue(iv: YuvUser[]) {\n this._innerValue = iv || [];\n this.userSelect.emit(this._innerValue);\n }\n get innerValue() {\n return this._innerValue;\n }\n autocompleteRes: YuvUser[] = [];\n private filterRoles: string[] = [];\n\n // prevent ENTER from being propagated, because the component could be located\n // inside some other component that also relys on ENTER\n @HostListener('keydown.enter', ['$event'])\n onKeydownHandler(event: KeyboardEvent) {\n event.stopPropagation();\n }\n\n @HostBinding('class.inputDisabled') get _inputDisabled() {\n return !this.multiselect && this.innerValue?.length === 1;\n }\n // @HostBinding('class.inputDirty') get _inputDirty() {\n // return this.autoCompleteInput?.multiInputEL?.nativeElement?.value;\n // }\n\n @Input() placeholder?: string;\n /**\n * Possibles values are `EDIT` (default),`SEARCH`,`CREATE`. In search situation validation of the form element will be turned off, so you are able to enter search terms that do not meet the elements validators.\n */\n @Input() situation?: string;\n /**\n * Indicator that multiple strings could be inserted, they will be rendered as chips (default: false).\n */\n @Input() multiselect = false;\n /**\n * Additional semantics for the form element.\n */\n private _classifications?: string[];\n @Input() set classifications(c: string[] | undefined) {\n this._classifications = c;\n if (c?.length) {\n const classifications = this.system.getClassifications(c);\n if (classifications.has(Classification.STRING_ORGANIZATION)) {\n const options = classifications.get(Classification.STRING_ORGANIZATION)!.options;\n this.filterRoles = options;\n }\n } else {\n this.filterRoles = [];\n }\n }\n get classifications() {\n return this._classifications;\n }\n\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n /**\n * Set this to true and the component will try to gain focus once it has been rendered.\n * Notice that this is not reliable. If there are any other components that are rendered\n * later and also try to be focused, they will 'win', because there can only be one focus.\n */\n @Input() autofocus = false;\n\n /**\n * Will attch the overlay to this HTMLelement\n */\n @Input() appendTo = null;\n\n /**\n * Whether or not to exclude the current user from autocomplete result\n */\n @Input() excludeMe = false;\n\n /**\n * Whether or not the emitted value should be an object containing id and title\n * or, if set to false only the ID\n */\n withMetadata = input<boolean>(false);\n\n @Output() userSelect = new EventEmitter<YuvUser[]>();\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n propagateChange = (_: any) => {};\n\n writeValue(value: any): void {\n if (value) {\n this.value = value;\n this.resolveFn(value);\n } else {\n this.value = null;\n this.innerValue = [];\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n registerOnTouched(fn: any): void {}\n\n private propagate() {\n this.propagateChange(this.#getPropagateValue());\n }\n\n #getPropagateValue() {\n return this.multiselect\n ? this.withMetadata()\n ? this.value\n ? this._innerValue.map((v) => ({\n id: v.id,\n title: v.title\n }))\n : this.value\n : this.value\n : this.withMetadata()\n ? this.value\n ? {\n id: this._innerValue[0].id,\n title: this._innerValue[0].title\n }\n : this.value\n : this.value;\n }\n\n focusInput() {\n this.autoCompleteInput.focusInput();\n }\n\n resolveFn(value: any) {\n const map = (value instanceof Array ? value : [value]).map((v) => {\n const match = this.innerValue.find((iv) => iv.id === v);\n return match\n ? of(match)\n : this.userService.getUserById(v).pipe(\n catchError(() =>\n of(\n new YuvUser(\n {\n id: v,\n title: v,\n image: null\n },\n undefined\n )\n )\n )\n );\n });\n return forkJoin(map).subscribe((data) => {\n this.innerValue = data;\n // setTimeout(() => this.autoCompleteInput.cd.markForCheck());\n });\n }\n\n autocompleteFn(query: string) {\n if (query.length >= this.minLength) {\n this.userService.queryUser(query, this.excludeMe, this.filterRoles).subscribe({\n next: (users: YuvUser[]) => {\n this.autocompleteRes = users.filter((user) => !this.innerValue.some((value) => value.id === user.id));\n this.propagateValidity(this.autocompleteRes.length > 0);\n },\n error: () => {\n this.autocompleteRes = [];\n this.propagateValidity(this.autocompleteRes.length > 0);\n }\n });\n } else {\n this.autocompleteRes = [];\n }\n }\n\n // returns null when valid else the validation object\n public validate() {\n return this.isValidInput ? null : { empty: { valid: false } };\n }\n\n propagateValidity(valid = true) {\n if (this.isValidInput !== valid) {\n this.isValidInput = valid;\n this.propagate();\n }\n }\n\n // handle selection changes to the model\n onSelect() {\n if (this.multiselect) {\n this.value = this.innerValue.map((v) => v.id);\n } else {\n // internal autocomplete control is always set to multiselect\n // so the resolved value is always an array\n this.innerValue = this.innerValue.slice(-1);\n this.value = this.innerValue[0].id;\n }\n this.propagate();\n }\n\n // handle selection changes to the model\n onUnselect(value: any) {\n this.innerValue = this.innerValue.filter((v) => v.id !== value.id);\n const _value = this.innerValue.map((v) => v.id);\n this.value = this.multiselect ? _value : null;\n if (!this.multiselect) {\n this.clearInnerInput();\n }\n this.propagate();\n }\n\n onAutoCompleteBlur() {\n this.clearInnerInput();\n }\n\n private clearInnerInput() {\n this.autoCompleteInput.clearInput();\n }\n}\n","<yvc-autocomplete\n [(ngModel)]=\"innerValue\"\n #autocomplete\n (suggestionSelect)=\"onSelect()\"\n [placeholder]=\"placeholder\"\n (suggestionUnselect)=\"onUnselect($event)\"\n (blur)=\"onAutoCompleteBlur()\"\n [disabled]=\"readonly\"\n [autocompleteValues]=\"autocompleteRes\"\n field=\"id\"\n [forceSelection]=\"true\"\n (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"true\"\n>\n <!-- template for item inside the dropdown -->\n <ng-template #autocompleteOptionTemplate let-item>\n <span class=\"chip\">{{ item.title }}</span>\n </ng-template>\n \n <!-- template for chip -->\n <ng-template #chipTemplate let-item>\n <span class=\"chip\">{{ item.title }}</span>\n </ng-template>\n</yvc-autocomplete>\n\n<yvc-icon\n class=\"classify\"\n [title]=\"'yuv.form.element.organization.classify.icon.title' | translate\"\n [svg]=\"multiselect ? icons.organizationMulti : icons.organization\"\n (click)=\"focusInput()\"\n></yvc-icon>\n","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, forwardRef, HostBinding, inject, Input } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, UntypedFormControl, ValidationErrors, Validator } from '@angular/forms';\nimport { Classification, ClassificationPrefix, FormattedMailTo, Situation, Utils } from '@yuuvis/client-core';\nimport { IconService } from '@yuuvis/client-framework/icons';\nimport { YvcChipsModule } from '@yuuvis/components/chips';\nimport { YvcIconModule } from '@yuuvis/components/icon';\n\n/**\n * Creates form input for strings. Based on the input values different kinds of inputs will be generated.\n *\n * Implements `ControlValueAccessor` so it can be used within Angular forms.\n *\n * @example\n * <!-- string input validating input to be between 5 and 10 characters -->\n * <yuv-string [minLength]=\"5\" [maxLength]=\"10\"></yuv-string>\n *\n * <!-- string input that only allow digits -->\n * <yuv-string [regex]=\"[0-9]*\"></yuv-string>\n *\n * <!-- string input rendering a large textarea -->\n * <yuv-string [rows]=\"10\"></yuv-string>\n *\n */\n@Component({\n selector: 'yuv-string',\n standalone: true,\n imports: [CommonModule, YvcChipsModule, YvcIconModule, FormsModule],\n templateUrl: './string.component.html',\n styleUrls: ['./string.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StringComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => StringComponent),\n multi: true\n }\n ]\n})\nexport class StringComponent implements ControlValueAccessor, Validator, AfterViewInit {\n private iconsService = inject(IconService);\n private elementRef = inject(ElementRef);\n\n classifiytionIcons = {\n email: this.iconsService.getIcon(ClassificationPrefix.EMAIL_ICON) || '',\n url: this.iconsService.getIcon(ClassificationPrefix.URL_ICON) || '',\n phone: this.iconsService.getIcon(ClassificationPrefix.PHONE_ICON) || ''\n };\n maxEntryCountIfInvalid?: number;\n\n // provides all css variables defined by |yuuvis/comonents\n @HostBinding('class.yvc-form-element') fe = true;\n\n /**\n * Indicator that multiple strings could be inserted, they will be rendered as chips (default: false).\n */\n @Input() multiselect = false;\n /**\n * Setting rows to more than 1 will generate a textarea instead of an input tag\n * and apply the rows property to it\n */\n @Input() rows?: number;\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n /**\n * Enable autofucus for the input (default: false)\n */\n @Input() autofocus = false;\n /**\n * Additional semantics for the form element. Possible values are\n * `email` (validates and creates a link to send an email once there\n * is a valid email address) and `url` (validates and creates a link\n * to an URL typed into the form element).\n */\n @Input()\n set classifications(c: string[]) {\n this._classifications = c;\n if (c && c.length) {\n if (c.includes(Classification.STRING_EMAIL)) {\n this.classify = {\n hrefPrefix: ClassificationPrefix.EMAIL,\n icon: this.classifiytionIcons.email\n };\n } else if (c.includes(Classification.STRING_URL)) {\n this.classify = {\n hrefPrefix: ClassificationPrefix.URL,\n icon: this.classifiytionIcons.url\n };\n } else if (c.includes(Classification.STRING_PHONE)) {\n this.classify = {\n hrefPrefix: ClassificationPrefix.PHONE,\n icon: this.classifiytionIcons.phone\n };\n }\n }\n }\n\n get classifications() {\n return this._classifications;\n }\n /**\n * Possibles values are `EDIT` (default),`SEARCH`,`CREATE`. In search situation validation of the form element will be turned off, so you are able to enter search terms that do not meet the elements validators.\n */\n @Input() situation?: string;\n\n /**\n * Regular expression to validate the input value against\n */\n @Input() regex?: string;\n /**\n * Minimal number of characters\n */\n @Input() minLength?: number;\n /**\n * Maximum number of characters\n */\n @Input() maxLength?: number;\n\n // model value\n value: any;\n formatedValue?: FormattedMailTo;\n valid = false;\n validationErrors: { [key: string]: any }[] = [];\n classify?: { hrefPrefix: string; icon: string | undefined };\n private _classifications: string[] = [];\n\n propagateChange = (_: any) => {};\n\n private propagate() {\n this.propagateChange(this.value);\n }\n\n writeValue(value: any): void {\n if (Array.isArray(value)) {\n value = value.filter((v) => typeof v === 'string' && v.trim().length > 0);\n }\n\n this.formatedValue = Utils.formatMailTo(value, this.classify?.hrefPrefix === ClassificationPrefix.EMAIL);\n this.value = value || null;\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(): void {}\n\n onValueChange(val: any) {\n this.maxEntryCountIfInvalid = undefined;\n this.validationErrors = [];\n\n if (Utils.isEmpty(val)) {\n this.value = null;\n this.propagate();\n\n return;\n }\n\n const multiCheck = (check: (s: string) => boolean) => !!(this.multiselect ? val : [val]).find((v: string) => check(v));\n\n // validate regular expression\n if (this.regex && multiCheck((v: string) => !RegExp(this.regex!).test(v))) {\n this.validationErrors.push({ key: 'regex' });\n }\n\n // validate classification settings\n if (this.classifications && this.classifications.length) {\n this.classifications.forEach((c) => {\n if (multiCheck((v) => !this.validateClassification(v, c))) {\n this.validationErrors.push({ key: 'classification' + c });\n }\n });\n }\n // validate min length\n if (!Utils.isEmpty(this.minLength) && multiCheck((v) => v.length < this.minLength!)) {\n this.validationErrors.push({ key: 'minlength', params: { minLength: this.minLength } });\n }\n\n // validate max length\n if (!Utils.isEmpty(this.maxLength) && multiCheck((v) => v.length > this.maxLength!)) {\n this.validationErrors.push({ key: 'maxlength', params: { maxLength: this.maxLength } });\n }\n\n // validate invalid if only whitespaces\n if (multiCheck((v) => v.length > 0 && !v.trim().length)) {\n this.validationErrors.push({ key: 'onlyWhitespaces' });\n }\n\n if (this.validationErrors.length && this.multiselect && this.value) {\n // Setting maxEntryCountIfInvalid to the actual length of the value array to prevent the user to add more entries.\n this.maxEntryCountIfInvalid = this.value.length;\n }\n\n this.formatedValue = Utils.formatMailTo(val, this.classify?.hrefPrefix === ClassificationPrefix.EMAIL);\n this.propagate();\n }\n\n onBlur() {\n if(this.multiselect) {\n // add on blur\n this.value.push('');\n }\n if (this.trimValue()) {\n this.propagate();\n }\n }\n\n /**\n * Trims the current value and returns wether or not it has been trimmed\n */\n private trimValue(): boolean {\n if (this.value) {\n if (this.multiselect) {\n const lengthBefore = this.value.join('').length;\n this.value = this.value.map((v: string) => v.trim());\n return this.value.join('').length !== lengthBefore;\n } else {\n const lengthBefore = this.value.length;\n this.value = this.value.trim();\n return this.value.length !== lengthBefore;\n }\n }\n return false;\n }\n\n private validateClassification(string: string, classification: string): boolean {\n if (this.situation === Situation.SEARCH) {\n return true;\n } else {\n let pattern;\n if (classification === Classification.STRING_EMAIL) {\n pattern =\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n } else if (classification === Classification.STRING_URL) {\n pattern = /(http|ftp|https):\\/\\/[\\w-]+(\\.[\\w-]+)?([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?/;\n } else if (classification === Classification.STRING_PHONE) {\n pattern = /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-x\\s\\./0-9]*$/g;\n }\n return pattern ? pattern.test(string) : true;\n }\n }\n\n /**\n * returns null when valid else the validation object\n */\n public validate() {\n if (this.validationErrors.length) {\n this.valid = false;\n return Utils.arrayToObject(this.validationErrors, 'key', (err) => ({ valid: false, ...err }));\n } else {\n this.valid = true;\n return null;\n }\n }\n\n ngAfterViewInit(): void {\n if (this.autofocus) {\n if (!this.multiselect) {\n const el = this.elementRef.nativeElement.querySelector(this.rows && this.rows > 1 ? 'textarea' : 'input');\n if (el) el.focus();\n }\n }\n }\n}\n","@if ((!rows || rows <= 1) && !multiselect) {\n <input type=\"text\" (blur)=\"onBlur()\" [readonly]=\"readonly\" [(ngModel)]=\"value\" (ngModelChange)=\"onValueChange($event)\" />\n}\n@else if ((!rows || rows <= 1) && multiselect) {\n <!-- single line input with multiselect-->\n <yvc-chips\n [(ngModel)]=\"value\"\n [disabled]=\"readonly\"\n [max]=\"maxEntryCountIfInvalid\"\n [addOnBlur]=\"true\"\n (onBlur)=\"onBlur()\"\n (ngModelChange)=\"onValueChange($event)\"\n [ngClass]=\"{ invalid: validationErrors.length }\"\n >\n <ng-template let-item #chipTemplate>\n <span class=\"p-autocomplete-token-label\">\n @if (classify && !validationErrors.length) {\n <div class=\"classify inchip\">\n <a href=\"{{ classify.hrefPrefix + item }}\">\n <yvc-icon [svg]=\"classify.icon!\"></yvc-icon>\n </a>\n </div>\n }\n <div class=\"label\">\n {{ item }}\n </div>\n </span>\n </ng-template>\n </yvc-chips>\n} @else if (rows && rows > 1) {\n <!-- multi line text inputs -->\n <textarea\n class=\"input-textarea\"\n pInputTextarea\n (blur)=\"onBlur()\"\n [(ngModel)]=\"value\"\n [rows]=\"rows\"\n [readonly]=\"readonly\"\n (ngModelChange)=\"onValueChange($event)\"\n ></textarea>\n}\n\n@if (classify) {\n <div class=\"classify\">\n @if (value && !validationErrors.length && (classify.hrefPrefix !== '' || !multiselect || value.length <= 1)) {\n <a href=\"{{ classify.hrefPrefix + formatedValue }}\">\n <yvc-icon [svg]=\"classify.icon!\"></yvc-icon>\n </a>\n } @else {\n <yvc-icon [svg]=\"classify.icon!\"></yvc-icon>\n }\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, HostBinding, Input, Renderer2, ViewChild, ViewEncapsulation, inject } from '@angular/core';\nimport { FocusWithinDirective } from '@yuuvis/client-framework/common';\n\n/**\n * Component for wrapping a form element. Provides a label and focus behaviour.\n *\n * @example\n * <yuv-form-input [label]=\"'my form element'\">\n * <!-- form element to be wrapped -->\n * </yuv-form-input>\n */\n@Component({\n selector: 'yuv-form-input',\n standalone: true,\n imports: [CommonModule, FocusWithinDirective],\n templateUrl: './form-input.component.html',\n styleUrls: ['./form-input.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FormInputComponent {\n @ViewChild('label', { static: true }) labelEl!: ElementRef;\n\n private renderer = inject(Renderer2);\n\n _label?: string;\n\n /**\n * A label string for the wrapped form element\n */\n @Input() set label(val: string) {\n this._label = val;\n }\n\n /**\n * A tag that can be applied to the input (including title that shows up once the user hovers the tag)\n */\n @Input() tag?: { label: string; title: string };\n /**\n * Optional description for the form input\n */\n @Input() description?: string;\n\n /**\n * Indicator that the wrapped form element is invalid. Will then render appropriate styles.\n * You may also provide an array of error messages.\n */\n @Input() set invalid(iv: boolean | string[] | undefined) {\n if (iv === null || iv === undefined) {\n this.isInvalid = false;\n this.renderer.removeAttribute(this.labelEl.nativeElement, 'title');\n } else if (Array.isArray(iv)) {\n this.isInvalid = iv.length > 0;\n if (this.isInvalid) {\n this.renderer.setAttribute(this.labelEl.nativeElement, 'title', iv.join(';'));\n }\n } else {\n this.isInvalid = iv;\n }\n }\n /**\n * Indicator that the wrapped form element is disabled. Will then render appropriate styles.\n */\n @Input() set disabled(d: boolean) {\n this.isDisabled = d;\n }\n\n /**\n * Indicator that the wrapped form element is mandatory. Will then render appropriate styles.\n */\n @Input()\n set required(d: boolean) {\n this.isRequired = d;\n }\n\n @HostBinding('class.disabled') isDisabled = false;\n @HostBinding('class.invalid') isInvalid = false;\n @HostBinding('class.required') isRequired = false;\n}\n","<div class=\"fe-wrapper\" yuvFocusWithin>\n @if (tag) {\n <div class=\"tag\" title=\"{{ tag.title }}\">{{ tag.label }}</div>\n }\n <label class=\"form-input__label\" #label>{{ _label }}</label>\n <div class=\"control\">\n <ng-content></ng-content>\n </div>\n</div>\n@if (description) {\n <div class=\"description\">{{ description }}</div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { YvcAutocompleteModule } from '@yuuvis/components/autocomplete';\nimport { YvcCheckboxModule } from '@yuuvis/components/checkbox';\nimport { YvcChipsModule } from '@yuuvis/components/chips';\nimport { YvcFocusWithin } from '@yuuvis/components/common';\nimport { YvcDatepickerModule } from '@yuuvis/components/datepicker';\nimport { YvcDropdownModule } from '@yuuvis/components/dropdown';\nimport { YvcIconModule } from '@yuuvis/components/icon';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TranslateModule,\n ReactiveFormsModule,\n YvcFocusWithin,\n YvcAutocompleteModule,\n YvcDatepickerModule,\n FormsModule,\n YvcCheckboxModule,\n YvcIconModule,\n YvcChipsModule,\n YvcDropdownModule,\n ]\n})\nexport class YuvFormsModule {}\n","import { CommonModule } from '@angular/common';\nimport { Component, effect, inject, input, output } from '@angular/core';\nimport { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { RangeValue, TranslateModule } from '@yuuvis/client-core';\nimport { YvcOverlayRef } from '@yuuvis/components/overlay';\nimport { DatetimeRangeComponent } from '../../datetime-range/datetime-range.component';\n\n@Component({\n selector: 'yuv-date-range-picker',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, TranslateModule, DatetimeRangeComponent],\n templateUrl: './date-range-picker.component.html',\n styleUrl: './date-range-picker.component.scss'\n})\nexport class DateRangePickerComponent {\n #oRef = inject(YvcOverlayRef);\n #fb = inject(FormBuilder);\n\n form = this.#fb.group({\n range: this.#fb.control<RangeValue | undefined>(this.#oRef.data.range, Validators.required)\n });\n\n range = input<RangeValue | undefined>(this.#oRef.data.range);\n rangeChange = output<RangeValue | undefined>();\n #rangeEffect = effect(() => {\n const range = this.range();\n this.form.patchValue({ range });\n });\n\n apply() {\n this.rangeChange.emit(this.form.value.range || undefined);\n this.#oRef?.close(this.form.value.range);\n }\n}\n","<form [formGroup]=\"form\" (ngSubmit)=\"apply()\">\n <h2>{{ 'yuv.form.element.range-select-date.custom.overlay.title' | translate }}</h2>\n <yuv-datetime-range [withTime]=\"false\" formControlName=\"range\"></yuv-datetime-range>\n <button class=\"primary\" [disabled]=\"form.invalid\">{{ 'yuv.form.element.range-select-date.custom.overlay.button.apply' | translate }}</button>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, inject, input, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { marker } from '@colsen1991/ngx-translate-extract-marker';\nimport { DateRange, LocaleDatePipe, Operator, OperatorLabel, RangeValue, SearchUtils, TranslateService } from '@yuuvis/client-core';\nimport { DropdownOption, YvcDropdownModule } from '@yuuvis/components/dropdown';\nimport { OverlayCloseEvent, YvcOverlayService } from '@yuuvis/components/overlay';\nimport { DateRangePickerComponent } from './date-range-picker/date-range-picker.component';\nimport { RangeSelectDateValue } from './range-select-date.interface';\n\n// marker for extracting translations for the available date range options\nmarker('yuv.form.element.range-select-date.option.any');\nmarker('yuv.form.element.range-select-date.option.today');\nmarker('yuv.form.element.range-select-date.option.yesterday');\nmarker('yuv.form.element.range-select-date.option.thisWeek');\nmarker('yuv.form.element.range-select-date.option.lastWeek');\nmarker('yuv.form.element.range-select-date.option.thisMonth');\nmarker('yuv.form.element.range-select-date.option.lastMonth');\nmarker('yuv.form.element.range-select-date.option.thisYear');\nmarker('yuv.form.element.range-select-date.option.lastYear');\nmarker('yuv.form.element.range-select-date.option.custom');\n\n/**\n * Component for selecting a date range based on pre-defined ranges like\n * 'today', 'this week', 'this month', etc.\n * It also allows to pick a custom date range.\n */\n@Component({\n selector: 'yuv-range-select-date',\n standalone: true,\n imports: [CommonModule, YvcDropdownModule, ReactiveFormsModule],\n templateUrl: './range-select-date.component.html',\n styleUrl: './range-select-date.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangeSelectDateComponent),\n multi: true\n }\n ]\n})\nexport class RangeSelectDateComponent implements ControlValueAccessor {\n private translate = inject(TranslateService);\n #overlay = inject(YvcOverlayService);\n #fb = inject(FormBuilder);\n\n #ANY_OPTION = 'any';\n #CUSTOM_OPTION = 'custom';\n\n dateOptions = signal<DropdownOption[]>([]);\n #customDateRange?: RangeValue;\n\n innerForm = this.#fb.nonNullable.group({\n range: [this.#ANY_OPTION]\n });\n\n /**\n * Range values to be used in the dropdown.\n */\n ranges = input<DateRange[]>(['today', 'yesterday', 'thisWeek', 'thisMonth', 'thisYear']);\n /**\n * Whether to show the custom date range option.\n */\n customRange = input<boolean>(true);\n\n constructor() {\n this.translate.onLangChange.pipe(takeUntilDestroyed()).subscribe((_) => this.#setupOptions());\n this.#setupOptions();\n this.innerForm.valueChanges.pipe(takeUntilDestroyed()).subscribe((v) => this.#onFormValueChange(v));\n }\n\n #onFormValueChange(v: any) {\n if (v.range === this.#CUSTOM_OPTION) {\n if (!this.#customDateRange || this.dateOptions().find((o) => o.value === this.#CUSTOM_OPTION)?.label === this.#customDateRangeToString())\n this.#openCustomRangeDialog();\n else\n this.propagateChange({\n rangeValue: this.#customDateRange,\n label: this.#customDateRangeToString()\n });\n } else {\n const { start, end } = SearchUtils.dateRangeStartEnd(v.range as DateRange);\n this.propagateChange(\n v.range !== this.#ANY_OPTION\n ? {\n rangeValue: { operator: Operator.INTERVAL_INCLUDE_BOTH, firstValue: start, secondValue: end },\n label: this.translate.instant(`yuv.form.element.range-select-date.option.${v.range}`)\n }\n : undefined\n );\n\n this.#customDateRange = undefined;\n this.#setupOptions();\n }\n }\n\n #openCustomRangeDialog() {\n // open date range picker\n const o = this.#overlay.open(DateRangePickerComponent, {\n range: this.#customDateRange\n });\n o.afterClosed$.subscribe((res: OverlayCloseEvent<RangeValue>) => {\n this.#customDateRange = res.data;\n\n if (!res.data) {\n this.innerForm.patchValue({ range: this.#ANY_OPTION });\n this.#setupOptions();\n } else {\n this.#onFormValueChange(this.innerForm.value);\n this.#setupOptions(this.#customDateRangeToString());\n\n setTimeout(() => {\n this.innerForm.patchValue(\n { range: this.#CUSTOM_OPTION },\n {\n emitEvent: false\n }\n );\n });\n }\n });\n }\n\n #setupOptions(custom?: string) {\n const options = this.ranges().map((value) => ({\n label: this.translate.instant(`yuv.form.element.range-select-date.option.${value}`),\n value\n }));\n if (this.customRange())\n options.push({\n label: custom || this.translate.instant('yuv.form.element.range-select-date.option.custom'),\n value: this.#CUSTOM_OPTION as DateRange\n });\n\n this.dateOptions.set([\n {\n label: this.translate.instant('yuv.form.element.range-select-date.option.any'),\n value: this.#ANY_OPTION\n },\n ...options\n ]);\n }\n\n #customDateRangeToString(): string | undefined {\n if (!this.#customDateRange) return undefined;\n const dp = new LocaleDatePipe(this.translate);\n switch (this.#customDateRange.operator) {\n case Operator.EQUAL: {\n return dp.transform(this.#customDateRange.firstValue as Date, 'shortDate');\n }\n case Operator.GREATER_OR_EQUAL: {\n return `${OperatorLabel.GREATER_OR_EQUAL} ${dp.transform(this.#customDateRange.firstValue as Date, 'shortDate')}`;\n }\n case Operator.LESS_OR_EQUAL: {\n return `${OperatorLabel.LESS_OR_EQUAL} ${dp.transform(this.#customDateRange.firstValue as Date, 'shortDate')}`;\n }\n case Operator.INTERVAL_INCLUDE_BOTH: {\n return `${dp.transform(this.#customDateRange.firstValue as Date, 'shortDate')} ${OperatorLabel.INTERVAL_INCLUDE_BOTH} ${dp.transform(this.#customDateRange.secondValue as Date, 'shortDate')}`;\n }\n }\n return undefined;\n }\n\n // ControlValueAccessor implementation\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value?: RangeSelectDateValue): void {\n if (value?.rangeValue?.operator && value?.rangeValue?.firstValue) {\n const dr: DateRange | undefined = SearchUtils.getMatchingDateRange(value.rangeValue);\n if (dr) {\n this.innerForm.patchValue({ range: dr });\n } else {\n this.#customDateRange = value.rangeValue;\n this.innerForm.patchValue({ range: this.#CUSTOM_OPTION });\n }\n } else {\n this.innerForm.patchValue({ range: this.#ANY_OPTION });\n }\n }\n\n registerOnChange(fn: () => void): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(fn: () => void): void {}\n}\n","<form [formGroup]=\"innerForm\">\n <yvc-dropdown formControlName=\"range\" [options]=\"dateOptions()\" [disableClearButton]=\"true\"></yvc-dropdown>\n</form>","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, inject, input, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { marker } from '@colsen1991/ngx-translate-extract-marker';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FilesizeRange, RangeValue, SearchUtils } from '@yuuvis/client-core';\nimport { DropdownOption, YvcDropdownModule } from '@yuuvis/components/dropdown';\nimport { RangeSelectFilesizeValue } from './range-select-filesize.interface';\n\n// marker for extracting translations for the available filesize range options\nmarker('yuv.form.element.range-select-filesize.option.any');\nmarker('yuv.form.element.range-select-filesize.option.small');\nmarker('yuv.form.element.range-select-filesize.option.medium');\nmarker('yuv.form.element.range-select-filesize.option.large');\nmarker('yuv.form.element.range-select-filesize.option.verylarge');\n/**\n * Component for selecting a range of filesizes based on pre-defined ranges like\n * 'today', 'this week', 'this month', etc.\n */\n@Component({\n selector: 'yuv-range-select-filesize',\n standalone: true,\n imports: [CommonModule, YvcDropdownModule, ReactiveFormsModule],\n templateUrl: './range-select-filesize.component.html',\n styleUrl: './range-select-filesize.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangeSelectFilesizeComponent),\n multi: true\n }\n ]\n})\nexport class RangeSelectFilesizeComponent implements ControlValueAccessor {\n private translate = inject(TranslateService);\n #fb = inject(FormBuilder);\n\n #ANY_OPTION = 'any';\n\n options = signal<DropdownOption[]>([]);\n innerForm = this.#fb.nonNullable.group({\n range: [this.#ANY_OPTION]\n });\n\n /**\n * Range values to be used in the dropdown.\n */\n ranges = input<FilesizeRange[]>(['small', 'medium', 'large', 'verylarge']);\n\n constructor() {\n this.translate.onLangChange.pipe(takeUntilDestroyed()).subscribe((_) => this.#setupOptions());\n this.#setupOptions();\n this.innerForm.valueChanges.pipe(takeUntilDestroyed()).subscribe((v) => this.#onFormValueChange(v));\n }\n\n #onFormValueChange(v: any) {\n const rangeValue: RangeValue | undefined = v.range !== this.#ANY_OPTION ? SearchUtils.filesizeRangeToRangeValue(v.range) : undefined;\n const res: RangeSelectFilesizeValue | undefined = rangeValue && {\n rangeValue,\n label: this.translate.instant(`yuv.form.element.range-select-filesize.option.${v.range}`)\n };\n this.propagateChange(res);\n }\n\n #setupOptions() {\n const options = this.ranges().map((value) => ({\n label: this.translate.instant(`yuv.form.element.range-select-filesize.option.${value}`),\n value\n }));\n\n this.options.set([\n {\n label: this.translate.instant('yuv.form.element.range-select-filesize.option.any'),\n value: this.#ANY_OPTION\n },\n ...options\n ]);\n }\n\n // ControlValueAccessor implementation\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value?: RangeSelectFilesizeValue): void {\n const patch = { range: this.#ANY_OPTION };\n if (value?.rangeValue?.operator && value?.rangeValue?.firstValue) {\n const range: FilesizeRange | undefined = SearchUtils.getMatchingFilesizeRange(value.rangeValue);\n if (range) patch.range = range;\n }\n this.innerForm.patchValue(patch);\n }\n\n registerOnChange(fn: () => void): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(fn: () => void): void {}\n}\n","<form [formGroup]=\"innerForm\">\n <yvc-dropdown formControlName=\"range\" [options]=\"options()\" [disableClearButton]=\"true\"></yvc-dropdown>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1","i2","i4","TranslateModule","TranslateService"],"mappings":"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"}
|
|
@@ -108,6 +108,7 @@ class ListComponent {
|
|
|
108
108
|
});
|
|
109
109
|
this._selection = [];
|
|
110
110
|
this.multiselect = input(false);
|
|
111
|
+
this.selfHandleSelection = input(false);
|
|
111
112
|
this.itemSelect = output();
|
|
112
113
|
this.itemFocus = output();
|
|
113
114
|
// autoselectFirst: boolean = (inject(new HostAttributeToken('autoselectFirst'), { optional: true }) || 'false') === 'true';
|
|
@@ -188,14 +189,15 @@ class ListComponent {
|
|
|
188
189
|
this._keyManager?.destroy();
|
|
189
190
|
}
|
|
190
191
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
191
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: ListComponent, isStandalone: true, selector: "yuv-list", inputs: { multiselect: { classPropertyName: "multiselect", publicName: "multiselect", isSignal: true, isRequired: false, transformFunction: null }, disableSelection: { classPropertyName: "disableSelection", publicName: "disableSelection", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSelect: "itemSelect", itemFocus: "itemFocus" }, host: { attributes: { "role": "listbox", "tabindex": "0" }, listeners: { "keydown": "onKeydown($event)" } }, queries: [{ propertyName: "items", predicate: ListItemDirective, isSignal: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["yuv-list{--_list-item-border-color: var(--list-item-border-color, var(--panel-divider-color));--_list-item-selected-background: var(--list-item-selected-background, var(--item-selected-background-color));--_list-item-selected-border-color: var(--list-item-selected-border-color, var(--color-accent));--_list-item-current-background: var(--list-item-current-background, var(--item-focus-background-color));--_list-item-current-border-color: var(--list-item-current-border-color, var(--panel-divider-color));display:block;max-height:100%;overflow-y:auto}yuv-list [yuvListItem][aria-current=true]{background-color:var(--_list-item-current-background);border-color:var(--_list-item-current-border-color)}yuv-list [yuvListItem][aria-selected=true]{background-color:var(--_list-item-selected-background);border-color:var(--_list-item-selected-border-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: A11yModule }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
192
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: ListComponent, isStandalone: true, selector: "yuv-list", inputs: { multiselect: { classPropertyName: "multiselect", publicName: "multiselect", isSignal: true, isRequired: false, transformFunction: null }, selfHandleSelection: { classPropertyName: "selfHandleSelection", publicName: "selfHandleSelection", isSignal: true, isRequired: false, transformFunction: null }, disableSelection: { classPropertyName: "disableSelection", publicName: "disableSelection", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSelect: "itemSelect", itemFocus: "itemFocus" }, host: { attributes: { "role": "listbox", "tabindex": "0" }, listeners: { "keydown": "onKeydown($event)" }, properties: { "class.self-handle-selection": "selfHandleSelection()" } }, queries: [{ propertyName: "items", predicate: ListItemDirective, isSignal: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["yuv-list{--_list-item-border-color: var(--list-item-border-color, var(--panel-divider-color));--_list-item-selected-background: var(--list-item-selected-background, var(--item-selected-background-color));--_list-item-selected-border-color: var(--list-item-selected-border-color, var(--color-accent));--_list-item-current-background: var(--list-item-current-background, var(--item-focus-background-color));--_list-item-current-border-color: var(--list-item-current-border-color, var(--panel-divider-color));display:block;max-height:100%;overflow-y:auto}yuv-list :not(.self-handle-selection) [yuvListItem][aria-current=true]{background-color:var(--_list-item-current-background);border-color:var(--_list-item-current-border-color)}yuv-list :not(.self-handle-selection) [yuvListItem][aria-selected=true]{background-color:var(--_list-item-selected-background);border-color:var(--_list-item-selected-border-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: A11yModule }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
192
193
|
}
|
|
193
194
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ListComponent, decorators: [{
|
|
194
195
|
type: Component,
|
|
195
196
|
args: [{ selector: 'yuv-list', standalone: true, imports: [CommonModule, A11yModule], template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, host: {
|
|
196
197
|
role: 'listbox',
|
|
197
|
-
tabindex: '0'
|
|
198
|
-
|
|
198
|
+
tabindex: '0',
|
|
199
|
+
'[class.self-handle-selection]': 'selfHandleSelection()',
|
|
200
|
+
}, styles: ["yuv-list{--_list-item-border-color: var(--list-item-border-color, var(--panel-divider-color));--_list-item-selected-background: var(--list-item-selected-background, var(--item-selected-background-color));--_list-item-selected-border-color: var(--list-item-selected-border-color, var(--color-accent));--_list-item-current-background: var(--list-item-current-background, var(--item-focus-background-color));--_list-item-current-border-color: var(--list-item-current-border-color, var(--panel-divider-color));display:block;max-height:100%;overflow-y:auto}yuv-list :not(.self-handle-selection) [yuvListItem][aria-current=true]{background-color:var(--_list-item-current-background);border-color:var(--_list-item-current-border-color)}yuv-list :not(.self-handle-selection) [yuvListItem][aria-selected=true]{background-color:var(--_list-item-selected-background);border-color:var(--_list-item-selected-border-color)}\n"] }]
|
|
199
201
|
}], propDecorators: { onKeydown: [{
|
|
200
202
|
type: HostListener,
|
|
201
203
|
args: ['keydown', ['$event']]
|