@shival99/z-ui 2.1.32 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/fesm2022/shival99-z-ui-components-z-accordion.mjs +41 -25
  2. package/fesm2022/shival99-z-ui-components-z-accordion.mjs.map +1 -1
  3. package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs +176 -97
  4. package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs.map +1 -1
  5. package/fesm2022/shival99-z-ui-components-z-avatar.mjs +71 -40
  6. package/fesm2022/shival99-z-ui-components-z-avatar.mjs.map +1 -1
  7. package/fesm2022/shival99-z-ui-components-z-breadcrumb.mjs +26 -15
  8. package/fesm2022/shival99-z-ui-components-z-breadcrumb.mjs.map +1 -1
  9. package/fesm2022/shival99-z-ui-components-z-button-group.mjs +33 -21
  10. package/fesm2022/shival99-z-ui-components-z-button-group.mjs.map +1 -1
  11. package/fesm2022/shival99-z-ui-components-z-button.mjs +32 -19
  12. package/fesm2022/shival99-z-ui-components-z-button.mjs.map +1 -1
  13. package/fesm2022/shival99-z-ui-components-z-calendar.mjs +289 -172
  14. package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -1
  15. package/fesm2022/shival99-z-ui-components-z-card.mjs +34 -24
  16. package/fesm2022/shival99-z-ui-components-z-card.mjs.map +1 -1
  17. package/fesm2022/shival99-z-ui-components-z-chat.mjs +85 -47
  18. package/fesm2022/shival99-z-ui-components-z-chat.mjs.map +1 -1
  19. package/fesm2022/shival99-z-ui-components-z-checkbox.mjs +56 -31
  20. package/fesm2022/shival99-z-ui-components-z-checkbox.mjs.map +1 -1
  21. package/fesm2022/shival99-z-ui-components-z-code.mjs +29 -16
  22. package/fesm2022/shival99-z-ui-components-z-code.mjs.map +1 -1
  23. package/fesm2022/shival99-z-ui-components-z-command.mjs +34 -19
  24. package/fesm2022/shival99-z-ui-components-z-command.mjs.map +1 -1
  25. package/fesm2022/shival99-z-ui-components-z-drawer.mjs +310 -88
  26. package/fesm2022/shival99-z-ui-components-z-drawer.mjs.map +1 -1
  27. package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs +32 -18
  28. package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs.map +1 -1
  29. package/fesm2022/shival99-z-ui-components-z-editor.mjs +118 -62
  30. package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -1
  31. package/fesm2022/shival99-z-ui-components-z-empty.mjs +31 -17
  32. package/fesm2022/shival99-z-ui-components-z-empty.mjs.map +1 -1
  33. package/fesm2022/shival99-z-ui-components-z-filter.mjs +81 -54
  34. package/fesm2022/shival99-z-ui-components-z-filter.mjs.map +1 -1
  35. package/fesm2022/shival99-z-ui-components-z-gallery.mjs +240 -132
  36. package/fesm2022/shival99-z-ui-components-z-gallery.mjs.map +1 -1
  37. package/fesm2022/shival99-z-ui-components-z-icon.mjs +39 -21
  38. package/fesm2022/shival99-z-ui-components-z-icon.mjs.map +1 -1
  39. package/fesm2022/shival99-z-ui-components-z-input.mjs +173 -95
  40. package/fesm2022/shival99-z-ui-components-z-input.mjs.map +1 -1
  41. package/fesm2022/shival99-z-ui-components-z-kanban.mjs +88 -47
  42. package/fesm2022/shival99-z-ui-components-z-kanban.mjs.map +1 -1
  43. package/fesm2022/shival99-z-ui-components-z-loading.mjs +31 -19
  44. package/fesm2022/shival99-z-ui-components-z-loading.mjs.map +1 -1
  45. package/fesm2022/shival99-z-ui-components-z-marquee.mjs +42 -23
  46. package/fesm2022/shival99-z-ui-components-z-marquee.mjs.map +1 -1
  47. package/fesm2022/shival99-z-ui-components-z-media-player.mjs +87 -45
  48. package/fesm2022/shival99-z-ui-components-z-media-player.mjs.map +1 -1
  49. package/fesm2022/shival99-z-ui-components-z-menu.mjs +126 -67
  50. package/fesm2022/shival99-z-ui-components-z-menu.mjs.map +1 -1
  51. package/fesm2022/shival99-z-ui-components-z-metric-card.mjs +42 -23
  52. package/fesm2022/shival99-z-ui-components-z-metric-card.mjs.map +1 -1
  53. package/fesm2022/shival99-z-ui-components-z-modal.mjs +144 -80
  54. package/fesm2022/shival99-z-ui-components-z-modal.mjs.map +1 -1
  55. package/fesm2022/shival99-z-ui-components-z-pagination.mjs +45 -24
  56. package/fesm2022/shival99-z-ui-components-z-pagination.mjs.map +1 -1
  57. package/fesm2022/shival99-z-ui-components-z-popover.mjs +90 -57
  58. package/fesm2022/shival99-z-ui-components-z-popover.mjs.map +1 -1
  59. package/fesm2022/shival99-z-ui-components-z-qrcode.mjs +51 -29
  60. package/fesm2022/shival99-z-ui-components-z-qrcode.mjs.map +1 -1
  61. package/fesm2022/shival99-z-ui-components-z-radio.mjs +36 -20
  62. package/fesm2022/shival99-z-ui-components-z-radio.mjs.map +1 -1
  63. package/fesm2022/shival99-z-ui-components-z-scrollarea.mjs +27 -15
  64. package/fesm2022/shival99-z-ui-components-z-scrollarea.mjs.map +1 -1
  65. package/fesm2022/shival99-z-ui-components-z-select.mjs +239 -138
  66. package/fesm2022/shival99-z-ui-components-z-select.mjs.map +1 -1
  67. package/fesm2022/shival99-z-ui-components-z-show-more.mjs +38 -21
  68. package/fesm2022/shival99-z-ui-components-z-show-more.mjs.map +1 -1
  69. package/fesm2022/shival99-z-ui-components-z-skeleton-auto.mjs +42 -23
  70. package/fesm2022/shival99-z-ui-components-z-skeleton-auto.mjs.map +1 -1
  71. package/fesm2022/shival99-z-ui-components-z-skeleton.mjs +35 -19
  72. package/fesm2022/shival99-z-ui-components-z-skeleton.mjs.map +1 -1
  73. package/fesm2022/shival99-z-ui-components-z-steps.mjs +55 -31
  74. package/fesm2022/shival99-z-ui-components-z-steps.mjs.map +1 -1
  75. package/fesm2022/shival99-z-ui-components-z-switch.mjs +60 -33
  76. package/fesm2022/shival99-z-ui-components-z-switch.mjs.map +1 -1
  77. package/fesm2022/shival99-z-ui-components-z-table.mjs +10875 -0
  78. package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -0
  79. package/fesm2022/shival99-z-ui-components-z-tabs.mjs +534 -0
  80. package/fesm2022/shival99-z-ui-components-z-tabs.mjs.map +1 -0
  81. package/fesm2022/shival99-z-ui-components-z-tags.mjs +72 -46
  82. package/fesm2022/shival99-z-ui-components-z-tags.mjs.map +1 -1
  83. package/fesm2022/shival99-z-ui-components-z-timeline.mjs +254 -0
  84. package/fesm2022/shival99-z-ui-components-z-timeline.mjs.map +1 -0
  85. package/fesm2022/shival99-z-ui-components-z-toast.mjs +53 -31
  86. package/fesm2022/shival99-z-ui-components-z-toast.mjs.map +1 -1
  87. package/fesm2022/shival99-z-ui-components-z-tooltip.mjs +133 -56
  88. package/fesm2022/shival99-z-ui-components-z-tooltip.mjs.map +1 -1
  89. package/fesm2022/shival99-z-ui-components-z-upload.mjs +63 -36
  90. package/fesm2022/shival99-z-ui-components-z-upload.mjs.map +1 -1
  91. package/fesm2022/shival99-z-ui-i18n.mjs +2 -0
  92. package/fesm2022/shival99-z-ui-i18n.mjs.map +1 -1
  93. package/fesm2022/shival99-z-ui-pipes.mjs +18 -18
  94. package/fesm2022/shival99-z-ui-services.mjs +35 -31
  95. package/fesm2022/shival99-z-ui-services.mjs.map +1 -1
  96. package/package.json +16 -16
  97. package/types/shival99-z-ui-components-z-autocomplete.d.ts +2 -2
  98. package/types/shival99-z-ui-components-z-card.d.ts +1 -2
  99. package/types/shival99-z-ui-components-z-drawer.d.ts +20 -2
  100. package/types/shival99-z-ui-components-z-gallery.d.ts +1 -2
  101. package/types/shival99-z-ui-components-z-select.d.ts +2 -2
  102. package/types/shival99-z-ui-components-z-table.d.ts +2293 -0
  103. package/types/shival99-z-ui-components-z-tabs.d.ts +92 -0
  104. package/types/shival99-z-ui-components-z-timeline.d.ts +71 -0
