editor-render-v2
Version:
编辑器渲染器
140 lines (139 loc) • 2.91 kB
TypeScript
import { fabric } from 'fabric';
export interface IGradientOptions extends fabric.IGradientOptions {
gradientUnits?: string;
source?: string;
repeat?: string;
crossOrigin?: string;
patternTransform?: null;
}
export interface IInitFabricObj {
angle?: number;
scaleX?: number;
scaleY?: number;
id?: string | number;
left?: number;
top?: number;
width?: number;
height?: number;
name?: string;
fill?: string | fabric.IPatternOptions | IGradientOptions;
type?: string;
opacity?: number;
objects?: IInitFabricObj[];
shadow?: fabric.IShadowOptions;
backgroundColor?: string;
version?: string;
stroke?: string | fabric.IGradientOptions;
strokeWidth?: number;
radius?: number;
originX?: string;
originY?: string;
strokeMiterLimit?: number;
strokeDashArray?: number[];
strokeLineJoin?: string;
strokeLineCap?: string;
strokeUniform?: boolean;
strokeDashOffset?: number;
src?: string;
centeredRotation?: boolean;
centeredScaling?: boolean;
fontFamily?: string;
cropY?: number;
cropX?: number;
crossOrigin?: string;
clipPath?: fabric.Rect | IInitFabricObj;
rx?: number;
ry?: number;
cornerRadiusTL?: number;
cornerRadiusTR?: number;
cornerRadiusBL?: number;
cornerRadiusBR?: number;
patch9Image?: {
src: string;
tp: number;
lp: number;
bp: number;
rp: number;
dom?: HTMLImageElement;
};
perPixelTargetFind?: boolean;
}
export interface ICanvasObject extends fabric.Object {
id?: string | number;
thumb?: string;
version?: string;
}
export interface IJsonData {
background?: string;
objects?: IInitFabricObj[];
version?: string;
width?: number;
height?: number;
thumb?: string;
}
export interface IKeyEvent {
/**
* Arrow key
* @type {boolean}
*/
move?: boolean;
/**
* Ctrl + A
* @type {boolean}
*/
all?: boolean;
/**
* Ctrl + C
* @type {boolean}
*/
copy?: boolean;
/**
* Ctrl + P
* @type {boolean}
*/
paste?: boolean;
/**
* Escape
* @type {boolean}
*/
esc?: boolean;
/**
* Delete or Backspace
* @type {boolean}
*/
del?: boolean;
/**
* When have copied object, whether should copy object option on clipboard
* @type {boolean}
*/
clipboard?: boolean;
/**
* Ctrl + Z, Ctrl + Y
* @type {boolean}
*/
transaction?: boolean;
/**
* Plus, Minus
*
* @type {boolean}
*/
zoom?: boolean;
/**
* Ctrl + X
*
* @type {boolean}
*/
cut?: boolean;
/**
* Ctrl + G
*
* @type {boolean}
*/
group?: boolean;
/**
* Ctrl + shift + G
*
* @type {boolean}
*/
unGroup?: boolean;
}