feat: get range row and paragraph element list #255

pr675
Hufe921 3 years ago
parent 01340bb13c
commit 9495bfef39

@ -67,6 +67,26 @@ Usage:
const rangeContext = instance.command.getRangeContext()
```
## getRangeRow
Feature: Get selection row element list
Usage:
```javascript
const rowElementList = instance.command.getRangeRow()
```
## getRangeParagraph
Feature: Get selection paragraph element list
Usage:
```javascript
const paragraphElementList = instance.command.getRangeParagraph()
```
## getPaperMargin
Feature: Gets the margins
@ -137,4 +157,4 @@ const {
```javascript
const locale = await instance.command.getLocale()
```
```

@ -67,6 +67,26 @@ const rangeText = instance.command.getRangeText()
const rangeContext = instance.command.getRangeContext()
```
## getRangeRow
功能:获取选区所在行元素列表
用法:
```javascript
const rowElementList = instance.command.getRangeRow()
```
## getRangeParagraph
功能:获取选区所在段落元素列表
用法:
```javascript
const paragraphElementList = instance.command.getRangeParagraph()
```
## getPaperMargin
功能:获取页边距

@ -84,6 +84,8 @@ export class Command {
public getWordCount: CommandAdapt['getWordCount']
public getRangeText: CommandAdapt['getRangeText']
public getRangeContext: CommandAdapt['getRangeContext']
public getRangeRow: CommandAdapt['getRangeRow']
public getRangeParagraph: CommandAdapt['getRangeParagraph']
public getPaperMargin: CommandAdapt['getPaperMargin']
public getSearchNavigateInfo: CommandAdapt['getSearchNavigateInfo']
public getLocale: CommandAdapt['getLocale']
@ -180,6 +182,8 @@ export class Command {
this.getWordCount = adapt.getWordCount.bind(adapt)
this.getRangeText = adapt.getRangeText.bind(adapt)
this.getRangeContext = adapt.getRangeContext.bind(adapt)
this.getRangeRow = adapt.getRangeRow.bind(adapt)
this.getRangeParagraph = adapt.getRangeParagraph.bind(adapt)
this.getCatalog = adapt.getCatalog.bind(adapt)
this.getPaperMargin = adapt.getPaperMargin.bind(adapt)
this.getSearchNavigateInfo = adapt.getSearchNavigateInfo.bind(adapt)

@ -47,7 +47,8 @@ import {
isTextLikeElement,
pickElementAttr,
getElementListByHTML,
getTextFromElementList
getTextFromElementList,
zipElementList
} from '../../utils/element'
import { printImageBase64 } from '../../utils/print'
import { Control } from '../draw/control/Control'
@ -434,7 +435,7 @@ export class CommandAdapt {
// 需要改变的元素列表
const changeElementList =
startIndex === endIndex
? this.range.getRangeElementList()
? this.range.getRangeParagraphElementList()
: elementList.slice(startIndex + 1, endIndex + 1)
if (!changeElementList || !changeElementList.length) return
// 设置值
@ -470,7 +471,7 @@ export class CommandAdapt {
const { startIndex, endIndex } = this.range.getRange()
if (!~startIndex && !~endIndex) return
// 需要改变的元素列表
const changeElementList = this.range.getRangeElementList()
const changeElementList = this.range.getRangeParagraphElementList()
if (!changeElementList || !changeElementList.length) return
// 如果包含列表则设置为取消列表
const isUnsetList = changeElementList.find(
@ -1749,6 +1750,16 @@ export class CommandAdapt {
})
}
public getRangeRow(): IElement[] | null {
const rowElementList = this.range.getRangeRowElementList()
return rowElementList ? zipElementList(rowElementList) : null
}
public getRangeParagraph(): IElement[] | null {
const paragraphElementList = this.range.getRangeParagraphElementList()
return paragraphElementList ? zipElementList(paragraphElementList) : null
}
public pageMode(payload: PageMode) {
this.draw.setPageMode(payload)
}

@ -200,8 +200,8 @@ export class RangeManager {
return rangeRow
}
// 获取选区元素列表
public getRangeElementList(): IElement[] | null {
// 获取选区段落元素列表
public getRangeParagraphElementList(): IElement[] | null {
const { startIndex, endIndex } = this.range
if (!~startIndex && !~endIndex) return null
// 需要改变的元素列表

Loading…
Cancel
Save