feat:add tab particle
This commit is contained in:
@@ -513,7 +513,7 @@ export class Draw {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private _computeRowList(innerWidth: number, elementList: IElement[]) {
|
private _computeRowList(innerWidth: number, elementList: IElement[]) {
|
||||||
const { defaultSize, defaultRowMargin, scale, tdPadding } = this.options
|
const { defaultSize, defaultRowMargin, scale, tdPadding, defaultTabWidth } = this.options
|
||||||
const defaultBasicRowMarginHeight = this.getDefaultBasicRowMarginHeight()
|
const defaultBasicRowMarginHeight = this.getDefaultBasicRowMarginHeight()
|
||||||
const tdGap = tdPadding * 2
|
const tdGap = tdPadding * 2
|
||||||
const canvas = document.createElement('canvas')
|
const canvas = document.createElement('canvas')
|
||||||
@@ -668,6 +668,11 @@ export class Draw {
|
|||||||
element.width = elementWidth
|
element.width = elementWidth
|
||||||
metrics.width = elementWidth
|
metrics.width = elementWidth
|
||||||
metrics.height = height * scale
|
metrics.height = height * scale
|
||||||
|
} else if (element.type === ElementType.TAB) {
|
||||||
|
metrics.width = defaultTabWidth * scale
|
||||||
|
metrics.height = defaultSize * scale
|
||||||
|
metrics.boundingBoxDescent = 0
|
||||||
|
metrics.boundingBoxAscent = metrics.height
|
||||||
} else {
|
} else {
|
||||||
// 设置上下标真实字体尺寸
|
// 设置上下标真实字体尺寸
|
||||||
const size = element.size || this.options.defaultSize
|
const size = element.size || this.options.defaultSize
|
||||||
@@ -814,6 +819,8 @@ export class Draw {
|
|||||||
) {
|
) {
|
||||||
this.textParticle.complete()
|
this.textParticle.complete()
|
||||||
this.checkboxParticle.render(ctx, element, x, y + offsetY)
|
this.checkboxParticle.render(ctx, element, x, y + offsetY)
|
||||||
|
} else if (element.type === ElementType.TAB) {
|
||||||
|
this.textParticle.complete()
|
||||||
} else {
|
} else {
|
||||||
this.textParticle.record(ctx, element, x, y + offsetY)
|
this.textParticle.record(ctx, element, x, y + offsetY)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { ElementType } from '../..'
|
import { ElementType } from '../..'
|
||||||
import { NBSP, ZERO } from '../../dataset/constant/Common'
|
import { ZERO } from '../../dataset/constant/Common'
|
||||||
import { EDITOR_ELEMENT_COPY_ATTR } from '../../dataset/constant/Element'
|
import { EDITOR_ELEMENT_COPY_ATTR } from '../../dataset/constant/Element'
|
||||||
import { ElementStyleKey } from '../../dataset/enum/ElementStyle'
|
import { ElementStyleKey } from '../../dataset/enum/ElementStyle'
|
||||||
import { MouseEventButton } from '../../dataset/enum/Event'
|
import { MouseEventButton } from '../../dataset/enum/Event'
|
||||||
@@ -454,7 +454,10 @@ export class CanvasEvent {
|
|||||||
} else if (evt.key === KeyMap.ESC) {
|
} else if (evt.key === KeyMap.ESC) {
|
||||||
this.clearPainterStyle()
|
this.clearPainterStyle()
|
||||||
} else if (evt.key === KeyMap.TAB) {
|
} else if (evt.key === KeyMap.TAB) {
|
||||||
this.input(NBSP.repeat(4))
|
this.draw.insertElementList([{
|
||||||
|
type: ElementType.TAB,
|
||||||
|
value: ''
|
||||||
|
}])
|
||||||
evt.preventDefault()
|
evt.preventDefault()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,5 +9,6 @@ export enum ElementType {
|
|||||||
PAGE_BREAK = 'pageBreak',
|
PAGE_BREAK = 'pageBreak',
|
||||||
CONTROL = 'control',
|
CONTROL = 'control',
|
||||||
CHECKBOX = 'checkbox',
|
CHECKBOX = 'checkbox',
|
||||||
LATEX = 'latex'
|
LATEX = 'latex',
|
||||||
|
TAB = 'tab'
|
||||||
}
|
}
|
||||||
@@ -55,6 +55,7 @@ export default class Editor {
|
|||||||
defaultSize: 16,
|
defaultSize: 16,
|
||||||
defaultRowMargin: 1,
|
defaultRowMargin: 1,
|
||||||
defaultBasicRowMarginHeight: 8,
|
defaultBasicRowMarginHeight: 8,
|
||||||
|
defaultTabWidth: 32,
|
||||||
width: 794,
|
width: 794,
|
||||||
height: 1123,
|
height: 1123,
|
||||||
scale: 1,
|
scale: 1,
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ export interface IEditorOption {
|
|||||||
defaultSize?: number;
|
defaultSize?: number;
|
||||||
defaultBasicRowMarginHeight?: number;
|
defaultBasicRowMarginHeight?: number;
|
||||||
defaultRowMargin?: number;
|
defaultRowMargin?: number;
|
||||||
|
defaultTabWidth?: number;
|
||||||
width?: number;
|
width?: number;
|
||||||
height?: number;
|
height?: number;
|
||||||
scale?: number;
|
scale?: number;
|
||||||
|
|||||||
@@ -281,6 +281,9 @@ elementList.push(...<IElement[]>[{
|
|||||||
|
|
||||||
// 模拟结尾文本
|
// 模拟结尾文本
|
||||||
elementList.push(...[{
|
elementList.push(...[{
|
||||||
|
value: '',
|
||||||
|
type: ElementType.TAB
|
||||||
|
}, {
|
||||||
value: 'E',
|
value: 'E',
|
||||||
size: 16
|
size: 16
|
||||||
}, {
|
}, {
|
||||||
|
|||||||
Reference in New Issue
Block a user