@unipin/angular-applet 21.1.0 → 21.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +334 -37
- package/fesm2022/unipin-angular-applet-accordion.mjs +23 -23
- package/fesm2022/unipin-angular-applet-accordion.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-alert-dialog.mjs +93 -79
- package/fesm2022/unipin-angular-applet-alert-dialog.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-alert.mjs +13 -13
- package/fesm2022/unipin-angular-applet-alert.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-approval.mjs +129 -0
- package/fesm2022/unipin-angular-applet-approval.mjs.map +1 -0
- package/fesm2022/unipin-angular-applet-auth.mjs +44 -25
- package/fesm2022/unipin-angular-applet-auth.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-avatar.mjs +4 -4
- package/fesm2022/unipin-angular-applet-avatar.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-badge.mjs +5 -5
- package/fesm2022/unipin-angular-applet-badge.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-buttons.mjs +10 -10
- package/fesm2022/unipin-angular-applet-buttons.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-calendar.mjs +25 -25
- package/fesm2022/unipin-angular-applet-calendar.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-collapsible.mjs +14 -14
- package/fesm2022/unipin-angular-applet-collapsible.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-common.mjs +60 -23
- package/fesm2022/unipin-angular-applet-common.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-containers.mjs +20 -20
- package/fesm2022/unipin-angular-applet-containers.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-dialog.mjs +74 -56
- package/fesm2022/unipin-angular-applet-dialog.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-forms.mjs +571 -256
- package/fesm2022/unipin-angular-applet-forms.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-froala.mjs +8 -8
- package/fesm2022/unipin-angular-applet-froala.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-infinite-scroll.mjs +5 -5
- package/fesm2022/unipin-angular-applet-infinite-scroll.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-json-viewer.mjs +7 -7
- package/fesm2022/unipin-angular-applet-json-viewer.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-kbd.mjs +4 -4
- package/fesm2022/unipin-angular-applet-kbd.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-loading-dialog.mjs +8 -8
- package/fesm2022/unipin-angular-applet-loading-dialog.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-markdown.mjs +17 -17
- package/fesm2022/unipin-angular-applet-markdown.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-popover.mjs +18 -18
- package/fesm2022/unipin-angular-applet-popover.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-progress-bar.mjs +7 -7
- package/fesm2022/unipin-angular-applet-progress-bar.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-skeleton.mjs +4 -4
- package/fesm2022/unipin-angular-applet-skeleton.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-spinner.mjs +5 -5
- package/fesm2022/unipin-angular-applet-spinner.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-stepper.mjs +288 -0
- package/fesm2022/unipin-angular-applet-stepper.mjs.map +1 -0
- package/fesm2022/unipin-angular-applet-swipeable.mjs +24 -24
- package/fesm2022/unipin-angular-applet-swipeable.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-tabs.mjs +19 -19
- package/fesm2022/unipin-angular-applet-tabs.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-tooltip.mjs +5 -5
- package/fesm2022/unipin-angular-applet-tooltip.mjs.map +1 -1
- package/package.json +9 -1
- package/types/unipin-angular-applet-alert-dialog.d.ts +12 -1
- package/types/unipin-angular-applet-approval.d.ts +55 -0
- package/types/unipin-angular-applet-common.d.ts +12 -2
- package/types/unipin-angular-applet-dialog.d.ts +6 -4
- package/types/unipin-angular-applet-forms.d.ts +118 -39
- package/types/unipin-angular-applet-stepper.d.ts +43 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unipin-angular-applet-forms.mjs","sources":["../../../projects/unipin-angular/forms/components/form-field/field-control.ts","../../../projects/unipin-angular/forms/components/input/input.directive.ts","../../../projects/unipin-angular/forms/components/number/number.directive.ts","../../../projects/unipin-angular/forms/components/checkbox/checkbox.directive.ts","../../../projects/unipin-angular/forms/components/switch/switch.component.ts","../../../projects/unipin-angular/forms/components/password/password.component.ts","../../../projects/unipin-angular/forms/components/select/select.component.ts","../../../projects/unipin-angular/forms/components/country-select/country-select.component.ts","../../../projects/unipin-angular/forms/components/currency-select/currency-select.component.ts","../../../projects/unipin-angular/forms/components/searchable-select/searchable-select.component.ts","../../../projects/unipin-angular/forms/components/datepicker/datepicker.component.ts","../../../projects/unipin-angular/forms/components/date-range-picker/date-range-picker.component.ts","../../../projects/unipin-angular/forms/components/form-field/form-field.component.ts","../../../projects/unipin-angular/forms/utils/set-validators/set-validators.util.ts","../../../projects/unipin-angular/forms/utils/toggle-form-controls/toggle-form-controls.util.ts","../../../projects/unipin-angular/forms/validators/valid-range/valid-range.validator.ts","../../../projects/unipin-angular/forms/validators/is-equal/is-equal.validator.ts","../../../projects/unipin-angular/forms/validators/is-not-equal/is-not-equal.validator.ts","../../../projects/unipin-angular/forms/unipin-angular-applet-forms.ts"],"sourcesContent":["import { DoCheck, inject, Injectable, Injector, Signal, signal } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\n\n\nconst errMessage = {\n email: (label: string) => `${ label } is not a valid email`,\n required: (label: string) => `${ label } is required`,\n minlength: (label: string, length?: number) => `${ label } must be at least ${ length } characters`,\n maxlength: (label: string, length?: number) => `${ label } must not exceed ${ length } characters`,\n max: (label: string, max?: number) => `${ label } value must be lower than ${ max }`,\n min: (label: string, min?: number) => `${ label } value must be larger than ${ min }`,\n}\n\nconst extraParamKey = {\n max: 'max',\n min: 'min',\n minlength: 'requiredLength',\n maxlength: 'requiredLength',\n}\n\nexport abstract class UpFieldControl {\n \n public readonly abstract error: Signal<string>;\n public readonly abstract ngControl: NgControl | AbstractControl | null;\n\n public abstract setControlName(name: string): void;\n}\n\n@Injectable()\nexport class UpFieldControlComponent implements UpFieldControl, DoCheck {\n \n public readonly error = signal('');\n \n public readonly injector = inject(Injector);\n public readonly ngControl: NgControl | null = this.injector.get(NgControl, null);\n\n protected readonly _parentForm = inject(NgForm, { optional: true });\n protected readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n\n protected _controlName = '';\n\n public ngDoCheck(): void{\n this.updateErrorState();\n }\n\n public setControlName(name: string): void{\n this._controlName = name;\n }\n\n protected updateErrorState(): void{\n const control = this.ngControl?.control?? null;\n if (\n !control ||\n !control.touched ||\n !control.dirty\n ) {\n return;\n }\n\n if (!control.errors) {\n this.error.set('');\n return;\n }\n\n const errKey = Object.keys(control.errors)[0];\n const newState = errMessage[errKey as keyof typeof errMessage](this._controlName?? 'Field', control.errors[errKey as keyof typeof control.errors][extraParamKey[errKey as keyof typeof extraParamKey]]);\n\n if (newState !== this.error()) {\n this.error.set(newState);\n }\n }\n}\n","import { Directive, computed, forwardRef, input } from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Directive({\n standalone: true,\n exportAs: 'upInput',\n selector: '[upInput]',\n host: {\n '[class]': '_computedClass()',\n },\n providers:[\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpInputDirective)\n }\n ]\n})\nexport class UpInputDirective extends UpFieldControlComponent {\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'peer file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:border-0 file:bg-transparent file:text-sm file:font-medium file:h-7 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] focus-visible:outline-none',\n this.error()? 'ring-destructive/20 dark:ring-destructive/40 border-destructive focus-visible:ring-destructive/50' : '',\n this.inlineClass(),\n );\n }\n );\n}\n","import { computed, Directive, ElementRef, forwardRef, HostListener, input, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { UpFieldControl } from '../form-field/field-control';\nimport { UpInputDirective } from '../input/input.directive';\n\n@Directive({\n standalone: true,\n exportAs: 'upNumber',\n selector: '[upNumber]',\n host: { \n '[class]': '_computedClass()' \n },\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpNumberDirective),\n },\n ],\n})\nexport class UpNumberDirective extends UpInputDirective implements ControlValueAccessor {\n \n public readonly magnifyValue = input<number>(1);\n \n protected readonly maxDecimalDigits = computed(\n () => {\n if (\n !this.magnifyValue() ||\n this.magnifyValue() === 1\n ) {\n return 0;\n }\n\n const floatPoint = Math.log10(\n this.magnifyValue()\n );\n return floatPoint % 1 !== 0? 0 : floatPoint;\n }\n );\n\n protected lastCaretPos = 0;\n protected lastRawValue = '';\n protected lastKey: string | null = null;\n\n /**\n * Callback function to handle value changes in the password input.\n * @type {(_val: any) => void}\n */\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n /**\n * Callback function to handle touch events in the password input.\n * @type {() => void}\n */\n protected _onTouched: () => void = (): void => {};\n\n constructor(\n protected readonly renderer: Renderer2,\n protected readonly el: ElementRef<HTMLInputElement>,\n ) {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @HostListener('blur')\n public onBlur(): void{\n this._onTouched();\n \n const input = this.el.nativeElement;\n if (!input.value.trim()) {\n input.value = ''\n this._onChange(null);\n return;\n }\n const { integer, decimal } = this.sanitizeNumber(input.value);\n\n const cleanedInteger = integer.replace(/^0+/, '') || '';\n const cleanedDecimal = decimal?? '';\n\n let formatted: string;\n if (\n (\n !cleanedInteger || \n /^0+$/.test(cleanedInteger)\n ) && \n (\n !cleanedDecimal || \n /^0+$/.test(cleanedDecimal)\n )\n ) {\n formatted = '0';\n } else if (!cleanedDecimal) {\n formatted = this.formatWithThousandSeparator(cleanedInteger || '0');\n } else {\n formatted = `${ this.formatWithThousandSeparator(cleanedInteger || '0') },${ cleanedDecimal }`;\n }\n input.value = formatted;\n }\n\n @HostListener('input', ['$event'])\n public onInput(event: Event): void{\n const input = event.target as HTMLInputElement;\n const postRaw = input.value;\n const postCaret = input.selectionStart ?? postRaw.length;\n\n const formatted = this.formatNumber(postRaw);\n input.value = formatted;\n\n const numericValue = Number(\n formatted.replace(/\\./g, '').replace(',', '.')\n );\n this._onChange(numericValue);\n\n const digitsBefore = postRaw.slice(0, postCaret).replace(/\\D/g, '').length;\n let newCaret = this.lastKey === ','? this.findCommaCaret(formatted, digitsBefore) : this.mapDigitsToIndex(formatted, digitsBefore);\n \n input.setSelectionRange(newCaret, newCaret);\n\n this.lastKey = null;\n this.lastRawValue = postRaw;\n this.lastCaretPos = newCaret;\n }\n\n @HostListener('keydown', ['$event'])\n public onKeyDown(event: KeyboardEvent): void{\n const input = event.target as HTMLInputElement;\n const allowedKeys = [\n 'Backspace',\n 'Tab',\n 'Enter',\n 'Escape',\n 'Delete',\n 'ArrowLeft',\n 'ArrowRight',\n 'Home',\n 'End',\n ];\n\n this.lastKey = event.key;\n this.lastRawValue = input.value;\n this.lastCaretPos = input.selectionStart ?? input.value.length;\n\n if (\n (\n event.ctrlKey || \n event.metaKey\n ) && \n ['a', 'c', 'v', 'x'].includes(event.key.toLowerCase())\n ) {\n return;\n }\n if (allowedKeys.includes(event.key)) return;\n\n if (event.key === ',') {\n if (\n this.maxDecimalDigits() === 0 || \n input.value.includes(',')\n ) {\n event.preventDefault();\n }\n return;\n }\n\n if (!/^[0-9,]$/.test(event.key)) {\n event.preventDefault();\n }\n }\n\n /**\n * Registers a callback function to be called when the password input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n /**\n * Registers a callback function to be called when the password input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this.renderer.setProperty(\n this.el.nativeElement,\n 'disabled',\n isDisabled\n );\n }\n\n public writeValue(value: any): void{\n this.el.nativeElement.value = this.formatNumber(\n String(value?? '')\n );\n }\n\n protected findCommaCaret(formatted: string, digitsBefore: number): number{\n const commaIndex = formatted.indexOf(',');\n \n return commaIndex >= 0? commaIndex + 1 : this.mapDigitsToIndex(formatted, digitsBefore);\n }\n\n protected mapDigitsToIndex(formatted: string, digitsBefore: number): number{\n if (digitsBefore <= 0) return 0;\n \n let count = 0;\n for (let i = 0; i < formatted.length; i++) {\n if (/\\d/.test(formatted[i])) {\n count++;\n \n if (count === digitsBefore) {\n return i + 1;\n }\n }\n }\n return formatted.length;\n }\n\n protected formatNumber(value: string): string{\n if (!value) {\n return '';\n }\n const { integer, decimal } = this.sanitizeNumber(value);\n const formattedInt = this.formatWithThousandSeparator(integer || '');\n \n if (decimal !== undefined) {\n return `${ formattedInt || '0' },${ decimal }`;\n }\n return formattedInt || '0';\n }\n\n protected formatWithThousandSeparator(value: string): string{\n return value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.');\n }\n\n protected sanitizeNumber(value: string): { integer: string; decimal?: string }{\n const onlyDigitsComma = value.replace(/[^0-9,]/g, '');\n const singleComma = onlyDigitsComma.replace(\n /,/g, \n (_, i) => onlyDigitsComma.indexOf(',') === i ? ',' : ''\n );\n \n const [integerPart, decimalPart] = singleComma.split(',');\n return {\n integer: integerPart || '',\n decimal: decimalPart?.slice(0, this.maxDecimalDigits()),\n };\n }\n}\n","import { Directive, computed, forwardRef, input } from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Directive({\n standalone: true,\n exportAs: 'upCheckbox',\n selector: '[upCheckbox]',\n host: {\n type: 'checkbox',\n '[class]': '_computedClass()',\n },\n providers:[\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpCheckboxDirective)\n }\n ]\n})\nexport class UpCheckboxDirective extends UpFieldControlComponent {\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'peer dark:bg-input/30 border-input size-5 min-w-0 rounded-md border bg-transparent shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-border/40 relative cursor-pointer',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] focus-visible:outline-none',\n 'appearance-none checked:border-primary checked:bg-primary',\n 'checked:after:content-[\\'\\'] checked:after:absolute checked:after:border-white checked:after:border-b-2 checked:after:border-r-2 checked:after:w-1.5 checked:after:h-2.5 checked:after:rounded-br-xs checked:after:rotate-45 checked:after:left-1.5 checked:after:top-0.75',\n this.error()? 'ring-destructive/20 dark:ring-destructive/40 border-destructive focus-visible:ring-destructive/50' : '',\n this.inlineClass(),\n );\n }\n );\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, forwardRef, input, model } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Component({\n standalone: true,\n selector: 'up-switch',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'inline-flex items-center cursor-pointer'\n },\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpSwitchComponent),\n }\n ],\n template: `\n <input\n type=\"checkbox\" \n class=\"sr-only peer\"\n [checked]=\"checked()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n (blur)=\"touch()\"\n />\n \n <span \n (click)=\"toggle()\"\n [class]=\"_computedClass()\"\n >\n </span>\n `\n})\nexport class UpSwitchComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly checked = model(false);\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly required = input(\n false, \n {\n transform: booleanAttribute\n }\n );\n public readonly disabled = input(\n false, \n {\n transform: booleanAttribute\n }\n );\n \n public isTouched: boolean = false;\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n `\n relative w-9 h-5 flex items-center justify-start flex-shrink-0 outline outline-input bg-input rounded-full \n transition-colors duration-300 ease-in-out \n peer-checked:bg-primary after:absolute \n after:top-1/2 after:left-[2px] after:-translate-y-1/2\n after:w-4 after:h-4 after:bg-white after:rounded-full after:shadow-md\n after:transition-transform after:duration-300 after:ease-in-out\n peer-checked:after:translate-x-[15px]\n peer-focus-visible:ring-2 peer-focus-visible:ring-primary peer-focus-visible:ring-offset-2\n `,\n this.inlineClass(),\n );\n }\n );\n \n protected _onChange: (_val: any) => void = (_val: any): void => {};\n protected _onTouched: () => void = (): void => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public writeValue(value: boolean): void{\n this.checked.set(value);\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public touch(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public toggle(): void{\n if (this.disabled()) {\n return;\n }\n \n this.checked.set(!this.checked());\n this._onChange(this.checked());\n this._onTouched();\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, forwardRef, input, model, signal, WritableSignal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ClassValue } from 'clsx';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { matVisibilityRound, matVisibilityOffRound } from '@ng-icons/material-icons/round';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpInputDirective } from './../input/input.directive';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Component({\n standalone: true,\n selector: 'up-password',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'block relative',\n },\n imports: [\n NgIcon,\n UpInputDirective\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpPasswordComponent)\n },\n provideIcons(\n { \n matVisibilityRound, \n matVisibilityOffRound \n }\n ),\n ],\n template: `\n <input\n upInput\n maxlength=\"64\"\n [type]=\"type()\"\n [value]=\"value()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n [class]=\"_computedClass()\"\n [placeholder]=\"placeholder()?? ''\"\n [attr.autocomplete]=\"autocomplete()\"\n (blur)=\"touch()\"\n (input)=\"change($event.target)\"\n />\n \n <ng-icon\n class=\"absolute right-3 top-1/2 -translate-y-1/2 cursor-pointer text-gray-500 hover:text-primary peer-disabled:opacity-50 peer-disabled:cursor-not-allowed\"\n [name]=\"type() === 'password'? 'matVisibilityRound' : 'matVisibilityOffRound'\"\n (click)=\"changeType()\"\n />\n `,\n})\nexport class UpPasswordComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly placeholder = input<string | undefined>();\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly autocomplete = input<'off' | 'current-password' | 'new-password'>('off');\n\n public readonly required = input(\n false, \n { \n transform: booleanAttribute \n }\n );\n public readonly disabled = model<boolean>(false);\n \n public readonly value: WritableSignal<string> = signal('');\n public readonly type = signal<'text' | 'password'>('password');\n\n public isTouched: boolean = false;\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'pr-10 peer', \n this.inlineClass()\n );\n }\n );\n\n /**\n * Callback function to handle value changes in the password input.\n * @type {(_val: any) => void}\n */\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n /**\n * Callback function to handle touch events in the password input.\n * @type {() => void}\n */\n protected _onTouched: () => void = (): void => {};\n\n constructor() {\n super();\n\n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /**\n * Registers a callback function to be called when the password input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n /**\n * Registers a callback function to be called when the password input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n /**\n * Writes a new value to the password input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{\n this.value.set(val?? '');\n }\n\n /** \n * Function that is called by the forms API when the control status change to or from 'DISABLED'.\n * Depending on the status, it enables or disables the appropriate DOM element\n * @param {boolean} isDisabled - disable state\n */\n public setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n \n /**\n * Toggles the type of the password input between text and password.\n */\n public changeType(): void{\n if (!this.disabled()) {\n this.type.set(\n this.type() === 'text'? 'password' : 'text'\n );\n }\n }\n\n /**\n * Event handler to handle touch status.\n * \n * @returns {void}\n */\n public touch(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n /**\n * Event handler for changes in the password input.\n * If not touched, marks the input as touched.\n * Updates the value and triggers change detection.\n * @param {any} param - Event detail containing the new password input value.\n */\n public change({ value }: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n this.value.set(value);\n this._onChange(\n this.value()\n );\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, forwardRef, input, output, contentChild, InputSignal, Signal, OutputEmitterRef, model, ModelSignal, booleanAttribute } from '@angular/core';\nimport { ControlValueAccessor, FormsModule } from '@angular/forms';\nimport { ClassValue } from 'clsx';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Component({\n standalone: true,\n selector: 'up-select',\n styleUrl: './select.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'block relative',\n },\n imports: [\n FormsModule,\n NgSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpSelectComponent)\n }\n ],\n template: `\n <ng-select\n [items]=\"items()\"\n [ngModel]=\"value()\"\n [addTag]=\"addTag()\"\n [loading]=\"loading()\"\n [multiple]=\"multiple()\"\n [readonly]=\"disabled()\"\n [appendTo]=\"appendTo()\"\n [clearable]=\"clearable()\"\n [bindLabel]=\"bindLabel()\"\n [bindValue]=\"bindValue()\"\n [class]=\"_computedClass()\"\n [searchable]=\"searchable()\"\n [placeholder]=\"placeholder()\"\n [virtualScroll]=\"virtualScroll()\"\n [attr.data-disabled]=\"disabled()\"\n (blur)=\"touch()\"\n (ngModelChange)=\"change($event)\"\n />\n `,\n})\nexport class UpSelectComponent extends UpFieldControlComponent implements ControlValueAccessor {\n \n public readonly items: InputSignal<any[]> = input.required<any[]>();\n \n public readonly label: InputSignal<string> = input<string>(''); \n public readonly appendTo: InputSignal<string> = input<string>('');\n public readonly placeholder: InputSignal<string> = input<string>('');\n public readonly bindLabel: InputSignal<string> = input<string>('label');\n public readonly bindValue: InputSignal<string> = input<string>('value');\n public readonly value: ModelSignal<any | null> = model<any | null>(null);\n public readonly inlineClass: InputSignal<ClassValue> = input<ClassValue>('', { alias: 'class' });\n\n public readonly loading: InputSignal<boolean> = input<boolean>(false);\n public readonly multiple: InputSignal<boolean> = input<boolean>(false);\n public readonly required: InputSignal<boolean> = input<boolean>(false);\n public readonly disabled: InputSignal<boolean> = input<boolean>(false);\n public readonly clearable: InputSignal<boolean> = input<boolean>(true);\n\n public readonly addTag = input(false, { transform: booleanAttribute });\n public readonly searchable = input(false, { transform: booleanAttribute });\n public readonly virtualScroll = input(false, { transform: booleanAttribute });\n \n public readonly changed: OutputEmitterRef<any> = output<any>();\n \n public readonly control: Signal<UpFieldControl | undefined> = contentChild(UpFieldControl);\n \n public readonly _computedClass: Signal<any> = computed(\n () => {\n return up(\n 'w-full min-w-0 h-9',\n 'data-[disabled=true]:[&>.ng-select-container]:cursor-not-allowed! data-[disabled=true]:[&>.ng-select-container]:opacity-50! data-[disabled=true]:[&>.ng-select-container]:bg-transparent!', \n '[&>.ng-select-container]:border! [&>.ng-select-container]:border-input! [&>.ng-select-container]:rounded-md! [&>.ng-select-container]:cursor-pointer! [&>.ng-select-container]:shadow-xs! [&>.ng-select-container]:items-center!',\n '[&>.ng-select-container>.ng-value-container>.ng-placeholder]:text-base! md:[&>.ng-select-container>.ng-value-container>.ng-placeholder]:text-sm!',\n '[&>.ng-select-container>.ng-value-container>.ng-value]:text-base! md:[&>.ng-select-container>.ng-value-container>.ng-value]:text-sm! [&>.ng-select-container>.ng-value-container>.ng-value]:text-black!',\n '[&.ng-select-focused>.ng-select-container]:border-ring! [&.ng-select-focused>.ng-select-container]:ring-ring/50! [&.ng-select-focused>.ng-select-container]:ring-[3px]!',\n this.inlineClass(),\n );\n }\n );\n \n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /**\n * Lifecycle hook — initializes the control name for form integration.\n */\n public ngOnInit(): void{\n this.setControlName(<string> this.ngControl?.name);\n }\n\n /**\n * Writes a new value from the form model into the view.\n * \n * @param {any} value - The value to assign to the select.\n */\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n /**\n * Registers a callback function to be called when the select value changes.\n * \n * @param {(val: any) => void} fn - Callback function to handle value changes.\n */\n public registerOnChange(fn: (val: any) => void): void{\n this._onChange = fn;\n }\n\n /**\n * Registers a callback function to be called when the component is touched.\n * \n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: () => void): void{\n this._onTouched = fn;\n }\n\n /**\n * Marks the component as touched (used for form validation state).\n */\n public touch(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n /**\n * Handles changes from the dropdown and propagates them to the form model.\n * \n * @param {any} e - The new value emitted by the ng-select component.\n */\n public change(e?: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n this.value.set(e);\n \n this._onChange(this.value());\n this.changed.emit(this.value());\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, forwardRef, input, model, OnDestroy, OnInit, output, OutputEmitterRef, signal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { ClassValue } from 'clsx';\nimport { Country } from '@unipin/graphql-schema';\nimport { CountryService } from '@unipin/angular-applet/common';\nimport { UpSelectComponent } from '../select/select.component';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Component({\n standalone: true,\n selector: 'up-country-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'block' \n },\n imports: [\n UpSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpCountrySelectComponent),\n }\n ],\n template: `\n <up-select\n searchable\n virtualScroll \n appendTo=\"body\"\n bindValue=\"code\"\n bindLabel=\"name\"\n [value]=\"value()\"\n [items]=\"countries()\"\n [loading]=\"isLoading()\"\n [multiple]=\"multiple()\"\n [class]=\"inlineClass()\"\n [clearable]=\"clearable()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled() || _disabled()\"\n (blur)=\"onTouched()\"\n (changed)=\"change($event)\"\n />\n `,\n})\nexport class UpCountrySelectComponent extends UpFieldControlComponent implements OnInit, OnDestroy, ControlValueAccessor {\n \n public readonly multiple = input<boolean>(false);\n public readonly clearable = input<boolean>(true);\n public readonly placeholder = input<string>('Select country');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly disabled = input(false, { transform: booleanAttribute });\n\n public readonly value = model<string | null>(null);\n\n public readonly changed: OutputEmitterRef<Country> = output<Country>();\n\n public readonly countries = signal<Country[]>([]);\n public readonly isLoading = signal<boolean>(true);\n public readonly _disabled = signal<boolean>(false);\n\n protected sub?: Subscription;\n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor(\n protected readonly service: CountryService\n ) {\n super();\n \n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void{\n this.sub = this.service.query().subscribe({\n error: () => {\n this.countries.set([]);\n this.isLoading.set(false);\n },\n next: ({ data: { webConfigMsCountry: { data }}}) => {\n this.countries.set(data as Country[]);\n this.isLoading.set(false);\n }\n });\n }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n public onTouched(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public change(value: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n this.value.set(value);\n \n this._onChange(value);\n this.changed.emit(\n this.countries().find(c => c.code === value)!\n );\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, forwardRef, input, model, OnDestroy, OnInit, output, OutputEmitterRef, signal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { ClassValue } from 'clsx';\nimport { QueryResult } from '@unipin/angular-gql';\nimport { Currency, CurrencyResult } from '@unipin/graphql-schema';\nimport { CurrencyService } from '@unipin/angular-applet/common';\nimport { UpSelectComponent } from '../select/select.component';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Component({\n standalone: true,\n selector: 'up-currency-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'block' \n },\n imports: [\n UpSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpCurrencySelectComponent)\n }\n ],\n template: `\n <up-select\n searchable\n virtualScroll \n appendTo=\"body\"\n bindValue=\"code\"\n bindLabel=\"displayLabel\"\n [value]=\"value()\"\n [items]=\"currencies()\"\n [loading]=\"isLoading()\"\n [multiple]=\"multiple()\"\n [class]=\"inlineClass()\"\n [clearable]=\"clearable()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled() || _disabled()\"\n (blur)=\"onTouched()\"\n (changed)=\"change($event)\"\n />\n `,\n})\nexport class UpCurrencySelectComponent extends UpFieldControlComponent implements OnInit, OnDestroy, ControlValueAccessor {\n \n public readonly multiple = input<boolean>(false);\n public readonly clearable = input<boolean>(true);\n public readonly placeholder = input<string>('Select currency');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly disabled = input(false, { transform: booleanAttribute });\n\n public readonly value = model<string | null>(null);\n public readonly changed: OutputEmitterRef<Currency> = output<Currency>();\n\n public readonly isLoading = signal<boolean>(true);\n public readonly _disabled = signal<boolean>(false);\n public readonly currencies = signal<Array<Currency & { displayLabel: string }>>([]);\n\n protected sub?: Subscription;\n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor(\n protected readonly service: CurrencyService\n ) {\n super();\n \n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void{\n this.sub = this.service.query().subscribe(\n {\n error: () => {\n this.currencies.set([]);\n this.isLoading.set(false);\n },\n next: ({ data: { webConfigMsCurrency: { data }}}: QueryResult<{ webConfigMsCurrency: CurrencyResult }>) => {\n this.currencies.set(\n (data as Currency[]).map(\n ({ code, name, ...ccy }) => {\n return {\n ...ccy,\n code,\n name,\n displayLabel: `${ code } - ${ name }`\n };\n }\n )\n );\n this.isLoading.set(false);\n }\n }\n );\n }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n public onTouched(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public change(value: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n this.value.set(value);\n \n this._onChange(value);\n this.changed.emit(\n this.currencies().find(c => c.code === value)!\n );\n }\n }\n}\n","import { Component, ChangeDetectionStrategy, ViewEncapsulation, forwardRef, Signal, InputSignal, input, ModelSignal, model, booleanAttribute, OutputEmitterRef, output, contentChild, computed } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { FormsModule, ControlValueAccessor } from '@angular/forms';\nimport { Observable, Subject, distinctUntilChanged, debounceTime, tap, switchMap, map, catchError, of } from 'rxjs';\nimport { ClassValue } from 'clsx';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Component({\n standalone: true,\n selector: 'up-searchable-select',\n styleUrl: '../select/select.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'block relative',\n },\n imports: [\n FormsModule,\n NgSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpSearchableSelectComponent)\n }\n ],\n template: `\n <ng-select\n typeToSearchText=\"Please enter 3 or more characters\"\n [minTermLength]=\"3\"\n [virtualScroll]=\"true\"\n [editableSearchTerm]=\"true\"\n \n [typeahead]=\"typeahead\"\n \n [items]=\"items()\"\n [ngModel]=\"value()\"\n [addTag]=\"addTag()\"\n [loading]=\"loading()\"\n [multiple]=\"multiple()\"\n [readonly]=\"disabled()\"\n [appendTo]=\"appendTo()\"\n [clearable]=\"clearable()\"\n [bindLabel]=\"bindLabel()\"\n [bindValue]=\"bindValue()\"\n [class]=\"_computedClass()\"\n [placeholder]=\"placeholder()\"\n [virtualScroll]=\"virtualScroll()\"\n [attr.data-disabled]=\"disabled()\"\n \n (blur)=\"touch()\"\n (change)=\"change($event)\"\n />\n `,\n})\nexport class UpSearchableSelectComponent extends UpFieldControlComponent implements ControlValueAccessor {\n \n public readonly query: InputSignal<(keyword: string) => Observable<any>> = input.required<(keyword: string) => Observable<any>>(); \n \n public readonly label = input<string>(''); \n public readonly appendTo = input<string>('');\n public readonly placeholder = input<string>('');\n public readonly initialItems = input<any[]>([]); \n public readonly bindLabel = input<string>('label');\n public readonly bindValue = input<string>('value');\n\n public readonly inlineClass: InputSignal<ClassValue> = input<ClassValue>('', { alias: 'class' });\n\n public readonly addTag = input(false, { transform: booleanAttribute });\n public readonly multiple = input(false, { transform: booleanAttribute });\n public readonly required = input(false, { transform: booleanAttribute });\n public readonly disabled = input(false, { transform: booleanAttribute });\n public readonly clearable = input(true, { transform: booleanAttribute });\n public readonly virtualScroll = input(false, { transform: booleanAttribute });\n\n public readonly loading: ModelSignal<boolean> = model<boolean>(false);\n public readonly value: ModelSignal<any | null> = model<any | null>(null);\n\n public readonly changed: OutputEmitterRef<any> = output<any>();\n\n public readonly control: Signal<UpFieldControl | undefined> = contentChild(UpFieldControl);\n\n public readonly _computedClass: Signal<any> = computed(\n () => {\n return up(\n 'w-full min-w-0 h-9',\n 'data-[disabled=true]:[&>.ng-select-container]:cursor-not-allowed! data-[disabled=true]:[&>.ng-select-container]:opacity-50! data-[disabled=true]:[&>.ng-select-container]:bg-transparent!', \n '[&>.ng-select-container]:border! [&>.ng-select-container]:border-input! [&>.ng-select-container]:rounded-md! [&>.ng-select-container]:cursor-pointer! [&>.ng-select-container]:shadow-xs! [&>.ng-select-container]:items-center!',\n '[&>.ng-select-container>.ng-value-container>.ng-placeholder]:text-base! md:[&>.ng-select-container>.ng-value-container>.ng-placeholder]:text-sm!',\n '[&>.ng-select-container>.ng-value-container>.ng-value]:text-base! md:[&>.ng-select-container>.ng-value-container>.ng-value]:text-sm! [&>.ng-select-container>.ng-value-container>.ng-value]:text-black!',\n '[&.ng-select-focused>.ng-select-container]:border-ring! [&.ng-select-focused>.ng-select-container]:ring-ring/50! [&.ng-select-focused>.ng-select-container]:ring-[3px]!',\n this.inlineClass(),\n );\n }\n );\n \n public readonly items: Signal<any[]> = computed(\n () => {\n const results = this._queryResults();\n return results.length > 0? results : this.initialItems();\n }\n );\n public readonly typeahead: Subject<string> = new Subject<string>();\n\n protected readonly query$: Observable<any[]> = this.typeahead.pipe(\n distinctUntilChanged(),\n debounceTime(300),\n tap(\n () => this.loading.set(true)\n ),\n switchMap(\n (k: string) => {\n return this.query()(k).pipe(\n map(\n (result: any[]) => !result.length? this.initialItems() : result\n ),\n catchError(\n () => of(this.initialItems())\n )\n );\n }\n ),\n tap(\n () => this.loading.set(false)\n )\n );\n\n protected readonly _queryResults: Signal<any[]> = toSignal(this.query$, { initialValue: [] });\n\n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void{\n this.setControlName(<string> this.ngControl?.name);\n }\n\n public registerOnChange(fn: (val: any) => void): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void{\n this._onTouched = fn;\n }\n\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n public touch(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public change(e?: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n if (!e) {\n this.value.set(null);\n } else {\n this.value.set(\n !this.multiple()? e[ this.bindValue() ] : e.map((o: any) => o[ this.bindValue() ])\n );\n }\n \n this._onChange(this.value());\n this.changed.emit(this.value());\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, ElementRef, forwardRef, input, signal, viewChild } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { matCalendarMonthRound } from '@ng-icons/material-icons/round';\nimport { format } from 'date-fns';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpButtonDirective } from '@unipin/angular-applet/buttons';\nimport { SingleDate, UpCalendarComponent } from '@unipin/angular-applet/calendar';\nimport { UpPopoverComponent, UpPopoverContentRefDirective, UpPopoverTriggerDirective } from '@unipin/angular-applet/popover';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Component({\n standalone: true,\n selector: 'up-datepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpDatepickerComponent),\n },\n provideIcons(\n { \n matCalendarMonthRound\n }\n ),\n ],\n imports: [\n NgIcon,\n UpButtonDirective, \n UpPopoverComponent, \n UpCalendarComponent, \n UpPopoverTriggerDirective, \n UpPopoverContentRefDirective\n ],\n template: `\n <up-popover \n alignment=\"start\" \n placementOffset=\"4\"\n >\n <button\n upButton\n upPopoverTrigger\n type=\"button\"\n variant=\"ghost\"\n [class]=\"_computedClass()\"\n [disabled]=\"disabled() || _disabled()\"\n [attr.data-has-value]=\"value()? true : false\"\n (blur)=\"touch()\"\n #btnTrigger\n >\n {{ value()? formattedDate() : placeholder() }}\n\n <ng-icon\n size=\"16\"\n class=\"ml-auto\"\n name=\"matCalendarMonthRound\"\n />\n </button>\n\n <ng-container *upPopoverContentRef>\n <up-calendar\n [activeDay]=\"value()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n (selected)=\"selectedDate($event)\"\n />\n </ng-container>\n </up-popover>\n `\n})\nexport class UpDatepickerComponent extends UpFieldControlComponent implements ControlValueAccessor {\n \n public readonly placeholder = input<string>('');\n public readonly minDate = input<SingleDate>(null);\n public readonly maxDate = input<SingleDate>(null);\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly dateFormat = input<string>('dd LLL yyyy', { alias: 'format' });\n \n public readonly disabled = input(\n false,\n {\n transform: booleanAttribute\n }\n );\n \n public readonly btnTrigger = viewChild<ElementRef<HTMLButtonElement>>('btnTrigger');\n \n public readonly value = signal<SingleDate>(null);\n public readonly _disabled = signal<boolean>(false);\n \n public readonly formattedDate = computed(\n () => {\n return this.value()? format(this.value()!, this.dateFormat()) : ''\n }\n );\n \n public readonly _computedClass = computed(\n () => {\n return up(\n 'flex justify-between px-3 border border-border min-w-48 w-full font-normal hover:not-disabled:text-primary! data-[has-value=false]:text-muted-foreground',\n this.inlineClass()\n )\n }\n );\n\n protected _isTouched: boolean = false;\n protected _onTouched: () => void = () => {};\n protected _onChange: (_val: any) => void = () => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public writeValue(value: any): void{\n this.value.set(value?? null);\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public touch(): void{\n this._markTouched();\n }\n \n public selectedDate(day: SingleDate): void{\n this.value.set(day);\n \n this._onChange(day);\n this._markTouched();\n \n this.btnTrigger()?.nativeElement.click();\n }\n\n protected _markTouched(): void{\n if (this._isTouched) return;\n \n this._onTouched();\n this._isTouched = true;\n }\n}\n","import { Component, ChangeDetectionStrategy, forwardRef, booleanAttribute, computed, input, signal } from \"@angular/core\";\nimport { ControlValueAccessor } from \"@angular/forms\";\nimport { NgIcon, provideIcons } from \"@ng-icons/core\";\nimport { matCalendarMonthRound } from \"@ng-icons/material-icons/round\";\nimport { format } from \"date-fns\";\nimport { ClassValue } from \"clsx\";\nimport { up } from '@unipin/angular-applet/common';\nimport { UpButtonDirective } from '@unipin/angular-applet/buttons';\nimport { RangeDate, SingleDate, UpCalendarComponent } from '@unipin/angular-applet/calendar';\nimport { UpPopoverComponent, UpPopoverTriggerDirective, UpPopoverContentRefDirective } from '@unipin/angular-applet/popover';\nimport { UpFieldControl, UpFieldControlComponent } from \"../form-field/field-control\";\n\n\n@Component({\n standalone: true,\n selector: 'up-date-range-picker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpDateRangePickerComponent)\n },\n provideIcons(\n { \n matCalendarMonthRound \n }\n ),\n ],\n imports: [\n NgIcon,\n UpButtonDirective, \n UpPopoverComponent, \n UpCalendarComponent, \n UpPopoverTriggerDirective, \n UpPopoverContentRefDirective\n ],\n template: `\n <up-popover \n alignment=\"start\" \n placementOffset=\"4\"\n >\n <button\n upButton\n upPopoverTrigger\n type=\"button\"\n variant=\"ghost\"\n [class]=\"_computedClass()\"\n [disabled]=\"disabled() || _disabled()\"\n [attr.data-has-value]=\"value().from && value().to? true : false\"\n (blur)=\"touch()\"\n >\n {{ value().from && value().to? formattedDate() : placeholder()}}\n\n <ng-icon\n size=\"16\"\n class=\"ml-auto\"\n name=\"matCalendarMonthRound\"\n />\n </button>\n\n <ng-container *upPopoverContentRef>\n <up-calendar\n variant=\"range\"\n [activeDay]=\"null\"\n [activeRangeDay]=\"value()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n (rangeSelected)=\"selectedDate($event)\"\n />\n </ng-container>\n </up-popover>\n `\n})\nexport class UpDateRangePickerComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly placeholder = input<string>('');\n public readonly minDate = input<SingleDate>(null);\n public readonly maxDate = input<SingleDate>(null);\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly dateFormat = input<string>('dd LLL yyyy', { alias: 'format' });\n \n public readonly disabled = input(\n false,\n {\n transform: booleanAttribute\n }\n );\n\n public readonly _disabled = signal<boolean>(false);\n public readonly value = signal<RangeDate>({ from: null, to: null });\n \n public readonly formattedDate = computed(\n () => {\n return this.value().from && this.value().to? `${ format(this.value().from!, this.dateFormat()) } - ${ format(this.value().to!, this.dateFormat()) }` : ''\n }\n );\n \n public readonly _computedClass = computed(\n () => {\n return up(\n 'flex justify-between px-3 border border-border min-w-60 w-full font-normal hover:not-disabled:text-primary! data-[has-value=false]:text-muted-foreground',\n this.inlineClass()\n )\n }\n );\n\n protected _isTouched: boolean = false;\n protected _onTouched: () => void = () => {};\n protected _onChange: (_val: any) => void = () => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public writeValue(value: any): void{\n this.value.set(value?? null);\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public touch(): void{\n this._markTouched();\n }\n \n public selectedDate(range: RangeDate): void{\n this.value.set(range);\n \n this._onChange(range);\n this._markTouched();\n }\n\n protected _markTouched(): void{\n if (this._isTouched) return;\n \n this._onTouched();\n this._isTouched = true;\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, contentChild, effect, input } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl } from './field-control';\n\n@Component({\n standalone: true,\n selector: 'up-form-field',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '_computedClass()',\n },\n template: `\n <div \n class=\"\n group flex flex-col gap-2\n has-[input[type='checkbox']]:flex-row has-[input[type='checkbox']]:items-center\n \"\n >\n @if (label()) {\n <label \n class=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 select-none group-has-[input[type='checkbox']]:order-2\"\n [for]=\"name()\"\n [class.text-destructive]=\"control()?.error()\"\n >\n {{ label() }}\n </label>\n }\n\n <ng-content />\n </div>\n\n @if (control()?.error()) {\n <p class=\"text-xs font-medium text-destructive\">\n {{ control()?.error() }}\n </p>\n }\n @else if (hint()) {\n <p class=\"text-xs text-muted-foreground\">\n {{ hint() }}\n </p>\n }\n `\n})\nexport class UpFormFieldComponent {\n\n public readonly name = input<string>('');\n public readonly hint = input<string>('');\n public readonly label = input<string>('');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly control = contentChild(UpFieldControl);\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'block space-y-2',\n this.inlineClass(),\n );\n }\n );\n\n constructor() {\n effect(\n () => {\n if (!this.control()) {\n throw new Error('Form field must contain a field control, eg: input, checkbox, textarea, etc.');\n }\n this.control()!.setControlName(this.label());\n }\n );\n }\n}\n","import { FormGroup, ValidatorFn } from '@angular/forms';\n\nexport function setValidator(form: FormGroup, keys: string[], validators: ValidatorFn | ValidatorFn[]): void {\n \n if (\n !keys.length || \n keys.length === 1\n ) {\n throw new Error('Use normal action for single keys and keys cannot be empty.');\n }\n\n keys.forEach(\n (key) => {\n const control = form.get(key);\n\n if (control) {\n control.setValidators(validators);\n control.updateValueAndValidity();\n }\n }\n );\n}\n","import { FormGroup } from '@angular/forms';\n\nexport function toggleFormControls(form: FormGroup, keys: string[], mode: 'enable' | 'disable'): void{\n \n if (\n !keys.length ||\n keys.length === 1\n ) {\n throw new Error('Use normal action for single keys and keys cannot be empty.');\n }\n keys.forEach((key) => form.get(key)?.[mode]());\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nfunction prettifyLabel(name: string): string{\n \n return name\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase());\n}\n\nfunction convertToDate(value: any): Date | null{\n \n if (value instanceof Date) return value;\n \n if (\n typeof value === 'string' &&\n !isNaN(Date.parse(value))\n ) {\n return new Date(value);\n }\n return null;\n}\n\n/**\n * Range validator for number and date values.\n * @param {string} fromKey - The \"from\" control name\n * @param {string} toKey - The \"to\" control name\n * @returns {ValidatorFn} Throw error message when fromKey is greater than toKey\n *\n * Usage:\n * this.form = new FormGroup({\n * agingFrom: new FormControl(),\n * agingTo: new FormControl(),\n * }, { validators: rangeValidator('agingFrom', 'agingTo') });\n */\nexport function validRangeValidator(fromKey: string, toKey: string): ValidatorFn{\n \n return (group: AbstractControl): ValidationErrors | null => {\n if (!group) {\n return null;\n }\n\n const toControl = group.get(toKey);\n const fromControl = group.get(fromKey);\n \n if (\n !fromControl || \n !toControl\n ) {\n return null;\n }\n\n const toValue = toControl.value;\n const fromValue = fromControl.value;\n \n if (\n fromValue === null || \n toValue === null || \n fromValue === '' || \n toValue === ''\n ) {\n return null;\n }\n\n let isInvalid = false;\n const toDate = convertToDate(toValue);\n const fromDate = convertToDate(fromValue);\n\n if (fromDate && toDate) {\n isInvalid = toDate <= fromDate;\n } else if (\n !isNaN(fromValue) && \n !isNaN(toValue)\n ) {\n isInvalid = Number(toValue) <= Number(fromValue);\n }\n\n return !isInvalid? null : {\n rangeInvalid: {\n to: toKey,\n from: fromKey,\n message: `${ prettifyLabel(toKey) } must be greater than ${ prettifyLabel(fromKey) }`\n }\n }\n };\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n\n/**\n * Validator that requires all specified form controls to have the same value.\n *\n * @param {string[]} controlNames - The names of the controls that must match\n * @param {string} [message] - Optional custom error message\n * @returns {ValidatorFn} A validator function producing an `isEqual` error if values do not match\n *\n * @example\n * this.form = new FormGroup({\n * password: new FormControl(''),\n * confirmPassword: new FormControl(''),\n * }, { validators: isEqualValidator(['password', 'confirmPassword']) });\n */\nexport function isEqualValidator(controlNames: string[], message?: string): ValidatorFn{\n \n return (group: AbstractControl): ValidationErrors | null => {\n if (\n !group ||\n controlNames.length < 2\n ) {\n return null;\n }\n\n let isEmpty = false;\n const values = controlNames.reduce(\n (acc, name) => {\n const control = group.get(name);\n if (!control) {\n return acc;\n }\n\n if (!control.value) {\n isEmpty = true;\n return acc;\n }\n\n acc.push(control.value);\n return acc;\n },\n [] as string[]\n );\n\n if (isEmpty) {\n return null;\n }\n\n if (!values.every(v => v === values[0])) {\n const labels = controlNames.map(\n (name) => {\n return name\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase());\n }\n );\n \n return {\n isEqual: {\n fields: controlNames,\n message: message || `${ labels.join(', ') } should have the same value` \n }\n };\n }\n return null;\n };\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n\n/**\n * Validator that requires all specified form controls to have different values.\n *\n * @param {string[]} controlNames - The names of the controls that must all be unique\n * @param {string} [message] - Optional custom error message\n * @returns {ValidatorFn} A validator function producing an `isNotEqual` error if duplicate values exist\n *\n * @example\n * this.form = new FormGroup({\n * primaryEmail: new FormControl(''),\n * secondaryEmail: new FormControl(''),\n * backupEmail: new FormControl(''),\n * }, { validators: isNotEqualValidator(['primaryEmail', 'secondaryEmail', 'backupEmail']) });\n */\nexport function isNotEqualValidator(controlNames: string[], message?: string): ValidatorFn{\n \n return (group: AbstractControl): ValidationErrors | null => {\n if (\n !group ||\n controlNames.length < 2\n ) {\n return null;\n }\n\n let isEmpty = false;\n const values = controlNames.reduce(\n (acc, name) => {\n const control = group.get(name);\n if (!control) {\n return acc;\n }\n\n if (!control.value) {\n isEmpty = true;\n return acc;\n }\n\n acc.push(control.value);\n return acc;\n },\n [] as string[]\n );\n\n if (isEmpty) {\n return null;\n }\n\n if (new Set(values).size !== values.length) {\n const labels = controlNames.map(\n (name) => {\n return name\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase());\n }\n );\n \n return {\n isNotEqual: {\n fields: controlNames,\n message: message || `${ labels.join(', ') } should have different values` \n }\n };\n }\n return null;\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":";;;;;;;;;;;;;;;;AAIA,MAAM,UAAU,GAAG;IACjB,KAAK,EAAE,CAAC,KAAa,KAAK,CAAA,EAAI,KAAM,CAAA,qBAAA,CAAuB;IAC3D,QAAQ,EAAE,CAAC,KAAa,KAAK,CAAA,EAAI,KAAM,CAAA,YAAA,CAAc;AACrD,IAAA,SAAS,EAAE,CAAC,KAAa,EAAE,MAAe,KAAK,CAAA,EAAI,KAAM,CAAA,kBAAA,EAAsB,MAAO,CAAA,WAAA,CAAa;AACnG,IAAA,SAAS,EAAE,CAAC,KAAa,EAAE,MAAe,KAAK,CAAA,EAAI,KAAM,CAAA,iBAAA,EAAqB,MAAO,CAAA,WAAA,CAAa;AAClG,IAAA,GAAG,EAAE,CAAC,KAAa,EAAE,GAAY,KAAK,CAAA,EAAI,KAAM,CAAA,0BAAA,EAA8B,GAAI,CAAA,CAAE;AACpF,IAAA,GAAG,EAAE,CAAC,KAAa,EAAE,GAAY,KAAK,CAAA,EAAI,KAAM,CAAA,2BAAA,EAA+B,GAAI,CAAA,CAAE;CACtF;AAED,MAAM,aAAa,GAAG;AACpB,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,SAAS,EAAE,gBAAgB;AAC3B,IAAA,SAAS,EAAE,gBAAgB;CAC5B;MAEqB,cAAc,CAAA;AAMnC;MAGY,uBAAuB,CAAA;AADpC,IAAA,WAAA,GAAA;AAGkB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,mDAAC;AAElB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC3B,IAAA,CAAA,SAAS,GAAqB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;QAE7D,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAChD,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAE1E,IAAA,CAAA,YAAY,GAAG,EAAE;AAgC5B,IAAA;IA9BQ,SAAS,GAAA;QACd,IAAI,CAAC,gBAAgB,EAAE;IACzB;AAEO,IAAA,cAAc,CAAC,IAAY,EAAA;AAChC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;IAC1B;IAEU,gBAAgB,GAAA;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,IAAG,IAAI;AAC9C,QAAA,IACE,CAAC,OAAO;YACR,CAAC,OAAO,CAAC,OAAO;AAChB,YAAA,CAAC,OAAO,CAAC,KAAK,EACd;YACA;QACF;AAEA,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACnB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB;QACF;AAEA,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAiC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAG,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAqC,CAAC,CAAC,aAAa,CAAC,MAAoC,CAAC,CAAC,CAAC;AAEvM,QAAA,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE,EAAE;AAC7B,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1B;IACF;8GAzCW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAvB,uBAAuB,EAAA,CAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC;;;ACTK,MAAO,gBAAiB,SAAQ,uBAAuB,CAAA;AAd7D,IAAA,WAAA,GAAA;;QAgBkB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAEpD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;YACH,OAAO,EAAE,CACP,scAAsc,EACtc,0GAA0G,EAC1G,IAAI,CAAC,KAAK,EAAE,GAAE,mGAAmG,GAAG,EAAE,EACtH,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,4DACF;AACF,IAAA;8GAdY,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAPjB;AACR,YAAA;AACE,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,gBAAgB;AAC/C;AACF,SAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAEU,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAd5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B,qBAAA;AACD,oBAAA,SAAS,EAAC;AACR,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;AACvB,4BAAA,WAAW,EAAE,UAAU,CAAC,sBAAsB;AAC/C;AACF;AACF,iBAAA;;;ACCK,MAAO,iBAAkB,SAAQ,gBAAgB,CAAA;IAoCrD,WAAA,CACqB,QAAmB,EACnB,EAAgC,EAAA;AAEnD,QAAA,KAAK,EAAE;QAHY,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,EAAE,GAAF,EAAE;AApCP,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAS,CAAC,0DAAC;AAE5B,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAC5C,MAAK;AACH,YAAA,IACE,CAAC,IAAI,CAAC,YAAY,EAAE;AACpB,gBAAA,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,EACzB;AACA,gBAAA,OAAO,CAAC;YACV;YAEA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAC3B,IAAI,CAAC,YAAY,EAAE,CACpB;AACD,YAAA,OAAO,UAAU,GAAG,CAAC,KAAK,CAAC,GAAE,CAAC,GAAG,UAAU;AAC7C,QAAA,CAAC,8DACF;QAES,IAAA,CAAA,YAAY,GAAG,CAAC;QAChB,IAAA,CAAA,YAAY,GAAG,EAAE;QACjB,IAAA,CAAA,OAAO,GAAkB,IAAI;AAEvC;;;AAGG;AACO,QAAA,IAAA,CAAA,SAAS,GAAwB,CAAC,IAAS,KAAU,EAAE,CAAC;AAElE;;;AAGG;AACO,QAAA,IAAA,CAAA,UAAU,GAAe,MAAW,EAAE,CAAC;AAQ/C,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI;QACrC;IACF;IAGO,MAAM,GAAA;QACX,IAAI,CAAC,UAAU,EAAE;AAEjB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa;QACnC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;AACvB,YAAA,KAAK,CAAC,KAAK,GAAG,EAAE;AAChB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACpB;QACF;AACA,QAAA,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC;AAE7D,QAAA,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE;AACvD,QAAA,MAAM,cAAc,GAAG,OAAO,IAAG,EAAE;AAEnC,QAAA,IAAI,SAAiB;QACrB,IACE,CACE,CAAC,cAAc;AACf,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;AAE7B,aACE,CAAC,cAAc;AACf,gBAAA,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAC5B,EACD;YACA,SAAS,GAAG,GAAG;QACjB;aAAO,IAAI,CAAC,cAAc,EAAE;YAC1B,SAAS,GAAG,IAAI,CAAC,2BAA2B,CAAC,cAAc,IAAI,GAAG,CAAC;QACrE;aAAO;AACL,YAAA,SAAS,GAAG,CAAA,EAAI,IAAI,CAAC,2BAA2B,CAAC,cAAc,IAAI,GAAG,CAAE,CAAA,CAAA,EAAK,cAAe,EAAE;QAChG;AACA,QAAA,KAAK,CAAC,KAAK,GAAG,SAAS;IACzB;AAGO,IAAA,OAAO,CAAC,KAAY,EAAA;AACzB,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;AAC9C,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,IAAI,OAAO,CAAC,MAAM;QAExD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AAC5C,QAAA,KAAK,CAAC,KAAK,GAAG,SAAS;QAEvB,MAAM,YAAY,GAAG,MAAM,CACzB,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAC/C;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;AAE5B,QAAA,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;AAC1E,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,KAAK,GAAG,GAAE,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC;AAElI,QAAA,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAE3C,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,OAAO;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,QAAQ;IAC9B;AAGO,IAAA,SAAS,CAAC,KAAoB,EAAA;AACnC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;AAC9C,QAAA,MAAM,WAAW,GAAG;YAClB,WAAW;YACX,KAAK;YACL,OAAO;YACP,QAAQ;YACR,QAAQ;YACR,WAAW;YACX,YAAY;YACZ,MAAM;YACN,KAAK;SACN;AAED,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK;AAC/B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM;QAE9D,IACE,CACE,KAAK,CAAC,OAAO;YACb,KAAK,CAAC,OAAO;AAEf,YAAA,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EACtD;YACA;QACF;AACA,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE;AAErC,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AACrB,YAAA,IACE,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC;gBAC7B,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EACzB;gBACA,KAAK,CAAC,cAAc,EAAE;YACxB;YACA;QACF;QAEA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAC/B,KAAK,CAAC,cAAc,EAAE;QACxB;IACF;AAEA;;;AAGG;AACI,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA;;;AAGG;AACI,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;IACtB;AAEO,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CACvB,IAAI,CAAC,EAAE,CAAC,aAAa,EACrB,UAAU,EACV,UAAU,CACX;IACH;AAEO,IAAA,UAAU,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAC7C,MAAM,CAAC,KAAK,IAAG,EAAE,CAAC,CACnB;IACH;IAEU,cAAc,CAAC,SAAiB,EAAE,YAAoB,EAAA;QAC9D,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC;QAEzC,OAAO,UAAU,IAAI,CAAC,GAAE,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC;IACzF;IAEU,gBAAgB,CAAC,SAAiB,EAAE,YAAoB,EAAA;QAChE,IAAI,YAAY,IAAI,CAAC;AAAE,YAAA,OAAO,CAAC;QAE/B,IAAI,KAAK,GAAG,CAAC;AACb,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3B,gBAAA,KAAK,EAAE;AAEP,gBAAA,IAAI,KAAK,KAAK,YAAY,EAAE;oBAC1B,OAAO,CAAC,GAAG,CAAC;gBACd;YACF;QACF;QACA,OAAO,SAAS,CAAC,MAAM;IACzB;AAEU,IAAA,YAAY,CAAC,KAAa,EAAA;QAClC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,EAAE;QACX;AACA,QAAA,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QACvD,MAAM,YAAY,GAAG,IAAI,CAAC,2BAA2B,CAAC,OAAO,IAAI,EAAE,CAAC;AAEpE,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AACzB,YAAA,OAAO,GAAI,YAAY,IAAI,GAAI,CAAA,CAAA,EAAK,OAAQ,EAAE;QAChD;QACA,OAAO,YAAY,IAAI,GAAG;IAC5B;AAEU,IAAA,2BAA2B,CAAC,KAAa,EAAA;QACjD,OAAO,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC;IACpD;AAEU,IAAA,cAAc,CAAC,KAAa,EAAA;QACpC,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;AACrD,QAAA,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CACzC,IAAI,EACJ,CAAC,CAAC,EAAE,CAAC,KAAK,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CACxD;AAED,QAAA,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;QACzD,OAAO;YACL,OAAO,EAAE,WAAW,IAAI,EAAE;YAC1B,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACxD;IACH;8GAxOW,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,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,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAPjB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AACjD,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAEU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAd7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE;AACZ,qBAAA;AACD,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;AACvB,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AACjD,yBAAA;AACF,qBAAA;AACF,iBAAA;;sBAgDE,YAAY;uBAAC,MAAM;;sBAmCnB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;sBAwBhC,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;;ACzG/B,MAAO,mBAAoB,SAAQ,uBAAuB,CAAA;AAfhE,IAAA,WAAA,GAAA;;QAiBkB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAEpD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;AACH,YAAA,OAAO,EAAE,CACP,gPAAgP,EAChP,0GAA0G,EAC1G,2DAA2D,EAC3D,4QAA4Q,EAC5Q,IAAI,CAAC,KAAK,EAAE,GAAE,mGAAmG,GAAG,EAAE,EACtH,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,4DACF;AACF,IAAA;8GAhBY,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAPpB;AACR,YAAA;AACE,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB;AAClD;AACF,SAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAEU,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAf/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,IAAI,EAAE;AACJ,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,SAAS,EAAE,kBAAkB;AAC9B,qBAAA;AACD,oBAAA,SAAS,EAAC;AACR,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;AACvB,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB;AAClD;AACF;AACF,iBAAA;;;ACiBK,MAAO,iBAAkB,SAAQ,uBAAuB,CAAA;AAyC5D,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AAxCO,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,qDAAC;QACtB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;QAEvD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAC9B,KAAK,qDAEH,SAAS,EAAE,gBAAgB,EAAA,CAE9B;QACe,IAAA,CAAA,QAAQ,GAAG,KAAK,CAC9B,KAAK,qDAEH,SAAS,EAAE,gBAAgB,EAAA,CAE9B;QAEM,IAAA,CAAA,SAAS,GAAY,KAAK;AAEd,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;AACH,YAAA,OAAO,EAAE,CACP;;;;;;;;;AASC,QAAA,CAAA,EACD,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,4DACF;AAES,QAAA,IAAA,CAAA,SAAS,GAAwB,CAAC,IAAS,KAAU,EAAE,CAAC;AACxD,QAAA,IAAA,CAAA,UAAU,GAAe,MAAW,EAAE,CAAC;AAK/C,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI;QACrC;IACF;AAEO,IAAA,UAAU,CAAC,KAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IACzB;AAEO,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEO,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;IACtB;IAEO,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACvB;IACF;IAEO,MAAM,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB;QACF;QAEA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,EAAE;IACnB;8GA5EW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,yCAAA,EAAA,EAAA,SAAA,EAvBjB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AACjD;SACF,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EACS;;;;;;;;;;;;;;;AAeT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBA9B7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,WAAW;oBACrB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE;AACR,qBAAA;AACD,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;AACvB,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AACjD;AACF,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;AAeT,EAAA;AACF,iBAAA;;;ACmBK,MAAO,mBAAoB,SAAQ,uBAAuB,CAAA;AAwC9D,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QAvCO,IAAA,CAAA,WAAW,GAAG,KAAK,CAAA,SAAA,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,aAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAsB;QACzC,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AACvD,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAA8C,KAAK,0DAAC;QAExE,IAAA,CAAA,QAAQ,GAAG,KAAK,CAC9B,KAAK,qDAEH,SAAS,EAAE,gBAAgB,EAAA,CAE9B;AACe,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,sDAAC;AAEhC,QAAA,IAAA,CAAA,KAAK,GAA2B,MAAM,CAAC,EAAE,mDAAC;AAC1C,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAsB,UAAU,kDAAC;QAEvD,IAAA,CAAA,SAAS,GAAY,KAAK;AAEd,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;YACH,OAAO,EAAE,CACP,YAAY,EACZ,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,4DACF;AAED;;;AAGG;AACO,QAAA,IAAA,CAAA,SAAS,GAAwB,CAAC,IAAS,KAAU,EAAE,CAAC;AAElE;;;AAGG;AACO,QAAA,IAAA,CAAA,UAAU,GAAe,MAAW,EAAE,CAAC;AAK/C,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI;QACrC;IACF;AAEA;;;AAGG;AACI,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA;;;AAGG;AACI,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;IACtB;AAEA;;;AAGG;AACI,IAAA,UAAU,CAAC,GAAQ,EAAA;QACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAG,EAAE,CAAC;IAC1B;AAEA;;;;AAIE;AACK,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;IAC/B;AAEA;;AAEG;IACI,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,GAAG,CACX,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,GAAE,UAAU,GAAG,MAAM,CAC5C;QACH;IACF;AAEA;;;;AAIG;IACI,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACvB;IACF;AAEA;;;;;AAKG;IACI,MAAM,CAAC,EAAE,KAAK,EAAO,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACvB;AAEA,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,SAAS,CACZ,IAAI,CAAC,KAAK,EAAE,CACb;IACH;8GAxHW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAlCnB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB;AAClD,aAAA;AACD,YAAA,YAAY,CACV;gBACE,kBAAkB;gBAClB;aACD,CACF;SACF,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;;;;;GAoBT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAnCC,MAAM,6GACN,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAoCP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBA7C/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,aAAa;oBACvB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,gBAAgB;AACxB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,MAAM;wBACN;AACD,qBAAA;AACD,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;AACvB,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB;AAClD,yBAAA;AACD,wBAAA,YAAY,CACV;4BACE,kBAAkB;4BAClB;yBACD,CACF;AACF,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;AAoBT,EAAA,CAAA;AACF,iBAAA;;;ACLK,MAAO,iBAAkB,SAAQ,uBAAuB,CAAA;AA4C5D,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AA3CO,QAAA,IAAA,CAAA,KAAK,GAAuB,KAAK,CAAC,QAAQ,kDAAS;AAEnD,QAAA,IAAA,CAAA,KAAK,GAAwB,KAAK,CAAS,EAAE,mDAAC;AAC9C,QAAA,IAAA,CAAA,QAAQ,GAAwB,KAAK,CAAS,EAAE,sDAAC;AACjD,QAAA,IAAA,CAAA,WAAW,GAAwB,KAAK,CAAS,EAAE,yDAAC;AACpD,QAAA,IAAA,CAAA,SAAS,GAAwB,KAAK,CAAS,OAAO,uDAAC;AACvD,QAAA,IAAA,CAAA,SAAS,GAAwB,KAAK,CAAS,OAAO,uDAAC;AACvD,QAAA,IAAA,CAAA,KAAK,GAA4B,KAAK,CAAa,IAAI,mDAAC;QACxD,IAAA,CAAA,WAAW,GAA4B,KAAK,CAAa,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAEhF,QAAA,IAAA,CAAA,OAAO,GAAyB,KAAK,CAAU,KAAK,qDAAC;AACrD,QAAA,IAAA,CAAA,QAAQ,GAAyB,KAAK,CAAU,KAAK,sDAAC;AACtD,QAAA,IAAA,CAAA,QAAQ,GAAyB,KAAK,CAAU,KAAK,sDAAC;AACtD,QAAA,IAAA,CAAA,QAAQ,GAAyB,KAAK,CAAU,KAAK,sDAAC;AACtD,QAAA,IAAA,CAAA,SAAS,GAAyB,KAAK,CAAU,IAAI,uDAAC;QAEtD,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,KAAK,mDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACtD,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,uDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QAC1D,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,KAAK,0DAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QAE7D,IAAA,CAAA,OAAO,GAA0B,MAAM,EAAO;AAE9C,QAAA,IAAA,CAAA,OAAO,GAAuC,YAAY,CAAC,cAAc,qDAAC;AAE1E,QAAA,IAAA,CAAA,cAAc,GAAgB,QAAQ,CACpD,MAAK;AACH,YAAA,OAAO,EAAE,CACP,oBAAoB,EACpB,2LAA2L,EAC3L,kOAAkO,EAClO,kJAAkJ,EAClJ,yMAAyM,EACzM,yKAAyK,EACzK,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,4DACF;QAES,IAAA,CAAA,SAAS,GAAY,KAAK;AAC1B,QAAA,IAAA,CAAA,UAAU,GAAe,MAAW,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,SAAS,GAAwB,CAAC,IAAS,KAAU,EAAE,CAAC;AAKhE,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI;QACrC;IACF;AAEA;;AAEG;IACI,QAAQ,GAAA;QACb,IAAI,CAAC,cAAc,CAAU,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;IACpD;AAEA;;;;AAIG;AACI,IAAA,UAAU,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;IACvB;AAEA;;;;AAIG;AACI,IAAA,gBAAgB,CAAC,EAAsB,EAAA;AAC5C,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA;;;;AAIG;AACI,IAAA,iBAAiB,CAAC,EAAc,EAAA;AACrC,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;IACtB;AAEA;;AAEG;IACI,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACvB;IACF;AAEA;;;;AAIG;AACI,IAAA,MAAM,CAAC,CAAO,EAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACvB;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAEjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC;IACF;8GAjHW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EA5BjB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB;AAChD;AACF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA+C0E,cAAc,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA9C/E;;;;;;;;;;;;;;;;;;;;GAoBT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,m0DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA7BC,WAAW,+VACX,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,2BAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,QAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FA8BR,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAzC7B,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,WAAW,EAAA,eAAA,EAEJ,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,KAAK,EAAE,gBAAgB;qBACxB,EAAA,OAAA,EACQ;wBACP,WAAW;wBACX;qBACD,EAAA,SAAA,EACU;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;AACvB,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB;AAChD;qBACF,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;;;;;AAoBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,m0DAAA,CAAA,EAAA;stDA0B0E,cAAc,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AC3BrF,MAAO,wBAAyB,SAAQ,uBAAuB,CAAA;AAqBnE,IAAA,WAAA,CACqB,OAAuB,EAAA;AAE1C,QAAA,KAAK,EAAE;QAFY,IAAA,CAAA,OAAO,GAAP,OAAO;AApBZ,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,sDAAC;AAChC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,IAAI,uDAAC;AAChC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,gBAAgB,yDAAC;QAC7C,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;QACvD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExD,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAgB,IAAI,mDAAC;QAElC,IAAA,CAAA,OAAO,GAA8B,MAAM,EAAW;AAEtD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAY,EAAE,uDAAC;AACjC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAU,IAAI,uDAAC;AACjC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAU,KAAK,uDAAC;QAGxC,IAAA,CAAA,SAAS,GAAY,KAAK;AAC1B,QAAA,IAAA,CAAA,UAAU,GAAe,MAAW,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,SAAS,GAAwB,CAAC,IAAS,KAAU,EAAE,CAAC;AAOhE,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI;QACrC;IACF;IAEO,QAAQ,GAAA;QACb,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC;YACxC,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AACtB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YAC3B,CAAC;AACD,YAAA,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,EAAC,EAAC,KAAI;AACjD,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAiB,CAAC;AACrC,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YAC3B;AACD,SAAA,CAAC;IACJ;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE;IACzB;AAEO,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEO,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;IACtB;AAEO,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;IAChC;AAEO,IAAA,UAAU,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;IACvB;IAEO,SAAS,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACvB;IACF;AAEO,IAAA,MAAM,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACvB;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAErB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAE,CAC9C;QACH;IACF;8GArFW,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EA1BxB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,wBAAwB,CAAC;AACxD;SACF,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA1BC,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,WAAA,EAAA,WAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FA4BR,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBApCpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,mBAAmB;oBAC7B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE;AACR,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP;AACD,qBAAA;AACD,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;AACvB,4BAAA,WAAW,EAAE,UAAU,CAAC,8BAA8B,CAAC;AACxD;AACF,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA;AACF,iBAAA;;;ACEK,MAAO,yBAA0B,SAAQ,uBAAuB,CAAA;AAoBpE,IAAA,WAAA,CACqB,OAAwB,EAAA;AAE3C,QAAA,KAAK,EAAE;QAFY,IAAA,CAAA,OAAO,GAAP,OAAO;AAnBZ,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,sDAAC;AAChC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,IAAI,uDAAC;AAChC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,iBAAiB,yDAAC;QAC9C,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;QACvD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExD,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAgB,IAAI,mDAAC;QAClC,IAAA,CAAA,OAAO,GAA+B,MAAM,EAAY;AAExD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAU,IAAI,uDAAC;AACjC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAU,KAAK,uDAAC;AAClC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA6C,EAAE,wDAAC;QAGzE,IAAA,CAAA,SAAS,GAAY,KAAK;AAC1B,QAAA,IAAA,CAAA,UAAU,GAAe,MAAW,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,SAAS,GAAwB,CAAC,IAAS,KAAU,EAAE,CAAC;AAOhE,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI;QACrC;IACF;IAEO,QAAQ,GAAA;QACb,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,SAAS,CACvC;YACE,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;AACvB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YAC3B,CAAC;AACD,YAAA,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,EAAC,EAAuD,KAAI;AACxG,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAChB,IAAmB,CAAC,GAAG,CACtB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,KAAI;oBACzB,OAAO;AACL,wBAAA,GAAG,GAAG;wBACN,IAAI;wBACJ,IAAI;AACJ,wBAAA,YAAY,EAAE,CAAA,EAAI,IAAK,CAAA,GAAA,EAAO,IAAK,CAAA;qBACpC;gBACH,CAAC,CACF,CACF;AACD,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YAC3B;AACD,SAAA,CACF;IACH;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE;IACzB;AAEO,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEO,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;IACtB;AAEO,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;IAChC;AAEO,IAAA,UAAU,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;IACvB;IAEO,SAAS,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACvB;IACF;AAEO,IAAA,MAAM,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACvB;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAErB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAE,CAC/C;QACH;IACF;8GAjGW,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EA1BzB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAyB;AACxD;SACF,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA1BC,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,WAAA,EAAA,WAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FA4BR,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBApCrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,oBAAoB;oBAC9B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE;AACR,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP;AACD,qBAAA;AACD,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;AACvB,4BAAA,WAAW,EAAE,UAAU,CAAC,+BAA+B;AACxD;AACF,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA;AACF,iBAAA;;;ACYK,MAAO,2BAA4B,SAAQ,uBAAuB,CAAA;AA8EtE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AA7EO,QAAA,IAAA,CAAA,KAAK,GAAsD,KAAK,CAAC,QAAQ,kDAAwC;AAEjH,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE,mDAAC;AACzB,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAS,EAAE,sDAAC;AAC5B,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,EAAE,yDAAC;AAC/B,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAQ,EAAE,0DAAC;AAC/B,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,OAAO,uDAAC;AAClC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,OAAO,uDAAC;QAElC,IAAA,CAAA,WAAW,GAA4B,KAAK,CAAa,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;QAEhF,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,KAAK,mDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACtD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,IAAI,sDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACxD,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,KAAK,0DAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE7D,QAAA,IAAA,CAAA,OAAO,GAAyB,KAAK,CAAU,KAAK,qDAAC;AACrD,QAAA,IAAA,CAAA,KAAK,GAA4B,KAAK,CAAa,IAAI,mDAAC;QAExD,IAAA,CAAA,OAAO,GAA0B,MAAM,EAAO;AAE9C,QAAA,IAAA,CAAA,OAAO,GAAuC,YAAY,CAAC,cAAc,qDAAC;AAE1E,QAAA,IAAA,CAAA,cAAc,GAAgB,QAAQ,CACpD,MAAK;AACH,YAAA,OAAO,EAAE,CACP,oBAAoB,EACpB,2LAA2L,EAC3L,kOAAkO,EAClO,kJAAkJ,EAClJ,yMAAyM,EACzM,yKAAyK,EACzK,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,4DACF;AAEe,QAAA,IAAA,CAAA,KAAK,GAAkB,QAAQ,CAC7C,MAAK;AACH,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE;AACpC,YAAA,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,GAAE,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE;AAC1D,QAAA,CAAC,mDACF;AACe,QAAA,IAAA,CAAA,SAAS,GAAoB,IAAI,OAAO,EAAU;AAE/C,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,CAChE,oBAAoB,EAAE,EACtB,YAAY,CAAC,GAAG,CAAC,EACjB,GAAG,CACD,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAC7B,EACD,SAAS,CACP,CAAC,CAAS,KAAI;YACZ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CACzB,GAAG,CACD,CAAC,MAAa,KAAK,CAAC,MAAM,CAAC,MAAM,GAAE,IAAI,CAAC,YAAY,EAAE,GAAG,MAAM,CAChE,EACD,UAAU,CACR,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAC9B,CACF;AACH,QAAA,CAAC,CACF,EACD,GAAG,CACD,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAC9B,CACF;AAEkB,QAAA,IAAA,CAAA,aAAa,GAAkB,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;QAEnF,IAAA,CAAA,SAAS,GAAY,KAAK;AAC1B,QAAA,IAAA,CAAA,UAAU,GAAe,MAAW,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,SAAS,GAAwB,CAAC,IAAS,KAAU,EAAE,CAAC;AAKhE,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI;QACrC;IACF;IAEO,QAAQ,GAAA;QACb,IAAI,CAAC,cAAc,CAAU,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;IACpD;AAEO,IAAA,gBAAgB,CAAC,EAAsB,EAAA;AAC5C,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEO,IAAA,iBAAiB,CAAC,EAAc,EAAA;AACrC,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;IACtB;AAEO,IAAA,UAAU,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;IACvB;IAEO,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACvB;IACF;AAEO,IAAA,MAAM,CAAC,CAAO,EAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACvB;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACpB,IAAI,CAAC,CAAC,EAAE;AACN,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YACtB;iBAAO;AACL,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAE,CAAC,CAAE,IAAI,CAAC,SAAS,EAAE,CAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAE,IAAI,CAAC,SAAS,EAAE,CAAE,CAAC,CACnF;YACH;YAEA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC;IACF;8GA/HW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,KAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAnC3B;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,2BAA2B;AAC1D;AACF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAuD0E,cAAc,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAtD/E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,m0DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EApCC,WAAW,+VACX,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,2BAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,QAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAqCR,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAhDvC,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,sBAAsB,EAAA,eAAA,EAEf,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,KAAK,EAAE,gBAAgB;qBACxB,EAAA,OAAA,EACQ;wBACP,WAAW;wBACX;qBACD,EAAA,SAAA,EACU;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;AACvB,4BAAA,WAAW,EAAE,UAAU,CAAC,iCAAiC;AAC1D;qBACF,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,m0DAAA,CAAA,EAAA;wwDA2B0E,cAAc,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACXrF,MAAO,qBAAsB,SAAQ,uBAAuB,CAAA;AAwChE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AAvCO,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,EAAE,yDAAC;AAC/B,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAa,IAAI,qDAAC;AACjC,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAa,IAAI,qDAAC;QAEjC,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;QACvD,IAAA,CAAA,UAAU,GAAG,KAAK,CAAS,aAAa,uDAAI,KAAK,EAAE,QAAQ,EAAA,CAAG;QAE9D,IAAA,CAAA,QAAQ,GAAG,KAAK,CAC9B,KAAK,qDAEH,SAAS,EAAE,gBAAgB,EAAA,CAE9B;AAEe,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAAgC,YAAY,wDAAC;AAEnE,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAa,IAAI,mDAAC;AAChC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAU,KAAK,uDAAC;AAElC,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CACtC,MAAK;YACH,OAAO,IAAI,CAAC,KAAK,EAAE,GAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE;AACpE,QAAA,CAAC,2DACF;AAEe,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CACvC,MAAK;YACH,OAAO,EAAE,CACP,0JAA0J,EAC1J,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,4DACF;QAES,IAAA,CAAA,UAAU,GAAY,KAAK;AAC3B,QAAA,IAAA,CAAA,UAAU,GAAe,MAAK,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,SAAS,GAAwB,MAAK,EAAE,CAAC;AAKjD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI;QACrC;IACF;AAEO,IAAA,UAAU,CAAC,KAAU,EAAA;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAG,IAAI,CAAC;IAC9B;AAEO,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEO,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;IACtB;AAEO,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;IAChC;IAEO,KAAK,GAAA;QACV,IAAI,CAAC,YAAY,EAAE;IACrB;AAEO,IAAA,YAAY,CAAC,GAAe,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AAEnB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE;QAEnB,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC,KAAK,EAAE;IAC1C;IAEU,YAAY,GAAA;QACpB,IAAI,IAAI,CAAC,UAAU;YAAE;QAErB,IAAI,CAAC,UAAU,EAAE;AACjB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IACxB;8GAlFW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAvDrB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACrD,aAAA;AACD,YAAA,YAAY,CACV;gBACE;aACD,CACF;SACF,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EASS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAzCC,MAAM,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACN,iBAAiB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,kBAAkB,iIAClB,mBAAmB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACzB,4BAA4B,EAAA,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAsCnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA3DjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,eAAe;oBACzB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;AACvB,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACrD,yBAAA;AACD,wBAAA,YAAY,CACV;4BACE;yBACD,CACF;AACF,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,MAAM;wBACN,iBAAiB;wBACjB,kBAAkB;wBAClB,mBAAmB;wBACnB,yBAAyB;wBACzB;AACD,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCT,EAAA;AACF,iBAAA;oqBAiBuE,YAAY,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACd9E,MAAO,0BAA2B,SAAQ,uBAAuB,CAAA;AAsCrE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AArCO,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,EAAE,yDAAC;AAC/B,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAa,IAAI,qDAAC;AACjC,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAa,IAAI,qDAAC;QAEjC,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;QACvD,IAAA,CAAA,UAAU,GAAG,KAAK,CAAS,aAAa,uDAAI,KAAK,EAAE,QAAQ,EAAA,CAAG;QAE9D,IAAA,CAAA,QAAQ,GAAG,KAAK,CAC9B,KAAK,qDAEH,SAAS,EAAE,gBAAgB,EAAA,CAE9B;AAEe,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAU,KAAK,uDAAC;AAClC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAY,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,mDAAC;AAEnD,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CACtC,MAAK;YACH,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,GAAE,CAAA,EAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAE,CAAA,GAAA,EAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAE,EAAE,GAAG,EAAE;AAC3J,QAAA,CAAC,2DACF;AAEe,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CACvC,MAAK;YACH,OAAO,EAAE,CACP,0JAA0J,EAC1J,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,4DACF;QAES,IAAA,CAAA,UAAU,GAAY,KAAK;AAC3B,QAAA,IAAA,CAAA,UAAU,GAAe,MAAK,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,SAAS,GAAwB,MAAK,EAAE,CAAC;AAKjD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI;QACrC;IACF;AAEO,IAAA,UAAU,CAAC,KAAU,EAAA;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAG,IAAI,CAAC;IAC9B;AAEO,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEO,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;IACtB;AAEO,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;IAChC;IAEO,KAAK,GAAA;QACV,IAAI,CAAC,YAAY,EAAE;IACrB;AAEO,IAAA,YAAY,CAAC,KAAgB,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAErB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,YAAY,EAAE;IACrB;IAEU,YAAY,GAAA;QACpB,IAAI,IAAI,CAAC,UAAU;YAAE;QAErB,IAAI,CAAC,UAAU,EAAE;AACjB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IACxB;8GA9EW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAxD1B;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,0BAA0B;AACzD,aAAA;AACD,YAAA,YAAY,CACV;gBACE;aACD,CACF;SACF,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EASS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA1CC,MAAM,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACN,iBAAiB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,kBAAkB,iIAClB,mBAAmB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACzB,4BAA4B,EAAA,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAuCnB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBA5DtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;oBAChC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;AACvB,4BAAA,WAAW,EAAE,UAAU,CAAC,gCAAgC;AACzD,yBAAA;AACD,wBAAA,YAAY,CACV;4BACE;yBACD,CACF;AACF,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,MAAM;wBACN,iBAAiB;wBACjB,kBAAkB;wBAClB,mBAAmB;wBACnB,yBAAyB;wBACzB;AACD,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCT,EAAA;AACF,iBAAA;;;MC5BY,oBAAoB,CAAA;AAkB/B,IAAA,WAAA,GAAA;AAhBgB,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAS,EAAE,kDAAC;AACxB,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAS,EAAE,kDAAC;AACxB,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE,mDAAC;QACzB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAEvD,QAAA,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,cAAc,qDAAC;AAEnC,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;YACH,OAAO,EAAE,CACP,iBAAiB,EACjB,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,4DACF;QAGC,MAAM,CACJ,MAAK;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AACnB,gBAAA,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC;YACjG;YACA,IAAI,CAAC,OAAO,EAAG,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AAC9C,QAAA,CAAC,CACF;IACH;8GA3BW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAOQ,cAAc,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAvC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAvChC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,eAAe;oBACzB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BT,EAAA;AACF,iBAAA;geAQwC,cAAc,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;SCjDvC,YAAY,CAAC,IAAe,EAAE,IAAc,EAAE,UAAuC,EAAA;IAEnG,IACE,CAAC,IAAI,CAAC,MAAM;AACZ,QAAA,IAAI,CAAC,MAAM,KAAK,CAAC,EACjB;AACA,QAAA,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC;IAChF;AAEA,IAAA,IAAI,CAAC,OAAO,CACV,CAAC,GAAG,KAAI;QACN,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAE7B,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;YACjC,OAAO,CAAC,sBAAsB,EAAE;QAClC;AACF,IAAA,CAAC,CACF;AACH;;SCnBgB,kBAAkB,CAAC,IAAe,EAAE,IAAc,EAAE,IAA0B,EAAA;IAE5F,IACE,CAAC,IAAI,CAAC,MAAM;AACZ,QAAA,IAAI,CAAC,MAAM,KAAK,CAAC,EACjB;AACA,QAAA,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC;IAChF;IACA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AAChD;;ACTA,SAAS,aAAa,CAAC,IAAY,EAAA;AAEjC,IAAA,OAAO;AACJ,SAAA,OAAO,CAAC,iBAAiB,EAAE,OAAO;AAClC,SAAA,OAAO,CAAC,IAAI,EAAE,GAAG;AACjB,SAAA,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AACjD;AAEA,SAAS,aAAa,CAAC,KAAU,EAAA;IAE/B,IAAI,KAAK,YAAY,IAAI;AAAE,QAAA,OAAO,KAAK;IAEvC,IACE,OAAO,KAAK,KAAK,QAAQ;QACxB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAC1B;AACA,QAAA,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC;IACxB;AACA,IAAA,OAAO,IAAI;AACb;AAEA;;;;;;;;;;;AAWG;AACG,SAAU,mBAAmB,CAAC,OAAe,EAAE,KAAa,EAAA;IAEhE,OAAO,CAAC,KAAsB,KAA6B;QACzD,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,IAAI;QACb;QAEA,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QAClC,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;AAEtC,QAAA,IACE,CAAC,WAAW;YACZ,CAAC,SAAS,EACV;AACA,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK;AAC/B,QAAA,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK;QAEnC,IACE,SAAS,KAAK,IAAI;AAClB,YAAA,OAAO,KAAK,IAAI;AAChB,YAAA,SAAS,KAAK,EAAE;YAChB,OAAO,KAAK,EAAE,EACd;AACA,YAAA,OAAO,IAAI;QACb;QAEA,IAAI,SAAS,GAAG,KAAK;AACrB,QAAA,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC;AACrC,QAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC;AAEzC,QAAA,IAAI,QAAQ,IAAI,MAAM,EAAE;AACtB,YAAA,SAAS,GAAG,MAAM,IAAI,QAAQ;QAChC;AAAO,aAAA,IACL,CAAC,KAAK,CAAC,SAAS,CAAC;AACjB,YAAA,CAAC,KAAK,CAAC,OAAO,CAAC,EACf;YACA,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC;QAClD;QAEA,OAAO,CAAC,SAAS,GAAE,IAAI,GAAG;AACxB,YAAA,YAAY,EAAE;AACZ,gBAAA,EAAE,EAAE,KAAK;AACT,gBAAA,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,CAAA,EAAI,aAAa,CAAC,KAAK,CAAE,CAAA,sBAAA,EAA0B,aAAa,CAAC,OAAO,CAAE,CAAA;AACpF;SACF;AACH,IAAA,CAAC;AACH;;AClFA;;;;;;;;;;;;AAYG;AACG,SAAU,gBAAgB,CAAC,YAAsB,EAAE,OAAgB,EAAA;IAEvE,OAAO,CAAC,KAAsB,KAA6B;AACzD,QAAA,IACE,CAAC,KAAK;AACN,YAAA,YAAY,CAAC,MAAM,GAAG,CAAC,EACvB;AACA,YAAA,OAAO,IAAI;QACb;QAEA,IAAI,OAAO,GAAG,KAAK;QACnB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,IAAI,KAAI;YACZ,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAC/B,IAAI,CAAC,OAAO,EAAE;AACZ,gBAAA,OAAO,GAAG;YACZ;AAEA,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBAClB,OAAO,GAAG,IAAI;AACd,gBAAA,OAAO,GAAG;YACZ;AAEA,YAAA,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACvB,YAAA,OAAO,GAAG;QACZ,CAAC,EACD,EAAc,CACf;QAED,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YACvC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAC7B,CAAC,IAAI,KAAI;AACP,gBAAA,OAAO;AACJ,qBAAA,OAAO,CAAC,iBAAiB,EAAE,OAAO;AAClC,qBAAA,OAAO,CAAC,IAAI,EAAE,GAAG;AACjB,qBAAA,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AACjD,YAAA,CAAC,CACF;YAED,OAAO;AACL,gBAAA,OAAO,EAAE;AACP,oBAAA,MAAM,EAAE,YAAY;oBACpB,OAAO,EAAE,OAAO,IAAI,CAAA,EAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAE,CAAA,2BAAA;AAC3C;aACF;QACH;AACA,QAAA,OAAO,IAAI;AACb,IAAA,CAAC;AACH;;ACjEA;;;;;;;;;;;;;AAaG;AACG,SAAU,mBAAmB,CAAC,YAAsB,EAAE,OAAgB,EAAA;IAE1E,OAAO,CAAC,KAAsB,KAA6B;AACzD,QAAA,IACE,CAAC,KAAK;AACN,YAAA,YAAY,CAAC,MAAM,GAAG,CAAC,EACvB;AACA,YAAA,OAAO,IAAI;QACb;QAEA,IAAI,OAAO,GAAG,KAAK;QACnB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,IAAI,KAAI;YACZ,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAC/B,IAAI,CAAC,OAAO,EAAE;AACZ,gBAAA,OAAO,GAAG;YACZ;AAEA,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBAClB,OAAO,GAAG,IAAI;AACd,gBAAA,OAAO,GAAG;YACZ;AAEA,YAAA,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACvB,YAAA,OAAO,GAAG;QACZ,CAAC,EACD,EAAc,CACf;QAED,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE;YAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAC7B,CAAC,IAAI,KAAI;AACP,gBAAA,OAAO;AACJ,qBAAA,OAAO,CAAC,iBAAiB,EAAE,OAAO;AAClC,qBAAA,OAAO,CAAC,IAAI,EAAE,GAAG;AACjB,qBAAA,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AACjD,YAAA,CAAC,CACF;YAED,OAAO;AACL,gBAAA,UAAU,EAAE;AACV,oBAAA,MAAM,EAAE,YAAY;oBACpB,OAAO,EAAE,OAAO,IAAI,CAAA,EAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAE,CAAA,6BAAA;AAC3C;aACF;QACH;AACA,QAAA,OAAO,IAAI;AACb,IAAA,CAAC;AACH;;ACrEA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"unipin-angular-applet-forms.mjs","sources":["../../../projects/unipin-angular/forms/components/form-field/field-control.ts","../../../projects/unipin-angular/forms/components/input/input.directive.ts","../../../projects/unipin-angular/forms/components/number/number.directive.ts","../../../projects/unipin-angular/forms/components/password/password.component.ts","../../../projects/unipin-angular/forms/components/radio/radio.directive.ts","../../../projects/unipin-angular/forms/components/switch/switch.component.ts","../../../projects/unipin-angular/forms/components/checkbox/checkbox.directive.ts","../../../projects/unipin-angular/forms/components/select/option/option.component.ts","../../../projects/unipin-angular/forms/components/select/select.component.ts","../../../projects/unipin-angular/forms/components/country-select/country-select.component.ts","../../../projects/unipin-angular/forms/components/currency-select/currency-select.component.ts","../../../projects/unipin-angular/forms/components/searchable-select/searchable-select.component.ts","../../../projects/unipin-angular/forms/components/rate-group-code-select/rate-group-code-select.component.ts","../../../projects/unipin-angular/forms/components/date-picker/date-picker.component.ts","../../../projects/unipin-angular/forms/components/date-range-picker/date-range-picker.component.ts","../../../projects/unipin-angular/forms/components/form-field/form-field.component.ts","../../../projects/unipin-angular/forms/components/image-picker/image-picker.component.ts","../../../projects/unipin-angular/forms/components/image-picker/image-picker.component.html","../../../projects/unipin-angular/forms/utils/set-validators/set-validators.util.ts","../../../projects/unipin-angular/forms/utils/toggle-form-controls/toggle-form-controls.util.ts","../../../projects/unipin-angular/forms/validators/valid-range/valid-range.validator.ts","../../../projects/unipin-angular/forms/validators/is-equal/is-equal.validator.ts","../../../projects/unipin-angular/forms/validators/is-not-equal/is-not-equal.validator.ts","../../../projects/unipin-angular/forms/unipin-angular-applet-forms.ts"],"sourcesContent":["import { DoCheck, inject, Injectable, Injector, Signal, signal } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\n\n\nconst errMessage = {\n email: (label: string) => `${ label } is not a valid email`,\n required: (label: string) => `${ label } is required`,\n minlength: (label: string, length?: number) => `${ label } must be at least ${ length } characters`,\n maxlength: (label: string, length?: number) => `${ label } must not exceed ${ length } characters`,\n max: (label: string, max?: number) => `${ label } value must be lower than ${ max }`,\n min: (label: string, min?: number) => `${ label } value must be larger than ${ min }`,\n}\n\nconst extraParamKey = {\n max: 'max',\n min: 'min',\n minlength: 'requiredLength',\n maxlength: 'requiredLength',\n}\n\nexport abstract class UpFieldControl {\n \n public readonly abstract error: Signal<string>;\n public readonly abstract ngControl: NgControl | AbstractControl | null;\n\n public abstract setControlName(name: string): void;\n}\n\n@Injectable()\nexport class UpFieldControlComponent implements UpFieldControl, DoCheck {\n \n public readonly error = signal('');\n \n public readonly injector = inject(Injector);\n public readonly ngControl: NgControl | null = this.injector.get(NgControl, null);\n\n protected readonly _parentForm = inject(NgForm, { optional: true });\n protected readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n\n protected _controlName = '';\n\n public ngDoCheck(): void{\n this.updateErrorState();\n }\n\n public setControlName(name: string): void{\n this._controlName = name;\n }\n\n protected updateErrorState(): void{\n const control = this.ngControl?.control?? null;\n if (\n !control ||\n !control.touched ||\n !control.dirty\n ) {\n return;\n }\n\n if (!control.errors) {\n this.error.set('');\n return;\n }\n\n const errKey = Object.keys(control.errors)[0];\n const newState = errMessage[errKey as keyof typeof errMessage](this._controlName?? 'Field', control.errors[errKey as keyof typeof control.errors][extraParamKey[errKey as keyof typeof extraParamKey]]);\n\n if (newState !== this.error()) {\n this.error.set(newState);\n }\n }\n}\n","import { Directive, computed, forwardRef, input } from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Directive({\n standalone: true,\n exportAs: 'upInput',\n selector: '[upInput]',\n host: {\n '[class]': '_computedClass()',\n },\n providers:[\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpInputDirective)\n }\n ]\n})\nexport class UpInputDirective extends UpFieldControlComponent {\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'peer file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:border-0 file:bg-transparent file:text-sm file:font-medium file:h-7 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] focus-visible:outline-none',\n this.error()? 'ring-destructive/20 dark:ring-destructive/40 border-destructive focus-visible:ring-destructive/50' : '',\n this.inlineClass(),\n );\n }\n );\n}\n","import { computed, Directive, ElementRef, forwardRef, HostListener, input, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { UpFieldControl } from '../form-field/field-control';\nimport { UpInputDirective } from '../input/input.directive';\n\n@Directive({\n standalone: true,\n exportAs: 'upNumber',\n selector: '[upNumber]',\n host: { \n '[class]': '_computedClass()' \n },\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpNumberDirective),\n },\n ],\n})\nexport class UpNumberDirective extends UpInputDirective implements ControlValueAccessor {\n \n public readonly magnifyValue = input<number>(1);\n \n protected readonly maxDecimalDigits = computed(\n () => {\n if (\n !this.magnifyValue() ||\n this.magnifyValue() === 1\n ) {\n return 0;\n }\n\n const floatPoint = Math.log10(\n this.magnifyValue()\n );\n return floatPoint % 1 !== 0? 0 : floatPoint;\n }\n );\n\n protected lastCaretPos = 0;\n protected lastRawValue = '';\n protected lastKey: string | null = null;\n\n /**\n * Callback function to handle value changes in the password input.\n * @type {(_val: any) => void}\n */\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n /**\n * Callback function to handle touch events in the password input.\n * @type {() => void}\n */\n protected _onTouched: () => void = (): void => {};\n\n constructor(\n protected readonly renderer: Renderer2,\n protected readonly el: ElementRef<HTMLInputElement>,\n ) {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @HostListener('blur')\n public onBlur(): void{\n this._onTouched();\n \n const input = this.el.nativeElement;\n if (!input.value.trim()) {\n input.value = ''\n this._onChange(null);\n return;\n }\n const { integer, decimal } = this.sanitizeNumber(input.value);\n\n const cleanedInteger = integer.replace(/^0+/, '') || '';\n const cleanedDecimal = decimal?? '';\n\n let formatted: string;\n if (\n (\n !cleanedInteger || \n /^0+$/.test(cleanedInteger)\n ) && \n (\n !cleanedDecimal || \n /^0+$/.test(cleanedDecimal)\n )\n ) {\n formatted = '0';\n } else if (!cleanedDecimal) {\n formatted = this.formatWithThousandSeparator(cleanedInteger || '0');\n } else {\n formatted = `${ this.formatWithThousandSeparator(cleanedInteger || '0') },${ cleanedDecimal }`;\n }\n input.value = formatted;\n }\n\n @HostListener('input', ['$event'])\n public onInput(event: Event): void{\n const input = event.target as HTMLInputElement;\n const postRaw = input.value;\n const postCaret = input.selectionStart ?? postRaw.length;\n\n const formatted = this.formatNumber(postRaw);\n input.value = formatted;\n\n const numericValue = Number(\n formatted.replace(/\\./g, '').replace(',', '.')\n );\n this._onChange(numericValue);\n\n const digitsBefore = postRaw.slice(0, postCaret).replace(/\\D/g, '').length;\n let newCaret = this.lastKey === ','? this.findCommaCaret(formatted, digitsBefore) : this.mapDigitsToIndex(formatted, digitsBefore);\n \n input.setSelectionRange(newCaret, newCaret);\n\n this.lastKey = null;\n this.lastRawValue = postRaw;\n this.lastCaretPos = newCaret;\n }\n\n @HostListener('keydown', ['$event'])\n public onKeyDown(event: KeyboardEvent): void{\n const input = event.target as HTMLInputElement;\n const allowedKeys = [\n 'Backspace',\n 'Tab',\n 'Enter',\n 'Escape',\n 'Delete',\n 'ArrowLeft',\n 'ArrowRight',\n 'Home',\n 'End',\n ];\n\n this.lastKey = event.key;\n this.lastRawValue = input.value;\n this.lastCaretPos = input.selectionStart ?? input.value.length;\n\n if (\n (\n event.ctrlKey || \n event.metaKey\n ) && \n ['a', 'c', 'v', 'x'].includes(event.key.toLowerCase())\n ) {\n return;\n }\n if (allowedKeys.includes(event.key)) return;\n\n if (event.key === ',') {\n if (\n this.maxDecimalDigits() === 0 || \n input.value.includes(',')\n ) {\n event.preventDefault();\n }\n return;\n }\n\n if (!/^[0-9,]$/.test(event.key)) {\n event.preventDefault();\n }\n }\n\n /**\n * Registers a callback function to be called when the password input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n /**\n * Registers a callback function to be called when the password input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this.renderer.setProperty(\n this.el.nativeElement,\n 'disabled',\n isDisabled\n );\n }\n\n public writeValue(value: any): void{\n this.el.nativeElement.value = this.formatNumber(\n String(value?? '')\n );\n }\n\n protected findCommaCaret(formatted: string, digitsBefore: number): number{\n const commaIndex = formatted.indexOf(',');\n \n return commaIndex >= 0? commaIndex + 1 : this.mapDigitsToIndex(formatted, digitsBefore);\n }\n\n protected mapDigitsToIndex(formatted: string, digitsBefore: number): number{\n if (digitsBefore <= 0) return 0;\n \n let count = 0;\n for (let i = 0; i < formatted.length; i++) {\n if (/\\d/.test(formatted[i])) {\n count++;\n \n if (count === digitsBefore) {\n return i + 1;\n }\n }\n }\n return formatted.length;\n }\n\n protected formatNumber(value: string): string{\n if (!value) {\n return '';\n }\n const { integer, decimal } = this.sanitizeNumber(value);\n const formattedInt = this.formatWithThousandSeparator(integer || '');\n \n if (decimal !== undefined) {\n return `${ formattedInt || '0' },${ decimal }`;\n }\n return formattedInt || '0';\n }\n\n protected formatWithThousandSeparator(value: string): string{\n return value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.');\n }\n\n protected sanitizeNumber(value: string): { integer: string; decimal?: string }{\n const onlyDigitsComma = value.replace(/[^0-9,]/g, '');\n const singleComma = onlyDigitsComma.replace(\n /,/g, \n (_, i) => onlyDigitsComma.indexOf(',') === i ? ',' : ''\n );\n \n const [integerPart, decimalPart] = singleComma.split(',');\n return {\n integer: integerPart || '',\n decimal: decimalPart?.slice(0, this.maxDecimalDigits()),\n };\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, forwardRef, input, model, signal, WritableSignal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ClassValue } from 'clsx';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { matVisibilityRound, matVisibilityOffRound } from '@ng-icons/material-icons/round';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpInputDirective } from './../input/input.directive';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Component({\n standalone: true,\n selector: 'up-password',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'block relative',\n },\n imports: [\n NgIcon,\n UpInputDirective\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpPasswordComponent)\n },\n provideIcons(\n { \n matVisibilityRound, \n matVisibilityOffRound \n }\n ),\n ],\n template: `\n <input\n upInput\n maxlength=\"64\"\n [type]=\"type()\"\n [value]=\"value()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n [class]=\"_computedClass()\"\n [placeholder]=\"placeholder()?? ''\"\n [attr.autocomplete]=\"autocomplete()\"\n (blur)=\"touch()\"\n (input)=\"change($event.target)\"\n />\n \n <ng-icon\n class=\"absolute right-3 top-1/2 -translate-y-1/2 cursor-pointer text-gray-500 hover:text-primary peer-disabled:opacity-50 peer-disabled:cursor-not-allowed\"\n [name]=\"type() === 'password'? 'matVisibilityRound' : 'matVisibilityOffRound'\"\n (click)=\"changeType()\"\n />\n `,\n})\nexport class UpPasswordComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly placeholder = input<string | undefined>();\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly autocomplete = input<'off' | 'current-password' | 'new-password'>('off');\n\n public readonly required = input(\n false, \n { \n transform: booleanAttribute \n }\n );\n public readonly disabled = model<boolean>(false);\n \n public readonly value: WritableSignal<string> = signal('');\n public readonly type = signal<'text' | 'password'>('password');\n\n public isTouched: boolean = false;\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'pr-10 peer', \n this.inlineClass()\n );\n }\n );\n\n /**\n * Callback function to handle value changes in the password input.\n * @type {(_val: any) => void}\n */\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n /**\n * Callback function to handle touch events in the password input.\n * @type {() => void}\n */\n protected _onTouched: () => void = (): void => {};\n\n constructor() {\n super();\n\n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /**\n * Registers a callback function to be called when the password input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n /**\n * Registers a callback function to be called when the password input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n /**\n * Writes a new value to the password input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{\n this.value.set(val?? '');\n }\n\n /** \n * Function that is called by the forms API when the control status change to or from 'DISABLED'.\n * Depending on the status, it enables or disables the appropriate DOM element\n * @param {boolean} isDisabled - disable state\n */\n public setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n \n /**\n * Toggles the type of the password input between text and password.\n */\n public changeType(): void{\n if (!this.disabled()) {\n this.type.set(\n this.type() === 'text'? 'password' : 'text'\n );\n }\n }\n\n /**\n * Event handler to handle touch status.\n * \n * @returns {void}\n */\n public touch(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n /**\n * Event handler for changes in the password input.\n * If not touched, marks the input as touched.\n * Updates the value and triggers change detection.\n * @param {any} param - Event detail containing the new password input value.\n */\n public change({ value }: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n this.value.set(value);\n this._onChange(\n this.value()\n );\n }\n}\n","import { Directive, forwardRef, input, computed } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Directive({\n exportAs: 'upRadio',\n selector: '[upRadio]',\n host: {\n type: 'radio',\n '[class]': '_computedClass()',\n },\n providers:[\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpRadioDirective)\n }\n ]\n})\nexport class UpRadioDirective extends UpFieldControlComponent {\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'peer dark:bg-input/30 border-input size-4 min-w-0 rounded-full border bg-transparent shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-border/40 relative cursor-pointer',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] focus-visible:outline-none',\n 'appearance-none checked:border-primary',\n 'checked:after:content-[\\'\\'] checked:after:absolute checked:after:bg-primary checked:after:rounded-full checked:after:size-2 checked:after:left-1/2 checked:after:top-1/2 checked:after:-translate-x-1/2 checked:after:-translate-y-1/2',\n this.error()? 'ring-destructive/20 dark:ring-destructive/40 border-destructive focus-visible:ring-destructive/50' : '',\n this.inlineClass(),\n );\n }\n );\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, forwardRef, input, model } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Component({\n standalone: true,\n selector: 'up-switch',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'inline-flex items-center cursor-pointer'\n },\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpSwitchComponent),\n }\n ],\n template: `\n <input\n type=\"checkbox\" \n class=\"sr-only peer\"\n [checked]=\"checked()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n (blur)=\"touch()\"\n />\n \n <span \n (click)=\"toggle()\"\n [class]=\"_computedClass()\"\n >\n </span>\n `\n})\nexport class UpSwitchComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly checked = model(false);\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly required = input(\n false, \n {\n transform: booleanAttribute\n }\n );\n public readonly disabled = input(\n false, \n {\n transform: booleanAttribute\n }\n );\n \n public isTouched: boolean = false;\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n `\n relative w-9 h-5 flex items-center justify-start flex-shrink-0 outline outline-input bg-input rounded-full \n transition-colors duration-300 ease-in-out \n peer-checked:bg-primary after:absolute \n after:top-1/2 after:left-[2px] after:-translate-y-1/2\n after:w-4 after:h-4 after:bg-white after:rounded-full after:shadow-md\n after:transition-transform after:duration-300 after:ease-in-out\n peer-checked:after:translate-x-[15px]\n peer-focus-visible:ring-2 peer-focus-visible:ring-primary peer-focus-visible:ring-offset-2\n `,\n this.inlineClass(),\n );\n }\n );\n \n protected _onChange: (_val: any) => void = (_val: any): void => {};\n protected _onTouched: () => void = (): void => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public writeValue(value: boolean): void{\n this.checked.set(value);\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public touch(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public toggle(): void{\n if (this.disabled()) {\n return;\n }\n \n this.checked.set(!this.checked());\n this._onChange(this.checked());\n this._onTouched();\n }\n}\n","import { Directive, computed, forwardRef, input } from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Directive({\n standalone: true,\n exportAs: 'upCheckbox',\n selector: '[upCheckbox]',\n host: {\n type: 'checkbox',\n '[class]': '_computedClass()',\n },\n providers:[\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpCheckboxDirective)\n }\n ]\n})\nexport class UpCheckboxDirective extends UpFieldControlComponent {\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'peer dark:bg-input/30 border-input size-5 min-w-0 rounded-md border bg-transparent shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-border/40 relative cursor-pointer',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] focus-visible:outline-none',\n 'appearance-none checked:border-primary checked:bg-primary',\n 'checked:after:content-[\\'\\'] checked:after:absolute checked:after:border-white checked:after:border-b-2 checked:after:border-r-2 checked:after:w-1.5 checked:after:h-2.5 checked:after:rounded-br-xs checked:after:rotate-45 checked:after:left-1.5 checked:after:top-0.75',\n this.error()? 'ring-destructive/20 dark:ring-destructive/40 border-destructive focus-visible:ring-destructive/50' : '',\n this.inlineClass(),\n );\n }\n );\n}\n","import { Component, booleanAttribute, input, ChangeDetectionStrategy, ElementRef } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'up-option',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-content />\n `,\n})\nexport class UpOptionComponent {\n \n public readonly value = input.required<any>();\n public readonly label = input<string | undefined>();\n public readonly disabled = input(false, { transform: booleanAttribute });\n\n constructor(\n public readonly elementRef: ElementRef<HTMLElement>\n ) { }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, forwardRef, input, output, contentChild, contentChildren, InputSignal, Signal, OutputEmitterRef, model, ModelSignal, booleanAttribute } from '@angular/core';\nimport { ControlValueAccessor, FormsModule } from '@angular/forms';\nimport { ClassValue } from 'clsx';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\nimport { UpOptionComponent } from './option/option.component';\n\n\n@Component({\n standalone: true,\n selector: 'up-select',\n styleUrl: './select.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'block relative',\n },\n imports: [\n FormsModule,\n NgSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpSelectComponent)\n }\n ],\n template: `\n <ng-select\n [items]=\"_items()\"\n [ngModel]=\"value()\"\n [addTag]=\"addTag()\"\n [loading]=\"loading()\"\n [multiple]=\"multiple()\"\n [readonly]=\"disabled()\"\n [appendTo]=\"appendTo()\"\n [clearable]=\"clearable()\"\n [bindLabel]=\"bindLabel()\"\n [bindValue]=\"bindValue()\"\n [class]=\"_computedClass()\"\n [searchable]=\"searchable()\"\n [placeholder]=\"placeholder()\"\n [virtualScroll]=\"virtualScroll()\"\n [attr.data-disabled]=\"disabled()\"\n [ngModelOptions]=\"{ standalone: true }\"\n (blur)=\"touch()\"\n (ngModelChange)=\"change($event)\"\n />\n `,\n})\nexport class UpSelectComponent extends UpFieldControlComponent implements ControlValueAccessor{\n \n public readonly options: Signal<readonly UpOptionComponent[]> = contentChildren(UpOptionComponent);\n \n public readonly label = input<string>(''); \n public readonly placeholder = input<string>('');\n public readonly bindLabel = input<string>('label');\n public readonly bindValue = input<string>('value');\n public readonly appendTo = input<'body' | '.cdk-overlay-pane' | (string & {})>('body');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' }); \n\n public readonly loading = input(false, { transform: booleanAttribute });\n public readonly multiple = input(false, { transform: booleanAttribute });\n public readonly required = input(false, { transform: booleanAttribute });\n public readonly disabled = input(false, { transform: booleanAttribute });\n public readonly clearable = input(true, { transform: booleanAttribute });\n\n public readonly addTag = input(false, { transform: booleanAttribute });\n public readonly searchable = input(false, { transform: booleanAttribute });\n public readonly virtualScroll = input(false, { transform: booleanAttribute });\n\n public readonly items: InputSignal<any[] | undefined> = input<any[]>();\n\n public readonly _items: Signal<any[]> = computed(\n () => {\n if (this.items()?.length) {\n return this.items()?? [];\n }\n\n return this.options().map(\n (option) => {\n return {\n disabled: option.disabled(),\n\n [this.bindValue()]: option.value(),\n [this.bindLabel()]: option.label() || option.elementRef.nativeElement.textContent.trim(),\n };\n }\n );\n }\n );\n\n public readonly value: ModelSignal<any | null> = model<any | null>(null);\n \n public readonly changed: OutputEmitterRef<any> = output<any>();\n \n public readonly control: Signal<UpFieldControl | undefined> = contentChild(UpFieldControl);\n \n public readonly _computedClass: Signal<any> = computed(\n () => {\n return up(\n 'w-full min-w-0 h-9',\n 'data-[disabled=true]:[&>.ng-select-container]:cursor-not-allowed! data-[disabled=true]:[&>.ng-select-container]:opacity-50! data-[disabled=true]:[&>.ng-select-container]:bg-transparent!', \n '[&>.ng-select-container]:border! [&>.ng-select-container]:border-input! [&>.ng-select-container]:rounded-md! [&>.ng-select-container]:cursor-pointer! [&>.ng-select-container]:shadow-xs! [&>.ng-select-container]:items-center!',\n '[&>.ng-select-container>.ng-value-container>.ng-placeholder]:text-base! md:[&>.ng-select-container>.ng-value-container>.ng-placeholder]:text-sm!',\n '[&>.ng-select-container>.ng-value-container>.ng-value]:text-base! md:[&>.ng-select-container>.ng-value-container>.ng-value]:text-sm! [&>.ng-select-container>.ng-value-container>.ng-value]:text-black!',\n '[&.ng-select-focused>.ng-select-container]:border-ring! [&.ng-select-focused>.ng-select-container]:ring-ring/50! [&.ng-select-focused>.ng-select-container]:ring-[3px]!',\n this.inlineClass(),\n );\n }\n );\n \n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /**\n * Lifecycle hook — initializes the control name for form integration.\n */\n public ngOnInit(): void{\n this.setControlName(<string> this.ngControl?.name);\n }\n\n /**\n * Writes a new value from the form model into the view.\n * \n * @param {any} value - The value to assign to the select.\n */\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n /**\n * Registers a callback function to be called when the select value changes.\n * \n * @param {(val: any) => void} fn - Callback function to handle value changes.\n */\n public registerOnChange(fn: (val: any) => void): void{\n this._onChange = fn;\n }\n\n /**\n * Registers a callback function to be called when the component is touched.\n * \n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: () => void): void{\n this._onTouched = fn;\n }\n\n /**\n * Marks the component as touched (used for form validation state).\n */\n public touch(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n /**\n * Handles changes from the dropdown and propagates them to the form model.\n * \n * @param {any} e - The new value emitted by the ng-select component.\n */\n public change(e?: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n this.value.set(e);\n \n this._onChange(this.value());\n this.changed.emit(this.value());\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, forwardRef, input, model, OnDestroy, OnInit, output, OutputEmitterRef, signal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { ClassValue } from 'clsx';\nimport { Country } from '@unipin/graphql-schema';\nimport { CountryService } from '@unipin/angular-applet/common';\nimport { UpSelectComponent } from '../select/select.component';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Component({\n standalone: true,\n selector: 'up-country-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'block' \n },\n imports: [\n UpSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpCountrySelectComponent),\n }\n ],\n template: `\n <up-select\n searchable\n virtualScroll \n appendTo=\"body\"\n bindValue=\"code\"\n bindLabel=\"name\"\n [value]=\"value()\"\n [items]=\"countries()\"\n [loading]=\"isLoading()\"\n [multiple]=\"multiple()\"\n [class]=\"inlineClass()\"\n [clearable]=\"clearable()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled() || _disabled()\"\n (blur)=\"onTouched()\"\n (changed)=\"change($event)\"\n />\n `,\n})\nexport class UpCountrySelectComponent extends UpFieldControlComponent implements OnInit, OnDestroy, ControlValueAccessor {\n \n public readonly multiple = input<boolean>(false);\n public readonly clearable = input<boolean>(true);\n public readonly placeholder = input<string>('Select country');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly disabled = input(false, { transform: booleanAttribute });\n\n public readonly value = model<string | null>(null);\n\n public readonly changed: OutputEmitterRef<Country> = output<Country>();\n\n public readonly countries = signal<Country[]>([]);\n public readonly isLoading = signal<boolean>(true);\n public readonly _disabled = signal<boolean>(false);\n\n protected sub?: Subscription;\n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor(\n protected readonly service: CountryService\n ) {\n super();\n \n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void{\n this.sub = this.service.query().subscribe({\n error: () => {\n this.countries.set([]);\n this.isLoading.set(false);\n },\n next: ({ data: { webConfigMsCountry: { data }}}) => {\n this.countries.set(data as Country[]);\n this.isLoading.set(false);\n }\n });\n }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n public onTouched(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public change(value: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n this.value.set(value);\n \n this._onChange(value);\n this.changed.emit(\n this.countries().find(c => c.code === value)!\n );\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, forwardRef, input, model, OnDestroy, OnInit, output, OutputEmitterRef, signal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { ClassValue } from 'clsx';\nimport { QueryResult } from '@unipin/angular-gql';\nimport { Currency, CurrencyResult } from '@unipin/graphql-schema';\nimport { CurrencyService } from '@unipin/angular-applet/common';\nimport { UpSelectComponent } from '../select/select.component';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Component({\n standalone: true,\n selector: 'up-currency-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'block' \n },\n imports: [\n UpSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpCurrencySelectComponent)\n }\n ],\n template: `\n <up-select\n searchable\n virtualScroll \n appendTo=\"body\"\n bindValue=\"code\"\n bindLabel=\"displayLabel\"\n [value]=\"value()\"\n [items]=\"currencies()\"\n [loading]=\"isLoading()\"\n [multiple]=\"multiple()\"\n [class]=\"inlineClass()\"\n [clearable]=\"clearable()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled() || _disabled()\"\n (blur)=\"onTouched()\"\n (changed)=\"change($event)\"\n />\n `,\n})\nexport class UpCurrencySelectComponent extends UpFieldControlComponent implements OnInit, OnDestroy, ControlValueAccessor {\n \n public readonly multiple = input<boolean>(false);\n public readonly clearable = input<boolean>(true);\n public readonly placeholder = input<string>('Select currency');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly disabled = input(false, { transform: booleanAttribute });\n\n public readonly value = model<string | null>(null);\n public readonly changed: OutputEmitterRef<Currency> = output<Currency>();\n\n public readonly isLoading = signal<boolean>(true);\n public readonly _disabled = signal<boolean>(false);\n public readonly currencies = signal<Array<Currency & { displayLabel: string }>>([]);\n\n protected sub?: Subscription;\n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor(\n protected readonly service: CurrencyService\n ) {\n super();\n \n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void{\n this.sub = this.service.query().subscribe(\n {\n error: () => {\n this.currencies.set([]);\n this.isLoading.set(false);\n },\n next: ({ data: { webConfigMsCurrency: { data }}}: QueryResult<{ webConfigMsCurrency: CurrencyResult }>) => {\n this.currencies.set(\n (data as Currency[]).map(\n ({ code, name, ...ccy }) => {\n return {\n ...ccy,\n code,\n name,\n displayLabel: `${ code } - ${ name }`\n };\n }\n )\n );\n this.isLoading.set(false);\n }\n }\n );\n }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n public onTouched(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public change(value: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n this.value.set(value);\n \n this._onChange(value);\n this.changed.emit(\n this.currencies().find(c => c.code === value)!\n );\n }\n }\n}\n","import { Component, ChangeDetectionStrategy, ViewEncapsulation, forwardRef, Signal, InputSignal, input, ModelSignal, model, booleanAttribute, OutputEmitterRef, output, contentChild, computed } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { FormsModule, ControlValueAccessor } from '@angular/forms';\nimport { Observable, Subject, distinctUntilChanged, debounceTime, tap, switchMap, map, catchError, of } from 'rxjs';\nimport { ClassValue } from 'clsx';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n standalone: true,\n selector: 'up-searchable-select',\n styleUrl: '../select/select.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'block relative',\n },\n imports: [\n FormsModule,\n NgSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpSearchableSelectComponent)\n }\n ],\n template: `\n <ng-select\n typeToSearchText=\"Please enter 3 or more characters\"\n [minTermLength]=\"3\"\n [virtualScroll]=\"true\"\n [editableSearchTerm]=\"true\"\n [ngModelOptions]=\"{ standalone: true }\"\n \n [typeahead]=\"typeahead\"\n \n [items]=\"items()\"\n [ngModel]=\"value()\"\n [addTag]=\"addTag()\"\n [loading]=\"loading()\"\n [multiple]=\"multiple()\"\n [readonly]=\"disabled()\"\n [appendTo]=\"appendTo()\"\n [clearable]=\"clearable()\"\n [bindLabel]=\"bindLabel()\"\n [bindValue]=\"bindValue()\"\n [class]=\"_computedClass()\"\n [placeholder]=\"placeholder()\"\n [virtualScroll]=\"virtualScroll()\"\n [attr.data-disabled]=\"disabled()\"\n \n (blur)=\"touch()\"\n (change)=\"change($event)\"\n />\n `,\n})\nexport class UpSearchableSelectComponent extends UpFieldControlComponent implements ControlValueAccessor {\n \n public readonly query: InputSignal<(keyword: string) => Observable<any>> = input.required<(keyword: string) => Observable<any>>(); \n \n public readonly label = input<string>(''); \n public readonly placeholder = input<string>('');\n public readonly initialItems = input<any[]>([]); \n public readonly bindLabel = input<string>('label');\n public readonly bindValue = input<string>('value');\n public readonly appendTo = input<'body' | '.cdk-overlay-pane' | (string & {})>('body');\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly addTag = input(false, { transform: booleanAttribute });\n public readonly multiple = input(false, { transform: booleanAttribute });\n public readonly required = input(false, { transform: booleanAttribute });\n public readonly disabled = input(false, { transform: booleanAttribute });\n public readonly clearable = input(true, { transform: booleanAttribute });\n public readonly virtualScroll = input(false, { transform: booleanAttribute });\n\n public readonly loading: ModelSignal<boolean> = model<boolean>(false);\n public readonly value: ModelSignal<any | null> = model<any | null>(null);\n\n public readonly changed: OutputEmitterRef<any> = output<any>();\n\n public readonly control: Signal<UpFieldControl | undefined> = contentChild(UpFieldControl);\n\n public readonly _computedClass: Signal<any> = computed(\n () => {\n return up(\n 'w-full min-w-0 h-9',\n 'data-[disabled=true]:[&>.ng-select-container]:cursor-not-allowed! data-[disabled=true]:[&>.ng-select-container]:opacity-50! data-[disabled=true]:[&>.ng-select-container]:bg-transparent!', \n '[&>.ng-select-container]:border! [&>.ng-select-container]:border-input! [&>.ng-select-container]:rounded-md! [&>.ng-select-container]:cursor-pointer! [&>.ng-select-container]:shadow-xs! [&>.ng-select-container]:items-center!',\n '[&>.ng-select-container>.ng-value-container>.ng-placeholder]:text-base! md:[&>.ng-select-container>.ng-value-container>.ng-placeholder]:text-sm!',\n '[&>.ng-select-container>.ng-value-container>.ng-value]:text-base! md:[&>.ng-select-container>.ng-value-container>.ng-value]:text-sm! [&>.ng-select-container>.ng-value-container>.ng-value]:text-black!',\n '[&.ng-select-focused>.ng-select-container]:border-ring! [&.ng-select-focused>.ng-select-container]:ring-ring/50! [&.ng-select-focused>.ng-select-container]:ring-[3px]!',\n this.inlineClass(),\n );\n }\n );\n \n public readonly items: Signal<any[]> = computed(\n () => {\n const results = this._queryResults();\n return results.length > 0? results : this.initialItems();\n }\n );\n public readonly typeahead: Subject<string> = new Subject<string>();\n\n protected readonly query$: Observable<any[]> = this.typeahead.pipe(\n distinctUntilChanged(),\n debounceTime(300),\n tap(\n () => this.loading.set(true)\n ),\n switchMap(\n (k: string) => {\n return this.query()(k).pipe(\n map(\n (result: any[]) => !result.length? this.initialItems() : result\n ),\n catchError(\n () => of(this.initialItems())\n )\n );\n }\n ),\n tap(\n () => this.loading.set(false)\n )\n );\n\n protected readonly _queryResults: Signal<any[]> = toSignal(this.query$, { initialValue: [] });\n\n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void{\n this.setControlName(<string> this.ngControl?.name);\n }\n\n public registerOnChange(fn: (val: any) => void): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void{\n this._onTouched = fn;\n }\n\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n public touch(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public change(e?: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n if (!e) {\n this.value.set(null);\n } else {\n this.value.set(\n !this.multiple()? e[ this.bindValue() ] : e.map((o: any) => o[ this.bindValue() ])\n );\n }\n \n this._onChange(this.value());\n this.changed.emit(this.value());\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, forwardRef, input, model, ModelSignal, OnDestroy, OnInit, output, OutputEmitterRef, signal, WritableSignal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { Observable, of, Subscription, map, catchError } from 'rxjs';\nimport { ClassValue } from 'clsx';\nimport { RateGroupCodeService } from '@unipin/angular-applet/common';\nimport { UpSearchableSelectComponent } from '../searchable-select/searchable-select.component';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Component({\n standalone: true,\n selector: 'up-rate-group-code-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'block'\n },\n imports: [\n UpSearchableSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpRateGroupCodeSelectComponent),\n }\n ],\n template: `\n <up-searchable-select\n virtualScroll \n bindValue=\"code\"\n bindLabel=\"name\"\n [query]=\"queryFn\"\n [value]=\"value()\"\n [loading]=\"isLoading()\"\n [multiple]=\"multiple()\"\n [class]=\"inlineClass()\"\n [appendTo]=\"appendTo()\"\n [clearable]=\"clearable()\"\n [placeholder]=\"placeholder()\"\n [initialItems]=\"rateGroupCodes()\"\n [disabled]=\"disabled() || _disabled()\"\n (blur)=\"onTouched()\"\n (changed)=\"change($event)\"\n />\n `,\n})\nexport class UpRateGroupCodeSelectComponent extends UpFieldControlComponent implements OnInit, OnDestroy, ControlValueAccessor {\n \n public readonly placeholder = input<string>('Select rate group code');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly appendTo = input<'body' | '.cdk-overlay-pane' | (string & {})>('body');\n \n public readonly disabled = input<boolean, any>(false, { transform: booleanAttribute });\n public readonly multiple = input<boolean, any>(false, { transform: booleanAttribute });\n public readonly clearable = input<boolean, any>(true, { transform: booleanAttribute });\n\n public readonly value: ModelSignal<string | null> = model<string | null>(null);\n\n public readonly changed: OutputEmitterRef<string> = output<string>();\n\n public readonly isLoading: WritableSignal<boolean> = signal<boolean>(true);\n public readonly _disabled: WritableSignal<boolean> = signal<boolean>(false);\n public readonly rateGroupCodes: WritableSignal<{code: string, name: string}[]> = signal<{ code: string, name: string }[]>([]);\n\n public readonly queryFn = (keyword: string): Observable<{ code: string, name: string }[]> => {\n if (\n !keyword || \n keyword.length < 3\n ) {\n return of(\n this.rateGroupCodes().filter(({ code }) => code.toLowerCase().includes(keyword.toLowerCase()))\n );\n }\n\n return this.service.query({ key: keyword }).pipe(\n map(\n ({ data: { productMsSearchRateGroupCodes: { data }}}) => {\n return (data as string[]).map((code) => ({ code, name: code }));\n }\n ),\n catchError(() => of([]))\n );\n };\n\n protected sub?: Subscription;\n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor(\n protected readonly service: RateGroupCodeService\n ) {\n super();\n \n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void{\n this.sub = this.service.query().subscribe(\n {\n error: () => {\n this.rateGroupCodes.set([]);\n this.isLoading.set(false);\n },\n next: ({ data: { productMsSearchRateGroupCodes: { data }}}) => {\n this.rateGroupCodes.set(\n (data as string[]).map((code) => ({ code, name: code }))\n );\n this.isLoading.set(false);\n }\n }\n );\n }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n public onTouched(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public change(value: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n this.value.set(value);\n \n this._onChange(value);\n this.changed.emit(value);\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, ElementRef, forwardRef, input, signal, viewChild } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { matCalendarMonthRound } from '@ng-icons/material-icons/round';\nimport { format } from 'date-fns';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpButtonDirective } from '@unipin/angular-applet/buttons';\nimport { SingleDate, UpCalendarComponent } from '@unipin/angular-applet/calendar';\nimport { UpPopoverComponent, UpPopoverContentRefDirective, UpPopoverTriggerDirective } from '@unipin/angular-applet/popover';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Component({\n standalone: true,\n selector: 'up-datepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpDatepickerComponent),\n },\n provideIcons(\n { \n matCalendarMonthRound\n }\n ),\n ],\n imports: [\n NgIcon,\n UpButtonDirective, \n UpPopoverComponent, \n UpCalendarComponent, \n UpPopoverTriggerDirective, \n UpPopoverContentRefDirective\n ],\n template: `\n <up-popover \n alignment=\"start\" \n placementOffset=\"4\"\n >\n <button\n upButton\n upPopoverTrigger\n type=\"button\"\n variant=\"ghost\"\n [class]=\"_computedClass()\"\n [disabled]=\"disabled() || _disabled()\"\n [attr.data-has-value]=\"value()? true : false\"\n (blur)=\"touch()\"\n #btnTrigger\n >\n {{ value()? formattedDate() : placeholder() }}\n\n <ng-icon\n size=\"16\"\n class=\"ml-auto\"\n name=\"matCalendarMonthRound\"\n />\n </button>\n\n <ng-container *upPopoverContentRef>\n <up-calendar\n [activeDay]=\"value()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n (selected)=\"selectedDate($event)\"\n />\n </ng-container>\n </up-popover>\n `\n})\nexport class UpDatepickerComponent extends UpFieldControlComponent implements ControlValueAccessor {\n \n public readonly placeholder = input<string>('');\n public readonly minDate = input<SingleDate>(null);\n public readonly maxDate = input<SingleDate>(null);\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly dateFormat = input<string>('dd LLL yyyy', { alias: 'format' });\n \n public readonly disabled = input(\n false,\n {\n transform: booleanAttribute\n }\n );\n \n public readonly btnTrigger = viewChild<ElementRef<HTMLButtonElement>>('btnTrigger');\n \n public readonly value = signal<SingleDate>(null);\n public readonly _disabled = signal<boolean>(false);\n \n public readonly formattedDate = computed(\n () => {\n return this.value()? format(this.value()!, this.dateFormat()) : ''\n }\n );\n \n public readonly _computedClass = computed(\n () => {\n return up(\n 'flex justify-between px-3 border border-border min-w-48 w-full font-normal hover:not-disabled:text-primary! data-[has-value=false]:text-muted-foreground',\n this.inlineClass()\n )\n }\n );\n\n protected _isTouched: boolean = false;\n protected _onTouched: () => void = () => {};\n protected _onChange: (_val: any) => void = () => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public writeValue(value: any): void{\n this.value.set(value?? null);\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public touch(): void{\n this._markTouched();\n }\n \n public selectedDate(day: SingleDate): void{\n this.value.set(day);\n \n this._onChange(day);\n this._markTouched();\n \n this.btnTrigger()?.nativeElement.click();\n }\n\n protected _markTouched(): void{\n if (this._isTouched) return;\n \n this._onTouched();\n this._isTouched = true;\n }\n}\n","import { Component, ChangeDetectionStrategy, forwardRef, booleanAttribute, computed, input, signal } from \"@angular/core\";\nimport { ControlValueAccessor } from \"@angular/forms\";\nimport { NgIcon, provideIcons } from \"@ng-icons/core\";\nimport { matCalendarMonthRound } from \"@ng-icons/material-icons/round\";\nimport { format } from \"date-fns\";\nimport { ClassValue } from \"clsx\";\nimport { up } from '@unipin/angular-applet/common';\nimport { UpButtonDirective } from '@unipin/angular-applet/buttons';\nimport { RangeDate, SingleDate, UpCalendarComponent } from '@unipin/angular-applet/calendar';\nimport { UpPopoverComponent, UpPopoverTriggerDirective, UpPopoverContentRefDirective } from '@unipin/angular-applet/popover';\nimport { UpFieldControl, UpFieldControlComponent } from \"../form-field/field-control\";\n\n\n@Component({\n standalone: true,\n selector: 'up-date-range-picker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpDateRangePickerComponent)\n },\n provideIcons(\n { \n matCalendarMonthRound \n }\n ),\n ],\n imports: [\n NgIcon,\n UpButtonDirective, \n UpPopoverComponent, \n UpCalendarComponent, \n UpPopoverTriggerDirective, \n UpPopoverContentRefDirective\n ],\n template: `\n <up-popover \n alignment=\"start\" \n placementOffset=\"4\"\n >\n <button\n upButton\n upPopoverTrigger\n type=\"button\"\n variant=\"ghost\"\n [class]=\"_computedClass()\"\n [disabled]=\"disabled() || _disabled()\"\n [attr.data-has-value]=\"value().from && value().to? true : false\"\n (blur)=\"touch()\"\n >\n {{ value().from && value().to? formattedDate() : placeholder()}}\n\n <ng-icon\n size=\"16\"\n class=\"ml-auto\"\n name=\"matCalendarMonthRound\"\n />\n </button>\n\n <ng-container *upPopoverContentRef>\n <up-calendar\n variant=\"range\"\n [activeDay]=\"null\"\n [activeRangeDay]=\"value()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n (rangeSelected)=\"selectedDate($event)\"\n />\n </ng-container>\n </up-popover>\n `\n})\nexport class UpDateRangePickerComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly placeholder = input<string>('');\n public readonly minDate = input<SingleDate>(null);\n public readonly maxDate = input<SingleDate>(null);\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly dateFormat = input<string>('dd LLL yyyy', { alias: 'format' });\n \n public readonly disabled = input(\n false,\n {\n transform: booleanAttribute\n }\n );\n\n public readonly _disabled = signal<boolean>(false);\n public readonly value = signal<RangeDate>({ from: null, to: null });\n \n public readonly formattedDate = computed(\n () => {\n return this.value().from && this.value().to? `${ format(this.value().from!, this.dateFormat()) } - ${ format(this.value().to!, this.dateFormat()) }` : ''\n }\n );\n \n public readonly _computedClass = computed(\n () => {\n return up(\n 'flex justify-between px-3 border border-border min-w-60 w-full font-normal hover:not-disabled:text-primary! data-[has-value=false]:text-muted-foreground',\n this.inlineClass()\n )\n }\n );\n\n protected _isTouched: boolean = false;\n protected _onTouched: () => void = () => {};\n protected _onChange: (_val: any) => void = () => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public writeValue(value: any): void{\n this.value.set(value?? null);\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public touch(): void{\n this._markTouched();\n }\n \n public selectedDate(range: RangeDate): void{\n this.value.set(range);\n \n this._onChange(range);\n this._markTouched();\n }\n\n protected _markTouched(): void{\n if (this._isTouched) return;\n \n this._onTouched();\n this._isTouched = true;\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, contentChild, effect, input } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl } from './field-control';\n\n@Component({\n standalone: true,\n selector: 'up-form-field',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '_computedClass()',\n },\n template: `\n <div \n class=\"\n group flex flex-col gap-2\n has-[input[type='radio']]:flex-row has-[input[type='radio']]:items-center\n has-[input[type='checkbox']]:flex-row has-[input[type='checkbox']]:items-center\n \"\n >\n @if (label()) {\n <label \n class=\"\n text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 select-none\n group-has-[input[type='checkbox']]:order-2 group-has-[input[type='radio']]:order-2\n \"\n [for]=\"name()\"\n [class.text-destructive]=\"control()?.error()\"\n >\n {{ label() }}\n </label>\n }\n\n <ng-content />\n </div>\n\n @if (control()?.error()) {\n <p class=\"text-xs font-medium text-destructive\">\n {{ control()?.error() }}\n </p>\n }\n @else if (hint()) {\n <p class=\"text-xs text-muted-foreground\">\n {{ hint() }}\n </p>\n }\n `\n})\nexport class UpFormFieldComponent {\n\n public readonly name = input<string>('');\n public readonly hint = input<string>('');\n public readonly label = input<string>('');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly control = contentChild(UpFieldControl);\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'block space-y-2',\n this.inlineClass(),\n );\n }\n );\n\n constructor() {\n effect(\n () => {\n if (!this.control()) {\n throw new Error('Form field must contain a field control, eg: input, checkbox, textarea, etc.');\n }\n this.control()!.setControlName(this.label());\n }\n );\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, model, output, signal, viewChild, WritableSignal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ClassValue } from 'clsx';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { matDelete, matUpload } from '@ng-icons/material-icons/baseline';\nimport { up, compressImage, UpFileDragNDropDirective } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n standalone: true,\n selector: 'up-image-picker',\n templateUrl: './image-picker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpImagePickerComponent)\n },\n provideIcons(\n {\n matUpload,\n matDelete\n }\n )\n ],\n imports: [\n NgIcon,\n UpFileDragNDropDirective\n ],\n})\nexport class UpImagePickerComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly ratio = input<string>('1/1');\n public readonly imgSrc = model<string>('', { alias: 'src' });\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n \n public readonly changed = output<File>();\n \n public file: any = viewChild('file');\n public fileName: string = '';\n public isTouched: WritableSignal<boolean> = signal<boolean>(false);\n \n protected readonly _computedClass = computed(\n () => {\n return up(\n 'peer overflow-hidden flex flex-col size-full rounded-lg border bg-transparent shadow-xs outline-none md:text-sm relative hover:border-dashed border-2 border-foreground/20 group [&_span]:font-semibold [&_span]:text-xs [&_span]:text-center',\n this.error()? 'ring-destructive/20 dark:ring-destructive/40 border-destructive' : '',\n this.inlineClass(),\n );\n }\n );\n \n protected _onTouched: () => void = () => {};\n protected _onChange: (_val: any) => void = (_val: any) => {};\n\n constructor() { \n super();\n\n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnDestroy(): void{\n if (this.imgSrc()) {\n URL.revokeObjectURL(this.imgSrc());\n }\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n \n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public writeValue(val: any): void{\n this.imgSrc.set(val);\n }\n\n public clear(ev?: Event): void{\n this.writeValue('');\n ev?.stopPropagation();\n }\n \n public touch(): void{\n if (!this.isTouched()) {\n this._onTouched();\n this.isTouched.set(true);\n }\n \n this.imgSrc.set(\n this.imgSrc()\n );\n }\n\n public async selectPhoto(files: any): Promise<void>{\n if (files?.target?.files) files = files.target.files;\n\n if (files && files[0]) {\n const compressedFile = await compressImage(\n {\n quality: 0.8,\n file: files[0],\n }\n );\n\n if (this.file()) {\n this.file().nativeElement.value = '';\n }\n \n this.imgSrc.set(\n URL.createObjectURL(compressedFile)\n );\n this.fileName = compressedFile.name;\n \n this.changed.emit(compressedFile);\n this._onChange(compressedFile);\n }\n }\n}\n","<div \n upFileDragNDrop \n draggedClass=\"border-dashed border-2 border-foreground/20\"\n [class]=\"_computedClass()\"\n [style.aspect-ratio]=\"ratio()\"\n (fileDropped)=\"selectPhoto($event)\"\n>\n @if (imgSrc()) {\n <img \n class=\"overflow-hidden object-cover size-full\"\n [alt]=\"fileName\" \n [src]=\"imgSrc()\" \n [style.aspect-ratio]=\"ratio()\"\n />\n }\n \n <div \n class=\"absolute inset-0 p-2 flex flex-col items-center justify-center text-muted-foreground cursor-pointer opacity-80 group-hover:opacity-100 transition\"\n [style.aspect-ratio]=\"ratio()\"\n >\n @if (imgSrc() === '') {\n <div \n class=\"flex flex-col items-center\"\n (click)=\"file.click()\"\n >\n <ng-icon\n size=\"24px\"\n name=\"matUpload\"\n />\n <span>Choose Image or Drag here.</span>\n </div>\n }\n @else {\n <div \n class=\"absolute flex items-center ustify-center opacity-0 group-hover:opacity-100 transition text-destructive\"\n (click)=\"clear($event)\"\n >\n <ng-icon\n size=\"24px\"\n name=\"matDelete\"\n />\n </div>\n }\n </div>\n\n <input \n type=\"file\" \n hidden \n accept=\"image/png, image/jpeg, image/jpg\" \n (change)=\"selectPhoto($event)\" \n #file\n />\n</div>\n","import { FormGroup, ValidatorFn } from '@angular/forms';\n\nexport function setValidator(form: FormGroup, keys: string[], validators: ValidatorFn | ValidatorFn[]): void {\n \n if (\n !keys.length || \n keys.length === 1\n ) {\n throw new Error('Use normal action for single keys and keys cannot be empty.');\n }\n\n keys.forEach(\n (key) => {\n const control = form.get(key);\n\n if (control) {\n control.setValidators(validators);\n control.updateValueAndValidity();\n }\n }\n );\n}\n","import { FormGroup } from '@angular/forms';\n\nexport function toggleFormControls(form: FormGroup, keys: string[], mode: 'enable' | 'disable'): void{\n \n if (\n !keys.length ||\n keys.length === 1\n ) {\n throw new Error('Use normal action for single keys and keys cannot be empty.');\n }\n keys.forEach((key) => form.get(key)?.[mode]());\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nfunction prettifyLabel(name: string): string{\n \n return name\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase());\n}\n\nfunction convertToDate(value: any): Date | null{\n \n if (value instanceof Date) return value;\n \n if (\n typeof value === 'string' &&\n !isNaN(Date.parse(value))\n ) {\n return new Date(value);\n }\n return null;\n}\n\n/**\n * Range validator for number and date values.\n * @param {string} fromKey - The \"from\" control name\n * @param {string} toKey - The \"to\" control name\n * @returns {ValidatorFn} Throw error message when fromKey is greater than toKey\n *\n * Usage:\n * this.form = new FormGroup({\n * agingFrom: new FormControl(),\n * agingTo: new FormControl(),\n * }, { validators: rangeValidator('agingFrom', 'agingTo') });\n */\nexport function validRangeValidator(fromKey: string, toKey: string): ValidatorFn{\n \n return (group: AbstractControl): ValidationErrors | null => {\n if (!group) {\n return null;\n }\n\n const toControl = group.get(toKey);\n const fromControl = group.get(fromKey);\n \n if (\n !fromControl || \n !toControl\n ) {\n return null;\n }\n\n const toValue = toControl.value;\n const fromValue = fromControl.value;\n \n if (\n fromValue === null || \n toValue === null || \n fromValue === '' || \n toValue === ''\n ) {\n return null;\n }\n\n let isInvalid = false;\n const toDate = convertToDate(toValue);\n const fromDate = convertToDate(fromValue);\n\n if (fromDate && toDate) {\n isInvalid = toDate <= fromDate;\n } else if (\n !isNaN(fromValue) && \n !isNaN(toValue)\n ) {\n isInvalid = Number(toValue) <= Number(fromValue);\n }\n\n return !isInvalid? null : {\n rangeInvalid: {\n to: toKey,\n from: fromKey,\n message: `${ prettifyLabel(toKey) } must be greater than ${ prettifyLabel(fromKey) }`\n }\n }\n };\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n\n/**\n * Validator that requires all specified form controls to have the same value.\n *\n * @param {string[]} controlNames - The names of the controls that must match\n * @param {string} [message] - Optional custom error message\n * @returns {ValidatorFn} A validator function producing an `isEqual` error if values do not match\n *\n * @example\n * this.form = new FormGroup({\n * password: new FormControl(''),\n * confirmPassword: new FormControl(''),\n * }, { validators: isEqualValidator(['password', 'confirmPassword']) });\n */\nexport function isEqualValidator(controlNames: string[], message?: string): ValidatorFn{\n \n return (group: AbstractControl): ValidationErrors | null => {\n if (\n !group ||\n controlNames.length < 2\n ) {\n return null;\n }\n\n let isEmpty = false;\n const values = controlNames.reduce(\n (acc, name) => {\n const control = group.get(name);\n if (!control) {\n return acc;\n }\n\n if (!control.value) {\n isEmpty = true;\n return acc;\n }\n\n acc.push(control.value);\n return acc;\n },\n [] as string[]\n );\n\n if (isEmpty) {\n return null;\n }\n\n if (!values.every(v => v === values[0])) {\n const labels = controlNames.map(\n (name) => {\n return name\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase());\n }\n );\n \n return {\n isEqual: {\n fields: controlNames,\n message: message || `${ labels.join(', ') } should have the same value` \n }\n };\n }\n return null;\n };\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n\n/**\n * Validator that requires all specified form controls to have different values.\n *\n * @param {string[]} controlNames - The names of the controls that must all be unique\n * @param {string} [message] - Optional custom error message\n * @returns {ValidatorFn} A validator function producing an `isNotEqual` error if duplicate values exist\n *\n * @example\n * this.form = new FormGroup({\n * primaryEmail: new FormControl(''),\n * secondaryEmail: new FormControl(''),\n * backupEmail: new FormControl(''),\n * }, { validators: isNotEqualValidator(['primaryEmail', 'secondaryEmail', 'backupEmail']) });\n */\nexport function isNotEqualValidator(controlNames: string[], message?: string): ValidatorFn{\n \n return (group: AbstractControl): ValidationErrors | null => {\n if (\n !group ||\n controlNames.length < 2\n ) {\n return null;\n }\n\n let isEmpty = false;\n const values = controlNames.reduce(\n (acc, name) => {\n const control = group.get(name);\n if (!control) {\n return acc;\n }\n\n if (!control.value) {\n isEmpty = true;\n return acc;\n }\n\n acc.push(control.value);\n return acc;\n },\n [] as string[]\n );\n\n if (isEmpty) {\n return null;\n }\n\n if (new Set(values).size !== values.length) {\n const labels = controlNames.map(\n (name) => {\n return name\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase());\n }\n );\n \n return {\n isNotEqual: {\n fields: controlNames,\n message: message || `${ labels.join(', ') } should have different values` \n }\n };\n }\n return null;\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|