@shival99/z-ui 1.6.10 → 1.7.1

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.
Files changed (75) hide show
  1. package/assets/css/animations.css +6 -0
  2. package/assets/css/base.css +0 -6
  3. package/assets/css/themes/gray.css +8 -0
  4. package/assets/css/themes/green.css +8 -0
  5. package/assets/css/themes/hospital.css +8 -0
  6. package/assets/css/themes/neutral.css +8 -0
  7. package/assets/css/themes/orange.css +8 -0
  8. package/assets/css/themes/slate.css +8 -0
  9. package/assets/css/themes/stone.css +8 -0
  10. package/assets/css/themes/violet.css +8 -0
  11. package/assets/css/themes/zinc.css +8 -0
  12. package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs +19 -17
  13. package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs.map +1 -1
  14. package/fesm2022/shival99-z-ui-components-z-button-group.mjs +191 -0
  15. package/fesm2022/shival99-z-ui-components-z-button-group.mjs.map +1 -0
  16. package/fesm2022/shival99-z-ui-components-z-button.mjs +6 -1
  17. package/fesm2022/shival99-z-ui-components-z-button.mjs.map +1 -1
  18. package/fesm2022/shival99-z-ui-components-z-calendar.mjs +60 -52
  19. package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -1
  20. package/fesm2022/shival99-z-ui-components-z-checkbox.mjs +13 -5
  21. package/fesm2022/shival99-z-ui-components-z-checkbox.mjs.map +1 -1
  22. package/fesm2022/shival99-z-ui-components-z-drawer.mjs +7 -4
  23. package/fesm2022/shival99-z-ui-components-z-drawer.mjs.map +1 -1
  24. package/fesm2022/shival99-z-ui-components-z-editor.mjs +28 -25
  25. package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -1
  26. package/fesm2022/shival99-z-ui-components-z-filter.mjs +1 -1
  27. package/fesm2022/shival99-z-ui-components-z-filter.mjs.map +1 -1
  28. package/fesm2022/shival99-z-ui-components-z-gallery.mjs +1573 -0
  29. package/fesm2022/shival99-z-ui-components-z-gallery.mjs.map +1 -0
  30. package/fesm2022/shival99-z-ui-components-z-icon.mjs +3 -1
  31. package/fesm2022/shival99-z-ui-components-z-icon.mjs.map +1 -1
  32. package/fesm2022/shival99-z-ui-components-z-input.mjs +114 -109
  33. package/fesm2022/shival99-z-ui-components-z-input.mjs.map +1 -1
  34. package/fesm2022/shival99-z-ui-components-z-modal.mjs +10 -9
  35. package/fesm2022/shival99-z-ui-components-z-modal.mjs.map +1 -1
  36. package/fesm2022/shival99-z-ui-components-z-pagination.mjs +1 -1
  37. package/fesm2022/shival99-z-ui-components-z-pagination.mjs.map +1 -1
  38. package/fesm2022/shival99-z-ui-components-z-radio.mjs +13 -5
  39. package/fesm2022/shival99-z-ui-components-z-radio.mjs.map +1 -1
  40. package/fesm2022/shival99-z-ui-components-z-select.mjs +37 -29
  41. package/fesm2022/shival99-z-ui-components-z-select.mjs.map +1 -1
  42. package/fesm2022/shival99-z-ui-components-z-switch.mjs +13 -5
  43. package/fesm2022/shival99-z-ui-components-z-switch.mjs.map +1 -1
  44. package/fesm2022/shival99-z-ui-components-z-table.mjs +1268 -1254
  45. package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -1
  46. package/fesm2022/shival99-z-ui-components-z-upload.mjs +21 -19
  47. package/fesm2022/shival99-z-ui-components-z-upload.mjs.map +1 -1
  48. package/fesm2022/shival99-z-ui-i18n.mjs +22 -0
  49. package/fesm2022/shival99-z-ui-i18n.mjs.map +1 -1
  50. package/fesm2022/shival99-z-ui-pipes.mjs +32 -1
  51. package/fesm2022/shival99-z-ui-pipes.mjs.map +1 -1
  52. package/fesm2022/shival99-z-ui-utils.mjs +9 -1
  53. package/fesm2022/shival99-z-ui-utils.mjs.map +1 -1
  54. package/package.json +9 -1
  55. package/types/shival99-z-ui-components-z-autocomplete.d.ts +11 -9
  56. package/types/shival99-z-ui-components-z-breadcrumb.d.ts +2 -2
  57. package/types/shival99-z-ui-components-z-button-group.d.ts +56 -0
  58. package/types/shival99-z-ui-components-z-button.d.ts +1 -1
  59. package/types/shival99-z-ui-components-z-calendar.d.ts +5 -4
  60. package/types/shival99-z-ui-components-z-checkbox.d.ts +5 -1
  61. package/types/shival99-z-ui-components-z-dropdown-menu.d.ts +1 -1
  62. package/types/shival99-z-ui-components-z-editor.d.ts +8 -6
  63. package/types/shival99-z-ui-components-z-empty.d.ts +2 -2
  64. package/types/shival99-z-ui-components-z-filter.d.ts +1 -1
  65. package/types/shival99-z-ui-components-z-gallery.d.ts +192 -0
  66. package/types/shival99-z-ui-components-z-icon.d.ts +3 -1
  67. package/types/shival99-z-ui-components-z-input.d.ts +40 -27
  68. package/types/shival99-z-ui-components-z-modal.d.ts +1 -1
  69. package/types/shival99-z-ui-components-z-radio.d.ts +5 -1
  70. package/types/shival99-z-ui-components-z-select.d.ts +7 -6
  71. package/types/shival99-z-ui-components-z-switch.d.ts +5 -1
  72. package/types/shival99-z-ui-components-z-table.d.ts +25 -22
  73. package/types/shival99-z-ui-components-z-upload.d.ts +7 -3
  74. package/types/shival99-z-ui-pipes.d.ts +21 -2
  75. package/types/shival99-z-ui-utils.d.ts +39 -2
