141 lines
2.6 KiB
TypeScript
141 lines
2.6 KiB
TypeScript
import type { ShapePoolItem } from '@/configs/shapes';
|
|
import type { LinePoolItem } from '@/configs/lines';
|
|
import type {
|
|
ImageClipDataRange,
|
|
PPTElementOutline,
|
|
PPTElementShadow,
|
|
Gradient,
|
|
} from '@openmaic/dsl';
|
|
|
|
export enum ElementOrderCommands {
|
|
UP = 'up',
|
|
DOWN = 'down',
|
|
TOP = 'top',
|
|
BOTTOM = 'bottom',
|
|
}
|
|
|
|
export enum ElementAlignCommands {
|
|
TOP = 'top',
|
|
BOTTOM = 'bottom',
|
|
LEFT = 'left',
|
|
RIGHT = 'right',
|
|
VERTICAL = 'vertical',
|
|
HORIZONTAL = 'horizontal',
|
|
CENTER = 'center',
|
|
}
|
|
|
|
export const enum OperateBorderLines {
|
|
T = 'top',
|
|
B = 'bottom',
|
|
L = 'left',
|
|
R = 'right',
|
|
}
|
|
|
|
export const enum OperateResizeHandlers {
|
|
LEFT_TOP = 'left-top',
|
|
TOP = 'top',
|
|
RIGHT_TOP = 'right-top',
|
|
LEFT = 'left',
|
|
RIGHT = 'right',
|
|
LEFT_BOTTOM = 'left-bottom',
|
|
BOTTOM = 'bottom',
|
|
RIGHT_BOTTOM = 'right-bottom',
|
|
}
|
|
|
|
export const enum OperateLineHandlers {
|
|
START = 'start',
|
|
END = 'end',
|
|
C = 'ctrl',
|
|
C1 = 'ctrl1',
|
|
C2 = 'ctrl2',
|
|
}
|
|
|
|
export interface AlignmentLineAxis {
|
|
x: number;
|
|
y: number;
|
|
}
|
|
|
|
export interface AlignmentLineProps {
|
|
type: 'vertical' | 'horizontal';
|
|
axis: AlignmentLineAxis;
|
|
length: number;
|
|
}
|
|
|
|
export interface MultiSelectRange {
|
|
minX: number;
|
|
maxX: number;
|
|
minY: number;
|
|
maxY: number;
|
|
}
|
|
|
|
export interface ImageClipedEmitData {
|
|
range: ImageClipDataRange;
|
|
position: {
|
|
left: number;
|
|
top: number;
|
|
width: number;
|
|
height: number;
|
|
};
|
|
}
|
|
|
|
export interface CreateElementSelectionData {
|
|
start: [number, number];
|
|
end: [number, number];
|
|
}
|
|
|
|
export interface CreateCustomShapeData {
|
|
start: [number, number];
|
|
end: [number, number];
|
|
path: string;
|
|
viewBox: [number, number];
|
|
fill?: string;
|
|
outline?: PPTElementOutline;
|
|
}
|
|
|
|
export interface CreatingTextElement {
|
|
type: 'text';
|
|
vertical?: boolean;
|
|
}
|
|
export interface CreatingShapeElement {
|
|
type: 'shape';
|
|
data: ShapePoolItem;
|
|
}
|
|
export interface CreatingLineElement {
|
|
type: 'line';
|
|
data: LinePoolItem;
|
|
}
|
|
export type CreatingElement = CreatingTextElement | CreatingShapeElement | CreatingLineElement;
|
|
|
|
export type TextFormatPainterKeys =
|
|
| 'bold'
|
|
| 'em'
|
|
| 'underline'
|
|
| 'strikethrough'
|
|
| 'color'
|
|
| 'backcolor'
|
|
| 'fontsize'
|
|
| 'fontname'
|
|
| 'align';
|
|
|
|
export interface TextFormatPainter {
|
|
keep: boolean;
|
|
bold?: boolean;
|
|
em?: boolean;
|
|
underline?: boolean;
|
|
strikethrough?: boolean;
|
|
color?: string;
|
|
backcolor?: string;
|
|
fontsize?: string;
|
|
fontname?: string;
|
|
align?: 'left' | 'right' | 'center';
|
|
}
|
|
|
|
export interface ShapeFormatPainter {
|
|
keep: boolean;
|
|
fill?: string;
|
|
gradient?: Gradient;
|
|
outline?: PPTElementOutline;
|
|
opacity?: number;
|
|
shadow?: PPTElementShadow;
|
|
}
|