import { OnInit } from '@angular/core'; import { MatDialogRef } from '@angular/material/dialog'; import { FunctionService, ThemeService } from 'vhobjects-service'; import * as i0 from "@angular/core"; export declare class ColorContrastComponent implements OnInit { data: any; private dialogRef; private functionService; themeService: ThemeService; /** Danh sách màu để chọn */ colorList: any[]; /** Loại màu chủ đạo */ mainColorType: 'text_or_icon_color' | 'bg_color'; /** Danh sách màu gợi ý */ suggestedColors: any[]; fgHex: string; fgRgb: string; fgLightness: number; fgOriginColor: string; bgHex: string; bgRgb: string; bgLightness: number; bgOriginColor: string; /** Danh sách cấp độ theo tiêu chuẩn WCAG và có giải thích cho từng cấp độ */ levelsWCAG: { key: string; tooltip: string; }[]; constructor(data: any, dialogRef: MatDialogRef, functionService: FunctionService, themeService: ThemeService); ngOnInit(): void; /** Lấy ra danh sách màu gợi ý */ getSuggestedColors(): { hex: any; contrast: number; passes: any; note: any; }[]; /** * Khởi tạo giá trị màu ban đầu của vật thể từ dữ liệu dialog * @param type Màu nền hoặc màu phụ (Màu chữ hoặc màu biểu tượng) * @param value Giá trị màu hex lấy từ data dialog */ initColorFromDataDialog(type: 'fg' | 'bg', value: any): void; /** * Set màu cho `` chọn màu * @param type Màu nền hoặc màu phụ (Màu chữ hoặc màu biểu tượng) */ getColorName(type: 'fg' | 'bg'): string; /** * Cập nhật màu mã `hex` khi chỉnh sửa ô nhập * @param type Màu nền hoặc màu phụ (Màu chữ hoặc màu biểu tượng) */ onHexChange(type: 'fg' | 'bg'): void; /** * Cập nhật màu dạng `rgb` khi chỉnh sửa ô nhập * @param type Màu nền hoặc màu phụ (Màu chữ hoặc màu biểu tượng) */ onRgbChange(type: 'fg' | 'bg'): void; /** * Cập nhật màu dạng `hex` khi chọn màu ở ô `picker color` * @param type Màu nền hoặc màu phụ (Màu chữ hoặc màu biểu tượng) */ onPickerChange(type: 'fg' | 'bg'): void; onClickSuggestedColors(item: any, type: 'fg' | 'bg'): void; /** * Cập nhật màu * @param type Màu nền hoặc màu phụ (Màu chữ hoặc màu biểu tượng) * @param found Item được tìm kiếm trong danh sách màu `colorList` */ updateColor(type: 'fg' | 'bg'): void; /** * Hàm cho thanh điều chỉnh độ sáng * @param event % độ sáng khi nắm kéo thanh điều chỉnh * @param type Màu nền hoặc màu phụ (Màu chữ hoặc màu biểu tượng) */ setLightness(event: any, type: 'fg' | 'bg'): void; /** * Chuyển đổi màu mã `hex` sang dạng `rgb`: `string` * @param hex Chuỗi màu dạng `hex` */ hexToRgbStr(hex: string): string; /** * Chuyển đổi màu dạng `rgb` sang mã `hex`: `string` * @param rgb Chuỗi màu dạng `rgb` */ rgbStrToHex(rgb: string): string; /** * Chuyển đổi từ % độ sáng sang màu dạng `hex` (Từ 0-100) * @param hex Chuỗi màu dạng `hex` */ adjustColorLightness(hex: string, lightness: number): string; /** * Lấy ra % độ sáng * @param hex Chuỗi màu dạng `hex` */ getLightness(hex: string): number; /** * Chuyển đổi màu mã `hex` sang dạng `rgb`: `{r, g, b}` * @param hex Chuỗi màu dạng `hex` */ hexToRgb(hex: string): { r: number; g: number; b: number; }; /** * Chuyển đổi `RGB` sang `HEX` * @param r Màu đỏ * @param g Màu xanh lá * @param b Màu xanh dương */ rgbToHex(r: number, g: number, b: number): string; /** * Chuyển đổi `RGB` sang `HSL` * @param r Màu đỏ * @param g Màu xanh lá * @param b Màu xanh dương */ rgbToHsl(r: number, g: number, b: number): { h: number; s: number; l: number; }; /** * Chuyển đổi `HSL` sang `RGB` * @param h Sắc độ * @param s Độ bão hoà * @param l Độ sáng */ hslToRgb(h: number, s: number, l: number): { r: number; g: number; b: number; }; hueDistanceDeg(aDeg: number, bDeg: number): number; /** * Tính tương phản theo tiêu chuẩn `WCAG` * @param hex Chuỗi màu dạng `hex` */ getLuminance(hex: string): number; /** Lấy ra tỷ lệ tương phản của 2 màu */ getContrastRatio(hex1?: any, hex2?: any): number; /** Lấy kết quả đạt hay không đạt */ getWCAGResults(hex1?: any, hex2?: any): { AA_small: boolean; AA_large: boolean; AAA_small: boolean; AAA_large: boolean; }; /** * - Tìm màu có cùng hue (deg) và sat, bằng cách sampling lightness từ 0..1 * - Trả về hex có contrast >= targetContrast, ưu tiên lightness gần 0.5 (giữ "màu chính" tự nhiên) */ findColorByHueForContrast(mainHex: string, hueDeg: number, sat?: number, targetContrast?: number): { hex: string; contrast: number; l: number; } | null; /** * Gợi ý màu phụ: chỉ push khi contrast >= minContrast */ suggestForegroundsForBackgroundEnhanced(mainHex: string, count?: number, minContrast?: number, palette?: Array<{ name?: string; hex: string; }>): { hex: any; contrast: number; passes: any; note: any; }[]; /** * Hàm này để đóng ColorContrastComponent */ close(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }