@visactor/vtable
Version:
canvas table width high performance
152 lines (151 loc) • 5.76 kB
TypeScript
import type { LineWidthsPropertyDefine } from '..';
import type { ColorPropertyDefine, ColorsPropertyDefine, LineClamp, LineDashsPropertyDefine, TextOverflow, UnderlinePropertyDefine, LineDashPropertyDefine, LineThroughPropertyDefine, PaddingsPropertyDefine, StylePropertyFunctionArg, CursorPropertyDefine, MarkedPropertyDefine, FontSizePropertyDefine, FontFamilyPropertyDefine, FontWeightPropertyDefine, FontVariantPropertyDefine, FontStylePropertyDefine, TextAlignType, TextBaselineType } from '../style-define';
import type { ThemeStyle } from '../theme';
export interface ColumnStyle {
padding?: PaddingsPropertyDefine;
bgColor?: ColorPropertyDefine;
textAlign?: TextAlignType;
textBaseline?: TextBaselineType;
color?: ColorPropertyDefine;
fontSize?: FontSizePropertyDefine;
fontFamily?: FontFamilyPropertyDefine;
fontWeight?: FontWeightPropertyDefine;
fontVariant?: FontVariantPropertyDefine;
fontStyle?: FontStylePropertyDefine;
textOverflow?: TextOverflow;
clone: () => ColumnStyle;
linkColor?: ColorPropertyDefine;
}
export type IHeaderStyle = ColumnStyle;
export type ISortheaderSyle = IHeaderStyle;
export interface IStyleOption {
bgColor?: ColorPropertyDefine;
padding?: PaddingsPropertyDefine;
textAlign?: TextAlignType;
textBaseline?: TextBaselineType;
color?: ColorPropertyDefine;
strokeColor?: ColorPropertyDefine;
fontSize?: FontSizePropertyDefine;
fontFamily?: FontFamilyPropertyDefine;
fontWeight?: FontWeightPropertyDefine;
fontVariant?: FontVariantPropertyDefine;
fontStyle?: FontStylePropertyDefine;
textOverflow?: TextOverflow;
borderColor?: ColorsPropertyDefine;
borderLineWidth?: LineWidthsPropertyDefine;
lineHeight?: number;
underline?: UnderlinePropertyDefine;
underlineColor?: ColorPropertyDefine;
underlineDash?: LineDashPropertyDefine;
underlineOffset?: number;
lineThrough?: LineThroughPropertyDefine;
lineThroughColor?: ColorPropertyDefine;
lineThroughDash?: LineDashPropertyDefine;
borderLineDash?: LineDashsPropertyDefine;
linkColor?: ColorPropertyDefine;
cursor?: CursorPropertyDefine;
textStick?: boolean | 'vertical' | 'horizontal';
textStickBaseOnAlign?: boolean;
marked?: MarkedPropertyDefine;
}
export declare const cellStyleKeys: string[];
export interface ITextStyleOption extends IStyleOption {
autoWrapText?: boolean;
lineClamp?: LineClamp;
}
export interface IImageStyleOption extends IStyleOption {
margin?: number;
}
export type ColumnStyleOption = IStyleOption | ITextStyleOption | IImageStyleOption | ProgressBarStyleOption | CheckboxStyleOption | ((styleArg: StylePropertyFunctionArg) => IStyleOption | ITextStyleOption | IImageStyleOption);
export type HeaderStyleOption = (IStyleOption & {
textStick?: boolean | 'vertical' | 'horizontal';
}) | ITextStyleOption | IImageStyleOption | ((styleArg: StylePropertyFunctionArg) => IStyleOption | ITextStyleOption | IImageStyleOption);
export type FullExtendStyle = HeaderStyleOption & ColumnStyleOption & ThemeStyle;
export interface ProgressBarStyleOption extends IStyleOption {
showBar?: boolean | ((args: StylePropertyFunctionArg) => boolean);
barColor?: ColorPropertyDefine;
barBgColor?: ColorPropertyDefine;
barHeight?: number | string;
barBottom?: number | string;
barPadding?: (number | string)[];
barPositiveColor?: ColorPropertyDefine;
barNegativeColor?: ColorPropertyDefine;
barAxisColor?: ColorPropertyDefine;
barRightToLeft?: boolean;
showBarMark?: boolean;
barMarkPositiveColor?: ColorPropertyDefine;
barMarkNegativeColor?: ColorPropertyDefine;
barMarkWidth?: number;
barMarkPosition?: 'right' | 'bottom';
barMarkInBar?: boolean;
}
export type CheckboxStyleOption = {
size?: number;
spaceBetweenTextAndIcon?: number;
checkboxStyle?: CheckboxStyle;
} & ITextStyleOption;
export type RadioStyleOption = {
size?: number;
spaceBetweenTextAndIcon?: number;
spaceBetweenRadio?: number;
radioStyle?: RadioStyle;
} & ITextStyleOption;
export type SwitchStyleOption = {
size?: number;
spaceBetweenTextAndCircle?: number;
switchStyle?: SwitchStyle;
} & ITextStyleOption;
export type ButtonStyleOption = {
buttonStyle?: ButtonStyle;
} & ITextStyleOption;
export type CheckboxStyle = {
size?: number;
spaceBetweenTextAndIcon?: number;
defaultFill?: string;
defaultStroke?: string;
disableFill?: string;
checkedFill?: string;
checkedStroke?: string;
disableCheckedFill?: string;
disableCheckedStroke?: string;
checkIconImage?: string;
indeterminateIconImage?: string;
};
export type RadioStyle = {
size?: number;
spaceBetweenTextAndIcon?: number;
spaceBetweenRadio?: number;
outerRadius?: number;
innerRadius?: number;
defaultFill?: string;
defaultStroke?: string;
disableFill?: string;
checkedFill?: string;
checkedStroke?: string;
disableCheckedFill?: string;
disableCheckedStroke?: string;
};
export type SwitchStyle = {
spaceBetweenTextAndCircle?: number;
circleRadius?: number;
boxWidth?: number;
boxHeight?: number;
checkedFill?: string;
uncheckedFill?: string;
disableCheckedFill?: string;
disableUncheckedFill?: string;
circleFill?: string;
};
export interface ButtonStyle {
buttonColor?: string;
buttonBorderColor?: string;
buttonLineWidth?: number;
buttonBorderRadius?: number;
buttonHoverColor?: string;
buttonHoverBorderColor?: string;
buttonTextHoverColor?: string;
buttonDisableColor?: string;
buttonDisableBorderColor?: string;
buttonTextDisableColor?: string;
buttonPadding?: number;
}