@leafer-ui/interface
Version:
@leafer-ui/interface
67 lines (59 loc) • 2.15 kB
text/typescript
import { IBlendMode, IDirection, ILeaferImage, IMatrixData, IPointData, IScaleFixed, ITaskItem } from '@leafer/interface'
import { IColorString } from './IStringType'
import { IStrokeAlign, IStrokeJoin, IStrokeCap, IImagePaintMode, IImageFilters } from './IType'
import { IPaintType } from './IType'
import { IStrokeComputedStyle } from '../ICommonAttr'
export type ILeafPaintColor = IColorString | CanvasGradient | CanvasPattern
export interface ILeafPaint {
type?: IPaintType
style?: ILeafPaintColor
strokeStyle?: IStrokeComputedStyle // 子描边样式选项
transform?: IMatrixData // 存在时表示pattern自身不能应用transform
blendMode?: IBlendMode
image?: ILeaferImage
loadId?: number
patternId?: string
patternTask?: ITaskItem
changeful?: boolean // 会频繁变化,不生成图案(有特殊性能优化,一般用于游戏精灵、动图场景)
sync?: boolean // 同步显示图片,不走任务列表生成图案
isTransparent?: boolean // 是否为透明色
data?: ILeafPaintPatternData
editing?: boolean // 标记编辑中
scaleFixed?: IScaleFixed // 平铺图片不跟随画布缩放
}
export interface ILeafPaintPatternData {
width?: number
height?: number
scaleX?: number
scaleY?: number
gap?: IPointData
opacity?: number
transform?: IMatrixData
filters?: IImageFilters
mode?: IImagePaintMode
repeat?: 'repeat' | 'repeat-x' | 'repeat-y'
}
export type ILeafFill = ILeafPaint
export interface ILeafStrokePaint extends ILeafPaint {
strokeAlign?: IStrokeAlign
strokeWidth?: number
strokeCap?: IStrokeCap
strokeJoin?: IStrokeJoin
dashPattern?: number[]
miterLimit?: number
}
export interface ILeafShadowEffect {
x?: number
y?: number
blur?: number
spread?: number
color?: IColorString
blendMode?: IBlendMode
box?: boolean
scaleFixed?: IScaleFixed
// 斜切、缩放、旋转阴影
skew?: IPointData
scale?: IPointData
rotation?: number
origin?: IDirection // 斜切、旋转原点方位,相对元素的box包围盒,默认为 bottom
}