
/**
 * 图层类型枚举
 */
export const LayerType = {
	EMPTY: "empty", // 空图层
	BITMAP: "bitmap", // 位图图层
	VECTOR: "vector", // 矢量图层
	TEXT: "text", // 文字图层
	GROUP: "group", // 组图层
	ADJUSTMENT: "adjustment", // 调整图层
	SMART_OBJECT: "smartObject", // 智能对象
	SHAPE: "shape", // 形状图层
	VIDEO: "video", // 视频图层 (预留)
	AUDIO: "audio", // 音频图层 (预留)
	FIXED: "fixed", // 固定图层 - 位于背景图层之上，普通图层之下
	BACKGROUND: "background", // 背景图层 - 位于固定图层之、普通图层之下
};


/**
 * 画布操作模式枚举：draw(绘画)、select(选择)、pan(拖拽)....
 */
export const OperationType = {
	// 编辑器模式
	DISABLED: "disabled", // 禁用

	SELECT: "select",// 选择工具模式
	PAN: "pan", // 拖拽模式
	DRAW: "draw", // 绘画模式
	ERASER: "eraser", // 橡皮擦模式

	AISELECT_ADD: "aiSelectAdd",// 智能框选添加模式
	AISELECT_REMOVE: "aiSelectRemove",// 智能框选删除模式
	AISELECT_DRAW: "aiSelectDraw",// 智能框选绘制模式
	AISELECT_ERASER: "aiSelectEraser",// 智能框选橡皮擦模式

	RECTANGLE: "rectangle",// 矩形工具模式
	LINE: "line",// 直线工具模式
	ARROW: "arrow",// 箭头工具模式
	ELLIPSE: "ellipse",// 椭圆工具模式
	TRIANGLE: "triangle",// 三角形工具模式
	STAR: "star",// 五角星工具模式

	TEXT: "text",// 文字工具模式
};

// 所有操作模式类型列表
export const OperationTypes = Object.values(OperationType);

/**
 * 混合模式枚举
 * 与 fabricjs 和 CSS3 的 globalCompositeOperation 对应
 */
export const BlendMode = {
	NORMAL: "source-over", // 正常模式
	DARKEN: "darken", // 变暗
	MULTIPLY: "multiply", // 正片叠底
	COLOR_BURN: "color-burn", // 颜色加深
	LIGHTEN: "lighten", // 变亮
	SCREEN: "screen", // 滤色
	COLOR_DODGE: "color-dodge", // 颜色减淡
	LIGHTER: "lighter", // 颜色减淡(添加)
	OVERLAY: "overlay", // 叠加
	SOFT_LIGHT: "soft-light", // 柔光
	HARD_LIGHT: "hard-light", // 强光
	DIFFERENCE: "difference", // 差值
	EXCLUSION: "exclusion", // 排除
	HUE: "hue", // 色相
	SATURATION: "saturation", // 饱和度
	COLOR: "color", // 颜色
	LUMINOSITY: "luminosity", // 明度

	DESTINATION_IN: "destination-in", // 目标内
	DESTINATION_OUT: "destination-out", // 目标外
};
