refactor(types): 抽离元素公共interface

This commit is contained in:
wcq 2021-04-09 16:14:03 +08:00
parent 6283f61417
commit 5be97ebdc2

View File

@ -22,8 +22,7 @@ export interface PPTElementOutline {
color?: string; color?: string;
} }
export interface PPTTextElement { interface PPTBaseElement {
type: 'text';
id: string; id: string;
left: number; left: number;
top: number; top: number;
@ -31,6 +30,10 @@ export interface PPTTextElement {
groupId?: string; groupId?: string;
width: number; width: number;
height: number; height: number;
}
export interface PPTTextElement extends PPTBaseElement{
type: 'text';
content: string; content: string;
rotate?: number; rotate?: number;
outline?: PPTElementOutline; outline?: PPTElementOutline;
@ -58,15 +61,8 @@ export interface ImageElementClip {
range: [[number, number], [number, number]]; range: [[number, number], [number, number]];
shape: string; shape: string;
} }
export interface PPTImageElement { export interface PPTImageElement extends PPTBaseElement{
type: 'image'; type: 'image';
id: string;
left: number;
top: number;
lock?: boolean;
groupId?: string;
width: number;
height: number;
fixedRatio: boolean; fixedRatio: boolean;
src: string; src: string;
rotate?: number; rotate?: number;
@ -82,15 +78,8 @@ export interface ShapeGradient {
color: [string, string]; color: [string, string];
rotate: number; rotate: number;
} }
export interface PPTShapeElement { export interface PPTShapeElement extends PPTBaseElement{
type: 'shape'; type: 'shape';
id: string;
left: number;
top: number;
lock?: boolean;
groupId?: string;
width: number;
height: number;
viewBox: number; viewBox: number;
path: string; path: string;
fixedRatio: boolean; fixedRatio: boolean;
@ -103,16 +92,10 @@ export interface PPTShapeElement {
shadow?: PPTElementShadow; shadow?: PPTElementShadow;
} }
export interface PPTLineElement { export interface PPTLineElement extends Omit<PPTBaseElement, 'height'>{
type: 'line'; type: 'line';
id: string;
left: number;
top: number;
lock?: boolean;
groupId?: string;
start: [number, number]; start: [number, number];
end: [number, number]; end: [number, number];
width: number;
style: string; style: string;
color: string; color: string;
points: [string, string]; points: [string, string];
@ -126,15 +109,8 @@ export interface ChartData {
labels: string[]; labels: string[];
series: number[][]; series: number[][];
} }
export interface PPTChartElement { export interface PPTChartElement extends PPTBaseElement{
type: 'chart'; type: 'chart';
id: string;
left: number;
top: number;
lock?: boolean;
groupId?: string;
width: number;
height: number;
fill?: string; fill?: string;
chartType: ChartType; chartType: ChartType;
data: ChartData; data: ChartData;
@ -169,15 +145,8 @@ export interface TableTheme {
colHeader: boolean; colHeader: boolean;
colFooter: boolean; colFooter: boolean;
} }
export interface PPTTableElement { export interface PPTTableElement extends PPTBaseElement{
type: 'table'; type: 'table';
id: string;
left: number;
top: number;
lock?: boolean;
groupId?: string;
width: number;
height: number;
outline: PPTElementOutline; outline: PPTElementOutline;
theme?: TableTheme; theme?: TableTheme;
colWidths: number[]; colWidths: number[];