import { HsvaColor, RgbaColor } from './interface';
import BaseFoundation, { DefaultAdapter } from '../base/foundation';
export type ColorValue = {
hsva: HsvaColor;
rgba: RgbaColor;
hex: string;
};
export interface ColorPickerProps {
eyeDropper?: boolean;
defaultValue?: ColorValue;
value?: ColorValue;
onChange: (value: ColorValue) => void;
alpha: boolean;
width?: number;
height?: number;
defaultFormat: 'hex' | 'rgba' | 'hsva';
}
export interface ColorPickerState {
currentColor: ColorValue;
}
export interface ColorPickerAdapter
, S = Record> extends DefaultAdapter {
notifyChange: (value: ColorValue) => void;
}
declare class ColorPickerFoundation extends BaseFoundation, ColorPickerProps, ColorPickerState> {
constructor(adapter: ColorPickerAdapter);
static hsvaToRgba: ({ h, s, v, a }: HsvaColor) => RgbaColor;
static rgbaToHsva: ({ r, g, b, a }: RgbaColor) => HsvaColor;
static rgbaToHex: ({ r, g, b, a }: RgbaColor) => string;
static hsvaToHex: (hsva: HsvaColor) => string;
static hexToRgba: (hex: string) => RgbaColor;
static hexToHsva: (hex: string) => HsvaColor;
static hsvaToHslaString: (hsva: HsvaColor) => string;
static hsvaToHslString: (hsva: HsvaColor) => string;
static rgbaStringToHsva: (rgbaString: string) => HsvaColor;
static rgbaStringToRgba: (rgbaString: string) => RgbaColor;
handleChangeH: (currentColor: ColorValue, newH: number) => void;
handleChangeA: (currentColor: ColorValue, newAlpha: number) => void;
getCurrentColor: () => any;
handleChange: (color: HsvaColor | RgbaColor | string, format: 'hex' | 'rgba' | 'hsva') => void;
handleAlphaChangeByHandle: (newAlpha: {
a: number;
}) => void;
handleColorChangeByHandle: (newHue: {
h: number;
}) => void;
getHandlePositionByHSVA: (hsva: HsvaColor, { width, height }: {
width: number;
height: number;
}, handleSize: number) => {
x: number;
y: number;
};
getHandlePositionByMousePosition: (mousePosition: {
x: number;
y: number;
}, { width, height }: {
width: number;
height: number;
}, handleSize: number) => {
x: number;
y: number;
};
getAlphaHandlePositionByMousePosition: (mousePosition: number, width: number, handleSize: number) => number;
getColorHandlePositionByMousePosition: (mousePosition: number, width: number, handleSize: number) => number;
}
export default ColorPickerFoundation;