improve: adjusted the tab draw in the list style #283
Co-authored-by: Hufe921 <huangyunfeihufe@hotmail.com>
This commit is contained in:
co-authored by
Hufe921
parent
f754741f32
commit
fc0fdb2fe3
@@ -1,5 +1,6 @@
|
|||||||
import { ZERO } from '../../../dataset/constant/Common'
|
import { ZERO } from '../../../dataset/constant/Common'
|
||||||
import { ulStyleMapping } from '../../../dataset/constant/List'
|
import { ulStyleMapping } from '../../../dataset/constant/List'
|
||||||
|
import { ElementType } from '../../../dataset/enum/Element'
|
||||||
import { KeyMap } from '../../../dataset/enum/KeyMap'
|
import { KeyMap } from '../../../dataset/enum/KeyMap'
|
||||||
import { ListStyle, ListType, UlStyle } from '../../../dataset/enum/List'
|
import { ListStyle, ListType, UlStyle } from '../../../dataset/enum/List'
|
||||||
import { DeepRequired } from '../../../interface/Common'
|
import { DeepRequired } from '../../../interface/Common'
|
||||||
@@ -90,6 +91,14 @@ export class ListParticle {
|
|||||||
const { elementList, offsetX, listIndex, ascent } = row
|
const { elementList, offsetX, listIndex, ascent } = row
|
||||||
const startElement = elementList[0]
|
const startElement = elementList[0]
|
||||||
if (startElement.value !== ZERO || startElement.listWrap) return
|
if (startElement.value !== ZERO || startElement.listWrap) return
|
||||||
|
// tab width
|
||||||
|
let tabWidth = 0
|
||||||
|
const { defaultTabWidth, scale, defaultFont, defaultSize } = this.options
|
||||||
|
for (let i = 1; i < elementList.length; i++) {
|
||||||
|
const element = elementList[i]
|
||||||
|
if (element?.type !== ElementType.TAB) break
|
||||||
|
tabWidth += defaultTabWidth * scale
|
||||||
|
}
|
||||||
let text = ''
|
let text = ''
|
||||||
if (startElement.listType === ListType.UL) {
|
if (startElement.listType === ListType.UL) {
|
||||||
text =
|
text =
|
||||||
@@ -104,9 +113,8 @@ export class ListParticle {
|
|||||||
leftTop: [startX, startY]
|
leftTop: [startX, startY]
|
||||||
}
|
}
|
||||||
} = position
|
} = position
|
||||||
const x = startX - offsetX!
|
const x = startX - offsetX! + tabWidth
|
||||||
const y = startY + ascent
|
const y = startY + ascent
|
||||||
const { defaultFont, defaultSize, scale } = this.options
|
|
||||||
ctx.save()
|
ctx.save()
|
||||||
ctx.font = `${defaultSize * scale}px ${defaultFont}`
|
ctx.font = `${defaultSize * scale}px ${defaultFont}`
|
||||||
ctx.fillText(text, x, y)
|
ctx.fillText(text, x, y)
|
||||||
|
|||||||
Reference in New Issue
Block a user