@@ -1 +1 @@
1
- {"version":3,"file":"shival99-z-ui-components-z-upload.mjs","sources":["../../../../libs/core-ui/components/z-upload/z-upload.types.ts","../../../../libs/core-ui/components/z-upload/z-upload.variants.ts","../../../../libs/core-ui/components/z-upload/z-upload.component.ts","../../../../libs/core-ui/components/z-upload/z-upload.component.html","../../../../libs/core-ui/components/z-upload/shival99-z-ui-components-z-upload.ts"],"sourcesContent":["import type { Signal } from '@angular/core';\n\nexport type ZUploadSize = 'sm' | 'default' | 'lg';\nexport type ZUploadStatus = 'pending' | 'uploading' | 'success' | 'error';\n\nexport interface ZUploadFile {\n id: string;\n name: string;\n size: number;\n type: string;\n file?: File;\n url?: string;\n progress: number;\n status: ZUploadStatus;\n}\n\nexport interface ZUploadError {\n file: File;\n error: string;\n}\n\nexport interface ZUploadValidator {\n error: string;\n message: string;\n validate?: (files: ZUploadFile[]) => boolean;\n}\n\nexport interface ZUploadControl {\n /** Trigger validation and return true if valid */\n valid: () => boolean;\n /**\n * Trigger validation and return true if has error.\n * @deprecated Use `valid()` for boolean form-submit checks.\n */\n validate: () => boolean;\n reset: () => void;\n clearFiles: () => void;\n openFileDialog: () => void;\n markAsTouched: () => void;\n markAsUntouched: () => void;\n markAsDirty: () => void;\n markAsPristine: () => void;\n hasError: Signal<boolean>;\n files: Signal<ZUploadFile[]>;\n errorMessage: Signal<string>;\n}\n\nexport const formatFileSize = (bytes: number): string => {\n if (bytes === 0) {\n return '0 B';\n }\n\n const units = ['B', 'KB', 'MB', 'GB'];\n const k = 1024;\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const size = bytes / Math.pow(k, i);\n return `${size.toFixed(i > 0 ? 1 : 0)} ${units[i]}`;\n};\n","import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zUploadDropzoneVariants = cva(\n [\n 'relative flex flex-col items-center justify-center rounded-sm border-2 border-dashed',\n 'transition-[border-color,background-color] duration-200 cursor-pointer',\n 'hover:border-primary/50 hover:bg-primary/5',\n ],\n {\n variants: {\n zSize: {\n sm: 'min-h-24 gap-1 p-3',\n default: 'min-h-32 gap-2 p-4',\n lg: 'min-h-40 gap-3 p-6',\n },\n zStatus: {\n default: 'border-input bg-background',\n active: 'border-primary bg-primary/10',\n disabled: 'opacity-50 cursor-not-allowed bg-muted border-muted',\n readonly: 'opacity-70 cursor-default bg-muted/50 border-muted',\n error: 'border-destructive! bg-destructive/5 hover:border-destructive!',\n },\n },\n defaultVariants: {\n zSize: 'default',\n zStatus: 'default',\n },\n }\n);\n\nexport type ZUploadDropzoneVariants = VariantProps<typeof zUploadDropzoneVariants>;\n\nexport const zUploadFileItemVariants = cva(\n ['relative flex items-center gap-3 rounded-sm border border-input bg-background p-3', 'transition-all duration-200'],\n {\n variants: {\n zStatus: {\n pending: '',\n uploading: '',\n success: '',\n error: '',\n },\n },\n defaultVariants: {\n zStatus: 'pending',\n },\n }\n);\n\nexport type ZUploadFileItemVariants = VariantProps<typeof zUploadFileItemVariants>;\n","import {\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 viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n type AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n NgControl,\n NgModel,\n PristineChangeEvent,\n TouchedChangeEvent,\n} from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { ZLoadingComponent } from '@shival99/z-ui/components/z-loading';\nimport { ZTooltipDirective } from '@shival99/z-ui/components/z-tooltip';\nimport { ZTranslateService } from '@shival99/z-ui/services';\nimport { zUuid, zMergeClasses, zTransform, zCreateEvent, type ZEvent } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { filter, merge } from 'rxjs';\nimport {\n formatFileSize,\n type ZUploadControl,\n type ZUploadError,\n type ZUploadFile,\n type ZUploadSize,\n type ZUploadValidator,\n} from './z-upload.types';\nimport { zUploadDropzoneVariants, zUploadFileItemVariants } from './z-upload.variants';\n\n@Component({\n selector: 'z-upload',\n imports: [ZIconComponent, ZLoadingComponent, ZTooltipDirective, TranslatePipe],\n standalone: true,\n templateUrl: './z-upload.component.html',\n styleUrl: './z-upload.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ZUploadComponent),\n multi: true,\n },\n TranslatePipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'zUpload',\n})\nexport class ZUploadComponent implements OnInit, ControlValueAccessor {\n private readonly _injector = inject(Injector);\n private readonly _destroyRef = inject(DestroyRef);\n private readonly _zTranslate = inject(ZTranslateService);\n\n protected readonly fileInputRef = viewChild<ElementRef<HTMLInputElement>>('fileInput');\n\n public readonly zOnUpload = output<ZUploadFile[]>();\n public readonly zOnRemove = output<ZUploadFile>();\n public readonly zOnDownload = output<ZUploadFile>();\n public readonly zOnError = output<ZUploadError>();\n public readonly zOnFileChange = output<File[]>();\n public readonly zOnDragover = output<DragEvent>();\n public readonly zOnDragleave = output<DragEvent>();\n public readonly zOnDrop = output<DragEvent>();\n public readonly zControl = output<ZUploadControl>();\n public readonly zEvent = output<ZEvent>();\n\n public readonly class = input<ClassValue>('');\n public readonly zLabel = input<string>('');\n public readonly zLabelClass = input<string>('');\n public readonly zNote = input<string>('');\n public readonly zSize = input<ZUploadSize>('default');\n public readonly zAcceptFile = input<string>('*');\n public readonly zMultipleFile = input(false, { transform: zTransform });\n public readonly zMaxSize = input<number>(10);\n public readonly zMaxFiles = input<number>(5);\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 zLoading = input(false, { transform: zTransform });\n public readonly zShowProgress = input(true, { transform: zTransform });\n public readonly zValidators = input<ZUploadValidator[]>([]);\n\n public readonly files = signal<ZUploadFile[]>([]);\n protected readonly inputId = zUuid('z-upload');\n protected readonly labelId = zUuid('z-upload-label');\n protected readonly isDragOver = signal(false);\n\n protected readonly uiState = signal({\n touched: false,\n dirty: false,\n });\n\n private readonly _fileError = signal<string>('');\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 _onChange: (value: ZUploadFile[]) => void = () => void 0;\n private _onTouched: () => void = () => void 0;\n private _ngControl: NgControl | null = null;\n\n protected readonly isDisabled = computed(() => this._disabled() || this.zDisabled());\n\n protected readonly isBlocked = computed(() => this.isDisabled() || this.zLoading() || this.zReadonly());\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._fileError()) {\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(\n () => this.hasError() && (this._shouldShowValidation() || !!this._fileError())\n );\n\n protected readonly errorMessage = computed(() => {\n const fileError = this._fileError();\n if (fileError) {\n return fileError;\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 return '';\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._fileError()) {\n return 'error';\n }\n if (this.hasError() && this._shouldShowValidation()) {\n return 'error';\n }\n if (this.isDragOver()) {\n return 'active';\n }\n return 'default';\n });\n\n protected readonly dropzoneClasses = computed(() =>\n zMergeClasses(\n zUploadDropzoneVariants({\n zSize: this.zSize(),\n zStatus: this.currentStatus(),\n }),\n this.class()\n )\n );\n\n protected readonly acceptTypes = computed(() => {\n const accept = this.zAcceptFile();\n return accept === '*' ? '' : accept;\n });\n\n protected readonly formatFileSize = formatFileSize;\n protected readonly getFileItemClasses = (file: ZUploadFile) => zUploadFileItemVariants({ zStatus: file.status });\n\n public 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 setTimeout(() => this._emitControl());\n }\n\n public writeValue(value: ZUploadFile[] | null): void {\n this.files.set(value ?? []);\n }\n\n public registerOnChange(fn: (value: ZUploadFile[]) => 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 updateProgress(fileId: string, progress: number): void {\n this.files.update(files =>\n files.map(f => {\n if (f.id !== fileId) {\n return f;\n }\n return {\n ...f,\n progress: Math.min(100, Math.max(0, progress)),\n status: progress >= 100 ? 'success' : 'uploading',\n };\n })\n );\n this._notifyChange();\n }\n\n public setFileStatus(fileId: string, status: ZUploadFile['status']): void {\n this.files.update(files =>\n files.map(f => {\n if (f.id !== fileId) {\n return f;\n }\n return { ...f, status };\n })\n );\n this._notifyChange();\n }\n\n public clearFiles(): void {\n this.files.set([]);\n this._notifyChange();\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.files.set([]);\n this.uiState.update(s => ({ ...s, touched: false, dirty: false }));\n this._fileError.set('');\n this._onChange([]);\n\n if (this._ngControl?.control) {\n this._ngControl.control.markAsPristine();\n this._ngControl.control.markAsUntouched();\n }\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 private _emitControl(): void {\n this.zControl.emit({\n valid: () => this.valid(),\n validate: () => this.validate(),\n reset: () => this.reset(),\n clearFiles: () => this.clearFiles(),\n openFileDialog: () => this.openFileDialog(),\n markAsTouched: () => this.markAsTouched(),\n markAsUntouched: () => this.markAsUntouched(),\n markAsDirty: () => this.markAsDirty(),\n markAsPristine: () => this.markAsPristine(),\n hasError: this.hasError,\n files: this.files.asReadonly(),\n errorMessage: this.errorMessage,\n });\n }\n\n public getFiles(): File[] {\n return this.files()\n .filter(f => f.file)\n .map(f => f.file as File);\n }\n\n protected openFileDialog(): void {\n if (this.isBlocked()) {\n return;\n }\n this.fileInputRef()?.nativeElement.click();\n }\n\n protected onFileSelected(event: Event): void {\n const input = event.target as HTMLInputElement;\n if (!input.files?.length) {\n return;\n }\n\n this._processFiles(Array.from(input.files));\n input.value = '';\n }\n\n protected onDragOver(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n if (this.isBlocked()) {\n return;\n }\n this.isDragOver.set(true);\n this.zOnDragover.emit(event);\n this.zEvent.emit(zCreateEvent('dragover', event));\n }\n\n protected onDragLeave(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.isDragOver.set(false);\n this.zOnDragleave.emit(event);\n this.zEvent.emit(zCreateEvent('dragleave', event));\n }\n\n protected onDrop(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.isDragOver.set(false);\n this.zOnDrop.emit(event);\n this.zEvent.emit(zCreateEvent('drop', event));\n\n if (this.isBlocked()) {\n return;\n }\n\n const droppedFiles = event.dataTransfer?.files;\n if (!droppedFiles?.length) {\n return;\n }\n\n this._processFiles(Array.from(droppedFiles));\n }\n\n protected removeFile(file: ZUploadFile): void {\n if (this.zLoading()) {\n return;\n }\n\n this.files.update(files => files.filter(f => f.id !== file.id));\n this._notifyChange();\n this._emitFileChange();\n this.zOnRemove.emit(file);\n }\n\n protected downloadFile(file: ZUploadFile): void {\n if (this.zLoading()) {\n return;\n }\n\n this.zOnDownload.emit(file);\n if (file.url) {\n const link = document.createElement('a');\n link.href = file.url;\n link.download = file.name;\n link.target = '_blank';\n link.rel = 'noopener noreferrer';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n return;\n }\n\n if (file.file) {\n const url = URL.createObjectURL(file.file);\n const link = document.createElement('a');\n link.href = url;\n link.download = file.name;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n }\n }\n\n private _getValidationErrors(): string[] {\n const validators = this.zValidators();\n const currentFiles = this.files();\n const control = this._formControl();\n const errors: string[] = [];\n\n const isRequired = this.zRequired() || control?.errors?.['required'];\n if (isRequired && currentFiles.length === 0) {\n this._zTranslate.currentLang();\n errors.push(this._zTranslate.instant('i18n_z_ui_upload_required'));\n }\n\n for (const validator of validators) {\n if (validator.validate && !validator.validate(currentFiles)) {\n errors.push(validator.message);\n }\n }\n\n return errors;\n }\n\n private _processFiles(newFiles: File[]): void {\n const maxFiles = this.zMaxFiles();\n const maxSize = this.zMaxSize() * 1024 * 1024;\n const accept = this.zAcceptFile();\n const validFiles: ZUploadFile[] = [];\n if (!this.zMultipleFile()) {\n this.files.set([]);\n }\n\n for (const file of newFiles) {\n if (!this.zMultipleFile() && validFiles.length > 0) {\n break;\n }\n\n if (this.zMultipleFile()) {\n const currentCount = this.files().length + validFiles.length;\n if (currentCount >= maxFiles) {\n const errorMsg = this._zTranslate.instant('i18n_z_ui_upload_max_files', { count: maxFiles });\n this._fileError.set(errorMsg);\n this.zOnError.emit({ file, error: errorMsg });\n continue;\n }\n }\n\n if (file.size > maxSize) {\n const errorMsg = this._zTranslate.instant('i18n_z_ui_upload_max_size', { size: this.zMaxSize() + 'MB' });\n this._fileError.set(errorMsg);\n this.zOnError.emit({ file, error: errorMsg });\n continue;\n }\n\n if (accept !== '*' && !this._isValidFileType(file, accept)) {\n const errorMsg = this._zTranslate.instant('i18n_z_ui_upload_invalid_type');\n this._fileError.set(errorMsg);\n this.zOnError.emit({ file, error: errorMsg });\n continue;\n }\n\n validFiles.push({\n id: zUuid('file'),\n name: file.name,\n size: file.size,\n type: file.type,\n file,\n progress: 0,\n status: 'pending',\n });\n }\n\n if (validFiles.length === 0) {\n this._notifyChange();\n return;\n }\n\n this._fileError.set('');\n if (!this.zMultipleFile()) {\n this.files.set(validFiles.slice(0, 1));\n this.uiState.update(s => ({ ...s, touched: true, dirty: true }));\n this._onTouched();\n this._notifyChange();\n this._emitFileChange();\n this.zOnUpload.emit(validFiles);\n return;\n }\n\n this.files.update(files => [...files, ...validFiles]);\n this.uiState.update(s => ({ ...s, touched: true, dirty: true }));\n this._onTouched();\n this._notifyChange();\n this._emitFileChange();\n this.zOnUpload.emit(validFiles);\n }\n\n private _emitFileChange(): void {\n const rawFiles = this.getFiles();\n this.zOnFileChange.emit(rawFiles);\n }\n\n private _isValidFileType(file: File, accept: string): boolean {\n const acceptTypes = accept.split(',').map(t => t.trim().toLowerCase());\n\n for (const type of acceptTypes) {\n if (type.startsWith('.')) {\n if (file.name.toLowerCase().endsWith(type)) {\n return true;\n }\n continue;\n }\n\n if (type.endsWith('/*')) {\n const category = type.slice(0, -2);\n if (file.type.startsWith(category + '/')) {\n return true;\n }\n continue;\n }\n\n if (file.type.toLowerCase() === type) {\n return true;\n }\n }\n\n return false;\n }\n\n private _notifyChange(): void {\n this._onChange(this.files());\n }\n}\n","<div class=\"z-upload-wrapper flex w-full flex-col gap-2\">\n @if (zLabel()) {\n <label [id]=\"labelId\" class=\"text-xs leading-none font-medium\" [class]=\"zLabelClass()\">\n {{ zLabel() }}\n @if (zRequired()) {\n <span class=\"text-destructive! ml-0.5\">*</span>\n }\n </label>\n }\n\n <div\n class=\"z-upload-dropzone\"\n [class]=\"dropzoneClasses()\"\n (click)=\"openFileDialog()\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\">\n @if (zLoading()) {\n <div class=\"bg-background/80 absolute inset-0 z-10 flex items-center justify-center rounded-sm\">\n <svg\n class=\"text-primary size-6 animate-spin\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n </div>\n }\n\n <svg\n class=\"text-muted-foreground\"\n [class.size-5]=\"zSize() === 'sm'\"\n [class.size-6]=\"zSize() === 'default'\"\n [class.size-8]=\"zSize() === 'lg'\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n @if (isDragOver()) {\n <path d=\"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\" />\n <path d=\"M12 12v9\" />\n <path d=\"m16 16-4-4-4 4\" />\n } @else {\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"17 8 12 3 7 8\" />\n <line x1=\"12\" x2=\"12\" y1=\"3\" y2=\"15\" />\n }\n </svg>\n\n <div class=\"text-center\">\n <p class=\"text-muted-foreground m-0 text-sm\">\n @if (isDragOver()) {\n {{ 'i18n_z_ui_upload_drop_here' | translate }}\n } @else {\n {{ 'i18n_z_ui_upload_drag_drop' | translate }}\n {{ 'i18n_z_ui_upload_or' | translate }}\n <span class=\"text-primary cursor-pointer font-medium\">{{ 'i18n_z_ui_upload_browse' | translate }}</span>\n }\n </p>\n\n @if (zNote() || zAcceptFile() !== '*') {\n <div class=\"text-muted-foreground/70 mt-2 flex flex-col gap-0.5 text-xs\">\n @if (zNote()) {\n <span>{{ zNote() }}</span>\n }\n @if (zAcceptFile() !== '*') {\n <span>{{ 'i18n_z_ui_upload_accepted' | translate }}: {{ zAcceptFile() }}</span>\n }\n </div>\n }\n </div>\n\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n [id]=\"inputId\"\n [accept]=\"acceptTypes()\"\n [multiple]=\"zMultipleFile()\"\n [disabled]=\"isBlocked()\"\n [attr.aria-labelledby]=\"zLabel() ? labelId : null\"\n (change)=\"onFileSelected($event)\" />\n </div>\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\n @if (files().length > 0) {\n <div class=\"z-upload-file-list flex flex-col gap-1.5\">\n @for (file of files(); track file.id) {\n <div [class]=\"getFileItemClasses(file)\" class=\"relative overflow-hidden p-2!\">\n <!-- Progress border at bottom -->\n @if (zShowProgress() && file.status === 'uploading') {\n <div\n class=\"bg-primary absolute bottom-0 left-0 h-0.5 transition-all duration-300\"\n [style.width.%]=\"file.progress\"></div>\n }\n\n <div class=\"bg-muted relative flex size-8 shrink-0 items-center justify-center self-start rounded-sm\">\n <z-icon zType=\"lucideFile\" zSize=\"16\" class=\"text-muted-foreground\" />\n </div>\n\n <div class=\"flex min-w-0 flex-1 flex-col\">\n <div class=\"flex items-center gap-1.5\">\n <span class=\"line-clamp-2 text-xs font-medium\" z-tooltip [zContent]=\"file.name\" [zAlwaysShow]=\"false\">\n {{ file.name }}\n </span>\n\n @if (file.status === 'uploading') {\n <z-loading zSize=\"2xs\" class=\"shrink-0\" [zLoading]=\"true\" />\n @if (zShowProgress() && file.progress > 0) {\n <span class=\"text-primary shrink-0 text-[0.625rem] font-medium\">{{ file.progress }}%</span>\n }\n }\n @if (file.status === 'success') {\n <z-icon zType=\"lucideCheckCircle\" zSize=\"14\" class=\"shrink-0 text-green-500\" />\n }\n @if (file.status === 'error') {\n <z-icon zType=\"lucideXCircle\" zSize=\"14\" class=\"text-destructive shrink-0\" />\n }\n </div>\n\n <span class=\"text-muted-foreground mt-0.5 text-[0.625rem]\">\n {{ formatFileSize(file.size) }}\n </span>\n </div>\n\n <div class=\"flex shrink-0 items-center gap-0.5\">\n @if (file.url || file.file) {\n <button\n type=\"button\"\n class=\"group hover:bg-accent flex size-6 cursor-pointer items-center justify-center rounded-sm transition-colors\"\n [class.pointer-events-none]=\"zLoading()\"\n [class.opacity-50]=\"zLoading()\"\n (click)=\"downloadFile(file); $event.stopPropagation()\">\n <z-icon zType=\"lucideDownload\" zSize=\"14\" class=\"text-muted-foreground\" />\n </button>\n }\n\n @if (!zReadonly()) {\n <button\n type=\"button\"\n class=\"hover:bg-destructive/10 flex size-6 cursor-pointer items-center justify-center rounded-sm transition-colors\"\n [class.pointer-events-none]=\"zLoading()\"\n [class.opacity-50]=\"zLoading()\"\n (click)=\"removeFile(file); $event.stopPropagation()\">\n <z-icon zType=\"lucideX\" zSize=\"14\" class=\"text-destructive\" />\n </button>\n }\n </div>\n </div>\n }\n </div>\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-upload.mjs","sources":["../../../../libs/core-ui/components/z-upload/z-upload.types.ts","../../../../libs/core-ui/components/z-upload/z-upload.variants.ts","../../../../libs/core-ui/components/z-upload/z-upload.component.ts","../../../../libs/core-ui/components/z-upload/z-upload.component.html","../../../../libs/core-ui/components/z-upload/shival99-z-ui-components-z-upload.ts"],"sourcesContent":["import type { Signal } from '@angular/core';\n\nexport type ZUploadSize = 'sm' | 'default' | 'lg';\nexport type ZUploadStatus = 'pending' | 'uploading' | 'success' | 'error';\n\nexport interface ZUploadFile {\n id: string;\n name: string;\n size: number;\n type: string;\n file?: File;\n url?: string;\n progress: number;\n status: ZUploadStatus;\n}\n\nexport interface ZUploadError {\n file: File;\n error: string;\n}\n\nexport interface ZUploadValidator {\n error: string;\n message: string;\n validate?: (files: ZUploadFile[]) => boolean;\n}\n\nexport interface ZUploadControl {\n /** Trigger validation and return true if valid */\n valid: () => boolean;\n /**\n * Trigger validation and return true if has error.\n * @deprecated Use `valid()` for boolean form-submit checks.\n */\n validate: () => boolean;\n reset: () => void;\n clearFiles: () => void;\n openFileDialog: () => void;\n markAsTouched: () => void;\n markAsUntouched: () => void;\n markAsDirty: () => void;\n markAsPristine: () => void;\n hasError: Signal<boolean>;\n files: Signal<ZUploadFile[]>;\n errorMessage: Signal<string>;\n}\n\nexport const formatFileSize = (bytes: number): string => {\n if (bytes === 0) {\n return '0 B';\n }\n\n const units = ['B', 'KB', 'MB', 'GB'];\n const k = 1024;\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const size = bytes / Math.pow(k, i);\n return `${size.toFixed(i > 0 ? 1 : 0)} ${units[i]}`;\n};\n","import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zUploadDropzoneVariants = cva(\n [\n 'relative flex flex-col items-center justify-center rounded-sm border-2 border-dashed',\n 'transition-[border-color,background-color] duration-200 cursor-pointer',\n 'hover:border-primary/50 hover:bg-primary/5',\n ],\n {\n variants: {\n zSize: {\n sm: 'min-h-24 gap-1 p-3',\n default: 'min-h-32 gap-2 p-4',\n lg: 'min-h-40 gap-3 p-6',\n },\n zStatus: {\n default: 'border-input bg-background',\n active: 'border-primary bg-primary/10',\n disabled: 'opacity-50 cursor-not-allowed bg-muted border-muted',\n readonly: 'opacity-70 cursor-default bg-muted/50 border-muted',\n error: 'border-destructive! bg-destructive/5 hover:border-destructive!',\n },\n },\n defaultVariants: {\n zSize: 'default',\n zStatus: 'default',\n },\n }\n);\n\nexport type ZUploadDropzoneVariants = VariantProps<typeof zUploadDropzoneVariants>;\n\nexport const zUploadFileItemVariants = cva(\n ['relative flex items-center gap-3 rounded-sm border border-input bg-background p-3', 'transition-all duration-200'],\n {\n variants: {\n zStatus: {\n pending: '',\n uploading: '',\n success: '',\n error: '',\n },\n },\n defaultVariants: {\n zStatus: 'pending',\n },\n }\n);\n\nexport type ZUploadFileItemVariants = VariantProps<typeof zUploadFileItemVariants>;\n","import {\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 viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n type AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n NgControl,\n NgModel,\n PristineChangeEvent,\n TouchedChangeEvent,\n} from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { ZLoadingComponent } from '@shival99/z-ui/components/z-loading';\nimport { ZTooltipDirective } from '@shival99/z-ui/components/z-tooltip';\nimport { ZTranslateService } from '@shival99/z-ui/services';\nimport { zUuid, zMergeClasses, zTransform, zCreateEvent, type ZEvent } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { filter, merge } from 'rxjs';\nimport {\n formatFileSize,\n type ZUploadControl,\n type ZUploadError,\n type ZUploadFile,\n type ZUploadSize,\n type ZUploadValidator,\n} from './z-upload.types';\nimport { zUploadDropzoneVariants, zUploadFileItemVariants } from './z-upload.variants';\n\n@Component({\n selector: 'z-upload',\n imports: [ZIconComponent, ZLoadingComponent, ZTooltipDirective, TranslatePipe],\n standalone: true,\n templateUrl: './z-upload.component.html',\n styleUrl: './z-upload.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ZUploadComponent),\n multi: true,\n },\n TranslatePipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'zUpload',\n})\nexport class ZUploadComponent implements OnInit, ControlValueAccessor {\n private readonly _injector = inject(Injector);\n private readonly _destroyRef = inject(DestroyRef);\n private readonly _zTranslate = inject(ZTranslateService);\n\n protected readonly fileInputRef = viewChild<ElementRef<HTMLInputElement>>('fileInput');\n\n public readonly zOnUpload = output<ZUploadFile[]>();\n public readonly zOnRemove = output<ZUploadFile>();\n public readonly zOnDownload = output<ZUploadFile>();\n public readonly zOnError = output<ZUploadError>();\n public readonly zOnFileChange = output<File[]>();\n public readonly zOnDragover = output<DragEvent>();\n public readonly zOnDragleave = output<DragEvent>();\n public readonly zOnDrop = output<DragEvent>();\n public readonly zControl = output<ZUploadControl>();\n public readonly zEvent = output<ZEvent>();\n\n public readonly class = input<ClassValue>('');\n public readonly zLabel = input<string>('');\n public readonly zLabelClass = input<string>('');\n public readonly zNote = input<string>('');\n public readonly zSize = input<ZUploadSize>('default');\n public readonly zAcceptFile = input<string>('*');\n public readonly zMultipleFile = input(false, { transform: zTransform });\n public readonly zMaxSize = input<number>(10);\n public readonly zMaxFiles = input<number>(5);\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 zLoading = input(false, { transform: zTransform });\n public readonly zShowProgress = input(true, { transform: zTransform });\n public readonly zValidators = input<ZUploadValidator[]>([]);\n\n public readonly files = signal<ZUploadFile[]>([]);\n protected readonly inputId = zUuid('z-upload');\n protected readonly labelId = zUuid('z-upload-label');\n protected readonly isDragOver = signal(false);\n\n protected readonly uiState = signal({\n touched: false,\n dirty: false,\n });\n\n private readonly _fileError = signal<string>('');\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 _onChange: (value: ZUploadFile[]) => void = () => void 0;\n private _onTouched: () => void = () => void 0;\n private _ngControl: NgControl | null = null;\n\n protected readonly isDisabled = computed(() => this._disabled() || this.zDisabled());\n\n protected readonly isBlocked = computed(() => this.isDisabled() || this.zLoading() || this.zReadonly());\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._fileError()) {\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(\n () => this.hasError() && (this._shouldShowValidation() || !!this._fileError())\n );\n\n protected readonly errorMessage = computed(() => {\n const fileError = this._fileError();\n if (fileError) {\n return fileError;\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 return '';\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._fileError()) {\n return 'error';\n }\n if (this.hasError() && this._shouldShowValidation()) {\n return 'error';\n }\n if (this.isDragOver()) {\n return 'active';\n }\n return 'default';\n });\n\n protected readonly dropzoneClasses = computed(() =>\n zMergeClasses(\n zUploadDropzoneVariants({\n zSize: this.zSize(),\n zStatus: this.currentStatus(),\n }),\n this.class()\n )\n );\n\n protected readonly acceptTypes = computed(() => {\n const accept = this.zAcceptFile();\n return accept === '*' ? '' : accept;\n });\n\n protected readonly formatFileSize = formatFileSize;\n protected readonly getFileItemClasses = (file: ZUploadFile) => zUploadFileItemVariants({ zStatus: file.status });\n\n public 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 setTimeout(() => this._emitControl());\n }\n\n public writeValue(value: ZUploadFile[] | null): void {\n this.files.set(value ?? []);\n }\n\n public registerOnChange(fn: (value: ZUploadFile[]) => 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 updateProgress(fileId: string, progress: number): void {\n this.files.update(files =>\n files.map(f => {\n if (f.id !== fileId) {\n return f;\n }\n return {\n ...f,\n progress: Math.min(100, Math.max(0, progress)),\n status: progress >= 100 ? 'success' : 'uploading',\n };\n })\n );\n this._notifyChange();\n }\n\n public setFileStatus(fileId: string, status: ZUploadFile['status']): void {\n this.files.update(files =>\n files.map(f => {\n if (f.id !== fileId) {\n return f;\n }\n return { ...f, status };\n })\n );\n this._notifyChange();\n }\n\n public clearFiles(): void {\n this.files.set([]);\n this._notifyChange();\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.files.set([]);\n this.uiState.update(s => ({ ...s, touched: false, dirty: false }));\n this._fileError.set('');\n this._onChange([]);\n\n if (this._ngControl?.control) {\n this._ngControl.control.markAsPristine();\n this._ngControl.control.markAsUntouched();\n }\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 private _emitControl(): void {\n this.zControl.emit({\n valid: () => this.valid(),\n validate: () => this.validate(),\n reset: () => this.reset(),\n clearFiles: () => this.clearFiles(),\n openFileDialog: () => this.openFileDialog(),\n markAsTouched: () => this.markAsTouched(),\n markAsUntouched: () => this.markAsUntouched(),\n markAsDirty: () => this.markAsDirty(),\n markAsPristine: () => this.markAsPristine(),\n hasError: this.hasError,\n files: this.files.asReadonly(),\n errorMessage: this.errorMessage,\n });\n }\n\n public getFiles(): File[] {\n return this.files()\n .filter(f => f.file)\n .map(f => f.file as File);\n }\n\n protected openFileDialog(): void {\n if (this.isBlocked()) {\n return;\n }\n this.fileInputRef()?.nativeElement.click();\n }\n\n protected onFileSelected(event: Event): void {\n const input = event.target as HTMLInputElement;\n if (!input.files?.length) {\n return;\n }\n\n this._processFiles(Array.from(input.files));\n input.value = '';\n }\n\n protected onDragOver(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n if (this.isBlocked()) {\n return;\n }\n this.isDragOver.set(true);\n this.zOnDragover.emit(event);\n this.zEvent.emit(zCreateEvent('dragover', event));\n }\n\n protected onDragLeave(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.isDragOver.set(false);\n this.zOnDragleave.emit(event);\n this.zEvent.emit(zCreateEvent('dragleave', event));\n }\n\n protected onDrop(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.isDragOver.set(false);\n this.zOnDrop.emit(event);\n this.zEvent.emit(zCreateEvent('drop', event));\n\n if (this.isBlocked()) {\n return;\n }\n\n const droppedFiles = event.dataTransfer?.files;\n if (!droppedFiles?.length) {\n return;\n }\n\n this._processFiles(Array.from(droppedFiles));\n }\n\n protected removeFile(file: ZUploadFile): void {\n if (this.zLoading()) {\n return;\n }\n\n this.files.update(files => files.filter(f => f.id !== file.id));\n this._notifyChange();\n this._emitFileChange();\n this.zOnRemove.emit(file);\n }\n\n protected downloadFile(file: ZUploadFile): void {\n if (this.zLoading()) {\n return;\n }\n\n this.zOnDownload.emit(file);\n if (file.url) {\n const link = document.createElement('a');\n link.href = file.url;\n link.download = file.name;\n link.target = '_blank';\n link.rel = 'noopener noreferrer';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n return;\n }\n\n if (file.file) {\n const url = URL.createObjectURL(file.file);\n const link = document.createElement('a');\n link.href = url;\n link.download = file.name;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n }\n }\n\n private _getValidationErrors(): string[] {\n const validators = this.zValidators();\n const currentFiles = this.files();\n const control = this._formControl();\n const errors: string[] = [];\n\n const isRequired = this.zRequired() || control?.errors?.['required'];\n if (isRequired && currentFiles.length === 0) {\n this._zTranslate.currentLang();\n errors.push(this._zTranslate.instant('i18n_z_ui_upload_required'));\n }\n\n for (const validator of validators) {\n if (validator.validate && !validator.validate(currentFiles)) {\n errors.push(validator.message);\n }\n }\n\n return errors;\n }\n\n private _processFiles(newFiles: File[]): void {\n const maxFiles = this.zMaxFiles();\n const maxSize = this.zMaxSize() * 1024 * 1024;\n const accept = this.zAcceptFile();\n const validFiles: ZUploadFile[] = [];\n if (!this.zMultipleFile()) {\n this.files.set([]);\n }\n\n for (const file of newFiles) {\n if (!this.zMultipleFile() && validFiles.length > 0) {\n break;\n }\n\n if (this.zMultipleFile()) {\n const currentCount = this.files().length + validFiles.length;\n if (currentCount >= maxFiles) {\n const errorMsg = this._zTranslate.instant('i18n_z_ui_upload_max_files', { count: maxFiles });\n this._fileError.set(errorMsg);\n this.zOnError.emit({ file, error: errorMsg });\n continue;\n }\n }\n\n if (file.size > maxSize) {\n const errorMsg = this._zTranslate.instant('i18n_z_ui_upload_max_size', { size: this.zMaxSize() + 'MB' });\n this._fileError.set(errorMsg);\n this.zOnError.emit({ file, error: errorMsg });\n continue;\n }\n\n if (accept !== '*' && !this._isValidFileType(file, accept)) {\n const errorMsg = this._zTranslate.instant('i18n_z_ui_upload_invalid_type');\n this._fileError.set(errorMsg);\n this.zOnError.emit({ file, error: errorMsg });\n continue;\n }\n\n validFiles.push({\n id: zUuid('file'),\n name: file.name,\n size: file.size,\n type: file.type,\n file,\n progress: 0,\n status: 'pending',\n });\n }\n\n if (validFiles.length === 0) {\n this._notifyChange();\n return;\n }\n\n this._fileError.set('');\n if (!this.zMultipleFile()) {\n this.files.set(validFiles.slice(0, 1));\n this.uiState.update(s => ({ ...s, touched: true, dirty: true }));\n this._onTouched();\n this._notifyChange();\n this._emitFileChange();\n this.zOnUpload.emit(validFiles);\n return;\n }\n\n this.files.update(files => [...files, ...validFiles]);\n this.uiState.update(s => ({ ...s, touched: true, dirty: true }));\n this._onTouched();\n this._notifyChange();\n this._emitFileChange();\n this.zOnUpload.emit(validFiles);\n }\n\n private _emitFileChange(): void {\n const rawFiles = this.getFiles();\n this.zOnFileChange.emit(rawFiles);\n }\n\n private _isValidFileType(file: File, accept: string): boolean {\n const acceptTypes = accept.split(',').map(t => t.trim().toLowerCase());\n\n for (const type of acceptTypes) {\n if (type.startsWith('.')) {\n if (file.name.toLowerCase().endsWith(type)) {\n return true;\n }\n continue;\n }\n\n if (type.endsWith('/*')) {\n const category = type.slice(0, -2);\n if (file.type.startsWith(category + '/')) {\n return true;\n }\n continue;\n }\n\n if (file.type.toLowerCase() === type) {\n return true;\n }\n }\n\n return false;\n }\n\n private _notifyChange(): void {\n this._onChange(this.files());\n }\n}\n","<div class=\"z-upload-wrapper flex w-full flex-col gap-2\">\n @if (zLabel()) {\n <label [id]=\"labelId\" class=\"text-xs leading-none font-medium\" [class]=\"zLabelClass()\">\n {{ zLabel() }}\n @if (zRequired()) {\n <span class=\"text-destructive! ml-0.5\">*</span>\n }\n </label>\n }\n\n <div\n class=\"z-upload-dropzone\"\n [class]=\"dropzoneClasses()\"\n (click)=\"openFileDialog()\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\">\n @if (zLoading()) {\n <div class=\"bg-background/80 absolute inset-0 z-10 flex items-center justify-center rounded-sm\">\n <svg\n class=\"text-primary size-6 animate-spin\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n </div>\n }\n\n <svg\n class=\"text-muted-foreground\"\n [class.size-5]=\"zSize() === 'sm'\"\n [class.size-6]=\"zSize() === 'default'\"\n [class.size-8]=\"zSize() === 'lg'\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n @if (isDragOver()) {\n <path d=\"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\" />\n <path d=\"M12 12v9\" />\n <path d=\"m16 16-4-4-4 4\" />\n } @else {\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"17 8 12 3 7 8\" />\n <line x1=\"12\" x2=\"12\" y1=\"3\" y2=\"15\" />\n }\n </svg>\n\n <div class=\"text-center\">\n <p class=\"text-muted-foreground m-0 text-sm\">\n @if (isDragOver()) {\n {{ 'i18n_z_ui_upload_drop_here' | translate }}\n } @else {\n {{ 'i18n_z_ui_upload_drag_drop' | translate }}\n {{ 'i18n_z_ui_upload_or' | translate }}\n <span class=\"text-primary cursor-pointer font-medium\">{{ 'i18n_z_ui_upload_browse' | translate }}</span>\n }\n </p>\n\n @if (zNote() || zAcceptFile() !== '*') {\n <div class=\"text-muted-foreground/70 mt-2 flex flex-col gap-0.5 text-xs\">\n @if (zNote()) {\n <span>{{ zNote() }}</span>\n }\n @if (zAcceptFile() !== '*') {\n <span>{{ 'i18n_z_ui_upload_accepted' | translate }}: {{ zAcceptFile() }}</span>\n }\n </div>\n }\n </div>\n\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n [id]=\"inputId\"\n [accept]=\"acceptTypes()\"\n [multiple]=\"zMultipleFile()\"\n [disabled]=\"isBlocked()\"\n [attr.aria-labelledby]=\"zLabel() ? labelId : null\"\n (change)=\"onFileSelected($event)\" />\n </div>\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\n @if (files().length > 0) {\n <div class=\"z-upload-file-list flex flex-col gap-1.5\">\n @for (file of files(); track file.id) {\n <div [class]=\"getFileItemClasses(file)\" class=\"relative overflow-hidden p-2!\">\n <!-- Progress border at bottom -->\n @if (zShowProgress() && file.status === 'uploading') {\n <div\n class=\"bg-primary absolute bottom-0 left-0 h-0.5 transition-all duration-300\"\n [style.width.%]=\"file.progress\"></div>\n }\n\n <div class=\"bg-muted relative flex size-8 shrink-0 items-center justify-center self-start rounded-sm\">\n <z-icon zType=\"lucideFile\" zSize=\"16\" class=\"text-muted-foreground\" />\n </div>\n\n <div class=\"flex min-w-0 flex-1 flex-col\">\n <div class=\"flex items-center gap-1.5\">\n <span class=\"line-clamp-2 text-xs font-medium\" z-tooltip [zContent]=\"file.name\" [zAlwaysShow]=\"false\">\n {{ file.name }}\n </span>\n\n @if (file.status === 'uploading') {\n <z-loading zSize=\"2xs\" class=\"shrink-0\" [zLoading]=\"true\" />\n @if (zShowProgress() && file.progress > 0) {\n <span class=\"text-primary shrink-0 text-[0.625rem] font-medium\">{{ file.progress }}%</span>\n }\n }\n @if (file.status === 'success') {\n <z-icon zType=\"lucideCheckCircle\" zSize=\"14\" class=\"shrink-0 text-green-500\" />\n }\n @if (file.status === 'error') {\n <z-icon zType=\"lucideXCircle\" zSize=\"14\" class=\"text-destructive shrink-0\" />\n }\n </div>\n\n <span class=\"text-muted-foreground mt-0.5 text-[0.625rem]\">\n {{ formatFileSize(file.size) }}\n </span>\n </div>\n\n <div class=\"flex shrink-0 items-center gap-0.5\">\n @if (file.url || file.file) {\n <button\n type=\"button\"\n class=\"group hover:bg-accent flex size-6 cursor-pointer items-center justify-center rounded-sm transition-colors\"\n [class.pointer-events-none]=\"zLoading()\"\n [class.opacity-50]=\"zLoading()\"\n (click)=\"downloadFile(file); $event.stopPropagation()\">\n <z-icon zType=\"lucideDownload\" zSize=\"14\" class=\"text-muted-foreground\" />\n </button>\n }\n\n @if (!zReadonly()) {\n <button\n type=\"button\"\n class=\"hover:bg-destructive/10 flex size-6 cursor-pointer items-center justify-center rounded-sm transition-colors\"\n [class.pointer-events-none]=\"zLoading()\"\n [class.opacity-50]=\"zLoading()\"\n (click)=\"removeFile(file); $event.stopPropagation()\">\n <z-icon zType=\"lucideX\" zSize=\"14\" class=\"text-destructive\" />\n </button>\n }\n </div>\n </div>\n }\n </div>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -370,6 +370,7 @@ const Z_UI_EN_TRANSLATIONS = {
370
370
  // Command
371
371
  i18n_z_ui_command_search: 'Search command...',
372
372
  i18n_z_ui_command_no_results: 'No results found.',
373
+ i18n_z_ui_drawer_resize: 'Resize drawer',
373
374
  };
374
375
 
375
376
  const Z_UI_VI_TRANSLATIONS = {
@@ -740,6 +741,7 @@ const Z_UI_VI_TRANSLATIONS = {
740
741
  // Command
741
742
  i18n_z_ui_command_search: 'Tìm kiếm lệnh...',
742
743
  i18n_z_ui_command_no_results: 'Không tìm thấy kết quả.',
744
+ i18n_z_ui_drawer_resize: 'Điều chỉnh kích thước drawer',
743
745
  };
744
746
 
745
747
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"shival99-z-ui-i18n.mjs","sources":["../../../../libs/core-ui/i18n/types/i18n.types.ts","../../../../libs/core-ui/i18n/en.ts","../../../../libs/core-ui/i18n/vi.ts","../../../../libs/core-ui/i18n/i18n.ts","../../../../libs/core-ui/i18n/index.ts","../../../../libs/core-ui/i18n/shival99-z-ui-i18n.ts"],"sourcesContent":["/**\n * Z-UI Internationalization Types\n */\n\nexport type ZUILanguage = 'en' | 'vi' | string;\n\nexport interface ZUITranslations {\n [key: string]: string;\n}\n\nexport interface ZUITranslationSet {\n en: ZUITranslations;\n vi: ZUITranslations;\n [lang: string]: ZUITranslations;\n}\n","export const Z_UI_EN_TRANSLATIONS: Record<string, string> = {\n // Table\n i18n_z_ui_table_filter_min: 'Min',\n i18n_z_ui_table_filter_max: 'Max',\n i18n_z_ui_table_filter_all: 'All',\n i18n_z_ui_table_filter_search: 'Search...',\n i18n_z_ui_table_filter_date: 'Select date',\n i18n_z_ui_table_filter_date_range: 'Select date range',\n i18n_z_ui_table_filter_time: 'Select time',\n i18n_z_ui_table_no_data: 'No data available',\n i18n_z_ui_table_no_results: 'No results found',\n i18n_z_ui_table_loading: 'Loading...',\n i18n_z_ui_table_search: 'Search...',\n i18n_z_ui_table_settings: 'Settings',\n i18n_z_ui_table_columns: 'Columns',\n i18n_z_ui_table_show_all: 'Show all',\n i18n_z_ui_table_hide_all: 'Hide all',\n i18n_z_ui_table_move_left: 'Move left',\n i18n_z_ui_table_move_right: 'Move right',\n i18n_z_ui_table_pin_left: 'Pin left',\n i18n_z_ui_table_pin_right: 'Pin right',\n i18n_z_ui_table_pin_top: 'Pin top',\n i18n_z_ui_table_pin_bottom: 'Pin bottom',\n i18n_z_ui_table_unpin: 'Unpin',\n i18n_z_ui_table_autosize_column: 'Autosize This Column',\n i18n_z_ui_table_autosize_all_columns: 'Autosize All Columns',\n i18n_z_ui_table_choose_columns: 'Choose Columns',\n i18n_z_ui_table_reset_columns: 'Reset Columns',\n i18n_z_ui_table_group_by_column: 'Group by this column',\n i18n_z_ui_table_clear_grouping: 'Remove grouping by this column',\n i18n_z_ui_table_group_empty: '(Empty)',\n i18n_z_ui_table_insert_row_above: 'Insert row above',\n i18n_z_ui_table_insert_row_below: 'Insert row below',\n i18n_z_ui_table_delete_row: 'Delete row',\n i18n_z_ui_table_delete_selected_rows: 'Delete selected rows',\n i18n_z_ui_table_copy_row: 'Copy row',\n i18n_z_ui_table_copy_cell: 'Copy',\n i18n_z_ui_table_copy_cell_with_headers: 'Copy with headers',\n i18n_z_ui_table_paste_row_below: 'Paste row below',\n i18n_z_ui_table_move_row_up: 'Move row up',\n i18n_z_ui_table_move_row_down: 'Move row down',\n i18n_z_ui_table_show_hide_columns: 'Show/Hide columns',\n i18n_z_ui_table_configure_table: 'Customize',\n i18n_z_ui_table_sort: 'Sort',\n i18n_z_ui_table_sort_asc: 'Sort ascending',\n i18n_z_ui_table_sort_desc: 'Sort descending',\n i18n_z_ui_table_sort_asc_short: 'Ascending',\n i18n_z_ui_table_sort_desc_short: 'Descending',\n i18n_z_ui_table_sort_az: 'A-Z',\n i18n_z_ui_table_sort_za: 'Z-A',\n i18n_z_ui_table_clear_sort: 'Clear sort',\n i18n_z_ui_table_filter: 'Filter',\n i18n_z_ui_table_filter_value: 'Value',\n i18n_z_ui_table_filter_operator_contains: 'Contains',\n i18n_z_ui_table_filter_operator_not_contains: 'Does not contain',\n i18n_z_ui_table_filter_operator_starts_with: 'Starts with',\n i18n_z_ui_table_filter_operator_ends_with: 'Ends with',\n i18n_z_ui_table_filter_operator_equals: 'Equals',\n i18n_z_ui_table_filter_operator_not_equals: 'Not equals',\n i18n_z_ui_table_filter_operator_greater_than: 'Greater than',\n i18n_z_ui_table_filter_operator_greater_than_or_equal: 'Greater than or equal',\n i18n_z_ui_table_filter_operator_less_than: 'Less than',\n i18n_z_ui_table_filter_operator_less_than_or_equal: 'Less than or equal',\n i18n_z_ui_table_filter_operator_empty: 'Is empty',\n i18n_z_ui_table_filter_operator_not_empty: 'Is not empty',\n i18n_z_ui_table_filter_add_condition: 'Add condition',\n i18n_z_ui_table_filter_add: 'Add',\n i18n_z_ui_table_filter_and: 'AND',\n i18n_z_ui_table_filter_no_value: 'No value',\n i18n_z_ui_table_filter_empty_conditions: 'No filters yet',\n i18n_z_ui_table_filter_select_condition: 'Select condition',\n i18n_z_ui_table_filter_remove: 'Remove filter',\n i18n_z_ui_table_show_more: 'Show more + {{count}}',\n i18n_z_ui_table_show_less: 'Show less',\n i18n_z_ui_table_apply: 'Apply',\n i18n_z_ui_table_reset: 'Reset',\n i18n_z_ui_table_clear_filter: 'Clear filter',\n i18n_z_ui_table_rows_per_page: 'Rows per page',\n i18n_z_ui_table_total_rows: '{{total}} total rows',\n i18n_z_ui_table_of: 'of',\n i18n_z_ui_table_selected: 'selected',\n i18n_z_ui_table_clear_selection: 'Uncheck',\n i18n_z_ui_table_export_excel: 'Export Excel',\n i18n_z_ui_table_expand_all: 'Expand all',\n i18n_z_ui_table_collapse_all: 'Collapse all',\n i18n_z_ui_table_settings_title: 'Table Settings',\n i18n_z_ui_table_display_settings: 'Display Settings',\n i18n_z_ui_table_display_settings_desc: 'Customize table appearance',\n i18n_z_ui_table_horizontal_border: 'Horizontal Border',\n i18n_z_ui_table_vertical_border: 'Vertical Border',\n i18n_z_ui_table_header_footer_shadow: 'Header/Footer Shadow',\n i18n_z_ui_table_column_settings: 'Column Settings',\n i18n_z_ui_table_column_settings_desc: 'Toggle visibility, drag to reorder, and pin columns',\n i18n_z_ui_table_pinned_columns: 'Pinned Columns',\n i18n_z_ui_table_left: 'LEFT',\n i18n_z_ui_table_right: 'RIGHT',\n\n // Menu\n i18n_z_ui_menu_navigation: 'Navigation',\n i18n_z_ui_menu_expand_sidebar: 'Expand sidebar',\n i18n_z_ui_menu_collapse_sidebar: 'Collapse sidebar',\n\n // Kanban\n i18n_z_ui_kanban_board_title: 'High-Performance Team',\n i18n_z_ui_kanban_board_subtitle: 'Sprint planning board with drag & drop workflow',\n i18n_z_ui_kanban_search_placeholder: 'Search tasks...',\n i18n_z_ui_kanban_drag_disabled_while_search: 'Drag is disabled while search is active',\n i18n_z_ui_kanban_drop_here: 'Drop task here',\n i18n_z_ui_kanban_no_matches: 'No tasks match this search',\n i18n_z_ui_kanban_done: 'Done',\n i18n_z_ui_kanban_editor_title: 'Task Editor',\n i18n_z_ui_kanban_title: 'Title',\n i18n_z_ui_kanban_title_placeholder: 'Write a concise task title',\n i18n_z_ui_kanban_description: 'Description',\n i18n_z_ui_kanban_description_placeholder: 'Add implementation details, constraints, and notes...',\n i18n_z_ui_kanban_checklist: 'Checklist',\n i18n_z_ui_kanban_no_checklist_items: 'No checklist items yet',\n i18n_z_ui_kanban_checklist_add_placeholder: 'Add checklist item',\n i18n_z_ui_kanban_status: 'Status',\n i18n_z_ui_kanban_status_placeholder: 'Select status',\n i18n_z_ui_kanban_priority: 'Priority',\n i18n_z_ui_kanban_priority_placeholder: 'Select priority',\n i18n_z_ui_kanban_assignees: 'Assignees',\n i18n_z_ui_kanban_assignees_placeholder: 'Comma separated names',\n i18n_z_ui_kanban_assignees_select_placeholder: 'Select or type assignees',\n i18n_z_ui_kanban_start_date: 'Start date',\n i18n_z_ui_kanban_end_date: 'End date',\n i18n_z_ui_kanban_due_date: 'Due date',\n i18n_z_ui_kanban_attachments: 'Attachments',\n i18n_z_ui_kanban_attachments_note: 'Upload documents, images, or references',\n i18n_z_ui_kanban_activity: 'Activity',\n i18n_z_ui_kanban_no_activity: 'No activity yet',\n i18n_z_ui_kanban_add_comment: 'Add comment',\n i18n_z_ui_kanban_comment_placeholder: 'Write an update for this task...',\n i18n_z_ui_kanban_comment_submit: 'Post update',\n i18n_z_ui_kanban_new_task_title: 'Untitled task',\n i18n_z_ui_kanban_activity_you: 'You',\n i18n_z_ui_kanban_priority_risk: 'Risk',\n i18n_z_ui_kanban_priority_high: 'High',\n i18n_z_ui_kanban_priority_medium: 'Medium',\n i18n_z_ui_kanban_priority_low: 'Low',\n i18n_z_ui_kanban_column_todo: 'To Do',\n i18n_z_ui_kanban_column_in_progress: 'In Progress',\n i18n_z_ui_kanban_column_review: 'Review',\n i18n_z_ui_kanban_column_done: 'Done',\n\n // Calendar\n i18n_z_ui_calendar_today: 'Today',\n i18n_z_ui_calendar_yesterday: 'Yesterday',\n i18n_z_ui_calendar_clear: 'Clear',\n i18n_z_ui_calendar_ok: 'OK',\n i18n_z_ui_calendar_cancel: 'Cancel',\n i18n_z_ui_calendar_start_date: 'Start date',\n i18n_z_ui_calendar_end_date: 'End date',\n i18n_z_ui_calendar_select_date: 'Select date',\n i18n_z_ui_calendar_select_time: 'Select time',\n i18n_z_ui_calendar_this_week: 'This week',\n i18n_z_ui_calendar_last_week: 'Last week',\n i18n_z_ui_calendar_this_month: 'This month',\n i18n_z_ui_calendar_last_month: 'Last month',\n i18n_z_ui_calendar_last_7_days: 'Last 7 days',\n i18n_z_ui_calendar_last_14_days: 'Last 14 days',\n i18n_z_ui_calendar_last_30_days: 'Last 30 days',\n i18n_z_ui_calendar_last_1_month: 'Last 1 month',\n i18n_z_ui_calendar_last_2_months: 'Last 2 months',\n i18n_z_ui_calendar_last_3_months: 'Last 3 months',\n i18n_z_ui_calendar_last_6_months: 'Last 6 months',\n i18n_z_ui_calendar_last_90_days: 'Last 90 days',\n i18n_z_ui_calendar_this_year: 'This year',\n i18n_z_ui_calendar_last_year: 'Last year',\n i18n_z_ui_calendar_this_quarter: 'This quarter',\n i18n_z_ui_calendar_custom: 'Custom',\n i18n_z_ui_calendar_now: 'Now',\n i18n_z_ui_calendar_required: 'Please select a date',\n i18n_z_ui_calendar_start: 'Start',\n i18n_z_ui_calendar_end: 'End',\n i18n_z_ui_calendar_time: 'Time',\n i18n_z_ui_calendar_hour: 'Hr',\n i18n_z_ui_calendar_minute: 'Min',\n i18n_z_ui_calendar_second: 'Sec',\n i18n_z_ui_calendar_period: 'AM/PM',\n\n // Editor\n i18n_z_ui_editor_placeholder: 'Enter content...',\n i18n_z_ui_editor_required: 'This field is required',\n i18n_z_ui_editor_min_length: 'Minimum {{min}} characters',\n i18n_z_ui_editor_max_length: 'Maximum {{max}} characters',\n i18n_z_ui_editor_invalid: 'Invalid value',\n i18n_z_ui_editor_invalid_url: 'Enter a valid http or https URL.',\n i18n_z_ui_editor_link_invalid_url: 'Enter a valid http or https URL.',\n i18n_z_ui_editor_no_commands: 'No commands',\n i18n_z_ui_editor_shortcut_navigate: 'to navigate',\n i18n_z_ui_editor_shortcut_abort: 'to abort',\n i18n_z_ui_editor_shortcut_select: 'to select',\n i18n_z_ui_emoji_category_smileys: 'Smileys & People',\n i18n_z_ui_emoji_category_animals: 'Animals & Nature',\n i18n_z_ui_emoji_category_food: 'Food & Drink',\n i18n_z_ui_emoji_category_activities: 'Activities',\n i18n_z_ui_emoji_category_travel: 'Travel & Places',\n i18n_z_ui_emoji_category_objects: 'Objects',\n i18n_z_ui_emoji_category_symbols: 'Symbols',\n i18n_z_ui_emoji_category_flags: 'Flags',\n i18n_z_ui_emoji_search_placeholder: 'Search emoji...',\n i18n_z_ui_emoji_no_results: 'No matching emoji',\n i18n_z_ui_emoji_search_results: 'Search results',\n\n // Checkbox\n i18n_z_ui_checkbox_check_all: 'Check All',\n\n // Code\n i18n_z_ui_code_copied: 'Code copied!',\n\n // Input\n i18n_z_ui_input_saved_colors: 'Saved colors:',\n i18n_z_ui_input_add_color: '+ Add',\n i18n_z_ui_input_required: 'This field is required',\n i18n_z_ui_input_min_length: 'Minimum {{min}} characters',\n i18n_z_ui_input_max_length: 'Maximum {{max}} characters',\n i18n_z_ui_input_email: 'Invalid email format',\n i18n_z_ui_input_pattern: 'Invalid format',\n i18n_z_ui_input_min: 'Minimum value is {{min}}',\n i18n_z_ui_input_max: 'Maximum value is {{max}}',\n\n // Select\n i18n_z_ui_select_placeholder: 'Select...',\n i18n_z_ui_select_no_options: 'No options available',\n i18n_z_ui_select_no_results: 'No results found',\n i18n_z_ui_select_loading: 'Loading...',\n i18n_z_ui_select_select_all: 'Select all',\n i18n_z_ui_select_clear_all: 'Clear all',\n i18n_z_ui_select_selected: '{{count}} selected',\n i18n_z_ui_select_search: 'Search...',\n i18n_z_ui_select_required: 'Please select a value',\n\n // Modal\n i18n_z_ui_modal_close: 'Close',\n i18n_z_ui_modal_confirm: 'Confirm',\n i18n_z_ui_modal_cancel: 'Cancel',\n\n // Drawer\n i18n_z_ui_drawer_close: 'Close',\n\n // Upload\n i18n_z_ui_upload_drag_drop: 'Drag files here',\n i18n_z_ui_upload_drop_here: 'Drop files here',\n i18n_z_ui_upload_or: 'or',\n i18n_z_ui_upload_browse: 'browse',\n i18n_z_ui_upload_uploading: 'Uploading...',\n i18n_z_ui_upload_uploaded: 'Uploaded',\n i18n_z_ui_upload_failed: 'Upload failed',\n i18n_z_ui_upload_remove: 'Remove',\n i18n_z_ui_upload_max_size: 'File size exceeds {{size}} limit',\n i18n_z_ui_upload_max_files: 'Maximum {{count}} files allowed',\n i18n_z_ui_upload_invalid_type: 'File type not allowed',\n i18n_z_ui_upload_accepted: 'Accepted',\n i18n_z_ui_upload_required: 'Please select a file',\n\n // Pagination\n i18n_z_ui_pagination_first: 'First',\n i18n_z_ui_pagination_last: 'Last',\n i18n_z_ui_pagination_next: 'Next',\n i18n_z_ui_pagination_previous: 'Previous',\n i18n_z_ui_pagination_page: 'Page',\n i18n_z_ui_pagination_of: 'of',\n i18n_z_ui_pagination_total_label: 'Total {{total}} items',\n i18n_z_ui_pagination_per_page: '/ page',\n i18n_z_ui_pagination_go_to: 'Go to',\n\n // Common\n i18n_z_ui_common_select: 'Select value...',\n i18n_z_ui_common_loading: 'Loading...',\n i18n_z_ui_common_save: 'Save',\n i18n_z_ui_common_cancel: 'Cancel',\n i18n_z_ui_common_confirm: 'Confirm',\n i18n_z_ui_common_delete: 'Delete',\n i18n_z_ui_common_edit: 'Edit',\n i18n_z_ui_common_add: 'Add',\n i18n_z_ui_common_search: 'Search',\n i18n_z_ui_common_clear: 'Clear',\n i18n_z_ui_common_reset: 'Reset',\n i18n_z_ui_common_apply: 'Apply',\n i18n_z_ui_common_remove: 'Remove',\n i18n_z_ui_common_yes: 'Yes',\n i18n_z_ui_common_no: 'No',\n i18n_z_ui_common_ok: 'OK',\n i18n_z_ui_common_error: 'Error',\n i18n_z_ui_common_success: 'Success',\n i18n_z_ui_common_warning: 'Warning',\n i18n_z_ui_common_info: 'Info',\n\n // Toast\n i18n_z_ui_toast_close: 'Close',\n\n // Tags\n i18n_z_ui_tags_add: 'Add',\n i18n_z_ui_tags_placeholder: 'New tag',\n\n // Empty\n i18n_z_ui_empty_no_data: 'No data available',\n i18n_z_ui_empty_no_results: 'No results found',\n i18n_z_ui_empty_error_message: 'Something went wrong',\n i18n_z_ui_empty_error_description: 'An error occurred while loading data. Please try again later.',\n\n // Steps\n i18n_z_ui_steps_title: 'Steps',\n\n // Chat AI\n i18n_z_ui_chat_ai_title: 'AI Assistant',\n i18n_z_ui_chat_ai_subtitle: 'How can I help you today?',\n i18n_z_ui_chat_ai_placeholder: 'Type a message...',\n i18n_z_ui_chat_ai_send: 'Send message',\n i18n_z_ui_chat_ai_attach: 'Attach file',\n i18n_z_ui_chat_ai_close: 'Close chat',\n i18n_z_ui_chat_ai_toggle: 'Toggle chat',\n i18n_z_ui_chat_ai_typing: 'Typing...',\n i18n_z_ui_chat_ai_new_chat: 'Start new chat',\n i18n_z_ui_chat_ai_empty_title: 'Ask me anything',\n i18n_z_ui_chat_ai_empty_desc: 'Use quick prompts below or type your own message.',\n i18n_z_ui_chat_ai_suggestion_1: 'Create release notes from recent commits',\n i18n_z_ui_chat_ai_suggestion_2: 'Suggest test cases for a new feature',\n i18n_z_ui_chat_ai_suggestion_3: 'Generate a concise PR summary',\n\n // HTTP\n i18n_z_ui_http_network_offline: 'Network is offline',\n i18n_z_ui_http_error_default: 'An error occurred',\n i18n_z_ui_http_error_failed_to_fetch: 'Failed to connect to {{url}}',\n i18n_z_ui_http_error_400: 'Bad request',\n i18n_z_ui_http_error_401_permission: 'You do not have permission',\n i18n_z_ui_http_error_401_expired: 'Session expired',\n i18n_z_ui_http_error_403: 'Access forbidden',\n i18n_z_ui_http_error_404: 'Resource not found',\n i18n_z_ui_http_error_500: 'Internal server error',\n\n // Autocomplete\n i18n_z_ui_autocomplete_no_data: 'No data available',\n i18n_z_ui_autocomplete_no_results: 'No results found',\n\n // Gallery\n i18n_z_ui_gallery_search_placeholder: 'Search files...',\n i18n_z_ui_gallery_no_files: 'No files',\n i18n_z_ui_gallery_no_search_results: 'No files match your search',\n i18n_z_ui_gallery_preview: 'Preview',\n i18n_z_ui_gallery_download: 'Download',\n i18n_z_ui_gallery_remove: 'Remove',\n i18n_z_ui_gallery_delete: 'Delete',\n i18n_z_ui_gallery_rotate_left: 'Rotate left',\n i18n_z_ui_gallery_rotate_right: 'Rotate right',\n i18n_z_ui_gallery_pdf_preview: 'PDF preview',\n i18n_z_ui_gallery_loading_preview: 'Loading preview...',\n i18n_z_ui_gallery_preview_load_error: 'Unable to load preview',\n i18n_z_ui_gallery_preview_not_supported: 'Preview not supported for this file type',\n i18n_z_ui_gallery_video_not_supported: 'Your browser does not support the video tag.',\n i18n_z_ui_gallery_select_all: 'Select all',\n i18n_z_ui_gallery_selected: 'selected',\n i18n_z_ui_gallery_deselect_all: 'Deselect all',\n\n // QR Code\n i18n_z_ui_qrcode_download: 'Download QR Code',\n i18n_z_ui_qrcode_text_label: 'QR Code Text',\n i18n_z_ui_qrcode_text_placeholder: 'Enter text to encode...',\n i18n_z_ui_qrcode_error_correction: 'Error Correction Level',\n i18n_z_ui_qrcode_style: 'Style',\n i18n_z_ui_qrcode_dot_style: 'Dot Shape',\n i18n_z_ui_qrcode_eye_style: 'Eye Shape',\n i18n_z_ui_qrcode_frame: 'Frame Style',\n i18n_z_ui_qrcode_frame_text: 'Frame Text',\n i18n_z_ui_qrcode_color_preset: 'Color Theme',\n i18n_z_ui_qrcode_customization: 'QR Customization',\n\n // Show More\n i18n_z_ui_show_more_expand: 'Show more',\n i18n_z_ui_show_more_collapse: 'Show less',\n\n // Media Player\n i18n_z_ui_media_player_play: 'Play',\n i18n_z_ui_media_player_pause: 'Pause',\n i18n_z_ui_media_player_mute: 'Mute',\n i18n_z_ui_media_player_unmute: 'Unmute',\n i18n_z_ui_media_player_settings: 'Settings',\n i18n_z_ui_media_player_back: 'Back',\n i18n_z_ui_media_player_quality: 'Quality',\n i18n_z_ui_media_player_speed: 'Playback speed',\n i18n_z_ui_media_player_normal: 'Normal',\n i18n_z_ui_media_player_fullscreen: 'Fullscreen',\n i18n_z_ui_media_player_exit_fullscreen: 'Exit fullscreen',\n i18n_z_ui_media_player_theater_mode: 'Theater mode',\n i18n_z_ui_media_player_default_mode: 'Default mode',\n i18n_z_ui_media_player_miniplayer: 'Miniplayer',\n i18n_z_ui_media_player_subtitles: 'Subtitles/closed captions',\n\n // Command\n i18n_z_ui_command_search: 'Search command...',\n i18n_z_ui_command_no_results: 'No results found.',\n};\n","export const Z_UI_VI_TRANSLATIONS: Record<string, string> = {\n // Table\n i18n_z_ui_table_filter_min: 'Tối thiểu',\n i18n_z_ui_table_filter_max: 'Tối đa',\n i18n_z_ui_table_filter_all: 'Tất cả',\n i18n_z_ui_table_filter_search: 'Tìm kiếm...',\n i18n_z_ui_table_filter_date: 'Chọn ngày',\n i18n_z_ui_table_filter_date_range: 'Chọn khoảng ngày',\n i18n_z_ui_table_filter_time: 'Chọn giờ',\n i18n_z_ui_table_no_data: 'Không có dữ liệu',\n i18n_z_ui_table_no_results: 'Không tìm thấy kết quả',\n i18n_z_ui_table_loading: 'Đang tải...',\n i18n_z_ui_table_search: 'Tìm kiếm...',\n i18n_z_ui_table_settings: 'Cài đặt',\n i18n_z_ui_table_columns: 'Cột',\n i18n_z_ui_table_show_all: 'Hiện tất cả',\n i18n_z_ui_table_hide_all: 'Ẩn tất cả',\n i18n_z_ui_table_move_left: 'Di chuyển trái',\n i18n_z_ui_table_move_right: 'Di chuyển phải',\n i18n_z_ui_table_pin_left: 'Ghim trái',\n i18n_z_ui_table_pin_right: 'Ghim phải',\n i18n_z_ui_table_pin_top: 'Ghim lên đầu',\n i18n_z_ui_table_pin_bottom: 'Ghim xuống cuối',\n i18n_z_ui_table_unpin: 'Bỏ ghim',\n i18n_z_ui_table_autosize_column: 'Tự căn cột này',\n i18n_z_ui_table_autosize_all_columns: 'Tự căn tất cả cột',\n i18n_z_ui_table_choose_columns: 'Chọn cột',\n i18n_z_ui_table_reset_columns: 'Đặt lại cột',\n i18n_z_ui_table_group_by_column: 'Nhóm theo cột này',\n i18n_z_ui_table_clear_grouping: 'Bỏ nhóm theo cột này',\n i18n_z_ui_table_group_empty: '(Trống)',\n i18n_z_ui_table_insert_row_above: 'Chèn dòng phía trên',\n i18n_z_ui_table_insert_row_below: 'Chèn dòng phía dưới',\n i18n_z_ui_table_delete_row: 'Xóa dòng',\n i18n_z_ui_table_delete_selected_rows: 'Xóa các dòng đã chọn',\n i18n_z_ui_table_copy_row: 'Sao chép dòng',\n i18n_z_ui_table_copy_cell: 'Sao chép',\n i18n_z_ui_table_copy_cell_with_headers: 'Sao chép kèm tiêu đề',\n i18n_z_ui_table_paste_row_below: 'Dán dòng phía dưới',\n i18n_z_ui_table_move_row_up: 'Di chuyển dòng lên',\n i18n_z_ui_table_move_row_down: 'Di chuyển dòng xuống',\n i18n_z_ui_table_show_hide_columns: 'Hiện/Ẩn cột',\n i18n_z_ui_table_configure_table: 'Tuỳ chỉnh',\n i18n_z_ui_table_sort: 'Sắp xếp',\n i18n_z_ui_table_sort_asc: 'Sắp xếp tăng dần',\n i18n_z_ui_table_sort_desc: 'Sắp xếp giảm dần',\n i18n_z_ui_table_sort_asc_short: 'Tăng dần',\n i18n_z_ui_table_sort_desc_short: 'Giảm dần',\n i18n_z_ui_table_sort_az: 'A-Z',\n i18n_z_ui_table_sort_za: 'Z-A',\n i18n_z_ui_table_clear_sort: 'Bỏ sắp xếp',\n i18n_z_ui_table_filter: 'Lọc',\n i18n_z_ui_table_filter_value: 'Giá trị',\n i18n_z_ui_table_filter_operator_contains: 'Có chứa',\n i18n_z_ui_table_filter_operator_not_contains: 'Không chứa',\n i18n_z_ui_table_filter_operator_starts_with: 'Bắt đầu bằng',\n i18n_z_ui_table_filter_operator_ends_with: 'Kết thúc bằng',\n i18n_z_ui_table_filter_operator_equals: 'Bằng',\n i18n_z_ui_table_filter_operator_not_equals: 'Không bằng',\n i18n_z_ui_table_filter_operator_greater_than: 'Lớn hơn',\n i18n_z_ui_table_filter_operator_greater_than_or_equal: 'Lớn hơn hoặc bằng',\n i18n_z_ui_table_filter_operator_less_than: 'Nhỏ hơn',\n i18n_z_ui_table_filter_operator_less_than_or_equal: 'Nhỏ hơn hoặc bằng',\n i18n_z_ui_table_filter_operator_empty: 'Đang trống',\n i18n_z_ui_table_filter_operator_not_empty: 'Không trống',\n i18n_z_ui_table_filter_add_condition: 'Thêm điều kiện',\n i18n_z_ui_table_filter_add: 'Thêm',\n i18n_z_ui_table_filter_and: 'VÀ',\n i18n_z_ui_table_filter_no_value: 'Không cần giá trị',\n i18n_z_ui_table_filter_empty_conditions: 'Chưa có bộ lọc',\n i18n_z_ui_table_filter_select_condition: 'Chọn điều kiện',\n i18n_z_ui_table_filter_remove: 'Xóa bộ lọc',\n i18n_z_ui_table_show_more: 'Xem thêm + {{count}}',\n i18n_z_ui_table_show_less: 'Thu gọn',\n i18n_z_ui_table_apply: 'Áp dụng',\n i18n_z_ui_table_reset: 'Đặt lại',\n i18n_z_ui_table_clear_filter: 'Xóa bộ lọc',\n i18n_z_ui_table_rows_per_page: 'Số dòng mỗi trang',\n i18n_z_ui_table_total_rows: '{{total}} tổng số dòng',\n i18n_z_ui_table_of: 'của',\n i18n_z_ui_table_selected: 'đã chọn',\n i18n_z_ui_table_clear_selection: 'Bỏ chọn',\n i18n_z_ui_table_export_excel: 'Xuất Excel',\n i18n_z_ui_table_expand_all: 'Mở rộng tất cả',\n i18n_z_ui_table_collapse_all: 'Thu gọn tất cả',\n i18n_z_ui_table_settings_title: 'Cài đặt bảng',\n i18n_z_ui_table_display_settings: 'Cài đặt hiển thị',\n i18n_z_ui_table_display_settings_desc: 'Tùy chỉnh giao diện bảng',\n i18n_z_ui_table_horizontal_border: 'Viền ngang',\n i18n_z_ui_table_vertical_border: 'Viền dọc',\n i18n_z_ui_table_header_footer_shadow: 'Đổ bóng Header/Footer',\n i18n_z_ui_table_column_settings: 'Cài đặt cột',\n i18n_z_ui_table_column_settings_desc: 'Bật/tắt hiển thị, kéo thả để sắp xếp, và ghim cột',\n i18n_z_ui_table_pinned_columns: 'Cột đã ghim',\n i18n_z_ui_table_left: 'TRÁI',\n i18n_z_ui_table_right: 'PHẢI',\n\n // Menu\n i18n_z_ui_menu_navigation: 'Điều hướng',\n i18n_z_ui_menu_expand_sidebar: 'Mở rộng menu',\n i18n_z_ui_menu_collapse_sidebar: 'Thu gọn menu',\n\n // Kanban\n i18n_z_ui_kanban_board_title: 'Đội Hiệu Suất Cao',\n i18n_z_ui_kanban_board_subtitle: 'Bảng sprint với workflow kéo thả',\n i18n_z_ui_kanban_search_placeholder: 'Tìm kiếm công việc...',\n i18n_z_ui_kanban_drag_disabled_while_search: 'Tạm tắt kéo thả khi đang tìm kiếm',\n i18n_z_ui_kanban_drop_here: 'Thả công việc vào đây',\n i18n_z_ui_kanban_no_matches: 'Không có công việc khớp với tìm kiếm',\n i18n_z_ui_kanban_done: 'Hoàn thành',\n i18n_z_ui_kanban_editor_title: 'Chỉnh sửa công việc',\n i18n_z_ui_kanban_title: 'Tiêu đề',\n i18n_z_ui_kanban_title_placeholder: 'Nhập tiêu đề ngắn gọn cho công việc',\n i18n_z_ui_kanban_description: 'Mô tả',\n i18n_z_ui_kanban_description_placeholder: 'Thêm chi tiết triển khai, ràng buộc và ghi chú...',\n i18n_z_ui_kanban_checklist: 'Checklist',\n i18n_z_ui_kanban_no_checklist_items: 'Chưa có mục checklist',\n i18n_z_ui_kanban_checklist_add_placeholder: 'Thêm mục checklist',\n i18n_z_ui_kanban_status: 'Trạng thái',\n i18n_z_ui_kanban_status_placeholder: 'Chọn trạng thái',\n i18n_z_ui_kanban_priority: 'Mức độ ưu tiên',\n i18n_z_ui_kanban_priority_placeholder: 'Chọn mức ưu tiên',\n i18n_z_ui_kanban_assignees: 'Người phụ trách',\n i18n_z_ui_kanban_assignees_placeholder: 'Tên cách nhau bởi dấu phẩy',\n i18n_z_ui_kanban_assignees_select_placeholder: 'Chọn hoặc nhập người phụ trách',\n i18n_z_ui_kanban_start_date: 'Ngày bắt đầu',\n i18n_z_ui_kanban_end_date: 'Ngày kết thúc',\n i18n_z_ui_kanban_due_date: 'Hạn hoàn thành',\n i18n_z_ui_kanban_attachments: 'Tệp đính kèm',\n i18n_z_ui_kanban_attachments_note: 'Tải tài liệu, hình ảnh hoặc tài liệu tham chiếu',\n i18n_z_ui_kanban_activity: 'Hoạt động',\n i18n_z_ui_kanban_no_activity: 'Chưa có hoạt động',\n i18n_z_ui_kanban_add_comment: 'Thêm bình luận',\n i18n_z_ui_kanban_comment_placeholder: 'Viết cập nhật cho công việc này...',\n i18n_z_ui_kanban_comment_submit: 'Gửi cập nhật',\n i18n_z_ui_kanban_new_task_title: 'Công việc chưa đặt tên',\n i18n_z_ui_kanban_activity_you: 'Bạn',\n i18n_z_ui_kanban_priority_risk: 'Rủi ro',\n i18n_z_ui_kanban_priority_high: 'Cao',\n i18n_z_ui_kanban_priority_medium: 'Trung bình',\n i18n_z_ui_kanban_priority_low: 'Thấp',\n i18n_z_ui_kanban_column_todo: 'Cần làm',\n i18n_z_ui_kanban_column_in_progress: 'Đang làm',\n i18n_z_ui_kanban_column_review: 'Đang review',\n i18n_z_ui_kanban_column_done: 'Đã xong',\n\n // Calendar\n i18n_z_ui_calendar_today: 'Hôm nay',\n i18n_z_ui_calendar_yesterday: 'Hôm trước',\n i18n_z_ui_calendar_clear: 'Xóa',\n i18n_z_ui_calendar_ok: 'Đồng ý',\n i18n_z_ui_calendar_cancel: 'Hủy',\n i18n_z_ui_calendar_start_date: 'Từ ngày',\n i18n_z_ui_calendar_end_date: 'Đến ngày',\n i18n_z_ui_calendar_select_date: 'Chọn ngày',\n i18n_z_ui_calendar_select_time: 'Chọn giờ',\n i18n_z_ui_calendar_this_week: 'Tuần này',\n i18n_z_ui_calendar_last_week: 'Tuần trước',\n i18n_z_ui_calendar_this_month: 'Tháng này',\n i18n_z_ui_calendar_last_month: 'Tháng trước',\n i18n_z_ui_calendar_last_7_days: '7 ngày trước',\n i18n_z_ui_calendar_last_14_days: '14 ngày trước',\n i18n_z_ui_calendar_last_30_days: '30 ngày trước',\n i18n_z_ui_calendar_last_1_month: '1 tháng trước',\n i18n_z_ui_calendar_last_2_months: '2 tháng trước',\n i18n_z_ui_calendar_last_3_months: '3 tháng trước',\n i18n_z_ui_calendar_last_6_months: '6 tháng trước',\n i18n_z_ui_calendar_last_90_days: '90 ngày trước',\n i18n_z_ui_calendar_custom: 'Tùy chỉnh',\n i18n_z_ui_calendar_this_year: 'Năm nay',\n i18n_z_ui_calendar_last_year: 'Năm trước',\n i18n_z_ui_calendar_this_quarter: 'Quý này',\n i18n_z_ui_calendar_now: 'Bây giờ',\n i18n_z_ui_calendar_required: 'Vui lòng chọn ngày',\n i18n_z_ui_calendar_start: 'Bắt đầu',\n i18n_z_ui_calendar_end: 'Kết thúc',\n i18n_z_ui_calendar_time: 'Giờ',\n i18n_z_ui_calendar_hour: 'Giờ',\n i18n_z_ui_calendar_minute: 'Phút',\n i18n_z_ui_calendar_second: 'Giây',\n i18n_z_ui_calendar_period: 'SA/CH',\n\n // Editor\n i18n_z_ui_editor_placeholder: 'Nhập nội dung...',\n i18n_z_ui_editor_required: 'Trường này là bắt buộc',\n i18n_z_ui_editor_min_length: 'Tối thiểu {{min}} ký tự',\n i18n_z_ui_editor_max_length: 'Tối đa {{max}} ký tự',\n i18n_z_ui_editor_invalid: 'Giá trị không hợp lệ',\n i18n_z_ui_editor_invalid_url: 'Vui lòng nhập URL http hoặc https hợp lệ.',\n i18n_z_ui_editor_link_invalid_url: 'Vui lòng nhập URL http hoặc https hợp lệ.',\n i18n_z_ui_editor_no_commands: 'Không có lệnh',\n i18n_z_ui_editor_shortcut_navigate: 'để di chuyển',\n i18n_z_ui_editor_shortcut_abort: 'để huỷ',\n i18n_z_ui_editor_shortcut_select: 'để chọn',\n i18n_z_ui_emoji_category_smileys: 'Mặt cười & Con người',\n i18n_z_ui_emoji_category_animals: 'Động vật & Thiên nhiên',\n i18n_z_ui_emoji_category_food: 'Đồ ăn & Thức uống',\n i18n_z_ui_emoji_category_activities: 'Hoạt động',\n i18n_z_ui_emoji_category_travel: 'Du lịch & Địa điểm',\n i18n_z_ui_emoji_category_objects: 'Đồ vật',\n i18n_z_ui_emoji_category_symbols: 'Ký hiệu',\n i18n_z_ui_emoji_category_flags: 'Cờ',\n i18n_z_ui_emoji_search_placeholder: 'Tìm emoji...',\n i18n_z_ui_emoji_no_results: 'Không có emoji phù hợp',\n i18n_z_ui_emoji_search_results: 'Kết quả tìm kiếm',\n\n // Checkbox\n i18n_z_ui_checkbox_check_all: 'Chọn tất cả',\n\n // Code\n i18n_z_ui_code_copied: 'Đã sao chép code!',\n\n // Input\n i18n_z_ui_input_saved_colors: 'Màu đã lưu:',\n i18n_z_ui_input_add_color: '+ Thêm',\n i18n_z_ui_input_required: 'Trường này là bắt buộc',\n i18n_z_ui_input_min_length: 'Tối thiểu {{min}} ký tự',\n i18n_z_ui_input_max_length: 'Tối đa {{max}} ký tự',\n i18n_z_ui_input_email: 'Định dạng email không hợp lệ',\n i18n_z_ui_input_pattern: 'Định dạng không hợp lệ',\n i18n_z_ui_input_min: 'Giá trị tối thiểu là {{min}}',\n i18n_z_ui_input_max: 'Giá trị tối đa là {{max}}',\n\n // Select\n i18n_z_ui_select_placeholder: 'Chọn...',\n i18n_z_ui_select_no_options: 'Không có tùy chọn',\n i18n_z_ui_select_no_results: 'Không tìm thấy kết quả',\n i18n_z_ui_select_loading: 'Đang tải...',\n i18n_z_ui_select_select_all: 'Chọn tất cả',\n i18n_z_ui_select_clear_all: 'Bỏ chọn tất cả',\n i18n_z_ui_select_selected: 'Đã chọn {{count}}',\n i18n_z_ui_select_search: 'Tìm kiếm...',\n i18n_z_ui_select_required: 'Vui lòng chọn giá trị',\n\n // Modal\n i18n_z_ui_modal_close: 'Đóng',\n i18n_z_ui_modal_confirm: 'Xác nhận',\n i18n_z_ui_modal_cancel: 'Hủy',\n\n // Drawer\n i18n_z_ui_drawer_close: 'Đóng',\n\n // Upload\n i18n_z_ui_upload_drag_drop: 'Kéo file vào đây',\n i18n_z_ui_upload_drop_here: 'Thả file vào đây',\n i18n_z_ui_upload_or: 'hoặc',\n i18n_z_ui_upload_browse: 'chọn file',\n i18n_z_ui_upload_uploading: 'Đang tải lên...',\n i18n_z_ui_upload_uploaded: 'Đã tải lên',\n i18n_z_ui_upload_failed: 'Tải lên thất bại',\n i18n_z_ui_upload_remove: 'Xóa',\n i18n_z_ui_upload_max_size: 'Kích thước file vượt quá {{size}}',\n i18n_z_ui_upload_max_files: 'Tối đa {{count}} file được phép',\n i18n_z_ui_upload_invalid_type: 'Loại file không được phép',\n i18n_z_ui_upload_accepted: 'Chấp nhận',\n i18n_z_ui_upload_required: 'Vui lòng chọn file',\n\n // Pagination\n i18n_z_ui_pagination_first: 'Đầu',\n i18n_z_ui_pagination_last: 'Cuối',\n i18n_z_ui_pagination_next: 'Tiếp',\n i18n_z_ui_pagination_previous: 'Trước',\n i18n_z_ui_pagination_page: 'Trang',\n i18n_z_ui_pagination_of: 'của',\n i18n_z_ui_pagination_total_label: 'Tổng {{total}} mục',\n i18n_z_ui_pagination_per_page: '/ trang',\n i18n_z_ui_pagination_go_to: 'Đến trang',\n\n // Common\n i18n_z_ui_common_select: 'Chọn giá trị...',\n i18n_z_ui_common_loading: 'Đang tải...',\n i18n_z_ui_common_save: 'Lưu',\n i18n_z_ui_common_cancel: 'Hủy',\n i18n_z_ui_common_confirm: 'Xác nhận',\n i18n_z_ui_common_delete: 'Xóa',\n i18n_z_ui_common_edit: 'Sửa',\n i18n_z_ui_common_add: 'Thêm',\n i18n_z_ui_common_search: 'Tìm kiếm',\n i18n_z_ui_common_clear: 'Xóa',\n i18n_z_ui_common_reset: 'Đặt lại',\n i18n_z_ui_common_apply: 'Áp dụng',\n i18n_z_ui_common_remove: 'Xóa',\n i18n_z_ui_common_yes: 'Có',\n i18n_z_ui_common_no: 'Không',\n i18n_z_ui_common_ok: 'OK',\n i18n_z_ui_common_error: 'Lỗi',\n i18n_z_ui_common_success: 'Thành công',\n i18n_z_ui_common_warning: 'Cảnh báo',\n i18n_z_ui_common_info: 'Thông tin',\n\n // Toast\n i18n_z_ui_toast_close: 'Đóng',\n\n // Tags\n i18n_z_ui_tags_add: 'Thêm',\n i18n_z_ui_tags_placeholder: 'Tag mới',\n\n // Empty\n i18n_z_ui_empty_no_data: 'Không có dữ liệu',\n i18n_z_ui_empty_no_results: 'Không tìm thấy kết quả',\n i18n_z_ui_empty_error_message: 'Đã xảy ra lỗi',\n i18n_z_ui_empty_error_description: 'Có lỗi xảy ra khi tải dữ liệu. Vui lòng thử lại sau.',\n\n // Steps\n i18n_z_ui_steps_title: 'Các bước',\n\n // Chat AI\n i18n_z_ui_chat_ai_title: 'Trợ lý AI',\n i18n_z_ui_chat_ai_subtitle: 'Tôi có thể giúp gì cho bạn?',\n i18n_z_ui_chat_ai_placeholder: 'Nhập tin nhắn...',\n i18n_z_ui_chat_ai_send: 'Gửi tin nhắn',\n i18n_z_ui_chat_ai_attach: 'Đính kèm file',\n i18n_z_ui_chat_ai_close: 'Đóng chat',\n i18n_z_ui_chat_ai_toggle: 'Bật/tắt chat',\n i18n_z_ui_chat_ai_typing: 'Đang nhập...',\n i18n_z_ui_chat_ai_new_chat: 'Bắt đầu chat mới',\n i18n_z_ui_chat_ai_empty_title: 'Hỏi tôi bất cứ điều gì',\n i18n_z_ui_chat_ai_empty_desc: 'Dùng gợi ý nhanh bên dưới hoặc nhập câu hỏi của bạn.',\n i18n_z_ui_chat_ai_suggestion_1: 'Tạo release notes từ commit gần đây',\n i18n_z_ui_chat_ai_suggestion_2: 'Gợi ý test case cho tính năng mới',\n i18n_z_ui_chat_ai_suggestion_3: 'Tạo tóm tắt PR ngắn gọn',\n\n // HTTP\n i18n_z_ui_http_network_offline: 'Không có kết nối mạng',\n i18n_z_ui_http_error_default: 'Đã xảy ra lỗi',\n i18n_z_ui_http_error_failed_to_fetch: 'Không thể kết nối đến {{url}}',\n i18n_z_ui_http_error_400: 'Yêu cầu không hợp lệ',\n i18n_z_ui_http_error_401_permission: 'Bạn không có quyền truy cập',\n i18n_z_ui_http_error_401_expired: 'Phiên đăng nhập đã hết hạn',\n i18n_z_ui_http_error_403: 'Truy cập bị từ chối',\n i18n_z_ui_http_error_404: 'Không tìm thấy tài nguyên',\n i18n_z_ui_http_error_500: 'Lỗi máy chủ nội bộ',\n\n // Autocomplete\n i18n_z_ui_autocomplete_no_data: 'Chưa có dữ liệu',\n i18n_z_ui_autocomplete_no_results: 'Không tìm thấy kết quả',\n\n // Gallery\n i18n_z_ui_gallery_search_placeholder: 'Tìm kiếm tệp...',\n i18n_z_ui_gallery_no_files: 'Không có tệp',\n i18n_z_ui_gallery_no_search_results: 'Không tìm thấy tệp phù hợp',\n i18n_z_ui_gallery_preview: 'Xem trước',\n i18n_z_ui_gallery_download: 'Tải xuống',\n i18n_z_ui_gallery_remove: 'Xóa',\n i18n_z_ui_gallery_delete: 'Xóa',\n i18n_z_ui_gallery_rotate_left: 'Xoay trái',\n i18n_z_ui_gallery_rotate_right: 'Xoay phải',\n i18n_z_ui_gallery_pdf_preview: 'Xem trước PDF',\n i18n_z_ui_gallery_loading_preview: 'Đang tải bản xem trước...',\n i18n_z_ui_gallery_preview_load_error: 'Không thể tải bản xem trước',\n i18n_z_ui_gallery_preview_not_supported: 'Không hỗ trợ xem trước loại tệp này',\n i18n_z_ui_gallery_video_not_supported: 'Trình duyệt của bạn không hỗ trợ thẻ video.',\n i18n_z_ui_gallery_select_all: 'Chọn tất cả',\n i18n_z_ui_gallery_selected: 'đã chọn',\n i18n_z_ui_gallery_deselect_all: 'Bỏ chọn tất cả',\n\n // QR Code\n i18n_z_ui_qrcode_download: 'Tải QR Code',\n i18n_z_ui_qrcode_text_label: 'Nội dung QR Code',\n i18n_z_ui_qrcode_text_placeholder: 'Nhập nội dung mã hóa...',\n i18n_z_ui_qrcode_error_correction: 'Mức sửa lỗi',\n i18n_z_ui_qrcode_style: 'Định dạng',\n i18n_z_ui_qrcode_dot_style: 'Hình hoa văn',\n i18n_z_ui_qrcode_eye_style: 'Hình mắt QR',\n i18n_z_ui_qrcode_frame: 'Kiểu khung',\n i18n_z_ui_qrcode_frame_text: 'Chữ trên khung',\n i18n_z_ui_qrcode_color_preset: 'Chủ đề màu sắc',\n i18n_z_ui_qrcode_customization: 'Tùy biến QR Code',\n\n // Show More\n i18n_z_ui_show_more_expand: 'Xem thêm',\n i18n_z_ui_show_more_collapse: 'Thu gọn',\n\n // Media Player\n i18n_z_ui_media_player_play: 'Phát',\n i18n_z_ui_media_player_pause: 'Tạm dừng',\n i18n_z_ui_media_player_mute: 'Tắt tiếng',\n i18n_z_ui_media_player_unmute: 'Bật tiếng',\n i18n_z_ui_media_player_settings: 'Cài đặt',\n i18n_z_ui_media_player_back: 'Quay lại',\n i18n_z_ui_media_player_quality: 'Chất lượng',\n i18n_z_ui_media_player_speed: 'Tốc độ phát',\n i18n_z_ui_media_player_normal: 'Bình thường',\n i18n_z_ui_media_player_fullscreen: 'Toàn màn hình',\n i18n_z_ui_media_player_exit_fullscreen: 'Thoát toàn màn hình',\n i18n_z_ui_media_player_theater_mode: 'Chế độ rạp chiếu phim',\n i18n_z_ui_media_player_default_mode: 'Chế độ mặc định',\n i18n_z_ui_media_player_miniplayer: 'Trình phát thu nhỏ',\n i18n_z_ui_media_player_subtitles: 'Phụ đề/thuyết minh',\n\n // Command\n i18n_z_ui_command_search: 'Tìm kiếm lệnh...',\n i18n_z_ui_command_no_results: 'Không tìm thấy kết quả.',\n};\n","/**\n * Z-UI Internationalization\n *\n * This module provides default translations for all Z-UI components.\n * Users can override any translation by providing their own values.\n *\n * Key format: i18n_z_ui_{component}_{key}\n * Example: i18n_z_ui_table_noData\n */\n\nimport { Z_UI_EN_TRANSLATIONS } from './en';\nimport { type ZUILanguage, type ZUITranslations, type ZUITranslationSet } from './types';\nimport { Z_UI_VI_TRANSLATIONS } from './vi';\n\nexport const Z_UI_TRANSLATIONS: ZUITranslationSet = {\n en: Z_UI_EN_TRANSLATIONS,\n vi: Z_UI_VI_TRANSLATIONS,\n};\n\nexport function getZUITranslations(lang: ZUILanguage): ZUITranslations {\n return Z_UI_TRANSLATIONS[lang] ?? Z_UI_TRANSLATIONS['en'];\n}\n\nexport function mergeTranslations(lang: ZUILanguage, customTranslations?: ZUITranslations): ZUITranslations {\n const defaults = getZUITranslations(lang);\n if (!customTranslations) {\n return defaults;\n }\n return { ...defaults, ...customTranslations };\n}\n\nexport function getZUITranslationKeys(): string[] {\n return Object.keys(Z_UI_EN_TRANSLATIONS);\n}\n","// Types\nexport * from './types';\n\n// Translations\nexport { Z_UI_EN_TRANSLATIONS } from './en';\nexport { Z_UI_VI_TRANSLATIONS } from './vi';\n\n// Functions and constants\nexport { Z_UI_TRANSLATIONS, getZUITranslations, mergeTranslations, getZUITranslationKeys } from './i18n';\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-i18n.mjs","sources":["../../../../libs/core-ui/i18n/types/i18n.types.ts","../../../../libs/core-ui/i18n/en.ts","../../../../libs/core-ui/i18n/vi.ts","../../../../libs/core-ui/i18n/i18n.ts","../../../../libs/core-ui/i18n/index.ts","../../../../libs/core-ui/i18n/shival99-z-ui-i18n.ts"],"sourcesContent":["/**\n * Z-UI Internationalization Types\n */\n\nexport type ZUILanguage = 'en' | 'vi' | string;\n\nexport interface ZUITranslations {\n [key: string]: string;\n}\n\nexport interface ZUITranslationSet {\n en: ZUITranslations;\n vi: ZUITranslations;\n [lang: string]: ZUITranslations;\n}\n","export const Z_UI_EN_TRANSLATIONS: Record<string, string> = {\n // Table\n i18n_z_ui_table_filter_min: 'Min',\n i18n_z_ui_table_filter_max: 'Max',\n i18n_z_ui_table_filter_all: 'All',\n i18n_z_ui_table_filter_search: 'Search...',\n i18n_z_ui_table_filter_date: 'Select date',\n i18n_z_ui_table_filter_date_range: 'Select date range',\n i18n_z_ui_table_filter_time: 'Select time',\n i18n_z_ui_table_no_data: 'No data available',\n i18n_z_ui_table_no_results: 'No results found',\n i18n_z_ui_table_loading: 'Loading...',\n i18n_z_ui_table_search: 'Search...',\n i18n_z_ui_table_settings: 'Settings',\n i18n_z_ui_table_columns: 'Columns',\n i18n_z_ui_table_show_all: 'Show all',\n i18n_z_ui_table_hide_all: 'Hide all',\n i18n_z_ui_table_move_left: 'Move left',\n i18n_z_ui_table_move_right: 'Move right',\n i18n_z_ui_table_pin_left: 'Pin left',\n i18n_z_ui_table_pin_right: 'Pin right',\n i18n_z_ui_table_pin_top: 'Pin top',\n i18n_z_ui_table_pin_bottom: 'Pin bottom',\n i18n_z_ui_table_unpin: 'Unpin',\n i18n_z_ui_table_autosize_column: 'Autosize This Column',\n i18n_z_ui_table_autosize_all_columns: 'Autosize All Columns',\n i18n_z_ui_table_choose_columns: 'Choose Columns',\n i18n_z_ui_table_reset_columns: 'Reset Columns',\n i18n_z_ui_table_group_by_column: 'Group by this column',\n i18n_z_ui_table_clear_grouping: 'Remove grouping by this column',\n i18n_z_ui_table_group_empty: '(Empty)',\n i18n_z_ui_table_insert_row_above: 'Insert row above',\n i18n_z_ui_table_insert_row_below: 'Insert row below',\n i18n_z_ui_table_delete_row: 'Delete row',\n i18n_z_ui_table_delete_selected_rows: 'Delete selected rows',\n i18n_z_ui_table_copy_row: 'Copy row',\n i18n_z_ui_table_copy_cell: 'Copy',\n i18n_z_ui_table_copy_cell_with_headers: 'Copy with headers',\n i18n_z_ui_table_paste_row_below: 'Paste row below',\n i18n_z_ui_table_move_row_up: 'Move row up',\n i18n_z_ui_table_move_row_down: 'Move row down',\n i18n_z_ui_table_show_hide_columns: 'Show/Hide columns',\n i18n_z_ui_table_configure_table: 'Customize',\n i18n_z_ui_table_sort: 'Sort',\n i18n_z_ui_table_sort_asc: 'Sort ascending',\n i18n_z_ui_table_sort_desc: 'Sort descending',\n i18n_z_ui_table_sort_asc_short: 'Ascending',\n i18n_z_ui_table_sort_desc_short: 'Descending',\n i18n_z_ui_table_sort_az: 'A-Z',\n i18n_z_ui_table_sort_za: 'Z-A',\n i18n_z_ui_table_clear_sort: 'Clear sort',\n i18n_z_ui_table_filter: 'Filter',\n i18n_z_ui_table_filter_value: 'Value',\n i18n_z_ui_table_filter_operator_contains: 'Contains',\n i18n_z_ui_table_filter_operator_not_contains: 'Does not contain',\n i18n_z_ui_table_filter_operator_starts_with: 'Starts with',\n i18n_z_ui_table_filter_operator_ends_with: 'Ends with',\n i18n_z_ui_table_filter_operator_equals: 'Equals',\n i18n_z_ui_table_filter_operator_not_equals: 'Not equals',\n i18n_z_ui_table_filter_operator_greater_than: 'Greater than',\n i18n_z_ui_table_filter_operator_greater_than_or_equal: 'Greater than or equal',\n i18n_z_ui_table_filter_operator_less_than: 'Less than',\n i18n_z_ui_table_filter_operator_less_than_or_equal: 'Less than or equal',\n i18n_z_ui_table_filter_operator_empty: 'Is empty',\n i18n_z_ui_table_filter_operator_not_empty: 'Is not empty',\n i18n_z_ui_table_filter_add_condition: 'Add condition',\n i18n_z_ui_table_filter_add: 'Add',\n i18n_z_ui_table_filter_and: 'AND',\n i18n_z_ui_table_filter_no_value: 'No value',\n i18n_z_ui_table_filter_empty_conditions: 'No filters yet',\n i18n_z_ui_table_filter_select_condition: 'Select condition',\n i18n_z_ui_table_filter_remove: 'Remove filter',\n i18n_z_ui_table_show_more: 'Show more + {{count}}',\n i18n_z_ui_table_show_less: 'Show less',\n i18n_z_ui_table_apply: 'Apply',\n i18n_z_ui_table_reset: 'Reset',\n i18n_z_ui_table_clear_filter: 'Clear filter',\n i18n_z_ui_table_rows_per_page: 'Rows per page',\n i18n_z_ui_table_total_rows: '{{total}} total rows',\n i18n_z_ui_table_of: 'of',\n i18n_z_ui_table_selected: 'selected',\n i18n_z_ui_table_clear_selection: 'Uncheck',\n i18n_z_ui_table_export_excel: 'Export Excel',\n i18n_z_ui_table_expand_all: 'Expand all',\n i18n_z_ui_table_collapse_all: 'Collapse all',\n i18n_z_ui_table_settings_title: 'Table Settings',\n i18n_z_ui_table_display_settings: 'Display Settings',\n i18n_z_ui_table_display_settings_desc: 'Customize table appearance',\n i18n_z_ui_table_horizontal_border: 'Horizontal Border',\n i18n_z_ui_table_vertical_border: 'Vertical Border',\n i18n_z_ui_table_header_footer_shadow: 'Header/Footer Shadow',\n i18n_z_ui_table_column_settings: 'Column Settings',\n i18n_z_ui_table_column_settings_desc: 'Toggle visibility, drag to reorder, and pin columns',\n i18n_z_ui_table_pinned_columns: 'Pinned Columns',\n i18n_z_ui_table_left: 'LEFT',\n i18n_z_ui_table_right: 'RIGHT',\n\n // Menu\n i18n_z_ui_menu_navigation: 'Navigation',\n i18n_z_ui_menu_expand_sidebar: 'Expand sidebar',\n i18n_z_ui_menu_collapse_sidebar: 'Collapse sidebar',\n\n // Kanban\n i18n_z_ui_kanban_board_title: 'High-Performance Team',\n i18n_z_ui_kanban_board_subtitle: 'Sprint planning board with drag & drop workflow',\n i18n_z_ui_kanban_search_placeholder: 'Search tasks...',\n i18n_z_ui_kanban_drag_disabled_while_search: 'Drag is disabled while search is active',\n i18n_z_ui_kanban_drop_here: 'Drop task here',\n i18n_z_ui_kanban_no_matches: 'No tasks match this search',\n i18n_z_ui_kanban_done: 'Done',\n i18n_z_ui_kanban_editor_title: 'Task Editor',\n i18n_z_ui_kanban_title: 'Title',\n i18n_z_ui_kanban_title_placeholder: 'Write a concise task title',\n i18n_z_ui_kanban_description: 'Description',\n i18n_z_ui_kanban_description_placeholder: 'Add implementation details, constraints, and notes...',\n i18n_z_ui_kanban_checklist: 'Checklist',\n i18n_z_ui_kanban_no_checklist_items: 'No checklist items yet',\n i18n_z_ui_kanban_checklist_add_placeholder: 'Add checklist item',\n i18n_z_ui_kanban_status: 'Status',\n i18n_z_ui_kanban_status_placeholder: 'Select status',\n i18n_z_ui_kanban_priority: 'Priority',\n i18n_z_ui_kanban_priority_placeholder: 'Select priority',\n i18n_z_ui_kanban_assignees: 'Assignees',\n i18n_z_ui_kanban_assignees_placeholder: 'Comma separated names',\n i18n_z_ui_kanban_assignees_select_placeholder: 'Select or type assignees',\n i18n_z_ui_kanban_start_date: 'Start date',\n i18n_z_ui_kanban_end_date: 'End date',\n i18n_z_ui_kanban_due_date: 'Due date',\n i18n_z_ui_kanban_attachments: 'Attachments',\n i18n_z_ui_kanban_attachments_note: 'Upload documents, images, or references',\n i18n_z_ui_kanban_activity: 'Activity',\n i18n_z_ui_kanban_no_activity: 'No activity yet',\n i18n_z_ui_kanban_add_comment: 'Add comment',\n i18n_z_ui_kanban_comment_placeholder: 'Write an update for this task...',\n i18n_z_ui_kanban_comment_submit: 'Post update',\n i18n_z_ui_kanban_new_task_title: 'Untitled task',\n i18n_z_ui_kanban_activity_you: 'You',\n i18n_z_ui_kanban_priority_risk: 'Risk',\n i18n_z_ui_kanban_priority_high: 'High',\n i18n_z_ui_kanban_priority_medium: 'Medium',\n i18n_z_ui_kanban_priority_low: 'Low',\n i18n_z_ui_kanban_column_todo: 'To Do',\n i18n_z_ui_kanban_column_in_progress: 'In Progress',\n i18n_z_ui_kanban_column_review: 'Review',\n i18n_z_ui_kanban_column_done: 'Done',\n\n // Calendar\n i18n_z_ui_calendar_today: 'Today',\n i18n_z_ui_calendar_yesterday: 'Yesterday',\n i18n_z_ui_calendar_clear: 'Clear',\n i18n_z_ui_calendar_ok: 'OK',\n i18n_z_ui_calendar_cancel: 'Cancel',\n i18n_z_ui_calendar_start_date: 'Start date',\n i18n_z_ui_calendar_end_date: 'End date',\n i18n_z_ui_calendar_select_date: 'Select date',\n i18n_z_ui_calendar_select_time: 'Select time',\n i18n_z_ui_calendar_this_week: 'This week',\n i18n_z_ui_calendar_last_week: 'Last week',\n i18n_z_ui_calendar_this_month: 'This month',\n i18n_z_ui_calendar_last_month: 'Last month',\n i18n_z_ui_calendar_last_7_days: 'Last 7 days',\n i18n_z_ui_calendar_last_14_days: 'Last 14 days',\n i18n_z_ui_calendar_last_30_days: 'Last 30 days',\n i18n_z_ui_calendar_last_1_month: 'Last 1 month',\n i18n_z_ui_calendar_last_2_months: 'Last 2 months',\n i18n_z_ui_calendar_last_3_months: 'Last 3 months',\n i18n_z_ui_calendar_last_6_months: 'Last 6 months',\n i18n_z_ui_calendar_last_90_days: 'Last 90 days',\n i18n_z_ui_calendar_this_year: 'This year',\n i18n_z_ui_calendar_last_year: 'Last year',\n i18n_z_ui_calendar_this_quarter: 'This quarter',\n i18n_z_ui_calendar_custom: 'Custom',\n i18n_z_ui_calendar_now: 'Now',\n i18n_z_ui_calendar_required: 'Please select a date',\n i18n_z_ui_calendar_start: 'Start',\n i18n_z_ui_calendar_end: 'End',\n i18n_z_ui_calendar_time: 'Time',\n i18n_z_ui_calendar_hour: 'Hr',\n i18n_z_ui_calendar_minute: 'Min',\n i18n_z_ui_calendar_second: 'Sec',\n i18n_z_ui_calendar_period: 'AM/PM',\n\n // Editor\n i18n_z_ui_editor_placeholder: 'Enter content...',\n i18n_z_ui_editor_required: 'This field is required',\n i18n_z_ui_editor_min_length: 'Minimum {{min}} characters',\n i18n_z_ui_editor_max_length: 'Maximum {{max}} characters',\n i18n_z_ui_editor_invalid: 'Invalid value',\n i18n_z_ui_editor_invalid_url: 'Enter a valid http or https URL.',\n i18n_z_ui_editor_link_invalid_url: 'Enter a valid http or https URL.',\n i18n_z_ui_editor_no_commands: 'No commands',\n i18n_z_ui_editor_shortcut_navigate: 'to navigate',\n i18n_z_ui_editor_shortcut_abort: 'to abort',\n i18n_z_ui_editor_shortcut_select: 'to select',\n i18n_z_ui_emoji_category_smileys: 'Smileys & People',\n i18n_z_ui_emoji_category_animals: 'Animals & Nature',\n i18n_z_ui_emoji_category_food: 'Food & Drink',\n i18n_z_ui_emoji_category_activities: 'Activities',\n i18n_z_ui_emoji_category_travel: 'Travel & Places',\n i18n_z_ui_emoji_category_objects: 'Objects',\n i18n_z_ui_emoji_category_symbols: 'Symbols',\n i18n_z_ui_emoji_category_flags: 'Flags',\n i18n_z_ui_emoji_search_placeholder: 'Search emoji...',\n i18n_z_ui_emoji_no_results: 'No matching emoji',\n i18n_z_ui_emoji_search_results: 'Search results',\n\n // Checkbox\n i18n_z_ui_checkbox_check_all: 'Check All',\n\n // Code\n i18n_z_ui_code_copied: 'Code copied!',\n\n // Input\n i18n_z_ui_input_saved_colors: 'Saved colors:',\n i18n_z_ui_input_add_color: '+ Add',\n i18n_z_ui_input_required: 'This field is required',\n i18n_z_ui_input_min_length: 'Minimum {{min}} characters',\n i18n_z_ui_input_max_length: 'Maximum {{max}} characters',\n i18n_z_ui_input_email: 'Invalid email format',\n i18n_z_ui_input_pattern: 'Invalid format',\n i18n_z_ui_input_min: 'Minimum value is {{min}}',\n i18n_z_ui_input_max: 'Maximum value is {{max}}',\n\n // Select\n i18n_z_ui_select_placeholder: 'Select...',\n i18n_z_ui_select_no_options: 'No options available',\n i18n_z_ui_select_no_results: 'No results found',\n i18n_z_ui_select_loading: 'Loading...',\n i18n_z_ui_select_select_all: 'Select all',\n i18n_z_ui_select_clear_all: 'Clear all',\n i18n_z_ui_select_selected: '{{count}} selected',\n i18n_z_ui_select_search: 'Search...',\n i18n_z_ui_select_required: 'Please select a value',\n\n // Modal\n i18n_z_ui_modal_close: 'Close',\n i18n_z_ui_modal_confirm: 'Confirm',\n i18n_z_ui_modal_cancel: 'Cancel',\n\n // Drawer\n i18n_z_ui_drawer_close: 'Close',\n\n // Upload\n i18n_z_ui_upload_drag_drop: 'Drag files here',\n i18n_z_ui_upload_drop_here: 'Drop files here',\n i18n_z_ui_upload_or: 'or',\n i18n_z_ui_upload_browse: 'browse',\n i18n_z_ui_upload_uploading: 'Uploading...',\n i18n_z_ui_upload_uploaded: 'Uploaded',\n i18n_z_ui_upload_failed: 'Upload failed',\n i18n_z_ui_upload_remove: 'Remove',\n i18n_z_ui_upload_max_size: 'File size exceeds {{size}} limit',\n i18n_z_ui_upload_max_files: 'Maximum {{count}} files allowed',\n i18n_z_ui_upload_invalid_type: 'File type not allowed',\n i18n_z_ui_upload_accepted: 'Accepted',\n i18n_z_ui_upload_required: 'Please select a file',\n\n // Pagination\n i18n_z_ui_pagination_first: 'First',\n i18n_z_ui_pagination_last: 'Last',\n i18n_z_ui_pagination_next: 'Next',\n i18n_z_ui_pagination_previous: 'Previous',\n i18n_z_ui_pagination_page: 'Page',\n i18n_z_ui_pagination_of: 'of',\n i18n_z_ui_pagination_total_label: 'Total {{total}} items',\n i18n_z_ui_pagination_per_page: '/ page',\n i18n_z_ui_pagination_go_to: 'Go to',\n\n // Common\n i18n_z_ui_common_select: 'Select value...',\n i18n_z_ui_common_loading: 'Loading...',\n i18n_z_ui_common_save: 'Save',\n i18n_z_ui_common_cancel: 'Cancel',\n i18n_z_ui_common_confirm: 'Confirm',\n i18n_z_ui_common_delete: 'Delete',\n i18n_z_ui_common_edit: 'Edit',\n i18n_z_ui_common_add: 'Add',\n i18n_z_ui_common_search: 'Search',\n i18n_z_ui_common_clear: 'Clear',\n i18n_z_ui_common_reset: 'Reset',\n i18n_z_ui_common_apply: 'Apply',\n i18n_z_ui_common_remove: 'Remove',\n i18n_z_ui_common_yes: 'Yes',\n i18n_z_ui_common_no: 'No',\n i18n_z_ui_common_ok: 'OK',\n i18n_z_ui_common_error: 'Error',\n i18n_z_ui_common_success: 'Success',\n i18n_z_ui_common_warning: 'Warning',\n i18n_z_ui_common_info: 'Info',\n\n // Toast\n i18n_z_ui_toast_close: 'Close',\n\n // Tags\n i18n_z_ui_tags_add: 'Add',\n i18n_z_ui_tags_placeholder: 'New tag',\n\n // Empty\n i18n_z_ui_empty_no_data: 'No data available',\n i18n_z_ui_empty_no_results: 'No results found',\n i18n_z_ui_empty_error_message: 'Something went wrong',\n i18n_z_ui_empty_error_description: 'An error occurred while loading data. Please try again later.',\n\n // Steps\n i18n_z_ui_steps_title: 'Steps',\n\n // Chat AI\n i18n_z_ui_chat_ai_title: 'AI Assistant',\n i18n_z_ui_chat_ai_subtitle: 'How can I help you today?',\n i18n_z_ui_chat_ai_placeholder: 'Type a message...',\n i18n_z_ui_chat_ai_send: 'Send message',\n i18n_z_ui_chat_ai_attach: 'Attach file',\n i18n_z_ui_chat_ai_close: 'Close chat',\n i18n_z_ui_chat_ai_toggle: 'Toggle chat',\n i18n_z_ui_chat_ai_typing: 'Typing...',\n i18n_z_ui_chat_ai_new_chat: 'Start new chat',\n i18n_z_ui_chat_ai_empty_title: 'Ask me anything',\n i18n_z_ui_chat_ai_empty_desc: 'Use quick prompts below or type your own message.',\n i18n_z_ui_chat_ai_suggestion_1: 'Create release notes from recent commits',\n i18n_z_ui_chat_ai_suggestion_2: 'Suggest test cases for a new feature',\n i18n_z_ui_chat_ai_suggestion_3: 'Generate a concise PR summary',\n\n // HTTP\n i18n_z_ui_http_network_offline: 'Network is offline',\n i18n_z_ui_http_error_default: 'An error occurred',\n i18n_z_ui_http_error_failed_to_fetch: 'Failed to connect to {{url}}',\n i18n_z_ui_http_error_400: 'Bad request',\n i18n_z_ui_http_error_401_permission: 'You do not have permission',\n i18n_z_ui_http_error_401_expired: 'Session expired',\n i18n_z_ui_http_error_403: 'Access forbidden',\n i18n_z_ui_http_error_404: 'Resource not found',\n i18n_z_ui_http_error_500: 'Internal server error',\n\n // Autocomplete\n i18n_z_ui_autocomplete_no_data: 'No data available',\n i18n_z_ui_autocomplete_no_results: 'No results found',\n\n // Gallery\n i18n_z_ui_gallery_search_placeholder: 'Search files...',\n i18n_z_ui_gallery_no_files: 'No files',\n i18n_z_ui_gallery_no_search_results: 'No files match your search',\n i18n_z_ui_gallery_preview: 'Preview',\n i18n_z_ui_gallery_download: 'Download',\n i18n_z_ui_gallery_remove: 'Remove',\n i18n_z_ui_gallery_delete: 'Delete',\n i18n_z_ui_gallery_rotate_left: 'Rotate left',\n i18n_z_ui_gallery_rotate_right: 'Rotate right',\n i18n_z_ui_gallery_pdf_preview: 'PDF preview',\n i18n_z_ui_gallery_loading_preview: 'Loading preview...',\n i18n_z_ui_gallery_preview_load_error: 'Unable to load preview',\n i18n_z_ui_gallery_preview_not_supported: 'Preview not supported for this file type',\n i18n_z_ui_gallery_video_not_supported: 'Your browser does not support the video tag.',\n i18n_z_ui_gallery_select_all: 'Select all',\n i18n_z_ui_gallery_selected: 'selected',\n i18n_z_ui_gallery_deselect_all: 'Deselect all',\n\n // QR Code\n i18n_z_ui_qrcode_download: 'Download QR Code',\n i18n_z_ui_qrcode_text_label: 'QR Code Text',\n i18n_z_ui_qrcode_text_placeholder: 'Enter text to encode...',\n i18n_z_ui_qrcode_error_correction: 'Error Correction Level',\n i18n_z_ui_qrcode_style: 'Style',\n i18n_z_ui_qrcode_dot_style: 'Dot Shape',\n i18n_z_ui_qrcode_eye_style: 'Eye Shape',\n i18n_z_ui_qrcode_frame: 'Frame Style',\n i18n_z_ui_qrcode_frame_text: 'Frame Text',\n i18n_z_ui_qrcode_color_preset: 'Color Theme',\n i18n_z_ui_qrcode_customization: 'QR Customization',\n\n // Show More\n i18n_z_ui_show_more_expand: 'Show more',\n i18n_z_ui_show_more_collapse: 'Show less',\n\n // Media Player\n i18n_z_ui_media_player_play: 'Play',\n i18n_z_ui_media_player_pause: 'Pause',\n i18n_z_ui_media_player_mute: 'Mute',\n i18n_z_ui_media_player_unmute: 'Unmute',\n i18n_z_ui_media_player_settings: 'Settings',\n i18n_z_ui_media_player_back: 'Back',\n i18n_z_ui_media_player_quality: 'Quality',\n i18n_z_ui_media_player_speed: 'Playback speed',\n i18n_z_ui_media_player_normal: 'Normal',\n i18n_z_ui_media_player_fullscreen: 'Fullscreen',\n i18n_z_ui_media_player_exit_fullscreen: 'Exit fullscreen',\n i18n_z_ui_media_player_theater_mode: 'Theater mode',\n i18n_z_ui_media_player_default_mode: 'Default mode',\n i18n_z_ui_media_player_miniplayer: 'Miniplayer',\n i18n_z_ui_media_player_subtitles: 'Subtitles/closed captions',\n\n // Command\n i18n_z_ui_command_search: 'Search command...',\n i18n_z_ui_command_no_results: 'No results found.',\n i18n_z_ui_drawer_resize: 'Resize drawer',\n};\n","export const Z_UI_VI_TRANSLATIONS: Record<string, string> = {\n // Table\n i18n_z_ui_table_filter_min: 'Tối thiểu',\n i18n_z_ui_table_filter_max: 'Tối đa',\n i18n_z_ui_table_filter_all: 'Tất cả',\n i18n_z_ui_table_filter_search: 'Tìm kiếm...',\n i18n_z_ui_table_filter_date: 'Chọn ngày',\n i18n_z_ui_table_filter_date_range: 'Chọn khoảng ngày',\n i18n_z_ui_table_filter_time: 'Chọn giờ',\n i18n_z_ui_table_no_data: 'Không có dữ liệu',\n i18n_z_ui_table_no_results: 'Không tìm thấy kết quả',\n i18n_z_ui_table_loading: 'Đang tải...',\n i18n_z_ui_table_search: 'Tìm kiếm...',\n i18n_z_ui_table_settings: 'Cài đặt',\n i18n_z_ui_table_columns: 'Cột',\n i18n_z_ui_table_show_all: 'Hiện tất cả',\n i18n_z_ui_table_hide_all: 'Ẩn tất cả',\n i18n_z_ui_table_move_left: 'Di chuyển trái',\n i18n_z_ui_table_move_right: 'Di chuyển phải',\n i18n_z_ui_table_pin_left: 'Ghim trái',\n i18n_z_ui_table_pin_right: 'Ghim phải',\n i18n_z_ui_table_pin_top: 'Ghim lên đầu',\n i18n_z_ui_table_pin_bottom: 'Ghim xuống cuối',\n i18n_z_ui_table_unpin: 'Bỏ ghim',\n i18n_z_ui_table_autosize_column: 'Tự căn cột này',\n i18n_z_ui_table_autosize_all_columns: 'Tự căn tất cả cột',\n i18n_z_ui_table_choose_columns: 'Chọn cột',\n i18n_z_ui_table_reset_columns: 'Đặt lại cột',\n i18n_z_ui_table_group_by_column: 'Nhóm theo cột này',\n i18n_z_ui_table_clear_grouping: 'Bỏ nhóm theo cột này',\n i18n_z_ui_table_group_empty: '(Trống)',\n i18n_z_ui_table_insert_row_above: 'Chèn dòng phía trên',\n i18n_z_ui_table_insert_row_below: 'Chèn dòng phía dưới',\n i18n_z_ui_table_delete_row: 'Xóa dòng',\n i18n_z_ui_table_delete_selected_rows: 'Xóa các dòng đã chọn',\n i18n_z_ui_table_copy_row: 'Sao chép dòng',\n i18n_z_ui_table_copy_cell: 'Sao chép',\n i18n_z_ui_table_copy_cell_with_headers: 'Sao chép kèm tiêu đề',\n i18n_z_ui_table_paste_row_below: 'Dán dòng phía dưới',\n i18n_z_ui_table_move_row_up: 'Di chuyển dòng lên',\n i18n_z_ui_table_move_row_down: 'Di chuyển dòng xuống',\n i18n_z_ui_table_show_hide_columns: 'Hiện/Ẩn cột',\n i18n_z_ui_table_configure_table: 'Tuỳ chỉnh',\n i18n_z_ui_table_sort: 'Sắp xếp',\n i18n_z_ui_table_sort_asc: 'Sắp xếp tăng dần',\n i18n_z_ui_table_sort_desc: 'Sắp xếp giảm dần',\n i18n_z_ui_table_sort_asc_short: 'Tăng dần',\n i18n_z_ui_table_sort_desc_short: 'Giảm dần',\n i18n_z_ui_table_sort_az: 'A-Z',\n i18n_z_ui_table_sort_za: 'Z-A',\n i18n_z_ui_table_clear_sort: 'Bỏ sắp xếp',\n i18n_z_ui_table_filter: 'Lọc',\n i18n_z_ui_table_filter_value: 'Giá trị',\n i18n_z_ui_table_filter_operator_contains: 'Có chứa',\n i18n_z_ui_table_filter_operator_not_contains: 'Không chứa',\n i18n_z_ui_table_filter_operator_starts_with: 'Bắt đầu bằng',\n i18n_z_ui_table_filter_operator_ends_with: 'Kết thúc bằng',\n i18n_z_ui_table_filter_operator_equals: 'Bằng',\n i18n_z_ui_table_filter_operator_not_equals: 'Không bằng',\n i18n_z_ui_table_filter_operator_greater_than: 'Lớn hơn',\n i18n_z_ui_table_filter_operator_greater_than_or_equal: 'Lớn hơn hoặc bằng',\n i18n_z_ui_table_filter_operator_less_than: 'Nhỏ hơn',\n i18n_z_ui_table_filter_operator_less_than_or_equal: 'Nhỏ hơn hoặc bằng',\n i18n_z_ui_table_filter_operator_empty: 'Đang trống',\n i18n_z_ui_table_filter_operator_not_empty: 'Không trống',\n i18n_z_ui_table_filter_add_condition: 'Thêm điều kiện',\n i18n_z_ui_table_filter_add: 'Thêm',\n i18n_z_ui_table_filter_and: 'VÀ',\n i18n_z_ui_table_filter_no_value: 'Không cần giá trị',\n i18n_z_ui_table_filter_empty_conditions: 'Chưa có bộ lọc',\n i18n_z_ui_table_filter_select_condition: 'Chọn điều kiện',\n i18n_z_ui_table_filter_remove: 'Xóa bộ lọc',\n i18n_z_ui_table_show_more: 'Xem thêm + {{count}}',\n i18n_z_ui_table_show_less: 'Thu gọn',\n i18n_z_ui_table_apply: 'Áp dụng',\n i18n_z_ui_table_reset: 'Đặt lại',\n i18n_z_ui_table_clear_filter: 'Xóa bộ lọc',\n i18n_z_ui_table_rows_per_page: 'Số dòng mỗi trang',\n i18n_z_ui_table_total_rows: '{{total}} tổng số dòng',\n i18n_z_ui_table_of: 'của',\n i18n_z_ui_table_selected: 'đã chọn',\n i18n_z_ui_table_clear_selection: 'Bỏ chọn',\n i18n_z_ui_table_export_excel: 'Xuất Excel',\n i18n_z_ui_table_expand_all: 'Mở rộng tất cả',\n i18n_z_ui_table_collapse_all: 'Thu gọn tất cả',\n i18n_z_ui_table_settings_title: 'Cài đặt bảng',\n i18n_z_ui_table_display_settings: 'Cài đặt hiển thị',\n i18n_z_ui_table_display_settings_desc: 'Tùy chỉnh giao diện bảng',\n i18n_z_ui_table_horizontal_border: 'Viền ngang',\n i18n_z_ui_table_vertical_border: 'Viền dọc',\n i18n_z_ui_table_header_footer_shadow: 'Đổ bóng Header/Footer',\n i18n_z_ui_table_column_settings: 'Cài đặt cột',\n i18n_z_ui_table_column_settings_desc: 'Bật/tắt hiển thị, kéo thả để sắp xếp, và ghim cột',\n i18n_z_ui_table_pinned_columns: 'Cột đã ghim',\n i18n_z_ui_table_left: 'TRÁI',\n i18n_z_ui_table_right: 'PHẢI',\n\n // Menu\n i18n_z_ui_menu_navigation: 'Điều hướng',\n i18n_z_ui_menu_expand_sidebar: 'Mở rộng menu',\n i18n_z_ui_menu_collapse_sidebar: 'Thu gọn menu',\n\n // Kanban\n i18n_z_ui_kanban_board_title: 'Đội Hiệu Suất Cao',\n i18n_z_ui_kanban_board_subtitle: 'Bảng sprint với workflow kéo thả',\n i18n_z_ui_kanban_search_placeholder: 'Tìm kiếm công việc...',\n i18n_z_ui_kanban_drag_disabled_while_search: 'Tạm tắt kéo thả khi đang tìm kiếm',\n i18n_z_ui_kanban_drop_here: 'Thả công việc vào đây',\n i18n_z_ui_kanban_no_matches: 'Không có công việc khớp với tìm kiếm',\n i18n_z_ui_kanban_done: 'Hoàn thành',\n i18n_z_ui_kanban_editor_title: 'Chỉnh sửa công việc',\n i18n_z_ui_kanban_title: 'Tiêu đề',\n i18n_z_ui_kanban_title_placeholder: 'Nhập tiêu đề ngắn gọn cho công việc',\n i18n_z_ui_kanban_description: 'Mô tả',\n i18n_z_ui_kanban_description_placeholder: 'Thêm chi tiết triển khai, ràng buộc và ghi chú...',\n i18n_z_ui_kanban_checklist: 'Checklist',\n i18n_z_ui_kanban_no_checklist_items: 'Chưa có mục checklist',\n i18n_z_ui_kanban_checklist_add_placeholder: 'Thêm mục checklist',\n i18n_z_ui_kanban_status: 'Trạng thái',\n i18n_z_ui_kanban_status_placeholder: 'Chọn trạng thái',\n i18n_z_ui_kanban_priority: 'Mức độ ưu tiên',\n i18n_z_ui_kanban_priority_placeholder: 'Chọn mức ưu tiên',\n i18n_z_ui_kanban_assignees: 'Người phụ trách',\n i18n_z_ui_kanban_assignees_placeholder: 'Tên cách nhau bởi dấu phẩy',\n i18n_z_ui_kanban_assignees_select_placeholder: 'Chọn hoặc nhập người phụ trách',\n i18n_z_ui_kanban_start_date: 'Ngày bắt đầu',\n i18n_z_ui_kanban_end_date: 'Ngày kết thúc',\n i18n_z_ui_kanban_due_date: 'Hạn hoàn thành',\n i18n_z_ui_kanban_attachments: 'Tệp đính kèm',\n i18n_z_ui_kanban_attachments_note: 'Tải tài liệu, hình ảnh hoặc tài liệu tham chiếu',\n i18n_z_ui_kanban_activity: 'Hoạt động',\n i18n_z_ui_kanban_no_activity: 'Chưa có hoạt động',\n i18n_z_ui_kanban_add_comment: 'Thêm bình luận',\n i18n_z_ui_kanban_comment_placeholder: 'Viết cập nhật cho công việc này...',\n i18n_z_ui_kanban_comment_submit: 'Gửi cập nhật',\n i18n_z_ui_kanban_new_task_title: 'Công việc chưa đặt tên',\n i18n_z_ui_kanban_activity_you: 'Bạn',\n i18n_z_ui_kanban_priority_risk: 'Rủi ro',\n i18n_z_ui_kanban_priority_high: 'Cao',\n i18n_z_ui_kanban_priority_medium: 'Trung bình',\n i18n_z_ui_kanban_priority_low: 'Thấp',\n i18n_z_ui_kanban_column_todo: 'Cần làm',\n i18n_z_ui_kanban_column_in_progress: 'Đang làm',\n i18n_z_ui_kanban_column_review: 'Đang review',\n i18n_z_ui_kanban_column_done: 'Đã xong',\n\n // Calendar\n i18n_z_ui_calendar_today: 'Hôm nay',\n i18n_z_ui_calendar_yesterday: 'Hôm trước',\n i18n_z_ui_calendar_clear: 'Xóa',\n i18n_z_ui_calendar_ok: 'Đồng ý',\n i18n_z_ui_calendar_cancel: 'Hủy',\n i18n_z_ui_calendar_start_date: 'Từ ngày',\n i18n_z_ui_calendar_end_date: 'Đến ngày',\n i18n_z_ui_calendar_select_date: 'Chọn ngày',\n i18n_z_ui_calendar_select_time: 'Chọn giờ',\n i18n_z_ui_calendar_this_week: 'Tuần này',\n i18n_z_ui_calendar_last_week: 'Tuần trước',\n i18n_z_ui_calendar_this_month: 'Tháng này',\n i18n_z_ui_calendar_last_month: 'Tháng trước',\n i18n_z_ui_calendar_last_7_days: '7 ngày trước',\n i18n_z_ui_calendar_last_14_days: '14 ngày trước',\n i18n_z_ui_calendar_last_30_days: '30 ngày trước',\n i18n_z_ui_calendar_last_1_month: '1 tháng trước',\n i18n_z_ui_calendar_last_2_months: '2 tháng trước',\n i18n_z_ui_calendar_last_3_months: '3 tháng trước',\n i18n_z_ui_calendar_last_6_months: '6 tháng trước',\n i18n_z_ui_calendar_last_90_days: '90 ngày trước',\n i18n_z_ui_calendar_custom: 'Tùy chỉnh',\n i18n_z_ui_calendar_this_year: 'Năm nay',\n i18n_z_ui_calendar_last_year: 'Năm trước',\n i18n_z_ui_calendar_this_quarter: 'Quý này',\n i18n_z_ui_calendar_now: 'Bây giờ',\n i18n_z_ui_calendar_required: 'Vui lòng chọn ngày',\n i18n_z_ui_calendar_start: 'Bắt đầu',\n i18n_z_ui_calendar_end: 'Kết thúc',\n i18n_z_ui_calendar_time: 'Giờ',\n i18n_z_ui_calendar_hour: 'Giờ',\n i18n_z_ui_calendar_minute: 'Phút',\n i18n_z_ui_calendar_second: 'Giây',\n i18n_z_ui_calendar_period: 'SA/CH',\n\n // Editor\n i18n_z_ui_editor_placeholder: 'Nhập nội dung...',\n i18n_z_ui_editor_required: 'Trường này là bắt buộc',\n i18n_z_ui_editor_min_length: 'Tối thiểu {{min}} ký tự',\n i18n_z_ui_editor_max_length: 'Tối đa {{max}} ký tự',\n i18n_z_ui_editor_invalid: 'Giá trị không hợp lệ',\n i18n_z_ui_editor_invalid_url: 'Vui lòng nhập URL http hoặc https hợp lệ.',\n i18n_z_ui_editor_link_invalid_url: 'Vui lòng nhập URL http hoặc https hợp lệ.',\n i18n_z_ui_editor_no_commands: 'Không có lệnh',\n i18n_z_ui_editor_shortcut_navigate: 'để di chuyển',\n i18n_z_ui_editor_shortcut_abort: 'để huỷ',\n i18n_z_ui_editor_shortcut_select: 'để chọn',\n i18n_z_ui_emoji_category_smileys: 'Mặt cười & Con người',\n i18n_z_ui_emoji_category_animals: 'Động vật & Thiên nhiên',\n i18n_z_ui_emoji_category_food: 'Đồ ăn & Thức uống',\n i18n_z_ui_emoji_category_activities: 'Hoạt động',\n i18n_z_ui_emoji_category_travel: 'Du lịch & Địa điểm',\n i18n_z_ui_emoji_category_objects: 'Đồ vật',\n i18n_z_ui_emoji_category_symbols: 'Ký hiệu',\n i18n_z_ui_emoji_category_flags: 'Cờ',\n i18n_z_ui_emoji_search_placeholder: 'Tìm emoji...',\n i18n_z_ui_emoji_no_results: 'Không có emoji phù hợp',\n i18n_z_ui_emoji_search_results: 'Kết quả tìm kiếm',\n\n // Checkbox\n i18n_z_ui_checkbox_check_all: 'Chọn tất cả',\n\n // Code\n i18n_z_ui_code_copied: 'Đã sao chép code!',\n\n // Input\n i18n_z_ui_input_saved_colors: 'Màu đã lưu:',\n i18n_z_ui_input_add_color: '+ Thêm',\n i18n_z_ui_input_required: 'Trường này là bắt buộc',\n i18n_z_ui_input_min_length: 'Tối thiểu {{min}} ký tự',\n i18n_z_ui_input_max_length: 'Tối đa {{max}} ký tự',\n i18n_z_ui_input_email: 'Định dạng email không hợp lệ',\n i18n_z_ui_input_pattern: 'Định dạng không hợp lệ',\n i18n_z_ui_input_min: 'Giá trị tối thiểu là {{min}}',\n i18n_z_ui_input_max: 'Giá trị tối đa là {{max}}',\n\n // Select\n i18n_z_ui_select_placeholder: 'Chọn...',\n i18n_z_ui_select_no_options: 'Không có tùy chọn',\n i18n_z_ui_select_no_results: 'Không tìm thấy kết quả',\n i18n_z_ui_select_loading: 'Đang tải...',\n i18n_z_ui_select_select_all: 'Chọn tất cả',\n i18n_z_ui_select_clear_all: 'Bỏ chọn tất cả',\n i18n_z_ui_select_selected: 'Đã chọn {{count}}',\n i18n_z_ui_select_search: 'Tìm kiếm...',\n i18n_z_ui_select_required: 'Vui lòng chọn giá trị',\n\n // Modal\n i18n_z_ui_modal_close: 'Đóng',\n i18n_z_ui_modal_confirm: 'Xác nhận',\n i18n_z_ui_modal_cancel: 'Hủy',\n\n // Drawer\n i18n_z_ui_drawer_close: 'Đóng',\n\n // Upload\n i18n_z_ui_upload_drag_drop: 'Kéo file vào đây',\n i18n_z_ui_upload_drop_here: 'Thả file vào đây',\n i18n_z_ui_upload_or: 'hoặc',\n i18n_z_ui_upload_browse: 'chọn file',\n i18n_z_ui_upload_uploading: 'Đang tải lên...',\n i18n_z_ui_upload_uploaded: 'Đã tải lên',\n i18n_z_ui_upload_failed: 'Tải lên thất bại',\n i18n_z_ui_upload_remove: 'Xóa',\n i18n_z_ui_upload_max_size: 'Kích thước file vượt quá {{size}}',\n i18n_z_ui_upload_max_files: 'Tối đa {{count}} file được phép',\n i18n_z_ui_upload_invalid_type: 'Loại file không được phép',\n i18n_z_ui_upload_accepted: 'Chấp nhận',\n i18n_z_ui_upload_required: 'Vui lòng chọn file',\n\n // Pagination\n i18n_z_ui_pagination_first: 'Đầu',\n i18n_z_ui_pagination_last: 'Cuối',\n i18n_z_ui_pagination_next: 'Tiếp',\n i18n_z_ui_pagination_previous: 'Trước',\n i18n_z_ui_pagination_page: 'Trang',\n i18n_z_ui_pagination_of: 'của',\n i18n_z_ui_pagination_total_label: 'Tổng {{total}} mục',\n i18n_z_ui_pagination_per_page: '/ trang',\n i18n_z_ui_pagination_go_to: 'Đến trang',\n\n // Common\n i18n_z_ui_common_select: 'Chọn giá trị...',\n i18n_z_ui_common_loading: 'Đang tải...',\n i18n_z_ui_common_save: 'Lưu',\n i18n_z_ui_common_cancel: 'Hủy',\n i18n_z_ui_common_confirm: 'Xác nhận',\n i18n_z_ui_common_delete: 'Xóa',\n i18n_z_ui_common_edit: 'Sửa',\n i18n_z_ui_common_add: 'Thêm',\n i18n_z_ui_common_search: 'Tìm kiếm',\n i18n_z_ui_common_clear: 'Xóa',\n i18n_z_ui_common_reset: 'Đặt lại',\n i18n_z_ui_common_apply: 'Áp dụng',\n i18n_z_ui_common_remove: 'Xóa',\n i18n_z_ui_common_yes: 'Có',\n i18n_z_ui_common_no: 'Không',\n i18n_z_ui_common_ok: 'OK',\n i18n_z_ui_common_error: 'Lỗi',\n i18n_z_ui_common_success: 'Thành công',\n i18n_z_ui_common_warning: 'Cảnh báo',\n i18n_z_ui_common_info: 'Thông tin',\n\n // Toast\n i18n_z_ui_toast_close: 'Đóng',\n\n // Tags\n i18n_z_ui_tags_add: 'Thêm',\n i18n_z_ui_tags_placeholder: 'Tag mới',\n\n // Empty\n i18n_z_ui_empty_no_data: 'Không có dữ liệu',\n i18n_z_ui_empty_no_results: 'Không tìm thấy kết quả',\n i18n_z_ui_empty_error_message: 'Đã xảy ra lỗi',\n i18n_z_ui_empty_error_description: 'Có lỗi xảy ra khi tải dữ liệu. Vui lòng thử lại sau.',\n\n // Steps\n i18n_z_ui_steps_title: 'Các bước',\n\n // Chat AI\n i18n_z_ui_chat_ai_title: 'Trợ lý AI',\n i18n_z_ui_chat_ai_subtitle: 'Tôi có thể giúp gì cho bạn?',\n i18n_z_ui_chat_ai_placeholder: 'Nhập tin nhắn...',\n i18n_z_ui_chat_ai_send: 'Gửi tin nhắn',\n i18n_z_ui_chat_ai_attach: 'Đính kèm file',\n i18n_z_ui_chat_ai_close: 'Đóng chat',\n i18n_z_ui_chat_ai_toggle: 'Bật/tắt chat',\n i18n_z_ui_chat_ai_typing: 'Đang nhập...',\n i18n_z_ui_chat_ai_new_chat: 'Bắt đầu chat mới',\n i18n_z_ui_chat_ai_empty_title: 'Hỏi tôi bất cứ điều gì',\n i18n_z_ui_chat_ai_empty_desc: 'Dùng gợi ý nhanh bên dưới hoặc nhập câu hỏi của bạn.',\n i18n_z_ui_chat_ai_suggestion_1: 'Tạo release notes từ commit gần đây',\n i18n_z_ui_chat_ai_suggestion_2: 'Gợi ý test case cho tính năng mới',\n i18n_z_ui_chat_ai_suggestion_3: 'Tạo tóm tắt PR ngắn gọn',\n\n // HTTP\n i18n_z_ui_http_network_offline: 'Không có kết nối mạng',\n i18n_z_ui_http_error_default: 'Đã xảy ra lỗi',\n i18n_z_ui_http_error_failed_to_fetch: 'Không thể kết nối đến {{url}}',\n i18n_z_ui_http_error_400: 'Yêu cầu không hợp lệ',\n i18n_z_ui_http_error_401_permission: 'Bạn không có quyền truy cập',\n i18n_z_ui_http_error_401_expired: 'Phiên đăng nhập đã hết hạn',\n i18n_z_ui_http_error_403: 'Truy cập bị từ chối',\n i18n_z_ui_http_error_404: 'Không tìm thấy tài nguyên',\n i18n_z_ui_http_error_500: 'Lỗi máy chủ nội bộ',\n\n // Autocomplete\n i18n_z_ui_autocomplete_no_data: 'Chưa có dữ liệu',\n i18n_z_ui_autocomplete_no_results: 'Không tìm thấy kết quả',\n\n // Gallery\n i18n_z_ui_gallery_search_placeholder: 'Tìm kiếm tệp...',\n i18n_z_ui_gallery_no_files: 'Không có tệp',\n i18n_z_ui_gallery_no_search_results: 'Không tìm thấy tệp phù hợp',\n i18n_z_ui_gallery_preview: 'Xem trước',\n i18n_z_ui_gallery_download: 'Tải xuống',\n i18n_z_ui_gallery_remove: 'Xóa',\n i18n_z_ui_gallery_delete: 'Xóa',\n i18n_z_ui_gallery_rotate_left: 'Xoay trái',\n i18n_z_ui_gallery_rotate_right: 'Xoay phải',\n i18n_z_ui_gallery_pdf_preview: 'Xem trước PDF',\n i18n_z_ui_gallery_loading_preview: 'Đang tải bản xem trước...',\n i18n_z_ui_gallery_preview_load_error: 'Không thể tải bản xem trước',\n i18n_z_ui_gallery_preview_not_supported: 'Không hỗ trợ xem trước loại tệp này',\n i18n_z_ui_gallery_video_not_supported: 'Trình duyệt của bạn không hỗ trợ thẻ video.',\n i18n_z_ui_gallery_select_all: 'Chọn tất cả',\n i18n_z_ui_gallery_selected: 'đã chọn',\n i18n_z_ui_gallery_deselect_all: 'Bỏ chọn tất cả',\n\n // QR Code\n i18n_z_ui_qrcode_download: 'Tải QR Code',\n i18n_z_ui_qrcode_text_label: 'Nội dung QR Code',\n i18n_z_ui_qrcode_text_placeholder: 'Nhập nội dung mã hóa...',\n i18n_z_ui_qrcode_error_correction: 'Mức sửa lỗi',\n i18n_z_ui_qrcode_style: 'Định dạng',\n i18n_z_ui_qrcode_dot_style: 'Hình hoa văn',\n i18n_z_ui_qrcode_eye_style: 'Hình mắt QR',\n i18n_z_ui_qrcode_frame: 'Kiểu khung',\n i18n_z_ui_qrcode_frame_text: 'Chữ trên khung',\n i18n_z_ui_qrcode_color_preset: 'Chủ đề màu sắc',\n i18n_z_ui_qrcode_customization: 'Tùy biến QR Code',\n\n // Show More\n i18n_z_ui_show_more_expand: 'Xem thêm',\n i18n_z_ui_show_more_collapse: 'Thu gọn',\n\n // Media Player\n i18n_z_ui_media_player_play: 'Phát',\n i18n_z_ui_media_player_pause: 'Tạm dừng',\n i18n_z_ui_media_player_mute: 'Tắt tiếng',\n i18n_z_ui_media_player_unmute: 'Bật tiếng',\n i18n_z_ui_media_player_settings: 'Cài đặt',\n i18n_z_ui_media_player_back: 'Quay lại',\n i18n_z_ui_media_player_quality: 'Chất lượng',\n i18n_z_ui_media_player_speed: 'Tốc độ phát',\n i18n_z_ui_media_player_normal: 'Bình thường',\n i18n_z_ui_media_player_fullscreen: 'Toàn màn hình',\n i18n_z_ui_media_player_exit_fullscreen: 'Thoát toàn màn hình',\n i18n_z_ui_media_player_theater_mode: 'Chế độ rạp chiếu phim',\n i18n_z_ui_media_player_default_mode: 'Chế độ mặc định',\n i18n_z_ui_media_player_miniplayer: 'Trình phát thu nhỏ',\n i18n_z_ui_media_player_subtitles: 'Phụ đề/thuyết minh',\n\n // Command\n i18n_z_ui_command_search: 'Tìm kiếm lệnh...',\n i18n_z_ui_command_no_results: 'Không tìm thấy kết quả.',\n i18n_z_ui_drawer_resize: 'Điều chỉnh kích thước drawer',\n};\n","/**\n * Z-UI Internationalization\n *\n * This module provides default translations for all Z-UI components.\n * Users can override any translation by providing their own values.\n *\n * Key format: i18n_z_ui_{component}_{key}\n * Example: i18n_z_ui_table_noData\n */\n\nimport { Z_UI_EN_TRANSLATIONS } from './en';\nimport { type ZUILanguage, type ZUITranslations, type ZUITranslationSet } from './types';\nimport { Z_UI_VI_TRANSLATIONS } from './vi';\n\nexport const Z_UI_TRANSLATIONS: ZUITranslationSet = {\n en: Z_UI_EN_TRANSLATIONS,\n vi: Z_UI_VI_TRANSLATIONS,\n};\n\nexport function getZUITranslations(lang: ZUILanguage): ZUITranslations {\n return Z_UI_TRANSLATIONS[lang] ?? Z_UI_TRANSLATIONS['en'];\n}\n\nexport function mergeTranslations(lang: ZUILanguage, customTranslations?: ZUITranslations): ZUITranslations {\n const defaults = getZUITranslations(lang);\n if (!customTranslations) {\n return defaults;\n }\n return { ...defaults, ...customTranslations };\n}\n\nexport function getZUITranslationKeys(): string[] {\n return Object.keys(Z_UI_EN_TRANSLATIONS);\n}\n","// Types\nexport * from './types';\n\n// Translations\nexport { Z_UI_EN_TRANSLATIONS } from './en';\nexport { Z_UI_VI_TRANSLATIONS } from './vi';\n\n// Functions and constants\nexport { Z_UI_TRANSLATIONS, getZUITranslations, mergeTranslations, getZUITranslationKeys } from './i18n';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}