fix: delete rowFlex when row position change #164
This commit is contained in:
@@ -330,10 +330,30 @@ export class Draw {
|
|||||||
return this.pageList
|
return this.pageList
|
||||||
}
|
}
|
||||||
|
|
||||||
public getRowList(): IRow[] {
|
public getTableRowList(sourceElementList: IElement[]): IRow[] {
|
||||||
|
const positionContext = this.position.getPositionContext()
|
||||||
|
const { index, trIndex, tdIndex } = positionContext
|
||||||
|
return sourceElementList[index!].trList![trIndex!].tdList[tdIndex!].rowList!
|
||||||
|
}
|
||||||
|
|
||||||
|
public getOriginalRowList() {
|
||||||
|
const zoneManager = this.getZone()
|
||||||
|
if (zoneManager.isHeaderActive()) {
|
||||||
|
return this.header.getRowList()
|
||||||
|
}
|
||||||
|
if (zoneManager.isFooterActive()) {
|
||||||
|
return this.footer.getRowList()
|
||||||
|
}
|
||||||
return this.rowList
|
return this.rowList
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public getRowList(): IRow[] {
|
||||||
|
const positionContext = this.position.getPositionContext()
|
||||||
|
return positionContext.isTable
|
||||||
|
? this.getTableRowList(this.getOriginalElementList())
|
||||||
|
: this.getOriginalRowList()
|
||||||
|
}
|
||||||
|
|
||||||
public getPageRowList(): IRow[][] {
|
public getPageRowList(): IRow[][] {
|
||||||
return this.pageRowList
|
return this.pageRowList
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,10 @@ export class Footer {
|
|||||||
this.positionList = []
|
this.positionList = []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public getRowList(): IRow[] {
|
||||||
|
return this.rowList
|
||||||
|
}
|
||||||
|
|
||||||
public setElementList(elementList: IElement[]) {
|
public setElementList(elementList: IElement[]) {
|
||||||
this.elementList = elementList
|
this.elementList = elementList
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,10 @@ export class Header {
|
|||||||
this.positionList = []
|
this.positionList = []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public getRowList(): IRow[] {
|
||||||
|
return this.rowList
|
||||||
|
}
|
||||||
|
|
||||||
public setElementList(elementList: IElement[]) {
|
public setElementList(elementList: IElement[]) {
|
||||||
this.elementList = elementList
|
this.elementList = elementList
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,11 @@ export function input(data: string, host: CanvasEvent) {
|
|||||||
restArg = { tdId, trId, tableId }
|
restArg = { tdId, trId, tableId }
|
||||||
}
|
}
|
||||||
const elementList = draw.getElementList()
|
const elementList = draw.getElementList()
|
||||||
const element = elementList[endIndex]
|
const endElement = elementList[endIndex]
|
||||||
|
const endNextElement = elementList[endIndex + 1]
|
||||||
|
const copyElement = endElement.value === ZERO && endNextElement
|
||||||
|
? endNextElement
|
||||||
|
: endElement
|
||||||
const inputData: IElement[] = splitText(text).map(value => {
|
const inputData: IElement[] = splitText(text).map(value => {
|
||||||
const newElement: IElement = {
|
const newElement: IElement = {
|
||||||
value,
|
value,
|
||||||
@@ -46,15 +50,15 @@ export function input(data: string, host: CanvasEvent) {
|
|||||||
}
|
}
|
||||||
const nextElement = elementList[endIndex + 1]
|
const nextElement = elementList[endIndex + 1]
|
||||||
if (
|
if (
|
||||||
element.type === TEXT
|
copyElement.type === TEXT
|
||||||
|| (!element.type && element.value !== ZERO)
|
|| (!copyElement.type && copyElement.value !== ZERO)
|
||||||
|| (element.type === HYPERLINK && nextElement?.type === HYPERLINK)
|
|| (copyElement.type === HYPERLINK && nextElement?.type === HYPERLINK)
|
||||||
|| (element.type === DATE && nextElement?.type === DATE)
|
|| (copyElement.type === DATE && nextElement?.type === DATE)
|
||||||
|| (element.type === SUBSCRIPT && nextElement?.type === SUBSCRIPT)
|
|| (copyElement.type === SUBSCRIPT && nextElement?.type === SUBSCRIPT)
|
||||||
|| (element.type === SUPERSCRIPT && nextElement?.type === SUPERSCRIPT)
|
|| (copyElement.type === SUPERSCRIPT && nextElement?.type === SUPERSCRIPT)
|
||||||
) {
|
) {
|
||||||
EDITOR_ELEMENT_COPY_ATTR.forEach(attr => {
|
EDITOR_ELEMENT_COPY_ATTR.forEach(attr => {
|
||||||
const value = element[attr] as never
|
const value = copyElement[attr] as never
|
||||||
if (value !== undefined) {
|
if (value !== undefined) {
|
||||||
newElement[attr] = value
|
newElement[attr] = value
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,16 @@ export function keydown(evt: KeyboardEvent, host: CanvasEvent) {
|
|||||||
evt.preventDefault()
|
evt.preventDefault()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
// 清空当前行对齐方式
|
||||||
|
const startElement = elementList[startIndex]
|
||||||
|
if (isCollapsed && startElement.rowFlex && startElement.value === ZERO) {
|
||||||
|
const rowList = draw.getRowList()
|
||||||
|
const rowNo = positionList[startIndex].rowNo
|
||||||
|
const rowFlexElementList = rowList[rowNo].elementList
|
||||||
|
rowFlexElementList.forEach(element => {
|
||||||
|
delete element.rowFlex
|
||||||
|
})
|
||||||
|
}
|
||||||
if (!isCollapsed) {
|
if (!isCollapsed) {
|
||||||
elementList.splice(startIndex + 1, endIndex - startIndex)
|
elementList.splice(startIndex + 1, endIndex - startIndex)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user