@shival99/z-ui 2.0.12 → 2.0.13
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/fesm2022/shival99-z-ui-components-z-autocomplete.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-calendar.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-editor.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-filter.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-filter.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-input.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-input.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-menu.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-menu.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-popover.mjs +8 -3
- package/fesm2022/shival99-z-ui-components-z-popover.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-select.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-select.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-table.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-tabs.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-tabs.mjs.map +1 -1
- package/package.json +1 -1
- package/types/shival99-z-ui-components-z-autocomplete.d.ts +1 -1
- package/types/shival99-z-ui-components-z-editor.d.ts +1 -1
- package/types/shival99-z-ui-components-z-popover.d.ts +4 -3
- package/types/shival99-z-ui-components-z-select.d.ts +1 -1
- package/types/shival99-z-ui-components-z-table.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shival99-z-ui-components-z-input.mjs","sources":["../../../../libs/core-ui/components/z-input/z-input.utils.ts","../../../../libs/core-ui/components/z-input/z-input.variants.ts","../../../../libs/core-ui/components/z-input/z-input.component.ts","../../../../libs/core-ui/components/z-input/z-input.component.html","../../../../libs/core-ui/components/z-input/shival99-z-ui-components-z-input.ts"],"sourcesContent":["import type { ValidationErrors } from '@angular/forms';\n\nexport interface ZInputErrorInfo {\n key: string;\n params?: Record<string, string | number>;\n}\n\ntype ZInputErrorHandler = [string, (errors: ValidationErrors) => ZInputErrorInfo];\n\nconst ERROR_HANDLERS: ZInputErrorHandler[] = [\n ['required', () => ({ key: 'i18n_z_ui_input_required' })],\n ['min', e => ({ key: 'i18n_z_ui_input_min', params: { min: e['min'].min } })],\n ['max', e => ({ key: 'i18n_z_ui_input_max', params: { max: e['max'].max } })],\n ['minlength', e => ({ key: 'i18n_z_ui_input_min_length', params: { min: e['minlength'].requiredLength } })],\n ['maxlength', e => ({ key: 'i18n_z_ui_input_max_length', params: { max: e['maxlength'].requiredLength } })],\n ['email', () => ({ key: 'i18n_z_ui_input_email' })],\n ['pattern', () => ({ key: 'i18n_z_ui_input_pattern' })],\n];\n\nexport const getDefaultErrorInfo = (errors: ValidationErrors): ZInputErrorInfo =>\n ERROR_HANDLERS.find(([key]) => errors[key])?.[1](errors) ?? { key: 'i18n_z_ui_input_pattern' };\n","import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zInputVariants = cva(\n [\n 'flex w-full rounded-sm border border-input bg-white shadow-xs',\n 'transition-[border-color,box-shadow,background-color,color,opacity] duration-200',\n 'dark:bg-input/30 dark:border-input',\n 'file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground',\n 'outline-none',\n 'text-sm',\n ],\n {\n variants: {\n zSize: {\n sm: 'h-8 px-2 gap-2 text-xs',\n default: 'h-9 px-2 gap-2 text-sm',\n lg: 'h-10 px-2 gap-2.5 text-sm',\n },\n zStatus: {\n default: 'focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]',\n error:\n 'border-destructive! ring-destructive/20 ring-[3px] focus-within:border-destructive! focus-within:ring-destructive/30',\n disabled: 'opacity-50 cursor-not-allowed bg-muted! text-muted-foreground',\n readonly: 'bg-muted/50! text-muted-foreground cursor-default',\n },\n },\n defaultVariants: {\n zSize: 'default',\n zStatus: 'default',\n },\n }\n);\n\nexport type ZInputVariants = VariantProps<typeof zInputVariants>;\n\nexport const zTextareaVariants = cva(\n [\n 'w-full rounded-sm border border-input bg-white shadow-xs transition-colors duration-200',\n 'dark:bg-input/30 dark:border-input',\n 'outline-none',\n 'text-sm',\n ],\n {\n variants: {\n zStatus: {\n default: 'focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]',\n error:\n 'border-destructive! ring-destructive/20 ring-[3px] focus-within:border-destructive! focus-within:ring-destructive/30',\n disabled: 'opacity-50 cursor-not-allowed bg-muted! text-muted-foreground',\n readonly: 'bg-muted/50! text-muted-foreground cursor-default',\n },\n },\n defaultVariants: {\n zStatus: 'default',\n },\n }\n);\n\nexport type ZTextareaVariants = VariantProps<typeof zTextareaVariants>;\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n ElementRef,\n forwardRef,\n inject,\n Injector,\n input,\n type OnInit,\n output,\n signal,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n type AbstractControl,\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n NgControl,\n NgModel,\n PristineChangeEvent,\n ReactiveFormsModule,\n TouchedChangeEvent,\n} from '@angular/forms';\nimport {\n BlossomColorPickerComponent,\n DEFAULT_COLORS,\n hexToHsl,\n lightnessToSliderValue,\n type BlossomColorPickerColor,\n type ColorInput,\n type BlossomColorPickerValue,\n} from '@dayflow/blossom-color-picker-angular';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ZButtonComponent } from '@shival99/z-ui/components/z-button';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { ZPopoverDirective } from '@shival99/z-ui/components/z-popover';\nimport type { ZPopoverControl } from '@shival99/z-ui/components/z-popover';\nimport { ZSelectComponent, type ZSelectOption } from '@shival99/z-ui/components/z-select';\nimport { ZToastService } from '@shival99/z-ui/components/z-toast';\nimport { ZTooltipDirective } from '@shival99/z-ui/components/z-tooltip';\nimport { ZTranslateService, ZCacheService } from '@shival99/z-ui/services';\nimport { zUuid, zMergeClasses, zTransform, zCreateEvent, type ZEvent } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { NgxMaskDirective, provideNgxMask } from 'ngx-mask';\nimport { catchError, debounceTime, filter, firstValueFrom, isObservable, merge, of, Subject, takeUntil } from 'rxjs';\nimport type {\n ZAsyncValidateOn,\n ZAsyncValidator,\n ZInputAlign,\n ZInputColorConfig,\n ZInputColorFormat,\n ZInputControl,\n ZInputMaskConfig,\n ZInputSize,\n ZInputSlotConfig,\n ZInputStatus,\n ZInputType,\n ZInputTypeConfig,\n ZInputValidator,\n} from './z-input.types';\nimport { getDefaultErrorInfo } from './z-input.utils';\nimport { zInputVariants, zTextareaVariants } from './z-input.variants';\n\n@Component({\n selector: 'z-input',\n imports: [\n BlossomColorPickerComponent,\n FormsModule,\n ReactiveFormsModule,\n NgxMaskDirective,\n ZButtonComponent,\n ZIconComponent,\n ZPopoverDirective,\n ZSelectComponent,\n ZTooltipDirective,\n NgTemplateOutlet,\n TranslatePipe,\n forwardRef(() => ZInputComponent),\n ],\n standalone: true,\n templateUrl: './z-input.component.html',\n styleUrl: './z-input.component.scss',\n providers: [\n provideNgxMask(),\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ZInputComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'zInput',\n})\nexport class ZInputComponent implements OnInit, ControlValueAccessor {\n private readonly _injector = inject(Injector);\n private readonly _destroyRef = inject(DestroyRef);\n private readonly _toastService = inject(ZToastService);\n private readonly _zTranslate = inject(ZTranslateService);\n\n protected readonly inputRef = viewChild<ElementRef<HTMLInputElement>>('inputEl');\n protected readonly nativeColorInputRef = viewChild<ElementRef<HTMLInputElement>>('nativeColorInputEl');\n\n public readonly zOnSearch = output<string | number | null>();\n public readonly zOnChange = output<string | number | null>();\n public readonly zOnBlur = output<FocusEvent>();\n public readonly zOnFocus = output<FocusEvent>();\n public readonly zOnKeydown = output<KeyboardEvent>();\n public readonly zOnEnter = output<string | number | null>();\n public readonly zOnColorCollapse = output<BlossomColorPickerColor>();\n public readonly zControl = output<ZInputControl>();\n public readonly zEvent = output<ZEvent>();\n\n public readonly class = input<ClassValue>('');\n public readonly zType = input<ZInputType>('text');\n public readonly zSize = input<ZInputSize>('default');\n public readonly zAlign = input<ZInputAlign>('left');\n public readonly zLabel = input<string>('');\n public readonly zLabelClass = input<string>('');\n public readonly zPlaceholder = input<string>('');\n public readonly zRequired = input(false, { transform: zTransform });\n public readonly zDisabled = input(false, { transform: zTransform });\n public readonly zReadonly = input(false, { transform: zTransform });\n public readonly zPrefix = input<string | TemplateRef<unknown>>('');\n public readonly zSuffix = input<string | TemplateRef<unknown>>('');\n\n public readonly zMin = input<number | undefined>(undefined);\n public readonly zMax = input<number | undefined>(undefined);\n public readonly zStep = input<number>(1);\n public readonly zShowArrows = input(true, { transform: zTransform });\n\n public readonly zMask = input<string>('');\n public readonly zDecimalPlaces = input<number | undefined>(undefined);\n public readonly zAllowNegative = input(false, { transform: zTransform });\n public readonly zThousandSeparator = input<string>('');\n public readonly zDecimalMarker = input<'.' | ',' | ['.', ',']>('.');\n\n public readonly zValidators = input<ZInputValidator[]>([]);\n public readonly zAsyncValidators = input<ZAsyncValidator[]>([]);\n public readonly zAsyncDebounce = input<number>(300);\n public readonly zAsyncValidateOn = input<ZAsyncValidateOn>('change');\n public readonly zShowPasswordToggle = input(true, { transform: zTransform });\n\n public readonly zSearch = input(false, { transform: zTransform });\n public readonly zDebounce = input<number>(300);\n public readonly zAutofocus = input(false, { transform: zTransform });\n public readonly zAutoComplete = input<string>('off');\n public readonly zAllowClear = input(false, { transform: zTransform });\n\n public readonly zAutoSizeContent = input(false, { transform: zTransform });\n public readonly zRows = input<number>(3);\n public readonly zResize = input(true, { transform: zTransform });\n public readonly zMaxLength = input<number | undefined>(undefined);\n public readonly zAutoSuggest = input<string | undefined>(undefined);\n public readonly zColorConfig = input<ZInputColorConfig>({});\n\n private readonly _value = signal<string | number | null>(null);\n private readonly _disabled = signal(false);\n private readonly _formControl = signal<AbstractControl | null>(null);\n private readonly _formStateVersion = signal(0);\n private readonly _isNgModel = signal(false);\n private readonly _asyncErrors = signal<Map<string, string>>(new Map());\n private readonly _customError = signal<string | null>(null);\n private readonly _blossomColor = signal<BlossomColorPickerValue>({\n hue: 330,\n saturation: 70,\n alpha: 100,\n layer: 'outer',\n });\n\n private readonly _colorPickerHsv = signal({ hue: 258, saturation: 65, value: 85 });\n private readonly _colorPickerRgb = signal({ red: 79, green: 70, blue: 229 });\n private readonly _colorPickerHsl = signal({ hue: 243, saturation: 75, lightness: 59 });\n private readonly _colorPickerAlpha = signal(100);\n private readonly _colorPickerFormat = signal<ZInputColorFormat>('hex');\n private readonly _colorPickerSavedColors = signal<string[]>([]);\n\n protected readonly inputId = zUuid('z-input');\n protected readonly suggestHistory = signal<string[]>([]);\n protected readonly suggestActiveIndex = signal(-1);\n protected readonly isValidating = signal(false);\n\n protected readonly uiState = signal({\n passwordVisible: false,\n isFocused: false,\n touched: false,\n dirty: false,\n showSuggestPopover: false,\n colorCopied: false,\n });\n\n protected readonly typeConfig = computed<ZInputTypeConfig>(() => {\n const type = this.zType();\n return {\n isPassword: type === 'password',\n isColor: type === 'color',\n isTextarea: type === 'textarea',\n isNumber: type === 'number',\n };\n });\n\n protected readonly slotConfig = computed<ZInputSlotConfig>(() => {\n const prefix = this.zPrefix();\n const suffix = this.zSuffix();\n return {\n isPrefixTemplate: prefix instanceof TemplateRef,\n isSuffixTemplate: suffix instanceof TemplateRef,\n hasPrefix: this.zSearch() || !!prefix,\n hasSuffix: !!suffix,\n };\n });\n\n protected readonly maskConfig = computed<ZInputMaskConfig>(() => {\n const effectiveMask = this._getEffectiveMask();\n const effectiveType = this._getEffectiveType(effectiveMask);\n const effectiveDecimalMarker = this._getEffectiveDecimalMarker();\n return { effectiveMask, effectiveType, effectiveDecimalMarker };\n });\n\n protected readonly displayValue = computed(() => {\n const val = this._value();\n return val === null || val === undefined ? '' : String(val);\n });\n\n protected readonly normalizedColorValue = computed(() => this._normalizeHexColor(this._value()));\n protected readonly colorMode = computed(() => this.zColorConfig().mode ?? 'blossom');\n protected readonly isBlossomColorMode = computed(() => this.colorMode() === 'blossom');\n protected readonly blossomCoreBorderColor = computed(() => {\n const color = this.normalizedColorValue();\n if (color === '#FFFFFF' || color === '#000000') {\n return 'var(--border)';\n }\n\n return color;\n });\n\n protected readonly blossomColor = this._blossomColor.asReadonly();\n protected readonly colorPickerHsv = this._colorPickerHsv.asReadonly();\n protected readonly colorPickerRgbValue = this._colorPickerRgb.asReadonly();\n protected readonly colorPickerHslValue = this._colorPickerHsl.asReadonly();\n protected readonly colorPickerAlpha = this._colorPickerAlpha.asReadonly();\n protected readonly colorPickerFormat = this._colorPickerFormat.asReadonly();\n protected readonly colorPickerFormatOptions: ZSelectOption<ZInputColorFormat>[] = [\n { label: 'HEX', value: 'hex' },\n { label: 'RGB', value: 'rgb' },\n { label: 'HSL', value: 'hsl' },\n { label: 'HSV', value: 'hsv' },\n ];\n\n protected readonly colorPickerHueColor = computed(() => `hsl(${this.colorPickerHsv().hue} 100% 50%)`);\n protected readonly colorPickerSvStyle = computed(() => ({\n background: `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, ${this.colorPickerHueColor()})`,\n }));\n\n protected readonly colorPickerCursorStyle = computed(() => {\n const hsv = this.colorPickerHsv();\n return {\n left: `${hsv.saturation}%`,\n top: `${100 - hsv.value}%`,\n };\n });\n\n protected readonly defaultColorPickerSavedColors = computed(() => {\n const { savedColors } = this.zColorConfig();\n if (savedColors) {\n return this._normalizeColorList(savedColors);\n }\n\n return this._normalizeColorList([\n '#16A34A',\n '#2563EB',\n '#4F46E5',\n '#7C3AED',\n '#C026D3',\n '#DB2777',\n '#DC2626',\n '#EA580C',\n '#7F56D9',\n '#111827',\n '#155E75',\n '#A3A310',\n '#0EA5E9',\n '#D946EF',\n '#E11D48',\n '#22C55E',\n ]);\n });\n\n protected readonly colorPickerSavedColors = computed(() => {\n const cachedColors = this._colorPickerSavedColors();\n const fallbackColors = this.defaultColorPickerSavedColors();\n return this._normalizeColorList([...cachedColors, ...fallbackColors]).slice(0, 8);\n });\n\n protected readonly colorPickerSavedSwatches = computed(() =>\n this.colorPickerSavedColors().map(color => ({\n color,\n isLight: this._isLightHexColor(color),\n }))\n );\n\n protected readonly blossomCoreSize = computed(() => {\n const size = this.zSize();\n if (size === 'sm') {\n return 22;\n }\n if (size === 'lg') {\n return 30;\n }\n return 26;\n });\n\n protected readonly blossomOptions = computed(() => {\n const config = this.zColorConfig();\n return {\n defaultValue: config.defaultValue,\n openOnHover: config.openOnHover ?? false,\n initialExpanded: config.initialExpanded ?? false,\n animationDuration: config.animationDuration ?? 300,\n showAlphaSlider: config.showAlphaSlider ?? true,\n showCoreColor: config.showCoreColor ?? true,\n adaptivePositioning: config.adaptivePositioning ?? true,\n sliderPosition: config.sliderPosition || 'bottom',\n coreSize: config.coreSize ?? this.blossomCoreSize(),\n petalSize: config.petalSize ?? 32,\n };\n });\n\n protected readonly blossomColors = computed<ColorInput[] | undefined>(() => {\n const customColors = this.zColorConfig().colors ?? [];\n if (customColors.length > 0) {\n return customColors;\n }\n\n const count = this.zColorConfig().count ?? 20;\n if (!count || count < 1) {\n return undefined;\n }\n\n return this._generateColorPalette(count);\n });\n\n protected readonly hasValue = computed(() => {\n const value = this._value();\n return value !== null && value !== undefined && value !== '';\n });\n\n protected readonly isDisabled = computed(() => this._disabled() || this.zDisabled());\n protected readonly showArrows = computed(() => this.typeConfig().isNumber && this.zShowArrows());\n protected readonly hasAutoSuggest = computed(() => {\n const key = this.zAutoSuggest();\n return key !== undefined && key.length > 0;\n });\n\n protected readonly showClearButton = computed(\n () => this.zAllowClear() && this.hasValue() && !this.isDisabled() && !this.zReadonly()\n );\n\n protected readonly currentStatus = computed<ZInputStatus>(() => {\n if (this.isDisabled()) {\n return 'disabled';\n }\n\n if (this.zReadonly()) {\n return 'readonly';\n }\n\n if (this.hasError()) {\n return 'error';\n }\n return 'default';\n });\n\n protected readonly alignClass = computed(() => {\n const align = this.zAlign();\n return align === 'center'\n ? '[&_.z-input-native]:text-center'\n : align === 'right'\n ? '[&_.z-input-native]:text-right'\n : '';\n });\n\n protected readonly inputClasses = computed(() =>\n zMergeClasses(\n zInputVariants({ zSize: this.zSize(), zStatus: this.currentStatus() }),\n this.alignClass(),\n this.class()\n )\n );\n\n protected readonly textareaClasses = computed(() =>\n zMergeClasses(zTextareaVariants({ zStatus: this.currentStatus() }), this.alignClass(), this.class())\n );\n\n protected readonly filteredSuggestHistory = computed(() => {\n const history = this.suggestHistory();\n const currentValue = String(this._value() ?? '')\n .toLowerCase()\n .trim();\n\n if (!currentValue) {\n return history;\n }\n\n const matching: string[] = [];\n const nonMatching: string[] = [];\n\n for (const item of history) {\n const target = item.toLowerCase().includes(currentValue) ? matching : nonMatching;\n target.push(item);\n }\n\n return [...matching, ...nonMatching];\n });\n\n private readonly _shouldShowValidation = computed(() => {\n const control = this._formControl();\n this._formStateVersion();\n\n if (this._isNgModel()) {\n return this.uiState().dirty || this.uiState().touched;\n }\n\n if (control) {\n return control.dirty;\n }\n\n return this.uiState().dirty || this.uiState().touched;\n });\n\n protected readonly hasError = computed(() => {\n if (this._customError()) {\n return true;\n }\n\n const asyncErrors = this._asyncErrors();\n if (asyncErrors.size > 0 && this._shouldShowValidation()) {\n return true;\n }\n\n const customErrors = this._getValidationErrors();\n if (customErrors.length > 0) {\n return true;\n }\n\n const control = this._formControl();\n this._formStateVersion();\n if (!control) {\n return false;\n }\n\n return control.invalid && this._shouldShowValidation();\n });\n\n protected readonly errorMessage = computed(() => {\n const customError = this._customError();\n if (customError) {\n return customError;\n }\n\n const asyncErrors = this._asyncErrors();\n if (asyncErrors.size > 0) {\n return this._translateValidationMessage(asyncErrors.values().next().value as string);\n }\n\n const customErrors = this._getValidationErrors();\n if (customErrors.length > 0) {\n return this._translateValidationMessage(customErrors[0]);\n }\n\n const control = this._formControl();\n const errors = control?.errors;\n if (!errors) {\n return '';\n }\n\n const validators = this.zValidators();\n for (const validator of validators) {\n if (errors[validator.error]) {\n return this._translateValidationMessage(validator.message);\n }\n }\n\n this._zTranslate.currentLang();\n const errorInfo = getDefaultErrorInfo(errors);\n return this._zTranslate.instant(errorInfo.key, errorInfo.params);\n });\n\n private _translateValidationMessage(message: string): string {\n this._zTranslate.currentLang();\n return this._zTranslate.instant(message);\n }\n\n private readonly _searchSubject = new Subject<string | number | null>();\n private readonly _changeSubject = new Subject<string | number | null>();\n private readonly _asyncValidationSubject = new Subject<string | number | null>();\n private readonly _asyncCancelSubject = new Subject<void>();\n private _asyncValidationAbortController: AbortController | null = null;\n private _onChange: (value: string | number | null) => void = () => void 0;\n private _onTouched: () => void = () => void 0;\n private _ngControl: NgControl | null = null;\n private _colorPickerPopoverControl: ZPopoverControl | null = null;\n\n ngOnInit(): void {\n this._loadColorPickerSavedColors();\n\n queueMicrotask(() => {\n try {\n this._ngControl = this._injector.get(NgControl, null);\n this._isNgModel.set(this._ngControl instanceof NgModel);\n\n if (this._ngControl?.control) {\n const { control } = this._ngControl;\n this._formControl.set(control);\n merge(\n control.statusChanges,\n control.valueChanges,\n control.events.pipe(\n filter(event => event instanceof PristineChangeEvent || event instanceof TouchedChangeEvent)\n )\n )\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._formStateVersion.update(v => v + 1);\n });\n }\n } catch {\n this._ngControl = null;\n }\n });\n\n this._searchSubject.pipe(debounceTime(this.zDebounce()), takeUntilDestroyed(this._destroyRef)).subscribe(value => {\n this.zOnSearch.emit(value);\n });\n\n this._changeSubject.pipe(debounceTime(this.zDebounce()), takeUntilDestroyed(this._destroyRef)).subscribe(value => {\n this.zOnChange.emit(value);\n });\n\n const asyncValidators = this.zAsyncValidators();\n if (asyncValidators.length > 0) {\n const debounceMs = this.zAsyncDebounce() || 300;\n this._asyncValidationSubject\n .pipe(debounceTime(debounceMs), takeUntilDestroyed(this._destroyRef))\n .subscribe(value => {\n void this._runAsyncValidation(value);\n });\n }\n\n this._emitControl();\n if (this.zAutofocus()) {\n setTimeout(() => {\n this.focus();\n }, 20);\n }\n }\n\n public writeValue(value: string | number | null): void {\n this._value.set(value);\n if (this.zType() === 'color') {\n this._syncColorStateFromHex(this._normalizeHexColor(value));\n }\n }\n\n public registerOnChange(fn: (value: string | number | null) => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n }\n\n public focus(): void {\n this.inputRef()?.nativeElement.focus();\n }\n\n public blur(): void {\n this.inputRef()?.nativeElement.blur();\n }\n\n /** @deprecated Use `valid()` for boolean form-submit checks. */\n public validate(): boolean {\n this.uiState.update(s => ({ ...s, touched: true, dirty: true }));\n this._onTouched();\n\n if (this._ngControl?.control) {\n this._ngControl.control.markAsDirty();\n this._ngControl.control.markAsTouched();\n }\n\n return this.hasError();\n }\n\n public valid(): boolean {\n return !this.validate();\n }\n\n public reset(): void {\n this._cancelAsyncValidation();\n this.isValidating.set(false);\n this._asyncErrors.set(new Map());\n this._customError.set(null);\n\n this._value.set(null);\n this.uiState.update(s => ({ ...s, touched: false, dirty: false }));\n this._onChange(null);\n\n if (this._ngControl?.control) {\n this._ngControl.control.markAsPristine();\n this._ngControl.control.markAsUntouched();\n }\n }\n\n public setValue(value: string | number | null): void {\n this._value.set(value);\n this._onChange(value);\n }\n\n public setErrorMessage(message: string | null): void {\n this._customError.set(message);\n if (message) {\n this.uiState.update(s => ({ ...s, touched: true, dirty: true }));\n }\n }\n\n public getValue(): string | number | null {\n return this._value();\n }\n\n public saveToSuggestHistory(value: string): void {\n const key = this.zAutoSuggest();\n if (!key || !value || value.trim() === '') {\n return;\n }\n\n const cacheKey = `autosuggest-${key}`;\n let history: string[] = ZCacheService.get<string[]>(cacheKey, []) ?? [];\n\n const trimmedValue = value.trim();\n history = history.filter(item => item !== trimmedValue);\n history.unshift(trimmedValue);\n\n if (history.length > 5) {\n history = history.slice(0, 5);\n }\n\n ZCacheService.set(cacheKey, history);\n this.suggestHistory.set(history);\n }\n\n protected clearValue(event: MouseEvent): void {\n event.stopPropagation();\n this._value.set(null);\n this.uiState.update(s => ({ ...s, dirty: true }));\n this._onChange(null);\n this._changeSubject.next(null);\n if (this.zSearch()) {\n this._searchSubject.next(null);\n }\n this.focus();\n }\n\n protected onInput(event: Event): void {\n const { value: rawValue } = event.target as HTMLInputElement;\n let value: string | number | null = rawValue;\n\n if (this.zType() === 'number') {\n value = this._parseNumberValue(value);\n }\n\n this._value.set(value);\n this.uiState.update(s => ({ ...s, dirty: true }));\n this._onChange(value);\n\n if (this.zSearch()) {\n this._searchSubject.next(value);\n }\n }\n\n protected onModelChange(rawValue: string | number | null): void {\n let value: string | number | null = rawValue;\n\n if (this.zType() === 'color' && typeof rawValue === 'string') {\n value = this._normalizeHexColor(rawValue);\n this._syncColorStateFromHex(value);\n }\n\n if (this.zType() === 'number' && typeof rawValue === 'string') {\n value = this._parseNumberValue(rawValue);\n }\n\n this._value.set(value);\n this.uiState.update(s => ({ ...s, dirty: true }));\n this._onChange(value);\n\n this._changeSubject.next(value);\n if (this.zSearch()) {\n this._searchSubject.next(value);\n }\n\n if (this.zAsyncValidators().length > 0 && this.zAsyncValidateOn() === 'change') {\n this._asyncValidationSubject.next(value);\n }\n\n if (this.hasAutoSuggest() && this.uiState().isFocused) {\n this._loadSuggestHistory();\n if (this.suggestHistory().length > 0) {\n this._showSuggestPopover();\n this.suggestActiveIndex.set(-1);\n }\n }\n }\n\n protected onBlur(event: FocusEvent): void {\n if (this.uiState().dirty) {\n this.uiState.update(s => ({ ...s, touched: true }));\n }\n\n this._onTouched();\n this.uiState.update(s => ({ ...s, isFocused: false }));\n this.zOnBlur.emit(event);\n this.zEvent.emit(zCreateEvent('blur', event));\n this.closeSuggestPopover();\n\n if (this.zAsyncValidators().length > 0 && this.zAsyncValidateOn() === 'blur') {\n this._asyncValidationSubject.next(this._value());\n }\n\n const el = this.inputRef()?.nativeElement;\n if (el) {\n if (el.value && !el.classList.contains('z-input-auto-fill')) {\n el.classList.add('z-input-auto-fill');\n const currentValue = el.value;\n el.value = '';\n el.value = currentValue;\n }\n }\n }\n\n protected onFocus(event: FocusEvent): void {\n this.uiState.update(s => ({ ...s, isFocused: true }));\n this.zOnFocus.emit(event);\n this.zEvent.emit(zCreateEvent('focus', event));\n this._loadSuggestHistory();\n if (this.hasAutoSuggest() && this.suggestHistory().length > 0) {\n this._showSuggestPopover();\n }\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n this.zOnKeydown.emit(event);\n this.zEvent.emit(zCreateEvent('keydown', event));\n\n if (event.key === 'Enter') {\n this.zOnEnter.emit(this._value());\n }\n\n if (this.zType() !== 'number') {\n return;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n this._incrementValue(1);\n return;\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n this._incrementValue(-1);\n }\n }\n\n protected onSuggestKeydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' && this.hasAutoSuggest()) {\n const activeIndex = this.suggestActiveIndex();\n const history = this.filteredSuggestHistory();\n\n if (this.uiState().showSuggestPopover && activeIndex >= 0 && activeIndex < history.length) {\n event.preventDefault();\n this.selectSuggestItem(history[activeIndex]);\n return;\n }\n\n const currentValue = String(this._value() ?? '').trim();\n if (currentValue) {\n this.saveToSuggestHistory(currentValue);\n this._hideSuggestPopover();\n this.suggestActiveIndex.set(-1);\n if (this.zSearch()) {\n this.zOnSearch.emit(currentValue);\n }\n }\n return;\n }\n\n if (!this.hasAutoSuggest() || !this.uiState().showSuggestPopover) {\n return;\n }\n\n const history = this.filteredSuggestHistory();\n if (history.length === 0) {\n return;\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n const currentIndex = this.suggestActiveIndex();\n const newIndex = currentIndex < history.length - 1 ? currentIndex + 1 : 0;\n this.suggestActiveIndex.set(newIndex);\n return;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n const currentIndex = this.suggestActiveIndex();\n const newIndex = currentIndex > 0 ? currentIndex - 1 : history.length - 1;\n this.suggestActiveIndex.set(newIndex);\n return;\n }\n\n if (event.key === 'Escape') {\n this._hideSuggestPopover();\n this.suggestActiveIndex.set(-1);\n }\n }\n\n protected selectSuggestItem(item: string): void {\n this._value.set(item);\n this.uiState.update(s => ({ ...s, dirty: true }));\n this._onChange(item);\n this._hideSuggestPopover();\n this.suggestActiveIndex.set(-1);\n this.saveToSuggestHistory(item);\n\n if (this.zSearch()) {\n this._searchSubject.next(item);\n }\n }\n\n protected closeSuggestPopover(): void {\n setTimeout(() => {\n this._hideSuggestPopover();\n this.suggestActiveIndex.set(-1);\n }, 150);\n }\n\n protected onArrowClick(event: MouseEvent, direction: 'up' | 'down'): void {\n event.preventDefault();\n const multiplier = direction === 'up' ? 1 : -1;\n this._incrementValue(multiplier);\n this.focus();\n }\n\n protected togglePasswordVisibility(): void {\n this.uiState.update(s => ({ ...s, passwordVisible: !s.passwordVisible }));\n }\n\n protected copyColorToClipboard(): void {\n const colorValue = this.normalizedColorValue();\n void navigator.clipboard.writeText(colorValue).then(() => {\n this.uiState.update(s => ({ ...s, colorCopied: true }));\n this._toastService.success(`Copied ${colorValue}`);\n setTimeout(() => {\n this.uiState.update(s => ({ ...s, colorCopied: false }));\n }, 1500);\n });\n }\n\n protected onBlossomColorChange(color: BlossomColorPickerColor): void {\n this._blossomColor.set(color);\n this.onModelChange(color.hex);\n }\n\n protected onBlossomColorCollapse(color: BlossomColorPickerColor): void {\n this._blossomColor.set(color);\n this.zOnColorCollapse.emit(color);\n }\n\n protected onColorPickerControl(control: ZPopoverControl): void {\n this._colorPickerPopoverControl = control;\n }\n\n protected onColorPickerOpen(): void {\n this._syncColorPickerFromHex(this.normalizedColorValue());\n this._loadColorPickerSavedColors();\n }\n\n protected onColorPickerFormatChange(value: ZInputColorFormat | ZInputColorFormat[] | null): void {\n if (!value || Array.isArray(value)) {\n return;\n }\n\n this._colorPickerFormat.set(value);\n }\n\n protected onColorPickerHexChange(value: string | number | null): void {\n const raw = String(value ?? '').trim();\n if (!/^#?[0-9a-fA-F]{3}$/.test(raw) && !/^#?[0-9a-fA-F]{6}$/.test(raw)) {\n return;\n }\n\n this._commitColor(this._normalizeHexColor(raw.startsWith('#') ? raw : `#${raw}`));\n }\n\n protected onColorPickerAlphaValueChange(value: string | number | null): void {\n const alpha = Number(value ?? 100);\n if (Number.isNaN(alpha)) {\n return;\n }\n\n this._setColorPickerAlpha(alpha);\n }\n\n protected onColorPickerRgbChange(channel: 'red' | 'green' | 'blue', value: string | number | null): void {\n const channelValue = this._parseBoundedNumber(value, 0, 255);\n if (channelValue === null) {\n return;\n }\n\n const rgb = this.colorPickerRgbValue();\n const nextRgb = { ...rgb, [channel]: channelValue };\n this._commitColor(this._rgbToHex(nextRgb));\n }\n\n protected onColorPickerHslChange(channel: 'hue' | 'saturation' | 'lightness', value: string | number | null): void {\n const max = channel === 'hue' ? 360 : 100;\n const channelValue = this._parseBoundedNumber(value, 0, max);\n if (channelValue === null) {\n return;\n }\n\n const hsl = this.colorPickerHslValue();\n const nextHsl = { ...hsl, [channel]: channelValue };\n this._commitColor(this._hslToHex(nextHsl));\n }\n\n protected onColorPickerHsvValueChange(channel: 'hue' | 'saturation' | 'value', value: string | number | null): void {\n const max = channel === 'hue' ? 360 : 100;\n const channelValue = this._parseBoundedNumber(value, 0, max);\n if (channelValue === null) {\n return;\n }\n\n const nextHsv = { ...this.colorPickerHsv(), [channel]: channelValue };\n this._colorPickerHsv.set(nextHsv);\n this._commitColor(this._hsvToHex(nextHsv));\n }\n\n protected onColorPickerHueInput(event: Event): void {\n const input = event.target as HTMLInputElement | null;\n const hue = Number(input?.value ?? 0);\n this._colorPickerHsv.update(color => ({ ...color, hue }));\n this._commitColor(this._hsvToHex(this._colorPickerHsv()));\n }\n\n protected onColorPickerAlphaInput(event: Event): void {\n const input = event.target as HTMLInputElement | null;\n const alpha = Number(input?.value ?? 100);\n this._setColorPickerAlpha(alpha);\n }\n\n protected onColorPickerSvPointerDown(event: PointerEvent): void {\n this._updateColorPickerSv(event);\n const target = event.currentTarget as HTMLElement;\n target.setPointerCapture(event.pointerId);\n }\n\n protected onColorPickerSvPointerMove(event: PointerEvent): void {\n if (!event.buttons) {\n return;\n }\n\n this._updateColorPickerSv(event);\n }\n\n protected selectSavedColor(color: string): void {\n this._commitColor(color);\n }\n\n protected addCurrentColorToSaved(): void {\n const color = this.normalizedColorValue();\n if (!/^#[0-9A-F]{6}$/.test(color)) {\n return;\n }\n\n const nextColors = this._normalizeColorList([color, ...this.colorPickerSavedColors()]).slice(0, 8);\n this._colorPickerSavedColors.set(nextColors);\n ZCacheService.set(this._colorPickerCacheKey(), nextColors);\n }\n\n protected async openNativeColorPicker(): Promise<void> {\n const eyeDropper = this._getEyeDropper();\n if (eyeDropper) {\n const result = await eyeDropper.open();\n this._commitColor(result.sRGBHex);\n return;\n }\n\n this.nativeColorInputRef()?.nativeElement.click();\n }\n\n protected closeColorPicker(): void {\n this._colorPickerPopoverControl?.close();\n }\n\n private _emitControl(): void {\n this.zControl.emit({\n valid: () => this.valid(),\n validate: () => this.validate(),\n reset: () => this.reset(),\n focus: () => this.focus(),\n blur: () => this.blur(),\n setValue: (value: string | number | null) => this.setValue(value),\n setErrorMessage: (message: string | null) => this.setErrorMessage(message),\n hasError: this.hasError,\n isValidating: this.isValidating,\n value: this._value.asReadonly(),\n errorMessage: this.errorMessage,\n });\n }\n\n private async _runAsyncValidation(value: string | number | null): Promise<void> {\n const asyncValidators = this.zAsyncValidators();\n if (asyncValidators.length === 0) {\n return;\n }\n\n if ((value === null || value === undefined || value === '') && !this.zRequired()) {\n this._asyncErrors.set(new Map());\n this.isValidating.set(false);\n return;\n }\n\n this._cancelAsyncValidation();\n this._asyncValidationAbortController = new AbortController();\n const { signal } = this._asyncValidationAbortController;\n\n this.isValidating.set(true);\n const errors = new Map<string, string>();\n\n try {\n const validationPromises = asyncValidators.map(async validator => {\n if (signal.aborted) {\n return null;\n }\n\n try {\n const result = validator.validate(value);\n if (!isObservable(result)) {\n const isValid = await result;\n if (signal.aborted) {\n return null;\n }\n\n return { validator, isValid };\n }\n\n const safeResult$ = result.pipe(\n takeUntil(this._asyncCancelSubject),\n catchError(err => {\n console.error(`Async validation error for ${validator.error}:`, err);\n return of(false);\n })\n );\n\n const isValid = await firstValueFrom(safeResult$);\n if (signal.aborted) {\n return null;\n }\n\n return { validator, isValid };\n } catch (error) {\n if (!signal.aborted) {\n console.error(`Async validation error for ${validator.error}:`, error);\n return {\n validator,\n isValid: false,\n error: true,\n };\n }\n return null;\n }\n });\n\n const results = await Promise.all(validationPromises);\n\n if (signal.aborted) {\n return;\n }\n\n for (const result of results) {\n if (result && !result.isValid) {\n errors.set(result.validator.error, result.validator.message);\n }\n }\n\n this._asyncErrors.set(errors);\n } catch (error) {\n if (!signal.aborted) {\n console.error('Async validation error:', error);\n }\n } finally {\n if (!signal.aborted) {\n this.isValidating.set(false);\n }\n }\n }\n\n private _cancelAsyncValidation(): void {\n if (this._asyncValidationAbortController) {\n this._asyncValidationAbortController.abort();\n this._asyncValidationAbortController = null;\n }\n this._asyncCancelSubject.next();\n }\n\n private _showSuggestPopover(): void {\n this.uiState.update(s => ({ ...s, showSuggestPopover: true }));\n }\n\n private _hideSuggestPopover(): void {\n this.uiState.update(s => ({ ...s, showSuggestPopover: false }));\n }\n\n private _loadSuggestHistory(): void {\n const key = this.zAutoSuggest();\n if (!key) {\n this.suggestHistory.set([]);\n return;\n }\n\n const cacheKey = `autosuggest-${key}`;\n const history = ZCacheService.get<string[]>(cacheKey, []) ?? [];\n this.suggestHistory.set(history);\n }\n\n private _colorPickerCacheKey(): string {\n const configuredKey = this.zColorConfig().cacheKey;\n if (configuredKey) {\n return `input-color-picker-${configuredKey}`;\n }\n\n return 'input-color-picker-saved-colors';\n }\n\n private _loadColorPickerSavedColors(): void {\n const savedColors = ZCacheService.get<string[]>(this._colorPickerCacheKey(), []) ?? [];\n this._colorPickerSavedColors.set(this._normalizeColorList(savedColors).slice(0, 8));\n }\n\n private _incrementValue(multiplier: number): void {\n const currentValue = this._value();\n const numValue = typeof currentValue === 'number' ? currentValue : parseFloat(String(currentValue)) || 0;\n const step = this.zStep();\n let newValue = numValue + step * multiplier;\n\n const min = this.zMin();\n const max = this.zMax();\n\n if (min !== undefined && newValue < min) {\n newValue = min;\n }\n if (max !== undefined && newValue > max) {\n newValue = max;\n }\n\n if (!this.zAllowNegative() && newValue < 0) {\n newValue = 0;\n }\n\n this._value.set(newValue);\n this._onChange(newValue);\n }\n\n private _cleanNumberValue(value: string): string {\n const thousandSep = this.zThousandSeparator();\n let cleaned = value;\n\n if (thousandSep) {\n const escapedSep = thousandSep.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n cleaned = cleaned.replace(new RegExp(escapedSep, 'g'), '');\n }\n\n const decimalMarker = this.zDecimalMarker();\n if (typeof decimalMarker === 'string' && decimalMarker !== '.') {\n cleaned = cleaned.replace(decimalMarker, '.');\n }\n\n return cleaned;\n }\n\n private _parseNumberValue(value: string): number | null {\n const cleanValue = this._cleanNumberValue(value);\n if (cleanValue === '') {\n return null;\n }\n\n let numberValue = parseFloat(cleanValue);\n if (isNaN(numberValue)) {\n return null;\n }\n\n const min = this.zMin();\n const max = this.zMax();\n\n if (min !== undefined && numberValue < min) {\n numberValue = min;\n }\n\n if (max !== undefined && numberValue > max) {\n numberValue = max;\n }\n\n if (!this.zAllowNegative() && numberValue < 0) {\n return 0;\n }\n\n return numberValue;\n }\n\n private _getEffectiveMask(): string {\n const mask = this.zMask();\n if (mask) {\n return mask;\n }\n\n if (this.zType() !== 'number') {\n return '';\n }\n\n const decimalPlaces = this.zDecimalPlaces();\n const thousandSep = this.zThousandSeparator();\n if (decimalPlaces !== undefined || thousandSep === '.' || thousandSep === ',') {\n return `separator.${decimalPlaces ?? 0}`;\n }\n\n return '';\n }\n\n private _getEffectiveType(effectiveMask: string): ZInputType {\n const type = this.zType();\n\n if (type === 'password' && this.uiState().passwordVisible) {\n return 'text';\n }\n\n if (type === 'number' && effectiveMask) {\n return 'text';\n }\n\n return type;\n }\n\n private _getEffectiveDecimalMarker(): '.' | ',' | ['.', ','] {\n const thousandSep = this.zThousandSeparator();\n\n if (thousandSep === '.') {\n return ',';\n }\n\n if (thousandSep === ',') {\n return '.';\n }\n\n return this.zDecimalMarker();\n }\n\n private _getValidationErrors(): string[] {\n const errors: string[] = [];\n const value = this._value();\n const validators = this.zValidators();\n\n if (!this._shouldShowValidation()) {\n return errors;\n }\n\n const isRequired = this.zRequired() || this._formControl()?.errors?.['required'];\n if (isRequired && (value === null || value === undefined || value === '')) {\n this._zTranslate.currentLang();\n errors.push(this._zTranslate.instant('i18n_z_ui_input_required'));\n }\n\n for (const validator of validators) {\n if (validator.validate && !validator.validate(value)) {\n errors.push(validator.message);\n continue;\n }\n\n if (validator.error === 'required') {\n continue;\n }\n\n if (validator.error === 'number' && value !== null && value !== '') {\n const numValue = typeof value === 'number' ? value : parseFloat(String(value));\n if (isNaN(numValue)) {\n errors.push(validator.message);\n }\n }\n\n if (validator.error === 'min' && validator.min !== undefined && value !== null && value !== '') {\n const numValue = typeof value === 'number' ? value : parseFloat(String(value));\n if (!isNaN(numValue) && numValue < validator.min) {\n errors.push(validator.message);\n }\n }\n\n if (validator.error === 'max' && validator.max !== undefined && value !== null && value !== '') {\n const numValue = typeof value === 'number' ? value : parseFloat(String(value));\n if (!isNaN(numValue) && numValue > validator.max) {\n errors.push(validator.message);\n }\n }\n\n if (validator.error === 'pattern' && validator.pattern && value !== null && value !== '') {\n if (!validator.pattern.test(String(value))) {\n errors.push(validator.message);\n }\n }\n }\n\n return errors;\n }\n\n private _normalizeHexColor(value: string | number | null): string {\n return this._tryNormalizeHexColor(value) ?? '#000000';\n }\n\n private _tryNormalizeHexColor(value: string | number | null): string | null {\n const raw = String(value ?? '')\n .trim()\n .toUpperCase();\n\n if (/^#[0-9A-F]{6}$/.test(raw)) {\n return raw;\n }\n\n if (/^#[0-9A-F]{3}$/.test(raw)) {\n const [r, g, b] = raw.slice(1).split('');\n return `#${r}${r}${g}${g}${b}${b}`;\n }\n\n return null;\n }\n\n private _syncBlossomColorFromHex(hex: string): void {\n const { h, s, l } = hexToHsl(hex);\n const current = this._blossomColor();\n\n this._blossomColor.set({\n hue: h,\n saturation: lightnessToSliderValue(l),\n lightness: l,\n originalSaturation: s,\n alpha: current.alpha,\n layer: current.layer,\n });\n }\n\n private _syncColorStateFromHex(hex: string): void {\n this._syncBlossomColorFromHex(hex);\n this._syncColorPickerFromHex(hex);\n }\n\n private _syncColorPickerFromHex(hex: string): void {\n const hsv = this._hexToHsv(hex);\n const rgb = this._hsvToRgb(hsv);\n this._colorPickerHsv.set(hsv);\n this._colorPickerRgb.set(rgb);\n this._colorPickerHsl.set(this._rgbToHsl(rgb));\n }\n\n private _commitColor(hex: string): void {\n const color = this._normalizeHexColor(hex);\n this._value.set(color);\n this._syncColorStateFromHex(color);\n this.uiState.update(s => ({ ...s, dirty: true }));\n this._onChange(color);\n this._changeSubject.next(color);\n\n if (this.zAsyncValidators().length > 0 && this.zAsyncValidateOn() === 'change') {\n this._asyncValidationSubject.next(color);\n }\n }\n\n private _setColorPickerAlpha(alpha: number): void {\n const boundedAlpha = Math.min(100, Math.max(0, Math.round(alpha)));\n this._colorPickerAlpha.set(boundedAlpha);\n }\n\n private _parseBoundedNumber(value: string | number | null, min: number, max: number): number | null {\n const numericValue = Number(value);\n if (Number.isNaN(numericValue)) {\n return null;\n }\n\n return Math.min(max, Math.max(min, Math.round(numericValue)));\n }\n\n private _normalizeColorList(colors: readonly string[]): string[] {\n const result: string[] = [];\n\n for (const color of colors) {\n const normalized = this._tryNormalizeHexColor(color);\n if (!normalized) {\n continue;\n }\n\n if (result.includes(normalized)) {\n continue;\n }\n\n result.push(normalized);\n }\n\n return result;\n }\n\n private _isLightHexColor(hex: string): boolean {\n const normalized = this._normalizeHexColor(hex).slice(1);\n const red = parseInt(normalized.slice(0, 2), 16);\n const green = parseInt(normalized.slice(2, 4), 16);\n const blue = parseInt(normalized.slice(4, 6), 16);\n const luminance = (0.299 * red + 0.587 * green + 0.114 * blue) / 255;\n return luminance > 0.82;\n }\n\n private _getEyeDropper(): { open: () => Promise<{ sRGBHex: string }> } | null {\n const maybeWindow = window as unknown as {\n EyeDropper?: new () => { open: () => Promise<{ sRGBHex: string }> };\n };\n\n if (!maybeWindow.EyeDropper) {\n return null;\n }\n\n return new maybeWindow.EyeDropper();\n }\n\n private _updateColorPickerSv(event: PointerEvent): void {\n const target = event.currentTarget as HTMLElement;\n const rect = target.getBoundingClientRect();\n const saturation = ((event.clientX - rect.left) / rect.width) * 100;\n const value = 100 - ((event.clientY - rect.top) / rect.height) * 100;\n\n this._colorPickerHsv.update(color => ({\n ...color,\n saturation: Math.min(100, Math.max(0, saturation)),\n value: Math.min(100, Math.max(0, value)),\n }));\n this._commitColor(this._hsvToHex(this._colorPickerHsv()));\n }\n\n private _hexToHsv(hex: string): { hue: number; saturation: number; value: number } {\n const normalized = this._normalizeHexColor(hex).slice(1);\n const red = parseInt(normalized.slice(0, 2), 16) / 255;\n const green = parseInt(normalized.slice(2, 4), 16) / 255;\n const blue = parseInt(normalized.slice(4, 6), 16) / 255;\n const max = Math.max(red, green, blue);\n const min = Math.min(red, green, blue);\n const delta = max - min;\n\n let hue = 0;\n if (delta !== 0) {\n if (max === red) {\n hue = ((green - blue) / delta) % 6;\n }\n\n if (max === green) {\n hue = (blue - red) / delta + 2;\n }\n\n if (max === blue) {\n hue = (red - green) / delta + 4;\n }\n\n hue = Math.round(hue * 60);\n if (hue < 0) {\n hue += 360;\n }\n }\n\n return {\n hue,\n saturation: max === 0 ? 0 : Math.round((delta / max) * 100),\n value: Math.round(max * 100),\n };\n }\n\n private _hsvToRgb(color: { hue: number; saturation: number; value: number }): {\n red: number;\n green: number;\n blue: number;\n } {\n const hex = this._hsvToHex(color).slice(1);\n return {\n red: parseInt(hex.slice(0, 2), 16),\n green: parseInt(hex.slice(2, 4), 16),\n blue: parseInt(hex.slice(4, 6), 16),\n };\n }\n\n private _rgbToHex(color: { red: number; green: number; blue: number }): string {\n return [color.red, color.green, color.blue]\n .map(channel => Math.min(255, Math.max(0, channel)).toString(16).padStart(2, '0'))\n .join('')\n .toUpperCase()\n .replace(/^/, '#');\n }\n\n private _rgbToHsl(color: { red: number; green: number; blue: number }): {\n hue: number;\n saturation: number;\n lightness: number;\n } {\n const red = color.red / 255;\n const green = color.green / 255;\n const blue = color.blue / 255;\n const max = Math.max(red, green, blue);\n const min = Math.min(red, green, blue);\n const delta = max - min;\n const lightness = (max + min) / 2;\n let hue = 0;\n let saturation = 0;\n\n if (delta !== 0) {\n saturation = delta / (1 - Math.abs(2 * lightness - 1));\n\n if (max === red) {\n hue = ((green - blue) / delta) % 6;\n }\n\n if (max === green) {\n hue = (blue - red) / delta + 2;\n }\n\n if (max === blue) {\n hue = (red - green) / delta + 4;\n }\n\n hue = Math.round(hue * 60);\n if (hue < 0) {\n hue += 360;\n }\n }\n\n return {\n hue,\n saturation: Math.round(saturation * 100),\n lightness: Math.round(lightness * 100),\n };\n }\n\n private _hslToHex(color: { hue: number; saturation: number; lightness: number }): string {\n const saturation = color.saturation / 100;\n const lightness = color.lightness / 100;\n const chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n const hueSection = color.hue / 60;\n const x = chroma * (1 - Math.abs((hueSection % 2) - 1));\n const match = lightness - chroma / 2;\n let red = chroma;\n let green = 0;\n let blue = x;\n\n if (hueSection < 1) {\n red = chroma;\n green = x;\n blue = 0;\n }\n\n if (hueSection >= 1 && hueSection < 2) {\n red = x;\n green = chroma;\n blue = 0;\n }\n\n if (hueSection >= 2 && hueSection < 3) {\n red = 0;\n green = chroma;\n blue = x;\n }\n\n if (hueSection >= 3 && hueSection < 4) {\n red = 0;\n green = x;\n blue = chroma;\n }\n\n if (hueSection >= 4 && hueSection < 5) {\n red = x;\n green = 0;\n blue = chroma;\n }\n\n return [red, green, blue]\n .map(channel =>\n Math.round((channel + match) * 255)\n .toString(16)\n .padStart(2, '0')\n )\n .join('')\n .toUpperCase()\n .replace(/^/, '#');\n }\n\n private _hsvToHex(color: { hue: number; saturation: number; value: number }): string {\n const saturation = color.saturation / 100;\n const value = color.value / 100;\n const chroma = value * saturation;\n const hueSection = color.hue / 60;\n const x = chroma * (1 - Math.abs((hueSection % 2) - 1));\n const match = value - chroma;\n let red = chroma;\n let green = 0;\n let blue = x;\n\n if (hueSection < 1) {\n red = chroma;\n green = x;\n blue = 0;\n }\n\n if (hueSection >= 1 && hueSection < 2) {\n red = x;\n green = chroma;\n blue = 0;\n }\n\n if (hueSection >= 2 && hueSection < 3) {\n red = 0;\n green = chroma;\n blue = x;\n }\n\n if (hueSection >= 3 && hueSection < 4) {\n red = 0;\n green = x;\n blue = chroma;\n }\n\n if (hueSection >= 4 && hueSection < 5) {\n red = x;\n green = 0;\n blue = chroma;\n }\n\n return [red, green, blue]\n .map(channel =>\n Math.round((channel + match) * 255)\n .toString(16)\n .padStart(2, '0')\n )\n .join('')\n .toUpperCase()\n .replace(/^/, '#');\n }\n\n private _generateColorPalette(count: number): ColorInput[] {\n const safeCount = Math.max(1, Math.floor(count));\n const basePalette = [...DEFAULT_COLORS];\n\n if (safeCount <= basePalette.length) {\n if (safeCount === basePalette.length) {\n return basePalette;\n }\n\n const step = basePalette.length / safeCount;\n return Array.from({ length: safeCount }, (_, index) => basePalette[Math.floor(index * step)]);\n }\n\n const generated = [...basePalette];\n const clamp = (value: number, min: number, max: number): number => Math.min(max, Math.max(min, value));\n\n for (let index = basePalette.length; index < safeCount; index++) {\n const phase = index - basePalette.length;\n const hue = Math.round((phase * 137.508 + 17) % 360);\n const saturation = clamp(Math.round(70 + 10 * Math.sin(phase * 0.7)), 58, 84);\n const lightness = clamp(Math.round(55 + 8 * Math.cos(phase * 0.55)), 44, 66);\n\n generated.push({ h: hue, s: saturation, l: lightness });\n }\n\n return generated.slice(0, safeCount);\n }\n}\n","<div class=\"z-input-wrapper flex w-full flex-col gap-2\">\n @if (zLabel()) {\n <label [for]=\"inputId\" class=\"text-xs leading-none font-medium\" [class]=\"zLabelClass()\">\n {{ zLabel() | translate }}\n @if (zRequired()) {\n <span class=\"text-destructive! ml-0.5\">*</span>\n }\n </label>\n }\n\n @if (typeConfig().isTextarea) {\n <div class=\"relative w-full\" [class]=\"textareaClasses()\" [class.overflow-auto]=\"zAutoSizeContent()\">\n <textarea\n #inputEl\n [id]=\"inputId\"\n [placeholder]=\"zPlaceholder() | translate\"\n class=\"z-input-native placeholder:text-muted-foreground m-0 block min-h-14 w-full resize-none bg-transparent p-2 text-sm outline-none\"\n [class.resize-y]=\"zResize() && !isDisabled() && !zReadonly()\"\n [class.field-sizing-content]=\"zAutoSizeContent()\"\n [disabled]=\"isDisabled()\"\n [readonly]=\"zReadonly()\"\n [autocomplete]=\"zAutoComplete()\"\n [rows]=\"zRows()\"\n [attr.maxlength]=\"zMaxLength()\"\n [ngModel]=\"displayValue()\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (keydown)=\"onKeydown($event)\"></textarea>\n @if (zMaxLength()) {\n <div class=\"flex justify-end pr-1 pb-1\">\n <span class=\"text-muted-foreground text-xs\">{{ displayValue().length }} / {{ zMaxLength() }}</span>\n </div>\n }\n @if (zResize() && !isDisabled() && !zReadonly() && !zMaxLength()) {\n <svg\n class=\"text-muted-foreground pointer-events-none absolute right-0.5 bottom-0.5 opacity-40\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\">\n <path d=\"M10 2L2 10\" />\n <path d=\"M10 6L6 10\" />\n </svg>\n }\n </div>\n } @else {\n <div class=\"relative w-full\">\n <div\n class=\"z-input-container flex w-full items-center\"\n [class]=\"inputClasses()\"\n z-tooltip\n [zContent]=\"displayValue()\"\n [zTooltipDisabled]=\"typeConfig().isColor || uiState().isFocused || uiState().showSuggestPopover || !hasValue()\"\n [zTriggerElement]=\"inputEl\">\n <!-- Color picker square (prefix for color type) -->\n @if (typeConfig().isColor) {\n <div class=\"z-[10] shrink-0\">\n @if (isBlossomColorMode()) {\n <blossom-color-picker\n class=\"z-input-blossom flex items-center justify-center [&>div:first-child]:flex\"\n [style.--z-bcp-core-size.px]=\"blossomOptions().coreSize\"\n [style.--z-bcp-core-border-color]=\"blossomCoreBorderColor()\"\n [value]=\"blossomColor()\"\n [defaultValue]=\"blossomOptions().defaultValue\"\n [colors]=\"blossomColors()\"\n [disabled]=\"isDisabled() || zReadonly()\"\n [openOnHover]=\"blossomOptions().openOnHover\"\n [initialExpanded]=\"blossomOptions().initialExpanded\"\n [animationDuration]=\"blossomOptions().animationDuration\"\n [showAlphaSlider]=\"blossomOptions().showAlphaSlider\"\n [coreSize]=\"blossomOptions().coreSize\"\n [petalSize]=\"blossomOptions().petalSize\"\n [showCoreColor]=\"blossomOptions().showCoreColor\"\n [sliderPosition]=\"blossomOptions().sliderPosition\"\n [adaptivePositioning]=\"blossomOptions().adaptivePositioning\"\n (colorChange)=\"onBlossomColorChange($event)\"\n (colorCollapse)=\"onBlossomColorCollapse($event)\" />\n } @else {\n <button\n type=\"button\"\n class=\"z-input-color-trigger\"\n z-popover\n [zPopoverContent]=\"colorPickerPopover\"\n zTrigger=\"click\"\n zPosition=\"bottom-left\"\n zClass=\"z-input-color-picker-popover\"\n [zOffset]=\"8\"\n [zPopoverWidth]=\"330\"\n [zDisabled]=\"isDisabled() || zReadonly()\"\n [style.--z-bcp-core-size.px]=\"blossomOptions().coreSize\"\n [style.background]=\"normalizedColorValue()\"\n (zControl)=\"onColorPickerControl($event)\"\n (zShow)=\"onColorPickerOpen()\"\n (mousedown)=\"$event.preventDefault()\"\n [attr.aria-label]=\"'Color picker'\"></button>\n }\n </div>\n }\n\n @if (slotConfig().hasPrefix && !typeConfig().isColor) {\n <div class=\"text-muted-foreground left-3 flex items-center justify-center\">\n @if (zSearch()) {\n <z-icon zType=\"lucideSearch\" zSize=\"16\" />\n } @else if (slotConfig().isPrefixTemplate) {\n <ng-container *ngTemplateOutlet=\"$any(zPrefix())\" />\n } @else {\n {{ zPrefix() }}\n }\n </div>\n }\n\n <input\n #inputEl\n [id]=\"inputId\"\n [type]=\"typeConfig().isColor ? 'text' : maskConfig().effectiveType\"\n [placeholder]=\"zPlaceholder() | translate\"\n class=\"z-input-native placeholder:text-muted-foreground h-full min-w-0 flex-1 bg-transparent text-sm outline-none\"\n [disabled]=\"isDisabled()\"\n [readonly]=\"typeConfig().isColor ? true : zReadonly()\"\n [attr.min]=\"zMin()\"\n [attr.max]=\"zMax()\"\n [attr.step]=\"zStep()\"\n [autocomplete]=\"zAutoComplete()\"\n [ngModel]=\"typeConfig().isColor ? normalizedColorValue() : displayValue()\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (keydown)=\"onKeydown($event); onSuggestKeydown($event)\"\n [mask]=\"maskConfig().effectiveMask\"\n [thousandSeparator]=\"zThousandSeparator()\"\n [decimalMarker]=\"maskConfig().effectiveDecimalMarker\"\n [allowNegativeNumbers]=\"zAllowNegative()\"\n [dropSpecialCharacters]=\"false\" />\n\n @if (slotConfig().hasSuffix && !typeConfig().isColor) {\n <div class=\"text-muted-foreground flex items-center justify-center text-sm\">\n @if (slotConfig().isSuffixTemplate) {\n <ng-container *ngTemplateOutlet=\"$any(zSuffix())\" />\n } @else {\n {{ zSuffix() }}\n }\n </div>\n }\n\n <!-- Async validation loading indicator -->\n @if (isValidating()) {\n <div class=\"text-muted-foreground flex items-center justify-center\">\n <z-icon zType=\"lucideLoader2\" zSize=\"16\" class=\"animate-spin\" />\n </div>\n }\n\n <!-- Clear button -->\n @if (showClearButton()) {\n <button\n type=\"button\"\n tabindex=\"-1\"\n class=\"text-muted-foreground hover:text-foreground flex size-5 shrink-0 cursor-pointer items-center justify-center rounded-sm transition-colors\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"clearValue($event)\">\n <z-icon zType=\"lucideX\" zSize=\"14\" />\n </button>\n }\n\n <!-- Copy button for color type -->\n @if (typeConfig().isColor) {\n <input\n #nativeColorInputEl\n type=\"color\"\n class=\"z-input-native-color\"\n [ngModel]=\"normalizedColorValue()\"\n (ngModelChange)=\"onColorPickerHexChange($event)\"\n tabindex=\"-1\"\n aria-hidden=\"true\" />\n\n <button\n type=\"button\"\n tabindex=\"-1\"\n class=\"text-muted-foreground hover:text-foreground hover:bg-accent flex size-6 shrink-0 cursor-pointer items-center justify-center rounded-sm transition-all\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"copyColorToClipboard()\">\n <span class=\"relative flex size-4 items-center justify-center\">\n <z-icon\n zType=\"lucideCopy\"\n [class]=\"uiState().colorCopied ? 'scale-0 rotate-90 opacity-0' : 'scale-100 rotate-0 opacity-100'\"\n class=\"absolute transition-all duration-200 ease-out\"\n zSize=\"14\" />\n <z-icon\n zType=\"lucideCheck\"\n [class]=\"\n uiState().colorCopied ? 'text-success scale-100 rotate-0 opacity-100' : 'scale-0 -rotate-90 opacity-0'\n \"\n class=\"absolute transition-all duration-200 ease-out\"\n zSize=\"14\" />\n </span>\n </button>\n }\n\n @if (showArrows() && !isDisabled()) {\n <div class=\"-mr-1 flex h-[calc(100%-0.25rem)] shrink-0 flex-col\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n class=\"text-muted-foreground hover:bg-accent hover:text-foreground flex w-5 flex-1 cursor-pointer items-center justify-center rounded-sm transition-all\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"onArrowClick($event, 'up')\">\n <z-icon zType=\"lucideChevronUp\" zSize=\"12\" />\n </button>\n <button\n type=\"button\"\n tabindex=\"-1\"\n class=\"text-muted-foreground hover:bg-accent hover:text-foreground flex w-5 flex-1 cursor-pointer items-center justify-center rounded-sm transition-all\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"onArrowClick($event, 'down')\">\n <z-icon zType=\"lucideChevronDown\" zSize=\"12\" />\n </button>\n </div>\n }\n\n @if (typeConfig().isPassword && zShowPasswordToggle()) {\n <button\n type=\"button\"\n tabindex=\"-1\"\n class=\"text-muted-foreground hover:text-foreground flex size-6 shrink-0 cursor-pointer items-center justify-center rounded-sm transition-all\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"togglePasswordVisibility()\">\n @if (uiState().passwordVisible) {\n <z-icon zType=\"lucideEyeOff\" zSize=\"16\" />\n } @else {\n <z-icon zType=\"lucideEye\" zSize=\"16\" />\n }\n </button>\n }\n </div>\n\n @if (hasAutoSuggest() && uiState().showSuggestPopover && suggestHistory().length > 0) {\n <div\n class=\"bg-popover text-popover-foreground border-border z-animate-in z-fade-in z-duration-200 z-slide-in-from-top-4 absolute top-full left-0 z-50 mt-1 flex w-full flex-col gap-[0.1875rem] rounded-sm border p-1 shadow-md\">\n @for (item of filteredSuggestHistory(); track item; let i = $index) {\n <button\n type=\"button\"\n class=\"hover:bg-primary/10 hover:text-foreground flex w-full cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm transition-colors\"\n [class.bg-primary/15]=\"suggestActiveIndex() === i\"\n [class.text-primary]=\"suggestActiveIndex() === i\"\n (mousedown)=\"selectSuggestItem(item)\">\n <z-icon zType=\"lucideClock\" zSize=\"14\" class=\"text-muted-foreground shrink-0\" />\n <span class=\"truncate\">{{ item }}</span>\n </button>\n }\n </div>\n }\n </div>\n }\n\n <ng-template #colorPickerPopover>\n <div class=\"z-input-color-picker\" [style.--z-input-color-picker-current]=\"normalizedColorValue()\">\n <div\n class=\"z-input-color-picker-plane\"\n [style]=\"colorPickerSvStyle()\"\n (pointerdown)=\"onColorPickerSvPointerDown($event)\"\n (pointermove)=\"onColorPickerSvPointerMove($event)\">\n <span class=\"z-input-color-picker-cursor\" [style]=\"colorPickerCursorStyle()\"></span>\n </div>\n\n <div class=\"z-input-color-picker-controls\">\n <button\n type=\"button\"\n z-button\n zType=\"outline\"\n zSize=\"sm\"\n aria-label=\"Pick color\"\n zTypeIcon=\"lucidePencil\"\n (click)=\"openNativeColorPicker()\"></button>\n <div class=\"z-input-color-picker-sliders\">\n <input\n type=\"range\"\n min=\"0\"\n max=\"360\"\n [ngModel]=\"colorPickerHsv().hue\"\n class=\"z-input-color-picker-hue\"\n (input)=\"onColorPickerHueInput($event)\" />\n <input\n type=\"range\"\n min=\"0\"\n max=\"100\"\n [ngModel]=\"colorPickerAlpha()\"\n class=\"z-input-color-picker-alpha\"\n (input)=\"onColorPickerAlphaInput($event)\" />\n </div>\n </div>\n\n <div class=\"flex flex-col gap-2\">\n <div class=\"z-input-color-picker-fields\">\n <z-select\n zSize=\"sm\"\n class=\"z-input-color-picker-format\"\n [zOptions]=\"colorPickerFormatOptions\"\n [zShowSearch]=\"false\"\n [zTranslateLabels]=\"false\"\n [ngModel]=\"colorPickerFormat()\"\n (ngModelChange)=\"onColorPickerFormatChange($event)\" />\n <div class=\"z-input-color-picker-value-group\">\n @switch (colorPickerFormat()) {\n @case ('rgb') {\n <div class=\"z-input-color-picker-channel-group\">\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"R\"\n [zMin]=\"0\"\n [zMax]=\"255\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerRgbValue().red\"\n (ngModelChange)=\"onColorPickerRgbChange('red', $event)\" />\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"G\"\n [zMin]=\"0\"\n [zMax]=\"255\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerRgbValue().green\"\n (ngModelChange)=\"onColorPickerRgbChange('green', $event)\" />\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"B\"\n [zMin]=\"0\"\n [zMax]=\"255\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerRgbValue().blue\"\n (ngModelChange)=\"onColorPickerRgbChange('blue', $event)\" />\n </div>\n }\n @case ('hsl') {\n <div class=\"z-input-color-picker-channel-group\">\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"H\"\n [zMin]=\"0\"\n [zMax]=\"360\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerHslValue().hue\"\n (ngModelChange)=\"onColorPickerHslChange('hue', $event)\" />\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"S\"\n [zMin]=\"0\"\n [zMax]=\"100\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerHslValue().saturation\"\n (ngModelChange)=\"onColorPickerHslChange('saturation', $event)\" />\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"L\"\n [zMin]=\"0\"\n [zMax]=\"100\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerHslValue().lightness\"\n (ngModelChange)=\"onColorPickerHslChange('lightness', $event)\" />\n </div>\n }\n @case ('hsv') {\n <div class=\"z-input-color-picker-channel-group\">\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"H\"\n [zMin]=\"0\"\n [zMax]=\"360\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerHsv().hue\"\n (ngModelChange)=\"onColorPickerHsvValueChange('hue', $event)\" />\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"S\"\n [zMin]=\"0\"\n [zMax]=\"100\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerHsv().saturation\"\n (ngModelChange)=\"onColorPickerHsvValueChange('saturation', $event)\" />\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"V\"\n [zMin]=\"0\"\n [zMax]=\"100\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerHsv().value\"\n (ngModelChange)=\"onColorPickerHsvValueChange('value', $event)\" />\n </div>\n }\n @default {\n <z-input\n zSize=\"sm\"\n class=\"z-input-color-picker-hex-input\"\n [ngModel]=\"normalizedColorValue()\"\n (ngModelChange)=\"onColorPickerHexChange($event)\" />\n }\n }\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n class=\"z-input-color-picker-alpha-input\"\n [zMin]=\"0\"\n [zMax]=\"100\"\n zSuffix=\"%\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerAlpha()\"\n (ngModelChange)=\"onColorPickerAlphaValueChange($event)\" />\n </div>\n </div>\n\n <div class=\"z-input-color-picker-saved-head\">\n <span>{{ 'i18n_z_ui_input_saved_colors' | translate }}</span>\n <button type=\"button\" z-button zType=\"ghost\" zSize=\"sm\" (click)=\"addCurrentColorToSaved()\">\n {{ 'i18n_z_ui_input_add_color' | translate }}\n </button>\n </div>\n <div class=\"z-input-color-picker-swatches\">\n @for (swatch of colorPickerSavedSwatches(); track swatch.color) {\n <button\n type=\"button\"\n class=\"z-input-color-picker-swatch rounded-[3px]!\"\n [class.z-input-color-picker-swatch-active]=\"swatch.color === normalizedColorValue()\"\n [class.z-input-color-picker-swatch-light]=\"swatch.isLight\"\n [style.--z-input-color-picker-swatch-color]=\"swatch.color\"\n [attr.aria-label]=\"swatch.color\"\n (click)=\"selectSavedColor(swatch.color)\"></button>\n }\n </div>\n </div>\n </div>\n </ng-template>\n\n @if (hasError()) {\n <p class=\"text-destructive animate-in fade-in slide-in-from-top-1 m-0 text-xs duration-200\">\n {{ errorMessage() }}\n </p>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AASA,MAAM,cAAc,GAAyB;AAC3C,IAAA,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,0BAA0B,EAAE,CAAC,CAAC;IACzD,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,4BAA4B,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAC3G,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,4BAA4B,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AAC3G,IAAA,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,uBAAuB,EAAE,CAAC,CAAC;AACnD,IAAA,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,yBAAyB,EAAE,CAAC,CAAC;CACxD;AAEM,MAAM,mBAAmB,GAAG,CAAC,MAAwB,KAC1D,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,yBAAyB,EAAE;;AClBzF,MAAM,cAAc,GAAG,GAAG,CAC/B;IACE,+DAA+D;IAC/D,kFAAkF;IAClF,oCAAoC;IACpC,sFAAsF;IACtF,cAAc;IACd,SAAS;CACV,EACD;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE;AACL,YAAA,EAAE,EAAE,wBAAwB;AAC5B,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,EAAE,EAAE,2BAA2B;AAChC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,4EAA4E;AACrF,YAAA,KAAK,EACH,sHAAsH;AACxH,YAAA,QAAQ,EAAE,+DAA+D;AACzE,YAAA,QAAQ,EAAE,mDAAmD;AAC9D,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA;AAKI,MAAM,iBAAiB,GAAG,GAAG,CAClC;IACE,yFAAyF;IACzF,oCAAoC;IACpC,cAAc;IACd,SAAS;CACV,EACD;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,4EAA4E;AACrF,YAAA,KAAK,EACH,sHAAsH;AACxH,YAAA,QAAQ,EAAE,+DAA+D;AACzE,YAAA,QAAQ,EAAE,mDAAmD;AAC9D,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA;;MC8CU,eAAe,CAAA;AACT,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACrC,IAAA,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAErC,IAAA,QAAQ,GAAG,SAAS,CAA+B,SAAS,oDAAC;AAC7D,IAAA,mBAAmB,GAAG,SAAS,CAA+B,oBAAoB,+DAAC;IAEtF,SAAS,GAAG,MAAM,EAA0B;IAC5C,SAAS,GAAG,MAAM,EAA0B;IAC5C,OAAO,GAAG,MAAM,EAAc;IAC9B,QAAQ,GAAG,MAAM,EAAc;IAC/B,UAAU,GAAG,MAAM,EAAiB;IACpC,QAAQ,GAAG,MAAM,EAA0B;IAC3C,gBAAgB,GAAG,MAAM,EAA2B;IACpD,QAAQ,GAAG,MAAM,EAAiB;IAClC,MAAM,GAAG,MAAM,EAAU;AAEzB,IAAA,KAAK,GAAG,KAAK,CAAa,EAAE,iDAAC;AAC7B,IAAA,KAAK,GAAG,KAAK,CAAa,MAAM,iDAAC;AACjC,IAAA,KAAK,GAAG,KAAK,CAAa,SAAS,iDAAC;AACpC,IAAA,MAAM,GAAG,KAAK,CAAc,MAAM,kDAAC;AACnC,IAAA,MAAM,GAAG,KAAK,CAAS,EAAE,kDAAC;AAC1B,IAAA,WAAW,GAAG,KAAK,CAAS,EAAE,uDAAC;AAC/B,IAAA,YAAY,GAAG,KAAK,CAAS,EAAE,wDAAC;IAChC,SAAS,GAAG,KAAK,CAAC,KAAK,sDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;IACnD,SAAS,GAAG,KAAK,CAAC,KAAK,sDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;IACnD,SAAS,GAAG,KAAK,CAAC,KAAK,sDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AACnD,IAAA,OAAO,GAAG,KAAK,CAAgC,EAAE,mDAAC;AAClD,IAAA,OAAO,GAAG,KAAK,CAAgC,EAAE,mDAAC;AAElD,IAAA,IAAI,GAAG,KAAK,CAAqB,SAAS,gDAAC;AAC3C,IAAA,IAAI,GAAG,KAAK,CAAqB,SAAS,gDAAC;AAC3C,IAAA,KAAK,GAAG,KAAK,CAAS,CAAC,iDAAC;IACxB,WAAW,GAAG,KAAK,CAAC,IAAI,wDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AAEpD,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,iDAAC;AACzB,IAAA,cAAc,GAAG,KAAK,CAAqB,SAAS,0DAAC;IACrD,cAAc,GAAG,KAAK,CAAC,KAAK,2DAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AACxD,IAAA,kBAAkB,GAAG,KAAK,CAAS,EAAE,8DAAC;AACtC,IAAA,cAAc,GAAG,KAAK,CAAyB,GAAG,0DAAC;AAEnD,IAAA,WAAW,GAAG,KAAK,CAAoB,EAAE,uDAAC;AAC1C,IAAA,gBAAgB,GAAG,KAAK,CAAoB,EAAE,4DAAC;AAC/C,IAAA,cAAc,GAAG,KAAK,CAAS,GAAG,0DAAC;AACnC,IAAA,gBAAgB,GAAG,KAAK,CAAmB,QAAQ,4DAAC;IACpD,mBAAmB,GAAG,KAAK,CAAC,IAAI,gEAAI,SAAS,EAAE,UAAU,EAAA,CAAG;IAE5D,OAAO,GAAG,KAAK,CAAC,KAAK,oDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AACjD,IAAA,SAAS,GAAG,KAAK,CAAS,GAAG,qDAAC;IAC9B,UAAU,GAAG,KAAK,CAAC,KAAK,uDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AACpD,IAAA,aAAa,GAAG,KAAK,CAAS,KAAK,yDAAC;IACpC,WAAW,GAAG,KAAK,CAAC,KAAK,wDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;IAErD,gBAAgB,GAAG,KAAK,CAAC,KAAK,6DAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AAC1D,IAAA,KAAK,GAAG,KAAK,CAAS,CAAC,iDAAC;IACxB,OAAO,GAAG,KAAK,CAAC,IAAI,oDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AAChD,IAAA,UAAU,GAAG,KAAK,CAAqB,SAAS,sDAAC;AACjD,IAAA,YAAY,GAAG,KAAK,CAAqB,SAAS,wDAAC;AACnD,IAAA,YAAY,GAAG,KAAK,CAAoB,EAAE,wDAAC;AAE1C,IAAA,MAAM,GAAG,MAAM,CAAyB,IAAI,kDAAC;AAC7C,IAAA,SAAS,GAAG,MAAM,CAAC,KAAK,qDAAC;AACzB,IAAA,YAAY,GAAG,MAAM,CAAyB,IAAI,wDAAC;AACnD,IAAA,iBAAiB,GAAG,MAAM,CAAC,CAAC,6DAAC;AAC7B,IAAA,UAAU,GAAG,MAAM,CAAC,KAAK,sDAAC;AAC1B,IAAA,YAAY,GAAG,MAAM,CAAsB,IAAI,GAAG,EAAE,wDAAC;AACrD,IAAA,YAAY,GAAG,MAAM,CAAgB,IAAI,wDAAC;IAC1C,aAAa,GAAG,MAAM,CAA0B;AAC/D,QAAA,GAAG,EAAE,GAAG;AACR,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,KAAK,EAAE,GAAG;AACV,QAAA,KAAK,EAAE,OAAO;AACf,KAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,eAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEe,IAAA,eAAe,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,2DAAC;AACjE,IAAA,eAAe,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,2DAAC;AAC3D,IAAA,eAAe,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,2DAAC;AACrE,IAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,6DAAC;AAC/B,IAAA,kBAAkB,GAAG,MAAM,CAAoB,KAAK,8DAAC;AACrD,IAAA,uBAAuB,GAAG,MAAM,CAAW,EAAE,mEAAC;AAE5C,IAAA,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;AAC1B,IAAA,cAAc,GAAG,MAAM,CAAW,EAAE,0DAAC;AACrC,IAAA,kBAAkB,GAAG,MAAM,CAAC,CAAC,CAAC,8DAAC;AAC/B,IAAA,YAAY,GAAG,MAAM,CAAC,KAAK,wDAAC;IAE5B,OAAO,GAAG,MAAM,CAAC;AAClC,QAAA,eAAe,EAAE,KAAK;AACtB,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,kBAAkB,EAAE,KAAK;AACzB,QAAA,WAAW,EAAE,KAAK;AACnB,KAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEiB,IAAA,UAAU,GAAG,QAAQ,CAAmB,MAAK;AAC9D,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;QACzB,OAAO;YACL,UAAU,EAAE,IAAI,KAAK,UAAU;YAC/B,OAAO,EAAE,IAAI,KAAK,OAAO;YACzB,UAAU,EAAE,IAAI,KAAK,UAAU;YAC/B,QAAQ,EAAE,IAAI,KAAK,QAAQ;SAC5B;AACH,IAAA,CAAC,sDAAC;AAEiB,IAAA,UAAU,GAAG,QAAQ,CAAmB,MAAK;AAC9D,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE;AAC7B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE;QAC7B,OAAO;YACL,gBAAgB,EAAE,MAAM,YAAY,WAAW;YAC/C,gBAAgB,EAAE,MAAM,YAAY,WAAW;YAC/C,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM;YACrC,SAAS,EAAE,CAAC,CAAC,MAAM;SACpB;AACH,IAAA,CAAC,sDAAC;AAEiB,IAAA,UAAU,GAAG,QAAQ,CAAmB,MAAK;AAC9D,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;AAC3D,QAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,0BAA0B,EAAE;AAChE,QAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,sBAAsB,EAAE;AACjE,IAAA,CAAC,sDAAC;AAEiB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACzB,QAAA,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC;AAC7D,IAAA,CAAC,wDAAC;AAEiB,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,gEAAC;AAC7E,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,IAAI,SAAS,qDAAC;AACjE,IAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,KAAK,SAAS,8DAAC;AACnE,IAAA,sBAAsB,GAAG,QAAQ,CAAC,MAAK;AACxD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;QACzC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE;AAC9C,YAAA,OAAO,eAAe;QACxB;AAEA,QAAA,OAAO,KAAK;AACd,IAAA,CAAC,kEAAC;AAEiB,IAAA,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;AAC9C,IAAA,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;AAClD,IAAA,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;AACvD,IAAA,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;AACvD,IAAA,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE;AACtD,IAAA,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;AACxD,IAAA,wBAAwB,GAAuC;AAChF,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAC9B,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAC9B,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAC9B,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;KAC/B;AAEkB,IAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAA,IAAA,EAAO,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAA,UAAA,CAAY,+DAAC;AAClF,IAAA,kBAAkB,GAAG,QAAQ,CAAC,OAAO;AACtD,QAAA,UAAU,EAAE,CAAA,4EAAA,EAA+E,IAAI,CAAC,mBAAmB,EAAE,CAAA,CAAA,CAAG;AACzH,KAAA,CAAC,8DAAC;AAEgB,IAAA,sBAAsB,GAAG,QAAQ,CAAC,MAAK;AACxD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE;QACjC,OAAO;AACL,YAAA,IAAI,EAAE,CAAA,EAAG,GAAG,CAAC,UAAU,CAAA,CAAA,CAAG;AAC1B,YAAA,GAAG,EAAE,CAAA,EAAG,GAAG,GAAG,GAAG,CAAC,KAAK,CAAA,CAAA,CAAG;SAC3B;AACH,IAAA,CAAC,kEAAC;AAEiB,IAAA,6BAA6B,GAAG,QAAQ,CAAC,MAAK;QAC/D,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE;QAC3C,IAAI,WAAW,EAAE;AACf,YAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC;QAC9C;QAEA,OAAO,IAAI,CAAC,mBAAmB,CAAC;YAC9B,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;AACV,SAAA,CAAC;AACJ,IAAA,CAAC,yEAAC;AAEiB,IAAA,sBAAsB,GAAG,QAAQ,CAAC,MAAK;AACxD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,EAAE;AACnD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,6BAA6B,EAAE;AAC3D,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACnF,IAAA,CAAC,kEAAC;AAEiB,IAAA,wBAAwB,GAAG,QAAQ,CAAC,MACrD,IAAI,CAAC,sBAAsB,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK;QAC1C,KAAK;AACL,QAAA,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;KACtC,CAAC,CAAC,oEACJ;AAEkB,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACjD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;AACzB,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,YAAA,OAAO,EAAE;QACX;AACA,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,YAAA,OAAO,EAAE;QACX;AACA,QAAA,OAAO,EAAE;AACX,IAAA,CAAC,2DAAC;AAEiB,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AAChD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE;QAClC,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,YAAY;AACjC,YAAA,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK;AACxC,YAAA,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,KAAK;AAChD,YAAA,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,GAAG;AAClD,YAAA,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;AAC/C,YAAA,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI;AAC3C,YAAA,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI,IAAI;AACvD,YAAA,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,QAAQ;YACjD,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;AACnD,YAAA,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;SAClC;AACH,IAAA,CAAC,0DAAC;AAEiB,IAAA,aAAa,GAAG,QAAQ,CAA2B,MAAK;QACzE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,IAAI,EAAE;AACrD,QAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,YAAA,OAAO,YAAY;QACrB;QAEA,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,IAAI,EAAE;AAC7C,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE;AACvB,YAAA,OAAO,SAAS;QAClB;AAEA,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;AAC1C,IAAA,CAAC,yDAAC;AAEiB,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAC1C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;QAC3B,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;AAC9D,IAAA,CAAC,oDAAC;AAEiB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,sDAAC;AACjE,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,sDAAC;AAC7E,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AAChD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE;QAC/B,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;AAC5C,IAAA,CAAC,0DAAC;AAEiB,IAAA,eAAe,GAAG,QAAQ,CAC3C,MAAM,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CACvF;AAEkB,IAAA,aAAa,GAAG,QAAQ,CAAe,MAAK;AAC7D,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACrB,YAAA,OAAO,UAAU;QACnB;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACpB,YAAA,OAAO,UAAU;QACnB;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,YAAA,OAAO,OAAO;QAChB;AACA,QAAA,OAAO,SAAS;AAClB,IAAA,CAAC,yDAAC;AAEiB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;QAC3B,OAAO,KAAK,KAAK;AACf,cAAE;cACA,KAAK,KAAK;AACV,kBAAE;kBACA,EAAE;AACV,IAAA,CAAC,sDAAC;AAEiB,IAAA,YAAY,GAAG,QAAQ,CAAC,MACzC,aAAa,CACX,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,EACtE,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CAAC,KAAK,EAAE,CACb,wDACF;AAEkB,IAAA,eAAe,GAAG,QAAQ,CAAC,MAC5C,aAAa,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,2DACrG;AAEkB,IAAA,sBAAsB,GAAG,QAAQ,CAAC,MAAK;AACxD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE;QACrC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;AAC5C,aAAA,WAAW;AACX,aAAA,IAAI,EAAE;QAET,IAAI,CAAC,YAAY,EAAE;AACjB,YAAA,OAAO,OAAO;QAChB;QAEA,MAAM,QAAQ,GAAa,EAAE;QAC7B,MAAM,WAAW,GAAa,EAAE;AAEhC,QAAA,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;AAC1B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,QAAQ,GAAG,WAAW;AACjF,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QACnB;AAEA,QAAA,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,WAAW,CAAC;AACtC,IAAA,CAAC,kEAAC;AAEe,IAAA,qBAAqB,GAAG,QAAQ,CAAC,MAAK;AACrD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE;QACnC,IAAI,CAAC,iBAAiB,EAAE;AAExB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACrB,YAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO;QACvD;QAEA,IAAI,OAAO,EAAE;YACX,OAAO,OAAO,CAAC,KAAK;QACtB;AAEA,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO;AACvD,IAAA,CAAC,iEAAC;AAEiB,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAC1C,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACvB,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE;QACvC,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;AACxD,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAChD,QAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE;QACnC,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,KAAK;QACd;QAEA,OAAO,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,qBAAqB,EAAE;AACxD,IAAA,CAAC,oDAAC;AAEiB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE;QACvC,IAAI,WAAW,EAAE;AACf,YAAA,OAAO,WAAW;QACpB;AAEA,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE;AACvC,QAAA,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE;AACxB,YAAA,OAAO,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAe,CAAC;QACtF;AAEA,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAChD,QAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1D;AAEA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE;AACnC,QAAA,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;QAC9B,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE;AACrC,QAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAClC,YAAA,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAC3B,OAAO,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5D;QACF;AAEA,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;AAC9B,QAAA,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC;AAC7C,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC;AAClE,IAAA,CAAC,wDAAC;AAEM,IAAA,2BAA2B,CAAC,OAAe,EAAA;AACjD,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;IAC1C;AAEiB,IAAA,cAAc,GAAG,IAAI,OAAO,EAA0B;AACtD,IAAA,cAAc,GAAG,IAAI,OAAO,EAA0B;AACtD,IAAA,uBAAuB,GAAG,IAAI,OAAO,EAA0B;AAC/D,IAAA,mBAAmB,GAAG,IAAI,OAAO,EAAQ;IAClD,+BAA+B,GAA2B,IAAI;AAC9D,IAAA,SAAS,GAA4C,MAAM,KAAK,CAAC;AACjE,IAAA,UAAU,GAAe,MAAM,KAAK,CAAC;IACrC,UAAU,GAAqB,IAAI;IACnC,0BAA0B,GAA2B,IAAI;IAEjE,QAAQ,GAAA;QACN,IAAI,CAAC,2BAA2B,EAAE;QAElC,cAAc,CAAC,MAAK;AAClB,YAAA,IAAI;AACF,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;gBACrD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,YAAY,OAAO,CAAC;AAEvD,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;AAC5B,oBAAA,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU;AACnC,oBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;AAC9B,oBAAA,KAAK,CACH,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,MAAM,CAAC,KAAK,IAAI,KAAK,YAAY,mBAAmB,IAAI,KAAK,YAAY,kBAAkB,CAAC,CAC7F;AAEA,yBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;yBACzC,SAAS,CAAC,MAAK;AACd,wBAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C,oBAAA,CAAC,CAAC;gBACN;YACF;AAAE,YAAA,MAAM;AACN,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;YACxB;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAC/G,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5B,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAC/G,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5B,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAC/C,QAAA,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG;AAC/C,YAAA,IAAI,CAAC;AACF,iBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;iBACnE,SAAS,CAAC,KAAK,IAAG;AACjB,gBAAA,KAAK,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACtC,YAAA,CAAC,CAAC;QACN;QAEA,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,KAAK,EAAE;YACd,CAAC,EAAE,EAAE,CAAC;QACR;IACF;AAEO,IAAA,UAAU,CAAC,KAA6B,EAAA;AAC7C,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,OAAO,EAAE;YAC5B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC7D;IACF;AAEO,IAAA,gBAAgB,CAAC,EAA2C,EAAA;AACjE,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEO,IAAA,iBAAiB,CAAC,EAAc,EAAA;AACrC,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,QAAQ,EAAE,EAAE,aAAa,CAAC,KAAK,EAAE;IACxC;IAEO,IAAI,GAAA;QACT,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,IAAI,EAAE;IACvC;;IAGO,QAAQ,GAAA;QACb,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,EAAE;AAEjB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE;AACrC,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE;QACzC;AAEA,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;IACxB;IAEO,KAAK,GAAA;AACV,QAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;IACzB;IAEO,KAAK,GAAA;QACV,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAE3B,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAEpB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE;AACxC,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE;QAC3C;IACF;AAEO,IAAA,QAAQ,CAAC,KAA6B,EAAA;AAC3C,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACvB;AAEO,IAAA,eAAe,CAAC,OAAsB,EAAA;AAC3C,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;QAC9B,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE;IACF;IAEO,QAAQ,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE;IACtB;AAEO,IAAA,oBAAoB,CAAC,KAAa,EAAA;AACvC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE;AAC/B,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC;QACF;AAEA,QAAA,MAAM,QAAQ,GAAG,CAAA,YAAA,EAAe,GAAG,EAAE;AACrC,QAAA,IAAI,OAAO,GAAa,aAAa,CAAC,GAAG,CAAW,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE;AAEvE,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE;AACjC,QAAA,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,KAAK,YAAY,CAAC;AACvD,QAAA,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;AAE7B,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/B;AAEA,QAAA,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC;AACpC,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;IAClC;AAEU,IAAA,UAAU,CAAC,KAAiB,EAAA;QACpC,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC;QACA,IAAI,CAAC,KAAK,EAAE;IACd;AAEU,IAAA,OAAO,CAAC,KAAY,EAAA;QAC5B,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,MAA0B;QAC5D,IAAI,KAAK,GAA2B,QAAQ;AAE5C,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,QAAQ,EAAE;AAC7B,YAAA,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;QACvC;AAEA,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAErB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC;IACF;AAEU,IAAA,aAAa,CAAC,QAAgC,EAAA;QACtD,IAAI,KAAK,GAA2B,QAAQ;AAE5C,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,OAAO,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAC5D,YAAA,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;AACzC,YAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;QACpC;AAEA,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAC7D,YAAA,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;QAC1C;AAEA,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAErB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC;AAEA,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,QAAQ,EAAE;AAC9E,YAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1C;AAEA,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE;YACrD,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpC,IAAI,CAAC,mBAAmB,EAAE;gBAC1B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjC;QACF;IACF;AAEU,IAAA,MAAM,CAAC,KAAiB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD;QAEA,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,mBAAmB,EAAE;AAE1B,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,MAAM,EAAE;YAC5E,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClD;QAEA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa;QACzC,IAAI,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;AAC3D,gBAAA,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC;AACrC,gBAAA,MAAM,YAAY,GAAG,EAAE,CAAC,KAAK;AAC7B,gBAAA,EAAE,CAAC,KAAK,GAAG,EAAE;AACb,gBAAA,EAAE,CAAC,KAAK,GAAG,YAAY;YACzB;QACF;IACF;AAEU,IAAA,OAAO,CAAC,KAAiB,EAAA;QACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,mBAAmB,EAAE;AAC1B,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7D,IAAI,CAAC,mBAAmB,EAAE;QAC5B;IACF;AAEU,IAAA,SAAS,CAAC,KAAoB,EAAA;AACtC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAEhD,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnC;AAEA,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,QAAQ,EAAE;YAC7B;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;YAC3B,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YACvB;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YAC7B,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1B;IACF;AAEU,IAAA,gBAAgB,CAAC,KAAoB,EAAA;QAC7C,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;AAClD,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAC7C,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE;AAE7C,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,kBAAkB,IAAI,WAAW,IAAI,CAAC,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE;gBACzF,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAC5C;YACF;AAEA,YAAA,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACvD,IAAI,YAAY,EAAE;AAChB,gBAAA,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC;gBACvC,IAAI,CAAC,mBAAmB,EAAE;gBAC1B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/B,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;gBACnC;YACF;YACA;QACF;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,kBAAkB,EAAE;YAChE;QACF;AAEA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE;AAC7C,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YAC7B,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAC9C,YAAA,MAAM,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC;AACzE,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC;YACrC;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;YAC3B,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAC9C,YAAA,MAAM,QAAQ,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;AACzE,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC;YACrC;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC1B,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjC;IACF;AAEU,IAAA,iBAAiB,CAAC,IAAY,EAAA;AACtC,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,mBAAmB,EAAE;QAC1B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;AAE/B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC;IACF;IAEU,mBAAmB,GAAA;QAC3B,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,EAAE,GAAG,CAAC;IACT;IAEU,YAAY,CAAC,KAAiB,EAAE,SAAwB,EAAA;QAChE,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,MAAM,UAAU,GAAG,SAAS,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE;IACd;IAEU,wBAAwB,GAAA;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAC3E;IAEU,oBAAoB,GAAA;AAC5B,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAC9C,QAAA,KAAK,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAK;YACvD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA,OAAA,EAAU,UAAU,CAAA,CAAE,CAAC;YAClD,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1D,CAAC,EAAE,IAAI,CAAC;AACV,QAAA,CAAC,CAAC;IACJ;AAEU,IAAA,oBAAoB,CAAC,KAA8B,EAAA;AAC3D,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC;IAC/B;AAEU,IAAA,sBAAsB,CAAC,KAA8B,EAAA;AAC7D,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;IACnC;AAEU,IAAA,oBAAoB,CAAC,OAAwB,EAAA;AACrD,QAAA,IAAI,CAAC,0BAA0B,GAAG,OAAO;IAC3C;IAEU,iBAAiB,GAAA;QACzB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACzD,IAAI,CAAC,2BAA2B,EAAE;IACpC;AAEU,IAAA,yBAAyB,CAAC,KAAqD,EAAA;QACvF,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAClC;QACF;AAEA,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC;IACpC;AAEU,IAAA,sBAAsB,CAAC,KAA6B,EAAA;QAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AACtC,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACtE;QACF;QAEA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC,CAAC;IACnF;AAEU,IAAA,6BAA6B,CAAC,KAA6B,EAAA;QACnE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC;AAClC,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACvB;QACF;AAEA,QAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;IAClC;IAEU,sBAAsB,CAAC,OAAiC,EAAE,KAA6B,EAAA;AAC/F,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC;AAC5D,QAAA,IAAI,YAAY,KAAK,IAAI,EAAE;YACzB;QACF;AAEA,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,EAAE;AACtC,QAAA,MAAM,OAAO,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,OAAO,GAAG,YAAY,EAAE;QACnD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5C;IAEU,sBAAsB,CAAC,OAA2C,EAAE,KAA6B,EAAA;AACzG,QAAA,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG;AACzC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC;AAC5D,QAAA,IAAI,YAAY,KAAK,IAAI,EAAE;YACzB;QACF;AAEA,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,EAAE;AACtC,QAAA,MAAM,OAAO,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,OAAO,GAAG,YAAY,EAAE;QACnD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5C;IAEU,2BAA2B,CAAC,OAAuC,EAAE,KAA6B,EAAA;AAC1G,QAAA,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG;AACzC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC;AAC5D,QAAA,IAAI,YAAY,KAAK,IAAI,EAAE;YACzB;QACF;AAEA,QAAA,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,OAAO,GAAG,YAAY,EAAE;AACrE,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5C;AAEU,IAAA,qBAAqB,CAAC,KAAY,EAAA;AAC1C,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAiC;QACrD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAC3D;AAEU,IAAA,uBAAuB,CAAC,KAAY,EAAA;AAC5C,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAiC;QACrD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,GAAG,CAAC;AACzC,QAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;IAClC;AAEU,IAAA,0BAA0B,CAAC,KAAmB,EAAA;AACtD,QAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;AAChC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,aAA4B;AACjD,QAAA,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC;IAC3C;AAEU,IAAA,0BAA0B,CAAC,KAAmB,EAAA;AACtD,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YAClB;QACF;AAEA,QAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;IAClC;AAEU,IAAA,gBAAgB,CAAC,KAAa,EAAA;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;IAC1B;IAEU,sBAAsB,GAAA;AAC9B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;QACzC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACjC;QACF;QAEA,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAClG,QAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC;QAC5C,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,UAAU,CAAC;IAC5D;AAEU,IAAA,MAAM,qBAAqB,GAAA;AACnC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE;QACxC,IAAI,UAAU,EAAE;AACd,YAAA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE;AACtC,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;YACjC;QACF;QAEA,IAAI,CAAC,mBAAmB,EAAE,EAAE,aAAa,CAAC,KAAK,EAAE;IACnD;IAEU,gBAAgB,GAAA;AACxB,QAAA,IAAI,CAAC,0BAA0B,EAAE,KAAK,EAAE;IAC1C;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,YAAA,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE;AACzB,YAAA,QAAQ,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE;AAC/B,YAAA,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE;AACzB,YAAA,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE;AACzB,YAAA,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE;YACvB,QAAQ,EAAE,CAAC,KAA6B,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACjE,eAAe,EAAE,CAAC,OAAsB,KAAK,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAC1E,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;AAC/B,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;AAChC,SAAA,CAAC;IACJ;IAEQ,MAAM,mBAAmB,CAAC,KAA6B,EAAA;AAC7D,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAC/C,QAAA,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC;QACF;QAEA,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;YAChF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;AAChC,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;YAC5B;QACF;QAEA,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,IAAI,CAAC,+BAA+B,GAAG,IAAI,eAAe,EAAE;AAC5D,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,+BAA+B;AAEvD,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,QAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB;AAExC,QAAA,IAAI;YACF,MAAM,kBAAkB,GAAG,eAAe,CAAC,GAAG,CAAC,OAAM,SAAS,KAAG;AAC/D,gBAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,oBAAA,OAAO,IAAI;gBACb;AAEA,gBAAA,IAAI;oBACF,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxC,oBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;AACzB,wBAAA,MAAM,OAAO,GAAG,MAAM,MAAM;AAC5B,wBAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,4BAAA,OAAO,IAAI;wBACb;AAEA,wBAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE;oBAC/B;AAEA,oBAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAC7B,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,EACnC,UAAU,CAAC,GAAG,IAAG;wBACf,OAAO,CAAC,KAAK,CAAC,CAAA,2BAAA,EAA8B,SAAS,CAAC,KAAK,CAAA,CAAA,CAAG,EAAE,GAAG,CAAC;AACpE,wBAAA,OAAO,EAAE,CAAC,KAAK,CAAC;oBAClB,CAAC,CAAC,CACH;AAED,oBAAA,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC;AACjD,oBAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,wBAAA,OAAO,IAAI;oBACb;AAEA,oBAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE;gBAC/B;gBAAE,OAAO,KAAK,EAAE;AACd,oBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;wBACnB,OAAO,CAAC,KAAK,CAAC,CAAA,2BAAA,EAA8B,SAAS,CAAC,KAAK,CAAA,CAAA,CAAG,EAAE,KAAK,CAAC;wBACtE,OAAO;4BACL,SAAS;AACT,4BAAA,OAAO,EAAE,KAAK;AACd,4BAAA,KAAK,EAAE,IAAI;yBACZ;oBACH;AACA,oBAAA,OAAO,IAAI;gBACb;AACF,YAAA,CAAC,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAErD,YAAA,IAAI,MAAM,CAAC,OAAO,EAAE;gBAClB;YACF;AAEA,YAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC5B,gBAAA,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAC7B,oBAAA,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC9D;YACF;AAEA,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;QAC/B;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACnB,gBAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC;YACjD;QACF;gBAAU;AACR,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;YAC9B;QACF;IACF;IAEQ,sBAAsB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,+BAA+B,EAAE;AACxC,YAAA,IAAI,CAAC,+BAA+B,CAAC,KAAK,EAAE;AAC5C,YAAA,IAAI,CAAC,+BAA+B,GAAG,IAAI;QAC7C;AACA,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;IACjC;IAEQ,mBAAmB,GAAA;QACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE;IAEQ,mBAAmB,GAAA;QACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE;IAEQ,mBAAmB,GAAA;AACzB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE;QAC/B,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B;QACF;AAEA,QAAA,MAAM,QAAQ,GAAG,CAAA,YAAA,EAAe,GAAG,EAAE;AACrC,QAAA,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAW,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE;AAC/D,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;IAClC;IAEQ,oBAAoB,GAAA;QAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ;QAClD,IAAI,aAAa,EAAE;YACjB,OAAO,CAAA,mBAAA,EAAsB,aAAa,CAAA,CAAE;QAC9C;AAEA,QAAA,OAAO,iCAAiC;IAC1C;IAEQ,2BAA2B,GAAA;AACjC,QAAA,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAW,IAAI,CAAC,oBAAoB,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE;AACtF,QAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrF;AAEQ,IAAA,eAAe,CAAC,UAAkB,EAAA;AACxC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE;QAClC,MAAM,QAAQ,GAAG,OAAO,YAAY,KAAK,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;AACxG,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;AACzB,QAAA,IAAI,QAAQ,GAAG,QAAQ,GAAG,IAAI,GAAG,UAAU;AAE3C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE;QAEvB,IAAI,GAAG,KAAK,SAAS,IAAI,QAAQ,GAAG,GAAG,EAAE;YACvC,QAAQ,GAAG,GAAG;QAChB;QACA,IAAI,GAAG,KAAK,SAAS,IAAI,QAAQ,GAAG,GAAG,EAAE;YACvC,QAAQ,GAAG,GAAG;QAChB;QAEA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,QAAQ,GAAG,CAAC,EAAE;YAC1C,QAAQ,GAAG,CAAC;QACd;AAEA,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;AACzB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC1B;AAEQ,IAAA,iBAAiB,CAAC,KAAa,EAAA;AACrC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE;QAC7C,IAAI,OAAO,GAAG,KAAK;QAEnB,IAAI,WAAW,EAAE;YACf,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;AACrE,YAAA,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;QAC5D;AAEA,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE;QAC3C,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,GAAG,EAAE;YAC9D,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;QAC/C;AAEA,QAAA,OAAO,OAAO;IAChB;AAEQ,IAAA,iBAAiB,CAAC,KAAa,EAAA;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAChD,QAAA,IAAI,UAAU,KAAK,EAAE,EAAE;AACrB,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;AACxC,QAAA,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE;AACtB,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE;QAEvB,IAAI,GAAG,KAAK,SAAS,IAAI,WAAW,GAAG,GAAG,EAAE;YAC1C,WAAW,GAAG,GAAG;QACnB;QAEA,IAAI,GAAG,KAAK,SAAS,IAAI,WAAW,GAAG,GAAG,EAAE;YAC1C,WAAW,GAAG,GAAG;QACnB;QAEA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,WAAW,GAAG,CAAC,EAAE;AAC7C,YAAA,OAAO,CAAC;QACV;AAEA,QAAA,OAAO,WAAW;IACpB;IAEQ,iBAAiB,GAAA;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;QACzB,IAAI,IAAI,EAAE;AACR,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,QAAQ,EAAE;AAC7B,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE;AAC3C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAC7C,QAAA,IAAI,aAAa,KAAK,SAAS,IAAI,WAAW,KAAK,GAAG,IAAI,WAAW,KAAK,GAAG,EAAE;AAC7E,YAAA,OAAO,CAAA,UAAA,EAAa,aAAa,IAAI,CAAC,EAAE;QAC1C;AAEA,QAAA,OAAO,EAAE;IACX;AAEQ,IAAA,iBAAiB,CAAC,aAAqB,EAAA;AAC7C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;QAEzB,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,eAAe,EAAE;AACzD,YAAA,OAAO,MAAM;QACf;AAEA,QAAA,IAAI,IAAI,KAAK,QAAQ,IAAI,aAAa,EAAE;AACtC,YAAA,OAAO,MAAM;QACf;AAEA,QAAA,OAAO,IAAI;IACb;IAEQ,0BAA0B,GAAA;AAChC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAE7C,QAAA,IAAI,WAAW,KAAK,GAAG,EAAE;AACvB,YAAA,OAAO,GAAG;QACZ;AAEA,QAAA,IAAI,WAAW,KAAK,GAAG,EAAE;AACvB,YAAA,OAAO,GAAG;QACZ;AAEA,QAAA,OAAO,IAAI,CAAC,cAAc,EAAE;IAC9B;IAEQ,oBAAoB,GAAA;QAC1B,MAAM,MAAM,GAAa,EAAE;AAC3B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;AAC3B,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE;AAErC,QAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE;AACjC,YAAA,OAAO,MAAM;QACf;AAEA,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC;AAChF,QAAA,IAAI,UAAU,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,EAAE;AACzE,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;AAC9B,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACnE;AAEA,QAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAClC,YAAA,IAAI,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACpD,gBAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC9B;YACF;AAEA,YAAA,IAAI,SAAS,CAAC,KAAK,KAAK,UAAU,EAAE;gBAClC;YACF;AAEA,YAAA,IAAI,SAAS,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;gBAClE,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9E,gBAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;AACnB,oBAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAChC;YACF;YAEA,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;gBAC9F,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9E,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE;AAChD,oBAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAChC;YACF;YAEA,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;gBAC9F,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9E,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE;AAChD,oBAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAChC;YACF;AAEA,YAAA,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;AACxF,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;AAC1C,oBAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAChC;YACF;QACF;AAEA,QAAA,OAAO,MAAM;IACf;AAEQ,IAAA,kBAAkB,CAAC,KAA6B,EAAA;QACtD,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,SAAS;IACvD;AAEQ,IAAA,qBAAqB,CAAC,KAA6B,EAAA;AACzD,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;AAC3B,aAAA,IAAI;AACJ,aAAA,WAAW,EAAE;AAEhB,QAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC9B,YAAA,OAAO,GAAG;QACZ;AAEA,QAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC9B,YAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;AACxC,YAAA,OAAO,CAAA,CAAA,EAAI,CAAC,CAAA,EAAG,CAAC,CAAA,EAAG,CAAC,CAAA,EAAG,CAAC,CAAA,EAAG,CAAC,CAAA,EAAG,CAAC,EAAE;QACpC;AAEA,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,wBAAwB,CAAC,GAAW,EAAA;AAC1C,QAAA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE;AAEpC,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;AACrB,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC;AACrC,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,kBAAkB,EAAE,CAAC;YACrB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;AACrB,SAAA,CAAC;IACJ;AAEQ,IAAA,sBAAsB,CAAC,GAAW,EAAA;AACxC,QAAA,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC;AAClC,QAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC;IACnC;AAEQ,IAAA,uBAAuB,CAAC,GAAW,EAAA;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AAC/B,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7B,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7B,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/C;AAEQ,IAAA,YAAY,CAAC,GAAW,EAAA;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;AAC1C,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAE/B,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,QAAQ,EAAE;AAC9E,YAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1C;IACF;AAEQ,IAAA,oBAAoB,CAAC,KAAa,EAAA;QACxC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC;IAC1C;AAEQ,IAAA,mBAAmB,CAAC,KAA6B,EAAE,GAAW,EAAE,GAAW,EAAA;AACjF,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC;AAClC,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;AAC9B,YAAA,OAAO,IAAI;QACb;QAEA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IAC/D;AAEQ,IAAA,mBAAmB,CAAC,MAAyB,EAAA;QACnD,MAAM,MAAM,GAAa,EAAE;AAE3B,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;YACpD,IAAI,CAAC,UAAU,EAAE;gBACf;YACF;AAEA,YAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBAC/B;YACF;AAEA,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACzB;AAEA,QAAA,OAAO,MAAM;IACf;AAEQ,IAAA,gBAAgB,CAAC,GAAW,EAAA;AAClC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACxD,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAChD,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAClD,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACjD,QAAA,MAAM,SAAS,GAAG,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,IAAI,GAAG;QACpE,OAAO,SAAS,GAAG,IAAI;IACzB;IAEQ,cAAc,GAAA;QACpB,MAAM,WAAW,GAAG,MAEnB;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;AAC3B,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,OAAO,IAAI,WAAW,CAAC,UAAU,EAAE;IACrC;AAEQ,IAAA,oBAAoB,CAAC,KAAmB,EAAA;AAC9C,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,aAA4B;AACjD,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE;AAC3C,QAAA,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG;QACnE,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;QAEpE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,KAAK;AACpC,YAAA,GAAG,KAAK;AACR,YAAA,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAClD,YAAA,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzC,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAC3D;AAEQ,IAAA,SAAS,CAAC,GAAW,EAAA;AAC3B,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACxD,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG;AACtD,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG;AACxD,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG;AACvD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;AACtC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;AACtC,QAAA,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG;QAEvB,IAAI,GAAG,GAAG,CAAC;AACX,QAAA,IAAI,KAAK,KAAK,CAAC,EAAE;AACf,YAAA,IAAI,GAAG,KAAK,GAAG,EAAE;AACf,gBAAA,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC;YACpC;AAEA,YAAA,IAAI,GAAG,KAAK,KAAK,EAAE;gBACjB,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC;YAChC;AAEA,YAAA,IAAI,GAAG,KAAK,IAAI,EAAE;gBAChB,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC;YACjC;YAEA,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;AAC1B,YAAA,IAAI,GAAG,GAAG,CAAC,EAAE;gBACX,GAAG,IAAI,GAAG;YACZ;QACF;QAEA,OAAO;YACL,GAAG;YACH,UAAU,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,GAAG,CAAC;YAC3D,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;SAC7B;IACH;AAEQ,IAAA,SAAS,CAAC,KAAyD,EAAA;AAKzE,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1C,OAAO;AACL,YAAA,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAClC,YAAA,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACpC,YAAA,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;SACpC;IACH;AAEQ,IAAA,SAAS,CAAC,KAAmD,EAAA;AACnE,QAAA,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI;AACvC,aAAA,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;aAChF,IAAI,CAAC,EAAE;AACP,aAAA,WAAW;AACX,aAAA,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;IACtB;AAEQ,IAAA,SAAS,CAAC,KAAmD,EAAA;AAKnE,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG;AAC3B,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG;AAC/B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG;AAC7B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;AACtC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;AACtC,QAAA,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG;QACvB,MAAM,SAAS,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;QACjC,IAAI,GAAG,GAAG,CAAC;QACX,IAAI,UAAU,GAAG,CAAC;AAElB,QAAA,IAAI,KAAK,KAAK,CAAC,EAAE;AACf,YAAA,UAAU,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;AAEtD,YAAA,IAAI,GAAG,KAAK,GAAG,EAAE;AACf,gBAAA,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC;YACpC;AAEA,YAAA,IAAI,GAAG,KAAK,KAAK,EAAE;gBACjB,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC;YAChC;AAEA,YAAA,IAAI,GAAG,KAAK,IAAI,EAAE;gBAChB,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC;YACjC;YAEA,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;AAC1B,YAAA,IAAI,GAAG,GAAG,CAAC,EAAE;gBACX,GAAG,IAAI,GAAG;YACZ;QACF;QAEA,OAAO;YACL,GAAG;YACH,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC;YACxC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;SACvC;IACH;AAEQ,IAAA,SAAS,CAAC,KAA6D,EAAA;AAC7E,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,GAAG,GAAG;AACzC,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,GAAG,GAAG;AACvC,QAAA,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,UAAU;AAC7D,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,GAAG,EAAE;QACjC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,QAAA,MAAM,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,CAAC;QACpC,IAAI,GAAG,GAAG,MAAM;QAChB,IAAI,KAAK,GAAG,CAAC;QACb,IAAI,IAAI,GAAG,CAAC;AAEZ,QAAA,IAAI,UAAU,GAAG,CAAC,EAAE;YAClB,GAAG,GAAG,MAAM;YACZ,KAAK,GAAG,CAAC;YACT,IAAI,GAAG,CAAC;QACV;QAEA,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;YACrC,GAAG,GAAG,CAAC;YACP,KAAK,GAAG,MAAM;YACd,IAAI,GAAG,CAAC;QACV;QAEA,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;YACrC,GAAG,GAAG,CAAC;YACP,KAAK,GAAG,MAAM;YACd,IAAI,GAAG,CAAC;QACV;QAEA,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;YACrC,GAAG,GAAG,CAAC;YACP,KAAK,GAAG,CAAC;YACT,IAAI,GAAG,MAAM;QACf;QAEA,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;YACrC,GAAG,GAAG,CAAC;YACP,KAAK,GAAG,CAAC;YACT,IAAI,GAAG,MAAM;QACf;AAEA,QAAA,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI;AACrB,aAAA,GAAG,CAAC,OAAO,IACV,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,IAAI,GAAG;aAC/B,QAAQ,CAAC,EAAE;AACX,aAAA,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;aAEpB,IAAI,CAAC,EAAE;AACP,aAAA,WAAW;AACX,aAAA,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;IACtB;AAEQ,IAAA,SAAS,CAAC,KAAyD,EAAA;AACzE,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,GAAG,GAAG;AACzC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG;AAC/B,QAAA,MAAM,MAAM,GAAG,KAAK,GAAG,UAAU;AACjC,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,GAAG,EAAE;QACjC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,QAAA,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM;QAC5B,IAAI,GAAG,GAAG,MAAM;QAChB,IAAI,KAAK,GAAG,CAAC;QACb,IAAI,IAAI,GAAG,CAAC;AAEZ,QAAA,IAAI,UAAU,GAAG,CAAC,EAAE;YAClB,GAAG,GAAG,MAAM;YACZ,KAAK,GAAG,CAAC;YACT,IAAI,GAAG,CAAC;QACV;QAEA,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;YACrC,GAAG,GAAG,CAAC;YACP,KAAK,GAAG,MAAM;YACd,IAAI,GAAG,CAAC;QACV;QAEA,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;YACrC,GAAG,GAAG,CAAC;YACP,KAAK,GAAG,MAAM;YACd,IAAI,GAAG,CAAC;QACV;QAEA,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;YACrC,GAAG,GAAG,CAAC;YACP,KAAK,GAAG,CAAC;YACT,IAAI,GAAG,MAAM;QACf;QAEA,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;YACrC,GAAG,GAAG,CAAC;YACP,KAAK,GAAG,CAAC;YACT,IAAI,GAAG,MAAM;QACf;AAEA,QAAA,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI;AACrB,aAAA,GAAG,CAAC,OAAO,IACV,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,IAAI,GAAG;aAC/B,QAAQ,CAAC,EAAE;AACX,aAAA,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;aAEpB,IAAI,CAAC,EAAE;AACP,aAAA,WAAW;AACX,aAAA,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;IACtB;AAEQ,IAAA,qBAAqB,CAAC,KAAa,EAAA;AACzC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChD,QAAA,MAAM,WAAW,GAAG,CAAC,GAAG,cAAc,CAAC;AAEvC,QAAA,IAAI,SAAS,IAAI,WAAW,CAAC,MAAM,EAAE;AACnC,YAAA,IAAI,SAAS,KAAK,WAAW,CAAC,MAAM,EAAE;AACpC,gBAAA,OAAO,WAAW;YACpB;AAEA,YAAA,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,GAAG,SAAS;AAC3C,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;QAC/F;AAEA,QAAA,MAAM,SAAS,GAAG,CAAC,GAAG,WAAW,CAAC;QAClC,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,KAAa,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAEtG,QAAA,KAAK,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,EAAE;AAC/D,YAAA,MAAM,KAAK,GAAG,KAAK,GAAG,WAAW,CAAC,MAAM;AACxC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,OAAO,GAAG,EAAE,IAAI,GAAG,CAAC;YACpD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAC7E,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;AAE5E,YAAA,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;QACzD;QAEA,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;IACtC;uGAzjDW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,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,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,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,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,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,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,aAAA,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,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,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,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,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,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAZf;AACT,YAAA,cAAc,EAAE;AAChB,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChGH,mumBA+bA,EAAA,MAAA,EAAA,CAAA,26MAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MD1Va,eAAe,CAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MA5BxB,2BAA2B,wZAC3B,WAAW,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACX,mBAAmB,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACnB,gBAAgB,CAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAChB,gBAAgB,CAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAChB,cAAc,CAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,cAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACd,iBAAiB,CAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACjB,gBAAgB,0zBAChB,iBAAiB,CAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,QAAA,EAAA,eAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACjB,gBAAgB,CAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAChB,aAAa,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAkBJ,eAAe,EAAA,UAAA,EAAA,CAAA;kBA/B3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAAA,OAAA,EACV;wBACP,2BAA2B;wBAC3B,WAAW;wBACX,mBAAmB;wBACnB,gBAAgB;wBAChB,gBAAgB;wBAChB,cAAc;wBACd,iBAAiB;wBACjB,gBAAgB;wBAChB,iBAAiB;wBACjB,gBAAgB;wBAChB,aAAa;AACb,wBAAA,UAAU,CAAC,MAAK,eAAgB,CAAC;AAClC,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,SAAA,EAGL;AACT,wBAAA,cAAc,EAAE;AAChB,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,YAC3B,QAAQ,EAAA,QAAA,EAAA,mumBAAA,EAAA,MAAA,EAAA,CAAA,26MAAA,CAAA,EAAA;AAQoD,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,SAAS,6EACE,oBAAoB,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AE5GvG;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"shival99-z-ui-components-z-input.mjs","sources":["../../../../libs/core-ui/components/z-input/z-input.utils.ts","../../../../libs/core-ui/components/z-input/z-input.variants.ts","../../../../libs/core-ui/components/z-input/z-input.component.ts","../../../../libs/core-ui/components/z-input/z-input.component.html","../../../../libs/core-ui/components/z-input/shival99-z-ui-components-z-input.ts"],"sourcesContent":["import type { ValidationErrors } from '@angular/forms';\n\nexport interface ZInputErrorInfo {\n key: string;\n params?: Record<string, string | number>;\n}\n\ntype ZInputErrorHandler = [string, (errors: ValidationErrors) => ZInputErrorInfo];\n\nconst ERROR_HANDLERS: ZInputErrorHandler[] = [\n ['required', () => ({ key: 'i18n_z_ui_input_required' })],\n ['min', e => ({ key: 'i18n_z_ui_input_min', params: { min: e['min'].min } })],\n ['max', e => ({ key: 'i18n_z_ui_input_max', params: { max: e['max'].max } })],\n ['minlength', e => ({ key: 'i18n_z_ui_input_min_length', params: { min: e['minlength'].requiredLength } })],\n ['maxlength', e => ({ key: 'i18n_z_ui_input_max_length', params: { max: e['maxlength'].requiredLength } })],\n ['email', () => ({ key: 'i18n_z_ui_input_email' })],\n ['pattern', () => ({ key: 'i18n_z_ui_input_pattern' })],\n];\n\nexport const getDefaultErrorInfo = (errors: ValidationErrors): ZInputErrorInfo =>\n ERROR_HANDLERS.find(([key]) => errors[key])?.[1](errors) ?? { key: 'i18n_z_ui_input_pattern' };\n","import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zInputVariants = cva(\n [\n 'flex w-full rounded-sm border border-input bg-white shadow-xs',\n 'transition-[border-color,box-shadow,background-color,color,opacity] duration-200',\n 'dark:bg-input/30 dark:border-input',\n 'file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground',\n 'outline-none',\n 'text-sm',\n ],\n {\n variants: {\n zSize: {\n sm: 'h-8 px-2 gap-2 text-xs',\n default: 'h-9 px-2 gap-2 text-sm',\n lg: 'h-10 px-2 gap-2.5 text-sm',\n },\n zStatus: {\n default: 'focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]',\n error:\n 'border-destructive! ring-destructive/20 ring-[3px] focus-within:border-destructive! focus-within:ring-destructive/30',\n disabled: 'opacity-50 cursor-not-allowed bg-muted! text-muted-foreground',\n readonly: 'bg-muted/50! text-muted-foreground cursor-default',\n },\n },\n defaultVariants: {\n zSize: 'default',\n zStatus: 'default',\n },\n }\n);\n\nexport type ZInputVariants = VariantProps<typeof zInputVariants>;\n\nexport const zTextareaVariants = cva(\n [\n 'w-full rounded-sm border border-input bg-white shadow-xs transition-colors duration-200',\n 'dark:bg-input/30 dark:border-input',\n 'outline-none',\n 'text-sm',\n ],\n {\n variants: {\n zStatus: {\n default: 'focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]',\n error:\n 'border-destructive! ring-destructive/20 ring-[3px] focus-within:border-destructive! focus-within:ring-destructive/30',\n disabled: 'opacity-50 cursor-not-allowed bg-muted! text-muted-foreground',\n readonly: 'bg-muted/50! text-muted-foreground cursor-default',\n },\n },\n defaultVariants: {\n zStatus: 'default',\n },\n }\n);\n\nexport type ZTextareaVariants = VariantProps<typeof zTextareaVariants>;\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n ElementRef,\n forwardRef,\n inject,\n Injector,\n input,\n type OnInit,\n output,\n signal,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n type AbstractControl,\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n NgControl,\n NgModel,\n PristineChangeEvent,\n ReactiveFormsModule,\n TouchedChangeEvent,\n} from '@angular/forms';\nimport {\n BlossomColorPickerComponent,\n DEFAULT_COLORS,\n hexToHsl,\n lightnessToSliderValue,\n type BlossomColorPickerColor,\n type ColorInput,\n type BlossomColorPickerValue,\n} from '@dayflow/blossom-color-picker-angular';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ZButtonComponent } from '@shival99/z-ui/components/z-button';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { ZPopoverDirective } from '@shival99/z-ui/components/z-popover';\nimport type { ZPopoverControl } from '@shival99/z-ui/components/z-popover';\nimport { ZSelectComponent, type ZSelectOption } from '@shival99/z-ui/components/z-select';\nimport { ZToastService } from '@shival99/z-ui/components/z-toast';\nimport { ZTooltipDirective } from '@shival99/z-ui/components/z-tooltip';\nimport { ZTranslateService, ZCacheService } from '@shival99/z-ui/services';\nimport { zUuid, zMergeClasses, zTransform, zCreateEvent, type ZEvent } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { NgxMaskDirective, provideNgxMask } from 'ngx-mask';\nimport { catchError, debounceTime, filter, firstValueFrom, isObservable, merge, of, Subject, takeUntil } from 'rxjs';\nimport type {\n ZAsyncValidateOn,\n ZAsyncValidator,\n ZInputAlign,\n ZInputColorConfig,\n ZInputColorFormat,\n ZInputControl,\n ZInputMaskConfig,\n ZInputSize,\n ZInputSlotConfig,\n ZInputStatus,\n ZInputType,\n ZInputTypeConfig,\n ZInputValidator,\n} from './z-input.types';\nimport { getDefaultErrorInfo } from './z-input.utils';\nimport { zInputVariants, zTextareaVariants } from './z-input.variants';\n\n@Component({\n selector: 'z-input',\n imports: [\n BlossomColorPickerComponent,\n FormsModule,\n ReactiveFormsModule,\n NgxMaskDirective,\n ZButtonComponent,\n ZIconComponent,\n ZPopoverDirective,\n ZSelectComponent,\n ZTooltipDirective,\n NgTemplateOutlet,\n TranslatePipe,\n forwardRef(() => ZInputComponent),\n ],\n standalone: true,\n templateUrl: './z-input.component.html',\n styleUrl: './z-input.component.scss',\n providers: [\n provideNgxMask(),\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ZInputComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'zInput',\n})\nexport class ZInputComponent implements OnInit, ControlValueAccessor {\n private readonly _injector = inject(Injector);\n private readonly _destroyRef = inject(DestroyRef);\n private readonly _toastService = inject(ZToastService);\n private readonly _zTranslate = inject(ZTranslateService);\n\n protected readonly inputRef = viewChild<ElementRef<HTMLInputElement>>('inputEl');\n protected readonly nativeColorInputRef = viewChild<ElementRef<HTMLInputElement>>('nativeColorInputEl');\n\n public readonly zOnSearch = output<string | number | null>();\n public readonly zOnChange = output<string | number | null>();\n public readonly zOnBlur = output<FocusEvent>();\n public readonly zOnFocus = output<FocusEvent>();\n public readonly zOnKeydown = output<KeyboardEvent>();\n public readonly zOnEnter = output<string | number | null>();\n public readonly zOnColorCollapse = output<BlossomColorPickerColor>();\n public readonly zControl = output<ZInputControl>();\n public readonly zEvent = output<ZEvent>();\n\n public readonly class = input<ClassValue>('');\n public readonly zType = input<ZInputType>('text');\n public readonly zSize = input<ZInputSize>('default');\n public readonly zAlign = input<ZInputAlign>('left');\n public readonly zLabel = input<string>('');\n public readonly zLabelClass = input<string>('');\n public readonly zPlaceholder = input<string>('');\n public readonly zRequired = input(false, { transform: zTransform });\n public readonly zDisabled = input(false, { transform: zTransform });\n public readonly zReadonly = input(false, { transform: zTransform });\n public readonly zPrefix = input<string | TemplateRef<unknown>>('');\n public readonly zSuffix = input<string | TemplateRef<unknown>>('');\n\n public readonly zMin = input<number | undefined>(undefined);\n public readonly zMax = input<number | undefined>(undefined);\n public readonly zStep = input<number>(1);\n public readonly zShowArrows = input(true, { transform: zTransform });\n\n public readonly zMask = input<string>('');\n public readonly zDecimalPlaces = input<number | undefined>(undefined);\n public readonly zAllowNegative = input(false, { transform: zTransform });\n public readonly zThousandSeparator = input<string>('');\n public readonly zDecimalMarker = input<'.' | ',' | ['.', ',']>('.');\n\n public readonly zValidators = input<ZInputValidator[]>([]);\n public readonly zAsyncValidators = input<ZAsyncValidator[]>([]);\n public readonly zAsyncDebounce = input<number>(300);\n public readonly zAsyncValidateOn = input<ZAsyncValidateOn>('change');\n public readonly zShowPasswordToggle = input(true, { transform: zTransform });\n\n public readonly zSearch = input(false, { transform: zTransform });\n public readonly zDebounce = input<number>(300);\n public readonly zAutofocus = input(false, { transform: zTransform });\n public readonly zAutoComplete = input<string>('off');\n public readonly zAllowClear = input(false, { transform: zTransform });\n\n public readonly zAutoSizeContent = input(false, { transform: zTransform });\n public readonly zRows = input<number>(3);\n public readonly zResize = input(true, { transform: zTransform });\n public readonly zMaxLength = input<number | undefined>(undefined);\n public readonly zAutoSuggest = input<string | undefined>(undefined);\n public readonly zColorConfig = input<ZInputColorConfig>({});\n\n private readonly _value = signal<string | number | null>(null);\n private readonly _disabled = signal(false);\n private readonly _formControl = signal<AbstractControl | null>(null);\n private readonly _formStateVersion = signal(0);\n private readonly _isNgModel = signal(false);\n private readonly _asyncErrors = signal<Map<string, string>>(new Map());\n private readonly _customError = signal<string | null>(null);\n private readonly _blossomColor = signal<BlossomColorPickerValue>({\n hue: 330,\n saturation: 70,\n alpha: 100,\n layer: 'outer',\n });\n\n private readonly _colorPickerHsv = signal({ hue: 258, saturation: 65, value: 85 });\n private readonly _colorPickerRgb = signal({ red: 79, green: 70, blue: 229 });\n private readonly _colorPickerHsl = signal({ hue: 243, saturation: 75, lightness: 59 });\n private readonly _colorPickerAlpha = signal(100);\n private readonly _colorPickerFormat = signal<ZInputColorFormat>('hex');\n private readonly _colorPickerSavedColors = signal<string[]>([]);\n\n protected readonly inputId = zUuid('z-input');\n protected readonly suggestHistory = signal<string[]>([]);\n protected readonly suggestActiveIndex = signal(-1);\n protected readonly isValidating = signal(false);\n\n protected readonly uiState = signal({\n passwordVisible: false,\n isFocused: false,\n touched: false,\n dirty: false,\n showSuggestPopover: false,\n colorCopied: false,\n });\n\n protected readonly typeConfig = computed<ZInputTypeConfig>(() => {\n const type = this.zType();\n return {\n isPassword: type === 'password',\n isColor: type === 'color',\n isTextarea: type === 'textarea',\n isNumber: type === 'number',\n };\n });\n\n protected readonly slotConfig = computed<ZInputSlotConfig>(() => {\n const prefix = this.zPrefix();\n const suffix = this.zSuffix();\n return {\n isPrefixTemplate: prefix instanceof TemplateRef,\n isSuffixTemplate: suffix instanceof TemplateRef,\n hasPrefix: this.zSearch() || !!prefix,\n hasSuffix: !!suffix,\n };\n });\n\n protected readonly maskConfig = computed<ZInputMaskConfig>(() => {\n const effectiveMask = this._getEffectiveMask();\n const effectiveType = this._getEffectiveType(effectiveMask);\n const effectiveDecimalMarker = this._getEffectiveDecimalMarker();\n return { effectiveMask, effectiveType, effectiveDecimalMarker };\n });\n\n protected readonly displayValue = computed(() => {\n const val = this._value();\n return val === null || val === undefined ? '' : String(val);\n });\n\n protected readonly normalizedColorValue = computed(() => this._normalizeHexColor(this._value()));\n protected readonly colorMode = computed(() => this.zColorConfig().mode ?? 'blossom');\n protected readonly isBlossomColorMode = computed(() => this.colorMode() === 'blossom');\n protected readonly blossomCoreBorderColor = computed(() => {\n const color = this.normalizedColorValue();\n if (color === '#FFFFFF' || color === '#000000') {\n return 'var(--border)';\n }\n\n return color;\n });\n\n protected readonly blossomColor = this._blossomColor.asReadonly();\n protected readonly colorPickerHsv = this._colorPickerHsv.asReadonly();\n protected readonly colorPickerRgbValue = this._colorPickerRgb.asReadonly();\n protected readonly colorPickerHslValue = this._colorPickerHsl.asReadonly();\n protected readonly colorPickerAlpha = this._colorPickerAlpha.asReadonly();\n protected readonly colorPickerFormat = this._colorPickerFormat.asReadonly();\n protected readonly colorPickerFormatOptions: ZSelectOption<ZInputColorFormat>[] = [\n { label: 'HEX', value: 'hex' },\n { label: 'RGB', value: 'rgb' },\n { label: 'HSL', value: 'hsl' },\n { label: 'HSV', value: 'hsv' },\n ];\n\n protected readonly colorPickerHueColor = computed(() => `hsl(${this.colorPickerHsv().hue} 100% 50%)`);\n protected readonly colorPickerSvStyle = computed(() => ({\n background: `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, ${this.colorPickerHueColor()})`,\n }));\n\n protected readonly colorPickerCursorStyle = computed(() => {\n const hsv = this.colorPickerHsv();\n return {\n left: `${hsv.saturation}%`,\n top: `${100 - hsv.value}%`,\n };\n });\n\n protected readonly defaultColorPickerSavedColors = computed(() => {\n const { savedColors } = this.zColorConfig();\n if (savedColors) {\n return this._normalizeColorList(savedColors);\n }\n\n return this._normalizeColorList([\n '#16A34A',\n '#2563EB',\n '#4F46E5',\n '#7C3AED',\n '#C026D3',\n '#DB2777',\n '#DC2626',\n '#EA580C',\n '#7F56D9',\n '#111827',\n '#155E75',\n '#A3A310',\n '#0EA5E9',\n '#D946EF',\n '#E11D48',\n '#22C55E',\n ]);\n });\n\n protected readonly colorPickerSavedColors = computed(() => {\n const cachedColors = this._colorPickerSavedColors();\n const fallbackColors = this.defaultColorPickerSavedColors();\n return this._normalizeColorList([...cachedColors, ...fallbackColors]).slice(0, 8);\n });\n\n protected readonly colorPickerSavedSwatches = computed(() =>\n this.colorPickerSavedColors().map(color => ({\n color,\n isLight: this._isLightHexColor(color),\n }))\n );\n\n protected readonly blossomCoreSize = computed(() => {\n const size = this.zSize();\n if (size === 'sm') {\n return 22;\n }\n if (size === 'lg') {\n return 30;\n }\n return 26;\n });\n\n protected readonly blossomOptions = computed(() => {\n const config = this.zColorConfig();\n return {\n defaultValue: config.defaultValue,\n openOnHover: config.openOnHover ?? false,\n initialExpanded: config.initialExpanded ?? false,\n animationDuration: config.animationDuration ?? 300,\n showAlphaSlider: config.showAlphaSlider ?? true,\n showCoreColor: config.showCoreColor ?? true,\n adaptivePositioning: config.adaptivePositioning ?? true,\n sliderPosition: config.sliderPosition || 'bottom',\n coreSize: config.coreSize ?? this.blossomCoreSize(),\n petalSize: config.petalSize ?? 32,\n };\n });\n\n protected readonly blossomColors = computed<ColorInput[] | undefined>(() => {\n const customColors = this.zColorConfig().colors ?? [];\n if (customColors.length > 0) {\n return customColors;\n }\n\n const count = this.zColorConfig().count ?? 20;\n if (!count || count < 1) {\n return undefined;\n }\n\n return this._generateColorPalette(count);\n });\n\n protected readonly hasValue = computed(() => {\n const value = this._value();\n return value !== null && value !== undefined && value !== '';\n });\n\n protected readonly isDisabled = computed(() => this._disabled() || this.zDisabled());\n protected readonly showArrows = computed(() => this.typeConfig().isNumber && this.zShowArrows());\n protected readonly hasAutoSuggest = computed(() => {\n const key = this.zAutoSuggest();\n return key !== undefined && key.length > 0;\n });\n\n protected readonly showClearButton = computed(\n () => this.zAllowClear() && this.hasValue() && !this.isDisabled() && !this.zReadonly()\n );\n\n protected readonly currentStatus = computed<ZInputStatus>(() => {\n if (this.isDisabled()) {\n return 'disabled';\n }\n\n if (this.zReadonly()) {\n return 'readonly';\n }\n\n if (this.hasError()) {\n return 'error';\n }\n return 'default';\n });\n\n protected readonly alignClass = computed(() => {\n const align = this.zAlign();\n return align === 'center'\n ? '[&_.z-input-native]:text-center'\n : align === 'right'\n ? '[&_.z-input-native]:text-right'\n : '';\n });\n\n protected readonly inputClasses = computed(() =>\n zMergeClasses(\n zInputVariants({ zSize: this.zSize(), zStatus: this.currentStatus() }),\n this.alignClass(),\n this.class()\n )\n );\n\n protected readonly textareaClasses = computed(() =>\n zMergeClasses(zTextareaVariants({ zStatus: this.currentStatus() }), this.alignClass(), this.class())\n );\n\n protected readonly filteredSuggestHistory = computed(() => {\n const history = this.suggestHistory();\n const currentValue = String(this._value() ?? '')\n .toLowerCase()\n .trim();\n\n if (!currentValue) {\n return history;\n }\n\n const matching: string[] = [];\n const nonMatching: string[] = [];\n\n for (const item of history) {\n const target = item.toLowerCase().includes(currentValue) ? matching : nonMatching;\n target.push(item);\n }\n\n return [...matching, ...nonMatching];\n });\n\n private readonly _shouldShowValidation = computed(() => {\n const control = this._formControl();\n this._formStateVersion();\n\n if (this._isNgModel()) {\n return this.uiState().dirty || this.uiState().touched;\n }\n\n if (control) {\n return control.dirty;\n }\n\n return this.uiState().dirty || this.uiState().touched;\n });\n\n protected readonly hasError = computed(() => {\n if (this._customError()) {\n return true;\n }\n\n const asyncErrors = this._asyncErrors();\n if (asyncErrors.size > 0 && this._shouldShowValidation()) {\n return true;\n }\n\n const customErrors = this._getValidationErrors();\n if (customErrors.length > 0) {\n return true;\n }\n\n const control = this._formControl();\n this._formStateVersion();\n if (!control) {\n return false;\n }\n\n return control.invalid && this._shouldShowValidation();\n });\n\n protected readonly errorMessage = computed(() => {\n const customError = this._customError();\n if (customError) {\n return customError;\n }\n\n const asyncErrors = this._asyncErrors();\n if (asyncErrors.size > 0) {\n return this._translateValidationMessage(asyncErrors.values().next().value as string);\n }\n\n const customErrors = this._getValidationErrors();\n if (customErrors.length > 0) {\n return this._translateValidationMessage(customErrors[0]);\n }\n\n const control = this._formControl();\n const errors = control?.errors;\n if (!errors) {\n return '';\n }\n\n const validators = this.zValidators();\n for (const validator of validators) {\n if (errors[validator.error]) {\n return this._translateValidationMessage(validator.message);\n }\n }\n\n this._zTranslate.currentLang();\n const errorInfo = getDefaultErrorInfo(errors);\n return this._zTranslate.instant(errorInfo.key, errorInfo.params);\n });\n\n private _translateValidationMessage(message: string): string {\n this._zTranslate.currentLang();\n return this._zTranslate.instant(message);\n }\n\n private readonly _searchSubject = new Subject<string | number | null>();\n private readonly _changeSubject = new Subject<string | number | null>();\n private readonly _asyncValidationSubject = new Subject<string | number | null>();\n private readonly _asyncCancelSubject = new Subject<void>();\n private _asyncValidationAbortController: AbortController | null = null;\n private _onChange: (value: string | number | null) => void = () => void 0;\n private _onTouched: () => void = () => void 0;\n private _ngControl: NgControl | null = null;\n private _colorPickerPopoverControl: ZPopoverControl | null = null;\n\n ngOnInit(): void {\n this._loadColorPickerSavedColors();\n\n queueMicrotask(() => {\n try {\n this._ngControl = this._injector.get(NgControl, null);\n this._isNgModel.set(this._ngControl instanceof NgModel);\n\n if (this._ngControl?.control) {\n const { control } = this._ngControl;\n this._formControl.set(control);\n merge(\n control.statusChanges,\n control.valueChanges,\n control.events.pipe(\n filter(event => event instanceof PristineChangeEvent || event instanceof TouchedChangeEvent)\n )\n )\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._formStateVersion.update(v => v + 1);\n });\n }\n } catch {\n this._ngControl = null;\n }\n });\n\n this._searchSubject.pipe(debounceTime(this.zDebounce()), takeUntilDestroyed(this._destroyRef)).subscribe(value => {\n this.zOnSearch.emit(value);\n });\n\n this._changeSubject.pipe(debounceTime(this.zDebounce()), takeUntilDestroyed(this._destroyRef)).subscribe(value => {\n this.zOnChange.emit(value);\n });\n\n const asyncValidators = this.zAsyncValidators();\n if (asyncValidators.length > 0) {\n const debounceMs = this.zAsyncDebounce() || 300;\n this._asyncValidationSubject\n .pipe(debounceTime(debounceMs), takeUntilDestroyed(this._destroyRef))\n .subscribe(value => {\n void this._runAsyncValidation(value);\n });\n }\n\n this._emitControl();\n if (this.zAutofocus()) {\n setTimeout(() => {\n this.focus();\n }, 20);\n }\n }\n\n public writeValue(value: string | number | null): void {\n this._value.set(value);\n if (this.zType() === 'color') {\n this._syncColorStateFromHex(this._normalizeHexColor(value));\n }\n }\n\n public registerOnChange(fn: (value: string | number | null) => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n }\n\n public focus(): void {\n this.inputRef()?.nativeElement.focus();\n }\n\n public blur(): void {\n this.inputRef()?.nativeElement.blur();\n }\n\n /** @deprecated Use `valid()` for boolean form-submit checks. */\n public validate(): boolean {\n this.uiState.update(s => ({ ...s, touched: true, dirty: true }));\n this._onTouched();\n\n if (this._ngControl?.control) {\n this._ngControl.control.markAsDirty();\n this._ngControl.control.markAsTouched();\n }\n\n return this.hasError();\n }\n\n public valid(): boolean {\n return !this.validate();\n }\n\n public reset(): void {\n this._cancelAsyncValidation();\n this.isValidating.set(false);\n this._asyncErrors.set(new Map());\n this._customError.set(null);\n\n this._value.set(null);\n this.uiState.update(s => ({ ...s, touched: false, dirty: false }));\n this._onChange(null);\n\n if (this._ngControl?.control) {\n this._ngControl.control.markAsPristine();\n this._ngControl.control.markAsUntouched();\n }\n }\n\n public setValue(value: string | number | null): void {\n this._value.set(value);\n this._onChange(value);\n }\n\n public setErrorMessage(message: string | null): void {\n this._customError.set(message);\n if (message) {\n this.uiState.update(s => ({ ...s, touched: true, dirty: true }));\n }\n }\n\n public getValue(): string | number | null {\n return this._value();\n }\n\n public saveToSuggestHistory(value: string): void {\n const key = this.zAutoSuggest();\n if (!key || !value || value.trim() === '') {\n return;\n }\n\n const cacheKey = `autosuggest-${key}`;\n let history: string[] = ZCacheService.get<string[]>(cacheKey, []) ?? [];\n\n const trimmedValue = value.trim();\n history = history.filter(item => item !== trimmedValue);\n history.unshift(trimmedValue);\n\n if (history.length > 5) {\n history = history.slice(0, 5);\n }\n\n ZCacheService.set(cacheKey, history);\n this.suggestHistory.set(history);\n }\n\n protected clearValue(event: MouseEvent): void {\n event.stopPropagation();\n this._value.set(null);\n this.uiState.update(s => ({ ...s, dirty: true }));\n this._onChange(null);\n this._changeSubject.next(null);\n if (this.zSearch()) {\n this._searchSubject.next(null);\n }\n this.focus();\n }\n\n protected onInput(event: Event): void {\n const { value: rawValue } = event.target as HTMLInputElement;\n let value: string | number | null = rawValue;\n\n if (this.zType() === 'number') {\n value = this._parseNumberValue(value);\n }\n\n this._value.set(value);\n this.uiState.update(s => ({ ...s, dirty: true }));\n this._onChange(value);\n\n if (this.zSearch()) {\n this._searchSubject.next(value);\n }\n }\n\n protected onModelChange(rawValue: string | number | null): void {\n let value: string | number | null = rawValue;\n\n if (this.zType() === 'color' && typeof rawValue === 'string') {\n value = this._normalizeHexColor(rawValue);\n this._syncColorStateFromHex(value);\n }\n\n if (this.zType() === 'number' && typeof rawValue === 'string') {\n value = this._parseNumberValue(rawValue);\n }\n\n this._value.set(value);\n this.uiState.update(s => ({ ...s, dirty: true }));\n this._onChange(value);\n\n this._changeSubject.next(value);\n if (this.zSearch()) {\n this._searchSubject.next(value);\n }\n\n if (this.zAsyncValidators().length > 0 && this.zAsyncValidateOn() === 'change') {\n this._asyncValidationSubject.next(value);\n }\n\n if (this.hasAutoSuggest() && this.uiState().isFocused) {\n this._loadSuggestHistory();\n if (this.suggestHistory().length > 0) {\n this._showSuggestPopover();\n this.suggestActiveIndex.set(-1);\n }\n }\n }\n\n protected onBlur(event: FocusEvent): void {\n if (this.uiState().dirty) {\n this.uiState.update(s => ({ ...s, touched: true }));\n }\n\n this._onTouched();\n this.uiState.update(s => ({ ...s, isFocused: false }));\n this.zOnBlur.emit(event);\n this.zEvent.emit(zCreateEvent('blur', event));\n this.closeSuggestPopover();\n\n if (this.zAsyncValidators().length > 0 && this.zAsyncValidateOn() === 'blur') {\n this._asyncValidationSubject.next(this._value());\n }\n\n const el = this.inputRef()?.nativeElement;\n if (el) {\n if (el.value && !el.classList.contains('z-input-auto-fill')) {\n el.classList.add('z-input-auto-fill');\n const currentValue = el.value;\n el.value = '';\n el.value = currentValue;\n }\n }\n }\n\n protected onFocus(event: FocusEvent): void {\n this.uiState.update(s => ({ ...s, isFocused: true }));\n this.zOnFocus.emit(event);\n this.zEvent.emit(zCreateEvent('focus', event));\n this._loadSuggestHistory();\n if (this.hasAutoSuggest() && this.suggestHistory().length > 0) {\n this._showSuggestPopover();\n }\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n this.zOnKeydown.emit(event);\n this.zEvent.emit(zCreateEvent('keydown', event));\n\n if (event.key === 'Enter') {\n this.zOnEnter.emit(this._value());\n }\n\n if (this.zType() !== 'number') {\n return;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n this._incrementValue(1);\n return;\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n this._incrementValue(-1);\n }\n }\n\n protected onSuggestKeydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' && this.hasAutoSuggest()) {\n const activeIndex = this.suggestActiveIndex();\n const history = this.filteredSuggestHistory();\n\n if (this.uiState().showSuggestPopover && activeIndex >= 0 && activeIndex < history.length) {\n event.preventDefault();\n this.selectSuggestItem(history[activeIndex]);\n return;\n }\n\n const currentValue = String(this._value() ?? '').trim();\n if (currentValue) {\n this.saveToSuggestHistory(currentValue);\n this._hideSuggestPopover();\n this.suggestActiveIndex.set(-1);\n if (this.zSearch()) {\n this.zOnSearch.emit(currentValue);\n }\n }\n return;\n }\n\n if (!this.hasAutoSuggest() || !this.uiState().showSuggestPopover) {\n return;\n }\n\n const history = this.filteredSuggestHistory();\n if (history.length === 0) {\n return;\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n const currentIndex = this.suggestActiveIndex();\n const newIndex = currentIndex < history.length - 1 ? currentIndex + 1 : 0;\n this.suggestActiveIndex.set(newIndex);\n return;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n const currentIndex = this.suggestActiveIndex();\n const newIndex = currentIndex > 0 ? currentIndex - 1 : history.length - 1;\n this.suggestActiveIndex.set(newIndex);\n return;\n }\n\n if (event.key === 'Escape') {\n this._hideSuggestPopover();\n this.suggestActiveIndex.set(-1);\n }\n }\n\n protected selectSuggestItem(item: string): void {\n this._value.set(item);\n this.uiState.update(s => ({ ...s, dirty: true }));\n this._onChange(item);\n this._hideSuggestPopover();\n this.suggestActiveIndex.set(-1);\n this.saveToSuggestHistory(item);\n\n if (this.zSearch()) {\n this._searchSubject.next(item);\n }\n }\n\n protected closeSuggestPopover(): void {\n setTimeout(() => {\n this._hideSuggestPopover();\n this.suggestActiveIndex.set(-1);\n }, 150);\n }\n\n protected onArrowClick(event: MouseEvent, direction: 'up' | 'down'): void {\n event.preventDefault();\n const multiplier = direction === 'up' ? 1 : -1;\n this._incrementValue(multiplier);\n this.focus();\n }\n\n protected togglePasswordVisibility(): void {\n this.uiState.update(s => ({ ...s, passwordVisible: !s.passwordVisible }));\n }\n\n protected copyColorToClipboard(): void {\n const colorValue = this.normalizedColorValue();\n void navigator.clipboard.writeText(colorValue).then(() => {\n this.uiState.update(s => ({ ...s, colorCopied: true }));\n this._toastService.success(`Copied ${colorValue}`);\n setTimeout(() => {\n this.uiState.update(s => ({ ...s, colorCopied: false }));\n }, 1500);\n });\n }\n\n protected onBlossomColorChange(color: BlossomColorPickerColor): void {\n this._blossomColor.set(color);\n this.onModelChange(color.hex);\n }\n\n protected onBlossomColorCollapse(color: BlossomColorPickerColor): void {\n this._blossomColor.set(color);\n this.zOnColorCollapse.emit(color);\n }\n\n protected onColorPickerControl(control: ZPopoverControl): void {\n this._colorPickerPopoverControl = control;\n }\n\n protected onColorPickerOpen(): void {\n this._syncColorPickerFromHex(this.normalizedColorValue());\n this._loadColorPickerSavedColors();\n }\n\n protected onColorPickerFormatChange(value: ZInputColorFormat | ZInputColorFormat[] | null): void {\n if (!value || Array.isArray(value)) {\n return;\n }\n\n this._colorPickerFormat.set(value);\n }\n\n protected onColorPickerHexChange(value: string | number | null): void {\n const raw = String(value ?? '').trim();\n if (!/^#?[0-9a-fA-F]{3}$/.test(raw) && !/^#?[0-9a-fA-F]{6}$/.test(raw)) {\n return;\n }\n\n this._commitColor(this._normalizeHexColor(raw.startsWith('#') ? raw : `#${raw}`));\n }\n\n protected onColorPickerAlphaValueChange(value: string | number | null): void {\n const alpha = Number(value ?? 100);\n if (Number.isNaN(alpha)) {\n return;\n }\n\n this._setColorPickerAlpha(alpha);\n }\n\n protected onColorPickerRgbChange(channel: 'red' | 'green' | 'blue', value: string | number | null): void {\n const channelValue = this._parseBoundedNumber(value, 0, 255);\n if (channelValue === null) {\n return;\n }\n\n const rgb = this.colorPickerRgbValue();\n const nextRgb = { ...rgb, [channel]: channelValue };\n this._commitColor(this._rgbToHex(nextRgb));\n }\n\n protected onColorPickerHslChange(channel: 'hue' | 'saturation' | 'lightness', value: string | number | null): void {\n const max = channel === 'hue' ? 360 : 100;\n const channelValue = this._parseBoundedNumber(value, 0, max);\n if (channelValue === null) {\n return;\n }\n\n const hsl = this.colorPickerHslValue();\n const nextHsl = { ...hsl, [channel]: channelValue };\n this._commitColor(this._hslToHex(nextHsl));\n }\n\n protected onColorPickerHsvValueChange(channel: 'hue' | 'saturation' | 'value', value: string | number | null): void {\n const max = channel === 'hue' ? 360 : 100;\n const channelValue = this._parseBoundedNumber(value, 0, max);\n if (channelValue === null) {\n return;\n }\n\n const nextHsv = { ...this.colorPickerHsv(), [channel]: channelValue };\n this._colorPickerHsv.set(nextHsv);\n this._commitColor(this._hsvToHex(nextHsv));\n }\n\n protected onColorPickerHueInput(event: Event): void {\n const input = event.target as HTMLInputElement | null;\n const hue = Number(input?.value ?? 0);\n this._colorPickerHsv.update(color => ({ ...color, hue }));\n this._commitColor(this._hsvToHex(this._colorPickerHsv()));\n }\n\n protected onColorPickerAlphaInput(event: Event): void {\n const input = event.target as HTMLInputElement | null;\n const alpha = Number(input?.value ?? 100);\n this._setColorPickerAlpha(alpha);\n }\n\n protected onColorPickerSvPointerDown(event: PointerEvent): void {\n this._updateColorPickerSv(event);\n const target = event.currentTarget as HTMLElement;\n target.setPointerCapture(event.pointerId);\n }\n\n protected onColorPickerSvPointerMove(event: PointerEvent): void {\n if (!event.buttons) {\n return;\n }\n\n this._updateColorPickerSv(event);\n }\n\n protected selectSavedColor(color: string): void {\n this._commitColor(color);\n }\n\n protected addCurrentColorToSaved(): void {\n const color = this.normalizedColorValue();\n if (!/^#[0-9A-F]{6}$/.test(color)) {\n return;\n }\n\n const nextColors = this._normalizeColorList([color, ...this.colorPickerSavedColors()]).slice(0, 8);\n this._colorPickerSavedColors.set(nextColors);\n ZCacheService.set(this._colorPickerCacheKey(), nextColors);\n }\n\n protected async openNativeColorPicker(): Promise<void> {\n const eyeDropper = this._getEyeDropper();\n if (eyeDropper) {\n const result = await eyeDropper.open();\n this._commitColor(result.sRGBHex);\n return;\n }\n\n this.nativeColorInputRef()?.nativeElement.click();\n }\n\n protected closeColorPicker(): void {\n this._colorPickerPopoverControl?.close();\n }\n\n private _emitControl(): void {\n this.zControl.emit({\n valid: () => this.valid(),\n validate: () => this.validate(),\n reset: () => this.reset(),\n focus: () => this.focus(),\n blur: () => this.blur(),\n setValue: (value: string | number | null) => this.setValue(value),\n setErrorMessage: (message: string | null) => this.setErrorMessage(message),\n hasError: this.hasError,\n isValidating: this.isValidating,\n value: this._value.asReadonly(),\n errorMessage: this.errorMessage,\n });\n }\n\n private async _runAsyncValidation(value: string | number | null): Promise<void> {\n const asyncValidators = this.zAsyncValidators();\n if (asyncValidators.length === 0) {\n return;\n }\n\n if ((value === null || value === undefined || value === '') && !this.zRequired()) {\n this._asyncErrors.set(new Map());\n this.isValidating.set(false);\n return;\n }\n\n this._cancelAsyncValidation();\n this._asyncValidationAbortController = new AbortController();\n const { signal } = this._asyncValidationAbortController;\n\n this.isValidating.set(true);\n const errors = new Map<string, string>();\n\n try {\n const validationPromises = asyncValidators.map(async validator => {\n if (signal.aborted) {\n return null;\n }\n\n try {\n const result = validator.validate(value);\n if (!isObservable(result)) {\n const isValid = await result;\n if (signal.aborted) {\n return null;\n }\n\n return { validator, isValid };\n }\n\n const safeResult$ = result.pipe(\n takeUntil(this._asyncCancelSubject),\n catchError(err => {\n console.error(`Async validation error for ${validator.error}:`, err);\n return of(false);\n })\n );\n\n const isValid = await firstValueFrom(safeResult$);\n if (signal.aborted) {\n return null;\n }\n\n return { validator, isValid };\n } catch (error) {\n if (!signal.aborted) {\n console.error(`Async validation error for ${validator.error}:`, error);\n return {\n validator,\n isValid: false,\n error: true,\n };\n }\n return null;\n }\n });\n\n const results = await Promise.all(validationPromises);\n\n if (signal.aborted) {\n return;\n }\n\n for (const result of results) {\n if (result && !result.isValid) {\n errors.set(result.validator.error, result.validator.message);\n }\n }\n\n this._asyncErrors.set(errors);\n } catch (error) {\n if (!signal.aborted) {\n console.error('Async validation error:', error);\n }\n } finally {\n if (!signal.aborted) {\n this.isValidating.set(false);\n }\n }\n }\n\n private _cancelAsyncValidation(): void {\n if (this._asyncValidationAbortController) {\n this._asyncValidationAbortController.abort();\n this._asyncValidationAbortController = null;\n }\n this._asyncCancelSubject.next();\n }\n\n private _showSuggestPopover(): void {\n this.uiState.update(s => ({ ...s, showSuggestPopover: true }));\n }\n\n private _hideSuggestPopover(): void {\n this.uiState.update(s => ({ ...s, showSuggestPopover: false }));\n }\n\n private _loadSuggestHistory(): void {\n const key = this.zAutoSuggest();\n if (!key) {\n this.suggestHistory.set([]);\n return;\n }\n\n const cacheKey = `autosuggest-${key}`;\n const history = ZCacheService.get<string[]>(cacheKey, []) ?? [];\n this.suggestHistory.set(history);\n }\n\n private _colorPickerCacheKey(): string {\n const configuredKey = this.zColorConfig().cacheKey;\n if (configuredKey) {\n return `input-color-picker-${configuredKey}`;\n }\n\n return 'input-color-picker-saved-colors';\n }\n\n private _loadColorPickerSavedColors(): void {\n const savedColors = ZCacheService.get<string[]>(this._colorPickerCacheKey(), []) ?? [];\n this._colorPickerSavedColors.set(this._normalizeColorList(savedColors).slice(0, 8));\n }\n\n private _incrementValue(multiplier: number): void {\n const currentValue = this._value();\n const numValue = typeof currentValue === 'number' ? currentValue : parseFloat(String(currentValue)) || 0;\n const step = this.zStep();\n let newValue = numValue + step * multiplier;\n\n const min = this.zMin();\n const max = this.zMax();\n\n if (min !== undefined && newValue < min) {\n newValue = min;\n }\n if (max !== undefined && newValue > max) {\n newValue = max;\n }\n\n if (!this.zAllowNegative() && newValue < 0) {\n newValue = 0;\n }\n\n this._value.set(newValue);\n this._onChange(newValue);\n }\n\n private _cleanNumberValue(value: string): string {\n const thousandSep = this.zThousandSeparator();\n let cleaned = value;\n\n if (thousandSep) {\n const escapedSep = thousandSep.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n cleaned = cleaned.replace(new RegExp(escapedSep, 'g'), '');\n }\n\n const decimalMarker = this.zDecimalMarker();\n if (typeof decimalMarker === 'string' && decimalMarker !== '.') {\n cleaned = cleaned.replace(decimalMarker, '.');\n }\n\n return cleaned;\n }\n\n private _parseNumberValue(value: string): number | null {\n const cleanValue = this._cleanNumberValue(value);\n if (cleanValue === '') {\n return null;\n }\n\n let numberValue = parseFloat(cleanValue);\n if (isNaN(numberValue)) {\n return null;\n }\n\n const min = this.zMin();\n const max = this.zMax();\n\n if (min !== undefined && numberValue < min) {\n numberValue = min;\n }\n\n if (max !== undefined && numberValue > max) {\n numberValue = max;\n }\n\n if (!this.zAllowNegative() && numberValue < 0) {\n return 0;\n }\n\n return numberValue;\n }\n\n private _getEffectiveMask(): string {\n const mask = this.zMask();\n if (mask) {\n return mask;\n }\n\n if (this.zType() !== 'number') {\n return '';\n }\n\n const decimalPlaces = this.zDecimalPlaces();\n const thousandSep = this.zThousandSeparator();\n if (decimalPlaces !== undefined || thousandSep === '.' || thousandSep === ',') {\n return `separator.${decimalPlaces ?? 0}`;\n }\n\n return '';\n }\n\n private _getEffectiveType(effectiveMask: string): ZInputType {\n const type = this.zType();\n\n if (type === 'password' && this.uiState().passwordVisible) {\n return 'text';\n }\n\n if (type === 'number' && effectiveMask) {\n return 'text';\n }\n\n return type;\n }\n\n private _getEffectiveDecimalMarker(): '.' | ',' | ['.', ','] {\n const thousandSep = this.zThousandSeparator();\n\n if (thousandSep === '.') {\n return ',';\n }\n\n if (thousandSep === ',') {\n return '.';\n }\n\n return this.zDecimalMarker();\n }\n\n private _getValidationErrors(): string[] {\n const errors: string[] = [];\n const value = this._value();\n const validators = this.zValidators();\n\n if (!this._shouldShowValidation()) {\n return errors;\n }\n\n const isRequired = this.zRequired() || this._formControl()?.errors?.['required'];\n if (isRequired && (value === null || value === undefined || value === '')) {\n this._zTranslate.currentLang();\n errors.push(this._zTranslate.instant('i18n_z_ui_input_required'));\n }\n\n for (const validator of validators) {\n if (validator.validate && !validator.validate(value)) {\n errors.push(validator.message);\n continue;\n }\n\n if (validator.error === 'required') {\n continue;\n }\n\n if (validator.error === 'number' && value !== null && value !== '') {\n const numValue = typeof value === 'number' ? value : parseFloat(String(value));\n if (isNaN(numValue)) {\n errors.push(validator.message);\n }\n }\n\n if (validator.error === 'min' && validator.min !== undefined && value !== null && value !== '') {\n const numValue = typeof value === 'number' ? value : parseFloat(String(value));\n if (!isNaN(numValue) && numValue < validator.min) {\n errors.push(validator.message);\n }\n }\n\n if (validator.error === 'max' && validator.max !== undefined && value !== null && value !== '') {\n const numValue = typeof value === 'number' ? value : parseFloat(String(value));\n if (!isNaN(numValue) && numValue > validator.max) {\n errors.push(validator.message);\n }\n }\n\n if (validator.error === 'pattern' && validator.pattern && value !== null && value !== '') {\n if (!validator.pattern.test(String(value))) {\n errors.push(validator.message);\n }\n }\n }\n\n return errors;\n }\n\n private _normalizeHexColor(value: string | number | null): string {\n return this._tryNormalizeHexColor(value) ?? '#000000';\n }\n\n private _tryNormalizeHexColor(value: string | number | null): string | null {\n const raw = String(value ?? '')\n .trim()\n .toUpperCase();\n\n if (/^#[0-9A-F]{6}$/.test(raw)) {\n return raw;\n }\n\n if (/^#[0-9A-F]{3}$/.test(raw)) {\n const [r, g, b] = raw.slice(1).split('');\n return `#${r}${r}${g}${g}${b}${b}`;\n }\n\n return null;\n }\n\n private _syncBlossomColorFromHex(hex: string): void {\n const { h, s, l } = hexToHsl(hex);\n const current = this._blossomColor();\n\n this._blossomColor.set({\n hue: h,\n saturation: lightnessToSliderValue(l),\n lightness: l,\n originalSaturation: s,\n alpha: current.alpha,\n layer: current.layer,\n });\n }\n\n private _syncColorStateFromHex(hex: string): void {\n this._syncBlossomColorFromHex(hex);\n this._syncColorPickerFromHex(hex);\n }\n\n private _syncColorPickerFromHex(hex: string): void {\n const hsv = this._hexToHsv(hex);\n const rgb = this._hsvToRgb(hsv);\n this._colorPickerHsv.set(hsv);\n this._colorPickerRgb.set(rgb);\n this._colorPickerHsl.set(this._rgbToHsl(rgb));\n }\n\n private _commitColor(hex: string): void {\n const color = this._normalizeHexColor(hex);\n this._value.set(color);\n this._syncColorStateFromHex(color);\n this.uiState.update(s => ({ ...s, dirty: true }));\n this._onChange(color);\n this._changeSubject.next(color);\n\n if (this.zAsyncValidators().length > 0 && this.zAsyncValidateOn() === 'change') {\n this._asyncValidationSubject.next(color);\n }\n }\n\n private _setColorPickerAlpha(alpha: number): void {\n const boundedAlpha = Math.min(100, Math.max(0, Math.round(alpha)));\n this._colorPickerAlpha.set(boundedAlpha);\n }\n\n private _parseBoundedNumber(value: string | number | null, min: number, max: number): number | null {\n const numericValue = Number(value);\n if (Number.isNaN(numericValue)) {\n return null;\n }\n\n return Math.min(max, Math.max(min, Math.round(numericValue)));\n }\n\n private _normalizeColorList(colors: readonly string[]): string[] {\n const result: string[] = [];\n\n for (const color of colors) {\n const normalized = this._tryNormalizeHexColor(color);\n if (!normalized) {\n continue;\n }\n\n if (result.includes(normalized)) {\n continue;\n }\n\n result.push(normalized);\n }\n\n return result;\n }\n\n private _isLightHexColor(hex: string): boolean {\n const normalized = this._normalizeHexColor(hex).slice(1);\n const red = parseInt(normalized.slice(0, 2), 16);\n const green = parseInt(normalized.slice(2, 4), 16);\n const blue = parseInt(normalized.slice(4, 6), 16);\n const luminance = (0.299 * red + 0.587 * green + 0.114 * blue) / 255;\n return luminance > 0.82;\n }\n\n private _getEyeDropper(): { open: () => Promise<{ sRGBHex: string }> } | null {\n const maybeWindow = window as unknown as {\n EyeDropper?: new () => { open: () => Promise<{ sRGBHex: string }> };\n };\n\n if (!maybeWindow.EyeDropper) {\n return null;\n }\n\n return new maybeWindow.EyeDropper();\n }\n\n private _updateColorPickerSv(event: PointerEvent): void {\n const target = event.currentTarget as HTMLElement;\n const rect = target.getBoundingClientRect();\n const saturation = ((event.clientX - rect.left) / rect.width) * 100;\n const value = 100 - ((event.clientY - rect.top) / rect.height) * 100;\n\n this._colorPickerHsv.update(color => ({\n ...color,\n saturation: Math.min(100, Math.max(0, saturation)),\n value: Math.min(100, Math.max(0, value)),\n }));\n this._commitColor(this._hsvToHex(this._colorPickerHsv()));\n }\n\n private _hexToHsv(hex: string): { hue: number; saturation: number; value: number } {\n const normalized = this._normalizeHexColor(hex).slice(1);\n const red = parseInt(normalized.slice(0, 2), 16) / 255;\n const green = parseInt(normalized.slice(2, 4), 16) / 255;\n const blue = parseInt(normalized.slice(4, 6), 16) / 255;\n const max = Math.max(red, green, blue);\n const min = Math.min(red, green, blue);\n const delta = max - min;\n\n let hue = 0;\n if (delta !== 0) {\n if (max === red) {\n hue = ((green - blue) / delta) % 6;\n }\n\n if (max === green) {\n hue = (blue - red) / delta + 2;\n }\n\n if (max === blue) {\n hue = (red - green) / delta + 4;\n }\n\n hue = Math.round(hue * 60);\n if (hue < 0) {\n hue += 360;\n }\n }\n\n return {\n hue,\n saturation: max === 0 ? 0 : Math.round((delta / max) * 100),\n value: Math.round(max * 100),\n };\n }\n\n private _hsvToRgb(color: { hue: number; saturation: number; value: number }): {\n red: number;\n green: number;\n blue: number;\n } {\n const hex = this._hsvToHex(color).slice(1);\n return {\n red: parseInt(hex.slice(0, 2), 16),\n green: parseInt(hex.slice(2, 4), 16),\n blue: parseInt(hex.slice(4, 6), 16),\n };\n }\n\n private _rgbToHex(color: { red: number; green: number; blue: number }): string {\n return [color.red, color.green, color.blue]\n .map(channel => Math.min(255, Math.max(0, channel)).toString(16).padStart(2, '0'))\n .join('')\n .toUpperCase()\n .replace(/^/, '#');\n }\n\n private _rgbToHsl(color: { red: number; green: number; blue: number }): {\n hue: number;\n saturation: number;\n lightness: number;\n } {\n const red = color.red / 255;\n const green = color.green / 255;\n const blue = color.blue / 255;\n const max = Math.max(red, green, blue);\n const min = Math.min(red, green, blue);\n const delta = max - min;\n const lightness = (max + min) / 2;\n let hue = 0;\n let saturation = 0;\n\n if (delta !== 0) {\n saturation = delta / (1 - Math.abs(2 * lightness - 1));\n\n if (max === red) {\n hue = ((green - blue) / delta) % 6;\n }\n\n if (max === green) {\n hue = (blue - red) / delta + 2;\n }\n\n if (max === blue) {\n hue = (red - green) / delta + 4;\n }\n\n hue = Math.round(hue * 60);\n if (hue < 0) {\n hue += 360;\n }\n }\n\n return {\n hue,\n saturation: Math.round(saturation * 100),\n lightness: Math.round(lightness * 100),\n };\n }\n\n private _hslToHex(color: { hue: number; saturation: number; lightness: number }): string {\n const saturation = color.saturation / 100;\n const lightness = color.lightness / 100;\n const chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n const hueSection = color.hue / 60;\n const x = chroma * (1 - Math.abs((hueSection % 2) - 1));\n const match = lightness - chroma / 2;\n let red = chroma;\n let green = 0;\n let blue = x;\n\n if (hueSection < 1) {\n red = chroma;\n green = x;\n blue = 0;\n }\n\n if (hueSection >= 1 && hueSection < 2) {\n red = x;\n green = chroma;\n blue = 0;\n }\n\n if (hueSection >= 2 && hueSection < 3) {\n red = 0;\n green = chroma;\n blue = x;\n }\n\n if (hueSection >= 3 && hueSection < 4) {\n red = 0;\n green = x;\n blue = chroma;\n }\n\n if (hueSection >= 4 && hueSection < 5) {\n red = x;\n green = 0;\n blue = chroma;\n }\n\n return [red, green, blue]\n .map(channel =>\n Math.round((channel + match) * 255)\n .toString(16)\n .padStart(2, '0')\n )\n .join('')\n .toUpperCase()\n .replace(/^/, '#');\n }\n\n private _hsvToHex(color: { hue: number; saturation: number; value: number }): string {\n const saturation = color.saturation / 100;\n const value = color.value / 100;\n const chroma = value * saturation;\n const hueSection = color.hue / 60;\n const x = chroma * (1 - Math.abs((hueSection % 2) - 1));\n const match = value - chroma;\n let red = chroma;\n let green = 0;\n let blue = x;\n\n if (hueSection < 1) {\n red = chroma;\n green = x;\n blue = 0;\n }\n\n if (hueSection >= 1 && hueSection < 2) {\n red = x;\n green = chroma;\n blue = 0;\n }\n\n if (hueSection >= 2 && hueSection < 3) {\n red = 0;\n green = chroma;\n blue = x;\n }\n\n if (hueSection >= 3 && hueSection < 4) {\n red = 0;\n green = x;\n blue = chroma;\n }\n\n if (hueSection >= 4 && hueSection < 5) {\n red = x;\n green = 0;\n blue = chroma;\n }\n\n return [red, green, blue]\n .map(channel =>\n Math.round((channel + match) * 255)\n .toString(16)\n .padStart(2, '0')\n )\n .join('')\n .toUpperCase()\n .replace(/^/, '#');\n }\n\n private _generateColorPalette(count: number): ColorInput[] {\n const safeCount = Math.max(1, Math.floor(count));\n const basePalette = [...DEFAULT_COLORS];\n\n if (safeCount <= basePalette.length) {\n if (safeCount === basePalette.length) {\n return basePalette;\n }\n\n const step = basePalette.length / safeCount;\n return Array.from({ length: safeCount }, (_, index) => basePalette[Math.floor(index * step)]);\n }\n\n const generated = [...basePalette];\n const clamp = (value: number, min: number, max: number): number => Math.min(max, Math.max(min, value));\n\n for (let index = basePalette.length; index < safeCount; index++) {\n const phase = index - basePalette.length;\n const hue = Math.round((phase * 137.508 + 17) % 360);\n const saturation = clamp(Math.round(70 + 10 * Math.sin(phase * 0.7)), 58, 84);\n const lightness = clamp(Math.round(55 + 8 * Math.cos(phase * 0.55)), 44, 66);\n\n generated.push({ h: hue, s: saturation, l: lightness });\n }\n\n return generated.slice(0, safeCount);\n }\n}\n","<div class=\"z-input-wrapper flex w-full flex-col gap-2\">\n @if (zLabel()) {\n <label [for]=\"inputId\" class=\"text-xs leading-none font-medium\" [class]=\"zLabelClass()\">\n {{ zLabel() | translate }}\n @if (zRequired()) {\n <span class=\"text-destructive! ml-0.5\">*</span>\n }\n </label>\n }\n\n @if (typeConfig().isTextarea) {\n <div class=\"relative w-full\" [class]=\"textareaClasses()\" [class.overflow-auto]=\"zAutoSizeContent()\">\n <textarea\n #inputEl\n [id]=\"inputId\"\n [placeholder]=\"zPlaceholder() | translate\"\n class=\"z-input-native placeholder:text-muted-foreground m-0 block min-h-14 w-full resize-none bg-transparent p-2 text-sm outline-none\"\n [class.resize-y]=\"zResize() && !isDisabled() && !zReadonly()\"\n [class.field-sizing-content]=\"zAutoSizeContent()\"\n [disabled]=\"isDisabled()\"\n [readonly]=\"zReadonly()\"\n [autocomplete]=\"zAutoComplete()\"\n [rows]=\"zRows()\"\n [attr.maxlength]=\"zMaxLength()\"\n [ngModel]=\"displayValue()\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (keydown)=\"onKeydown($event)\"></textarea>\n @if (zMaxLength()) {\n <div class=\"flex justify-end pr-1 pb-1\">\n <span class=\"text-muted-foreground text-xs\">{{ displayValue().length }} / {{ zMaxLength() }}</span>\n </div>\n }\n @if (zResize() && !isDisabled() && !zReadonly() && !zMaxLength()) {\n <svg\n class=\"text-muted-foreground pointer-events-none absolute right-0.5 bottom-0.5 opacity-40\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\">\n <path d=\"M10 2L2 10\" />\n <path d=\"M10 6L6 10\" />\n </svg>\n }\n </div>\n } @else {\n <div class=\"relative w-full\">\n <div\n class=\"z-input-container flex w-full items-center\"\n [class]=\"inputClasses()\"\n z-tooltip\n [zContent]=\"displayValue()\"\n [zTooltipDisabled]=\"typeConfig().isColor || uiState().isFocused || uiState().showSuggestPopover || !hasValue()\"\n [zTriggerElement]=\"inputEl\">\n <!-- Color picker square (prefix for color type) -->\n @if (typeConfig().isColor) {\n <div class=\"z-[10] shrink-0\">\n @if (isBlossomColorMode()) {\n <blossom-color-picker\n class=\"z-input-blossom flex items-center justify-center [&>div:first-child]:flex\"\n [style.--z-bcp-core-size.px]=\"blossomOptions().coreSize\"\n [style.--z-bcp-core-border-color]=\"blossomCoreBorderColor()\"\n [value]=\"blossomColor()\"\n [defaultValue]=\"blossomOptions().defaultValue\"\n [colors]=\"blossomColors()\"\n [disabled]=\"isDisabled() || zReadonly()\"\n [openOnHover]=\"blossomOptions().openOnHover\"\n [initialExpanded]=\"blossomOptions().initialExpanded\"\n [animationDuration]=\"blossomOptions().animationDuration\"\n [showAlphaSlider]=\"blossomOptions().showAlphaSlider\"\n [coreSize]=\"blossomOptions().coreSize\"\n [petalSize]=\"blossomOptions().petalSize\"\n [showCoreColor]=\"blossomOptions().showCoreColor\"\n [sliderPosition]=\"blossomOptions().sliderPosition\"\n [adaptivePositioning]=\"blossomOptions().adaptivePositioning\"\n (colorChange)=\"onBlossomColorChange($event)\"\n (colorCollapse)=\"onBlossomColorCollapse($event)\" />\n } @else {\n <button\n type=\"button\"\n class=\"z-input-color-trigger\"\n z-popover\n [zPopoverContent]=\"colorPickerPopover\"\n zTrigger=\"click\"\n zPosition=\"bottom-left\"\n zClass=\"z-input-color-picker-popover\"\n [zOffset]=\"8\"\n [zPopoverWidth]=\"330\"\n [zDisabled]=\"isDisabled() || zReadonly()\"\n [style.--z-bcp-core-size.px]=\"blossomOptions().coreSize\"\n [style.background]=\"normalizedColorValue()\"\n (zControl)=\"onColorPickerControl($event)\"\n (zShow)=\"onColorPickerOpen()\"\n (mousedown)=\"$event.preventDefault()\"\n [attr.aria-label]=\"'Color picker'\"></button>\n }\n </div>\n }\n\n @if (slotConfig().hasPrefix && !typeConfig().isColor) {\n <div class=\"text-muted-foreground left-3 flex items-center justify-center\">\n @if (zSearch()) {\n <z-icon zType=\"lucideSearch\" zSize=\"16\" />\n } @else if (slotConfig().isPrefixTemplate) {\n <ng-container *ngTemplateOutlet=\"$any(zPrefix())\" />\n } @else {\n {{ zPrefix() }}\n }\n </div>\n }\n\n <input\n #inputEl\n [id]=\"inputId\"\n [type]=\"typeConfig().isColor ? 'text' : maskConfig().effectiveType\"\n [placeholder]=\"zPlaceholder() | translate\"\n class=\"z-input-native placeholder:text-muted-foreground h-full min-w-0 flex-1 bg-transparent text-sm outline-none\"\n [disabled]=\"isDisabled()\"\n [readonly]=\"typeConfig().isColor ? true : zReadonly()\"\n [attr.min]=\"zMin()\"\n [attr.max]=\"zMax()\"\n [attr.step]=\"zStep()\"\n [autocomplete]=\"zAutoComplete()\"\n [ngModel]=\"typeConfig().isColor ? normalizedColorValue() : displayValue()\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (keydown)=\"onKeydown($event); onSuggestKeydown($event)\"\n [mask]=\"maskConfig().effectiveMask\"\n [thousandSeparator]=\"zThousandSeparator()\"\n [decimalMarker]=\"maskConfig().effectiveDecimalMarker\"\n [allowNegativeNumbers]=\"zAllowNegative()\"\n [dropSpecialCharacters]=\"false\" />\n\n @if (slotConfig().hasSuffix && !typeConfig().isColor) {\n <div class=\"text-muted-foreground flex items-center justify-center text-sm\">\n @if (slotConfig().isSuffixTemplate) {\n <ng-container *ngTemplateOutlet=\"$any(zSuffix())\" />\n } @else {\n {{ zSuffix() }}\n }\n </div>\n }\n\n <!-- Async validation loading indicator -->\n @if (isValidating()) {\n <div class=\"text-muted-foreground flex items-center justify-center\">\n <z-icon zType=\"lucideLoader2\" zSize=\"16\" class=\"animate-spin\" />\n </div>\n }\n\n <!-- Clear button -->\n @if (showClearButton()) {\n <button\n type=\"button\"\n tabindex=\"-1\"\n class=\"text-muted-foreground hover:text-foreground flex size-5 shrink-0 cursor-pointer items-center justify-center rounded-sm transition-colors\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"clearValue($event)\">\n <z-icon zType=\"lucideX\" zSize=\"14\" />\n </button>\n }\n\n <!-- Copy button for color type -->\n @if (typeConfig().isColor) {\n <input\n #nativeColorInputEl\n type=\"color\"\n class=\"z-input-native-color\"\n [ngModel]=\"normalizedColorValue()\"\n (ngModelChange)=\"onColorPickerHexChange($event)\"\n tabindex=\"-1\"\n aria-hidden=\"true\" />\n\n <button\n type=\"button\"\n tabindex=\"-1\"\n class=\"text-muted-foreground hover:text-foreground hover:bg-accent flex size-6 shrink-0 cursor-pointer items-center justify-center rounded-sm transition-all\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"copyColorToClipboard()\">\n <span class=\"relative flex size-4 items-center justify-center\">\n <z-icon\n zType=\"lucideCopy\"\n [class]=\"uiState().colorCopied ? 'scale-0 rotate-90 opacity-0' : 'scale-100 rotate-0 opacity-100'\"\n class=\"absolute transition-all duration-200 ease-out\"\n zSize=\"14\" />\n <z-icon\n zType=\"lucideCheck\"\n [class]=\"\n uiState().colorCopied ? 'text-success scale-100 rotate-0 opacity-100' : 'scale-0 -rotate-90 opacity-0'\n \"\n class=\"absolute transition-all duration-200 ease-out\"\n zSize=\"14\" />\n </span>\n </button>\n }\n\n @if (showArrows() && !isDisabled()) {\n <div class=\"-mr-1 flex h-[calc(100%-0.25rem)] shrink-0 flex-col\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n class=\"text-muted-foreground hover:bg-accent hover:text-foreground flex w-5 flex-1 cursor-pointer items-center justify-center rounded-sm transition-all\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"onArrowClick($event, 'up')\">\n <z-icon zType=\"lucideChevronUp\" zSize=\"12\" />\n </button>\n <button\n type=\"button\"\n tabindex=\"-1\"\n class=\"text-muted-foreground hover:bg-accent hover:text-foreground flex w-5 flex-1 cursor-pointer items-center justify-center rounded-sm transition-all\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"onArrowClick($event, 'down')\">\n <z-icon zType=\"lucideChevronDown\" zSize=\"12\" />\n </button>\n </div>\n }\n\n @if (typeConfig().isPassword && zShowPasswordToggle()) {\n <button\n type=\"button\"\n tabindex=\"-1\"\n class=\"text-muted-foreground hover:text-foreground flex size-6 shrink-0 cursor-pointer items-center justify-center rounded-sm transition-all\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"togglePasswordVisibility()\">\n @if (uiState().passwordVisible) {\n <z-icon zType=\"lucideEyeOff\" zSize=\"16\" />\n } @else {\n <z-icon zType=\"lucideEye\" zSize=\"16\" />\n }\n </button>\n }\n </div>\n\n @if (hasAutoSuggest() && uiState().showSuggestPopover && suggestHistory().length > 0) {\n <div\n class=\"bg-popover text-popover-foreground border-border z-animate-in z-fade-in z-duration-200 z-slide-in-from-top-4 absolute top-full left-0 z-50 mt-1 flex w-full flex-col gap-[0.1875rem] rounded-sm border p-1 shadow-md\">\n @for (item of filteredSuggestHistory(); track item; let i = $index) {\n <button\n type=\"button\"\n class=\"hover:bg-primary/10 hover:text-foreground flex w-full cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm transition-colors\"\n [class.bg-primary/15]=\"suggestActiveIndex() === i\"\n [class.text-primary]=\"suggestActiveIndex() === i\"\n (mousedown)=\"selectSuggestItem(item)\">\n <z-icon zType=\"lucideClock\" zSize=\"14\" class=\"text-muted-foreground shrink-0\" />\n <span class=\"truncate\">{{ item }}</span>\n </button>\n }\n </div>\n }\n </div>\n }\n\n <ng-template #colorPickerPopover>\n <div class=\"z-input-color-picker\" [style.--z-input-color-picker-current]=\"normalizedColorValue()\">\n <div\n class=\"z-input-color-picker-plane\"\n [style]=\"colorPickerSvStyle()\"\n (pointerdown)=\"onColorPickerSvPointerDown($event)\"\n (pointermove)=\"onColorPickerSvPointerMove($event)\">\n <span class=\"z-input-color-picker-cursor\" [style]=\"colorPickerCursorStyle()\"></span>\n </div>\n\n <div class=\"z-input-color-picker-controls\">\n <button\n type=\"button\"\n z-button\n zType=\"outline\"\n zSize=\"sm\"\n aria-label=\"Pick color\"\n zTypeIcon=\"lucidePencil\"\n (click)=\"openNativeColorPicker()\"></button>\n <div class=\"z-input-color-picker-sliders\">\n <input\n type=\"range\"\n min=\"0\"\n max=\"360\"\n [ngModel]=\"colorPickerHsv().hue\"\n class=\"z-input-color-picker-hue\"\n (input)=\"onColorPickerHueInput($event)\" />\n <input\n type=\"range\"\n min=\"0\"\n max=\"100\"\n [ngModel]=\"colorPickerAlpha()\"\n class=\"z-input-color-picker-alpha\"\n (input)=\"onColorPickerAlphaInput($event)\" />\n </div>\n </div>\n\n <div class=\"flex flex-col gap-2\">\n <div class=\"z-input-color-picker-fields\">\n <z-select\n zSize=\"sm\"\n class=\"z-input-color-picker-format\"\n [zOptions]=\"colorPickerFormatOptions\"\n [zShowSearch]=\"false\"\n [zTranslateLabels]=\"false\"\n [ngModel]=\"colorPickerFormat()\"\n (ngModelChange)=\"onColorPickerFormatChange($event)\" />\n <div class=\"z-input-color-picker-value-group\">\n @switch (colorPickerFormat()) {\n @case ('rgb') {\n <div class=\"z-input-color-picker-channel-group\">\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"R\"\n [zMin]=\"0\"\n [zMax]=\"255\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerRgbValue().red\"\n (ngModelChange)=\"onColorPickerRgbChange('red', $event)\" />\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"G\"\n [zMin]=\"0\"\n [zMax]=\"255\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerRgbValue().green\"\n (ngModelChange)=\"onColorPickerRgbChange('green', $event)\" />\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"B\"\n [zMin]=\"0\"\n [zMax]=\"255\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerRgbValue().blue\"\n (ngModelChange)=\"onColorPickerRgbChange('blue', $event)\" />\n </div>\n }\n @case ('hsl') {\n <div class=\"z-input-color-picker-channel-group\">\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"H\"\n [zMin]=\"0\"\n [zMax]=\"360\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerHslValue().hue\"\n (ngModelChange)=\"onColorPickerHslChange('hue', $event)\" />\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"S\"\n [zMin]=\"0\"\n [zMax]=\"100\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerHslValue().saturation\"\n (ngModelChange)=\"onColorPickerHslChange('saturation', $event)\" />\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"L\"\n [zMin]=\"0\"\n [zMax]=\"100\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerHslValue().lightness\"\n (ngModelChange)=\"onColorPickerHslChange('lightness', $event)\" />\n </div>\n }\n @case ('hsv') {\n <div class=\"z-input-color-picker-channel-group\">\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"H\"\n [zMin]=\"0\"\n [zMax]=\"360\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerHsv().hue\"\n (ngModelChange)=\"onColorPickerHsvValueChange('hue', $event)\" />\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"S\"\n [zMin]=\"0\"\n [zMax]=\"100\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerHsv().saturation\"\n (ngModelChange)=\"onColorPickerHsvValueChange('saturation', $event)\" />\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n zPlaceholder=\"V\"\n [zMin]=\"0\"\n [zMax]=\"100\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerHsv().value\"\n (ngModelChange)=\"onColorPickerHsvValueChange('value', $event)\" />\n </div>\n }\n @default {\n <z-input\n zSize=\"sm\"\n class=\"z-input-color-picker-hex-input\"\n [ngModel]=\"normalizedColorValue()\"\n (ngModelChange)=\"onColorPickerHexChange($event)\" />\n }\n }\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n class=\"z-input-color-picker-alpha-input\"\n [zMin]=\"0\"\n [zMax]=\"100\"\n zSuffix=\"%\"\n [zShowArrows]=\"false\"\n [ngModel]=\"colorPickerAlpha()\"\n (ngModelChange)=\"onColorPickerAlphaValueChange($event)\" />\n </div>\n </div>\n\n <div class=\"z-input-color-picker-saved-head\">\n <span>{{ 'i18n_z_ui_input_saved_colors' | translate }}</span>\n <button type=\"button\" z-button zType=\"ghost\" zSize=\"sm\" (click)=\"addCurrentColorToSaved()\">\n {{ 'i18n_z_ui_input_add_color' | translate }}\n </button>\n </div>\n <div class=\"z-input-color-picker-swatches\">\n @for (swatch of colorPickerSavedSwatches(); track swatch.color) {\n <button\n type=\"button\"\n class=\"z-input-color-picker-swatch rounded-[3px]!\"\n [class.z-input-color-picker-swatch-active]=\"swatch.color === normalizedColorValue()\"\n [class.z-input-color-picker-swatch-light]=\"swatch.isLight\"\n [style.--z-input-color-picker-swatch-color]=\"swatch.color\"\n [attr.aria-label]=\"swatch.color\"\n (click)=\"selectSavedColor(swatch.color)\"></button>\n }\n </div>\n </div>\n </div>\n </ng-template>\n\n @if (hasError()) {\n <p class=\"text-destructive animate-in fade-in slide-in-from-top-1 m-0 text-xs duration-200\">\n {{ errorMessage() }}\n </p>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|