mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
45 lines
1.7 KiB
TypeScript
45 lines
1.7 KiB
TypeScript
export interface Style {
|
|
textColor?: string|undefined; // this can be string, undefined or an absent key.
|
|
fillColor?: string|undefined;
|
|
fontBold?: boolean|undefined;
|
|
fontUnderline?: boolean|undefined;
|
|
fontItalic?: boolean|undefined;
|
|
fontStrikethrough?: boolean|undefined;
|
|
}
|
|
|
|
export interface HeaderStyle {
|
|
headerTextColor?: string | undefined; // this can be string, undefined or an absent key.
|
|
headerFillColor?: string | undefined;
|
|
headerFontBold?: boolean | undefined;
|
|
headerFontUnderline?: boolean | undefined;
|
|
headerFontItalic?: boolean | undefined;
|
|
headerFontStrikethrough?: boolean | undefined;
|
|
}
|
|
|
|
export class CombinedStyle implements Style {
|
|
public readonly textColor?: string;
|
|
public readonly fillColor?: string;
|
|
public readonly fontBold?: boolean;
|
|
public readonly fontUnderline?: boolean;
|
|
public readonly fontItalic?: boolean;
|
|
public readonly fontStrikethrough?: boolean;
|
|
constructor(rules: (Style|undefined|null)[], flags: any[]) {
|
|
for (let i = 0; i < rules.length; i++) {
|
|
if (flags[i]) {
|
|
const textColor = rules[i]?.textColor;
|
|
const fillColor = rules[i]?.fillColor;
|
|
const fontBold = rules[i]?.fontBold;
|
|
const fontUnderline = rules[i]?.fontUnderline;
|
|
const fontItalic = rules[i]?.fontItalic;
|
|
const fontStrikethrough = rules[i]?.fontStrikethrough;
|
|
this.textColor = textColor || this.textColor;
|
|
this.fillColor = fillColor || this.fillColor;
|
|
this.fontBold = fontBold || this.fontBold;
|
|
this.fontUnderline = fontUnderline || this.fontUnderline;
|
|
this.fontItalic = fontItalic || this.fontItalic;
|
|
this.fontStrikethrough = fontStrikethrough || this.fontStrikethrough;
|
|
}
|
|
}
|
|
}
|
|
}
|