@@ -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-[6px] 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-[6px] 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 { TranslatePipe } from '@ngx-translate/core';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { ZToastService } from '@shival99/z-ui/components/z-toast';\nimport { ZTranslateService, ZCacheService } from '@shival99/z-ui/services';\nimport { zUuid, zMergeClasses, zTransform } 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 ZInputControl,\n ZInputSize,\n ZInputState,\n ZInputType,\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: [FormsModule, ReactiveFormsModule, NgxMaskDirective, ZIconComponent, NgTemplateOutlet, TranslatePipe],\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\n public readonly zOnSearch = output<string | number | null>();\n public readonly zOnChange = output<string | number | null>();\n public readonly zControl = output<ZInputControl>();\n\n public readonly class = input<ClassValue>('');\n public readonly zType = input<ZInputType>('text');\n public readonly zSize = input<ZInputSize>('default');\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\n private readonly _value = signal<string | number | null>(null);\n private readonly _touched = signal(false);\n private readonly _disabled = signal(false);\n private readonly _dirty = 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\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 showSuggestPopover: false,\n colorCopied: false,\n });\n\n protected readonly isDisabled = computed(() => this._disabled() || this.zDisabled());\n protected readonly isPasswordType = computed(() => this.zType() === 'password');\n protected readonly isColorType = computed(() => this.zType() === 'color');\n protected readonly isPrefixTemplate = computed(() => this.zPrefix() instanceof TemplateRef);\n protected readonly isSuffixTemplate = computed(() => this.zSuffix() instanceof TemplateRef);\n protected readonly isTextarea = computed(() => this.zType() === 'textarea');\n\n protected readonly effectiveType = computed(() => {\n if (this.zType() === 'password' && this.uiState().passwordVisible) {\n return 'text';\n }\n\n if (this.zType() === 'number' && this.effectiveMask()) {\n return 'text';\n }\n\n return this.zType();\n });\n\n protected readonly showArrows = computed(() => this.zType() === 'number' && this.zShowArrows());\n\n protected readonly effectiveMask = computed(() => {\n if (this.zMask()) {\n return this.zMask();\n }\n\n if (this.zType() === 'number') {\n const decimalPlaces = this.zDecimalPlaces();\n if (decimalPlaces !== undefined) {\n return `separator.${decimalPlaces}`;\n }\n\n return 'separator.0';\n }\n\n return '';\n });\n\n protected readonly effectiveDecimalMarker = computed(() => {\n const thousandSep = this.zThousandSeparator();\n const decimalMark = this.zDecimalMarker();\n if (thousandSep === '.') {\n return ',';\n }\n\n if (thousandSep === ',') {\n return '.';\n }\n return decimalMark;\n });\n\n protected readonly displayValue = computed(() => {\n const val = this._value();\n if (val === null || val === undefined) {\n return '';\n }\n\n return String(val);\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._dirty() || this._touched();\n }\n\n if (control) {\n return control.dirty;\n }\n\n return this._dirty() || this._touched();\n });\n\n protected readonly hasError = computed(() => {\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 showError = computed(() => this.hasError());\n\n protected readonly errorMessage = computed(() => {\n const asyncErrors = this._asyncErrors();\n if (asyncErrors.size > 0) {\n return asyncErrors.values().next().value as string;\n }\n\n const customErrors = this._getValidationErrors();\n if (customErrors.length > 0) {\n return 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\n for (const validator of validators) {\n if (errors[validator.error]) {\n return 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 protected readonly hasPrefix = computed(() => this.zSearch() || !!this.zPrefix());\n protected readonly hasSuffix = computed(() => !!this.zSuffix());\n\n protected readonly isTextPrefix = computed(() => {\n const prefix = this.zPrefix();\n return typeof prefix === 'string' && prefix.length > 0;\n });\n\n protected readonly isTextSuffix = computed(() => {\n const suffix = this.zSuffix();\n return typeof suffix === 'string' && suffix.length > 0;\n });\n\n protected readonly currentStatus = computed(() => {\n if (this.isDisabled()) {\n return 'disabled';\n }\n if (this.zReadonly()) {\n return 'readonly';\n }\n if (this.hasError()) {\n return 'error';\n }\n return 'default';\n });\n\n protected readonly inputClasses = computed(() =>\n zMergeClasses(\n zInputVariants({\n zSize: this.zSize(),\n zStatus: this.currentStatus(),\n }),\n this.class()\n )\n );\n\n protected readonly textareaClasses = computed(() =>\n zMergeClasses(\n zTextareaVariants({\n zStatus: this.currentStatus(),\n }),\n this.class()\n )\n );\n\n protected readonly hasAutoSuggest = computed(() => {\n const key = this.zAutoSuggest();\n return key !== undefined && key.length > 0;\n });\n\n protected readonly hasValue = computed(() => {\n const value = this._value();\n return value !== null && value !== undefined && value !== '';\n });\n\n protected readonly showClearButton = computed(\n () => this.zAllowClear() && this.hasValue() && !this.isDisabled() && !this.zReadonly()\n );\n\n public readonly state = computed<ZInputState>(() => ({\n focused: this.uiState().isFocused,\n touched: this._touched(),\n blurred: !this.uiState().isFocused,\n dirty: this._dirty(),\n disabled: this.isDisabled(),\n readonly: this.zReadonly(),\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\n ngOnInit(): void {\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 }\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 public markAsTouched(): void {\n this._touched.set(true);\n this._onTouched();\n }\n\n public markAsUntouched(): void {\n this._touched.set(false);\n }\n\n public markAsDirty(): void {\n this._dirty.set(true);\n }\n\n public markAsPristine(): void {\n this._dirty.set(false);\n }\n\n public validate(): boolean {\n this._touched.set(true);\n this._dirty.set(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._ngControl?.control?.valid ?? true;\n }\n\n public reset(): void {\n this._cancelAsyncValidation();\n this.isValidating.set(false);\n this._asyncErrors.set(new Map());\n\n this._value.set(null);\n this._touched.set(false);\n this._dirty.set(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 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._dirty.set(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 const cleanValue = this._cleanNumberValue(value);\n value = cleanValue === '' ? null : parseFloat(cleanValue);\n if (value !== null && isNaN(value)) {\n value = null;\n }\n }\n\n this._value.set(value);\n this._dirty.set(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() === 'number' && typeof rawValue === 'string') {\n const cleanValue = this._cleanNumberValue(rawValue);\n value = cleanValue === '' ? null : parseFloat(cleanValue);\n if (value !== null && isNaN(value)) {\n value = null;\n }\n }\n\n this._value.set(value);\n this._dirty.set(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(): void {\n if (this._dirty()) {\n this._touched.set(true);\n }\n\n this._onTouched();\n this.uiState.update(s => ({ ...s, isFocused: false }));\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(): void {\n this.uiState.update(s => ({ ...s, isFocused: true }));\n this._loadSuggestHistory();\n if (this.hasAutoSuggest() && this.suggestHistory().length > 0) {\n this._showSuggestPopover();\n }\n }\n\n protected onKeydown(event: KeyboardEvent): void {\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._dirty.set(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 }\n\n protected togglePasswordVisibility(): void {\n this.uiState.update(s => ({ ...s, passwordVisible: !s.passwordVisible }));\n }\n\n protected copyColorToClipboard(): void {\n const colorValue = String(this._value() || '#000000').toUpperCase();\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 private _emitControl(): void {\n this.zControl.emit({\n validate: () => this.validate(),\n reset: () => this.reset(),\n focus: () => this.focus(),\n blur: () => this.blur(),\n markAsTouched: () => this.markAsTouched(),\n markAsUntouched: () => this.markAsUntouched(),\n markAsDirty: () => this.markAsDirty(),\n markAsPristine: () => this.markAsPristine(),\n setValue: (value: string | number | null) => this.setValue(value),\n hasError: this.hasError,\n isValidating: this.isValidating,\n value: this._value.asReadonly(),\n errorMessage: this.errorMessage,\n state: this.state,\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 _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.replace(new RegExp(`\\\\${thousandSep}`, 'g'), '');\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 _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","<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 (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()\"\n (focus)=\"onFocus()\"\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 class=\"z-input-container flex w-full items-center\" [class]=\"inputClasses()\">\n <!-- Color picker square (prefix for color type) -->\n @if (isColorType()) {\n <label\n [for]=\"inputId\"\n class=\"border-input relative z-10 size-6 shrink-0 cursor-pointer overflow-hidden rounded border\">\n <input\n type=\"color\"\n [id]=\"inputId + '-picker'\"\n class=\"absolute -top-2 -left-2 size-12 cursor-pointer border-none bg-transparent p-0\"\n [disabled]=\"isDisabled()\"\n [ngModel]=\"displayValue() || '#000000'\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\" />\n </label>\n }\n\n @if (hasPrefix() && !isColorType()) {\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 (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]=\"isColorType() ? 'text' : 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]=\"isColorType() ? true : zReadonly()\"\n [attr.min]=\"zMin()\"\n [attr.max]=\"zMax()\"\n [attr.step]=\"zStep()\"\n [autocomplete]=\"zAutoComplete()\"\n [ngModel]=\"isColorType() ? (displayValue() || '#000000').toUpperCase() : displayValue()\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n (keydown)=\"onKeydown($event)\"\n [mask]=\"effectiveMask()\"\n [thousandSeparator]=\"zThousandSeparator()\"\n [decimalMarker]=\"effectiveDecimalMarker()\"\n [allowNegativeNumbers]=\"zAllowNegative()\"\n [dropSpecialCharacters]=\"false\"\n (keydown)=\"onSuggestKeydown($event)\"\n (blur)=\"closeSuggestPopover()\" />\n\n @if (hasSuffix() && !isColorType()) {\n <div class=\"text-muted-foreground flex items-center justify-center text-sm\">\n @if (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 transition-colors\"\n (click)=\"clearValue($event)\">\n <z-icon zType=\"lucideX\" zSize=\"14\" />\n </button>\n }\n\n <!-- Copy button for color type -->\n @if (isColorType()) {\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 transition-all\"\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%-4px)] 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 transition-all\"\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 transition-all\"\n (click)=\"onArrowClick($event, 'down')\">\n <z-icon zType=\"lucideChevronDown\" zSize=\"12\" />\n </button>\n </div>\n }\n\n @if (isPasswordType() && 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 transition-all\"\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-[3px] rounded-[6px] 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-[4px] 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 @if (showError()) {\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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"}
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-[6px] 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-[6px] 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 { TranslatePipe } from '@ngx-translate/core';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { ZToastService } from '@shival99/z-ui/components/z-toast';\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 ZInputControl,\n ZInputMaskConfig,\n ZInputSize,\n ZInputSlotConfig,\n ZInputState,\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: [FormsModule, ReactiveFormsModule, NgxMaskDirective, ZIconComponent, NgTemplateOutlet, TranslatePipe],\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\n public readonly zOnSearch = output<string | number | null>();\n public readonly zOnChange = output<string | number | null>();\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 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\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\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 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 inputClasses = computed(() =>\n zMergeClasses(zInputVariants({ zSize: this.zSize(), zStatus: this.currentStatus() }), this.class())\n );\n\n protected readonly textareaClasses = computed(() =>\n zMergeClasses(zTextareaVariants({ zStatus: this.currentStatus() }), 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 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 asyncErrors = this._asyncErrors();\n if (asyncErrors.size > 0) {\n return asyncErrors.values().next().value as string;\n }\n\n const customErrors = this._getValidationErrors();\n if (customErrors.length > 0) {\n return 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 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 public readonly state = computed<ZInputState>(() => ({\n focused: this.uiState().isFocused,\n touched: this.uiState().touched,\n blurred: !this.uiState().isFocused,\n dirty: this.uiState().dirty,\n disabled: this.isDisabled(),\n readonly: this.zReadonly(),\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\n ngOnInit(): void {\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 }\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 public markAsTouched(): void {\n this.uiState.update(s => ({ ...s, touched: true }));\n this._onTouched();\n }\n\n public markAsUntouched(): void {\n this.uiState.update(s => ({ ...s, touched: false }));\n }\n\n public markAsDirty(): void {\n this.uiState.update(s => ({ ...s, dirty: true }));\n }\n\n public markAsPristine(): void {\n this.uiState.update(s => ({ ...s, dirty: false }));\n }\n\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._ngControl?.control?.valid ?? true;\n }\n\n public reset(): void {\n this._cancelAsyncValidation();\n this.isValidating.set(false);\n this._asyncErrors.set(new Map());\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 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 const cleanValue = this._cleanNumberValue(value);\n value = cleanValue === '' ? null : parseFloat(cleanValue);\n if (value !== null && isNaN(value)) {\n value = null;\n }\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() === 'number' && typeof rawValue === 'string') {\n const cleanValue = this._cleanNumberValue(rawValue);\n value = cleanValue === '' ? null : parseFloat(cleanValue);\n if (value !== null && isNaN(value)) {\n value = null;\n }\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.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.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.zEvent.emit(zCreateEvent('keydown', event));\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 }\n\n protected togglePasswordVisibility(): void {\n this.uiState.update(s => ({ ...s, passwordVisible: !s.passwordVisible }));\n }\n\n protected copyColorToClipboard(): void {\n const colorValue = String(this._value() || '#000000').toUpperCase();\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 private _emitControl(): void {\n this.zControl.emit({\n validate: () => this.validate(),\n reset: () => this.reset(),\n focus: () => this.focus(),\n blur: () => this.blur(),\n markAsTouched: () => this.markAsTouched(),\n markAsUntouched: () => this.markAsUntouched(),\n markAsDirty: () => this.markAsDirty(),\n markAsPristine: () => this.markAsPristine(),\n setValue: (value: string | number | null) => this.setValue(value),\n hasError: this.hasError,\n isValidating: this.isValidating,\n value: this._value.asReadonly(),\n errorMessage: this.errorMessage,\n state: this.state,\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 _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.replace(new RegExp(`\\\\${thousandSep}`, 'g'), '');\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 _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 if (decimalPlaces !== undefined) {\n return `separator.${decimalPlaces}`;\n }\n\n return 'separator.0';\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","<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 class=\"z-input-container flex w-full items-center\" [class]=\"inputClasses()\">\n <!-- Color picker square (prefix for color type) -->\n @if (typeConfig().isColor) {\n <label\n [for]=\"inputId\"\n class=\"border-input relative z-10 size-6 shrink-0 cursor-pointer overflow-hidden rounded border\">\n <input\n type=\"color\"\n [id]=\"inputId + '-picker'\"\n class=\"absolute -top-2 -left-2 size-12 cursor-pointer border-none bg-transparent p-0\"\n [disabled]=\"isDisabled()\"\n [ngModel]=\"displayValue() || '#000000'\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\" />\n </label>\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 ? (displayValue() || '#000000').toUpperCase() : 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 transition-colors\"\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 <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 transition-all\"\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%-4px)] 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 transition-all\"\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 transition-all\"\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 transition-all\"\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-[3px] rounded-[6px] 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-[4px] 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 @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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"}
@@ -399,8 +399,11 @@ class ZModalComponent extends BasePortalOutlet {
399
399
  this.zOk.emit();
400
400
  }
401
401
  onCloseClick() {
402
- if (this.isTemplateMode() && !this.effectiveLoading()) {
403
- this.zCancel.emit();
402
+ if (this.effectiveLoading()) {
403
+ return;
404
+ }
405
+ this.zCancel.emit();
406
+ if (this.isTemplateMode()) {
404
407
  this._closeWithAnimation();
405
408
  }
406
409
  }
@@ -546,7 +549,7 @@ let ZModalRef = class ZModalRef {
546
549
  .pipe(takeUntil(this._destroy$))
547
550
  .subscribe(() => {
548
551
  if (!this.loading()) {
549
- this.close();
552
+ this._trigger(ZModalTriggerAction.CANCEL);
550
553
  }
551
554
  });
552
555
  }
@@ -555,7 +558,7 @@ let ZModalRef = class ZModalRef {
555
558
  .pipe(filter(event => event.key === 'Escape'), takeUntil(this._destroy$))
556
559
  .subscribe(() => {
557
560
  if (!this.loading()) {
558
- this.close();
561
+ this._trigger(ZModalTriggerAction.CANCEL);
559
562
  }
560
563
  });
561
564
  }
@@ -651,8 +654,8 @@ class ZModalService {
651
654
  const config = {
652
655
  zTitle: options.zTitle,
653
656
  zContent: options.zContent,
654
- zOkText: options.zOkText ?? this._zTranslate.instant('i18n_z_ui_modal_confirm'),
655
- zCancelText: options.zCancelText ?? this._zTranslate.instant('i18n_z_ui_modal_cancel'),
657
+ zOkText: options.zOkText ?? this._zTranslate.translate('i18n_z_ui_modal_confirm')(),
658
+ zCancelText: options.zCancelText ?? this._zTranslate.translate('i18n_z_ui_modal_cancel')(),
656
659
  zOkDestructive: typeConfig.okDestructive,
657
660
  zConfirmIcon: options.zIcon ?? typeConfig.icon,
658
661
  zMaskClosable: options.zMaskClosable ?? true,
@@ -660,9 +663,7 @@ class ZModalService {
660
663
  zConfirmType: type,
661
664
  zData: options.zData,
662
665
  zOnOk: () => options.zOnOk?.(),
663
- zOnCancel: () => {
664
- options.zOnCancel?.();
665
- },
666
+ zOnCancel: () => options.zOnCancel?.(),
666
667
  };
667
668
  return this.create(config);
668
669
  }