feat: add executeFocus api #796
This commit is contained in:
@@ -961,3 +961,13 @@ Usage:
|
||||
```javascript
|
||||
instance.command.executeInsertTitle(payload: IElement)
|
||||
```
|
||||
|
||||
## executeFocus
|
||||
|
||||
Feature: focus
|
||||
|
||||
Usage:
|
||||
|
||||
```javascript
|
||||
instance.command.executeFocus(payload?: IFocusOption)
|
||||
```
|
||||
|
||||
@@ -961,3 +961,13 @@ instance.command.executeUpdateOptions(payload: IUpdateOption)
|
||||
```javascript
|
||||
instance.command.executeInsertTitle(payload: IElement)
|
||||
```
|
||||
|
||||
## executeFocus
|
||||
|
||||
功能:光标聚焦
|
||||
|
||||
用法:
|
||||
|
||||
```javascript
|
||||
instance.command.executeFocus(payload?: IFocusOption)
|
||||
```
|
||||
|
||||
@@ -95,6 +95,7 @@ export class Command {
|
||||
public executeInsertControl: CommandAdapt['insertControl']
|
||||
public executeUpdateOptions: CommandAdapt['updateOptions']
|
||||
public executeInsertTitle: CommandAdapt['insertTitle']
|
||||
public executeFocus: CommandAdapt['focus']
|
||||
public getCatalog: CommandAdapt['getCatalog']
|
||||
public getImage: CommandAdapt['getImage']
|
||||
public getOptions: CommandAdapt['getOptions']
|
||||
@@ -214,6 +215,7 @@ export class Command {
|
||||
this.executeSetZone = adapt.setZone.bind(adapt)
|
||||
this.executeUpdateOptions = adapt.updateOptions.bind(adapt)
|
||||
this.executeInsertTitle = adapt.insertTitle.bind(adapt)
|
||||
this.executeFocus = adapt.focus.bind(adapt)
|
||||
// 获取
|
||||
this.getImage = adapt.getImage.bind(adapt)
|
||||
this.getOptions = adapt.getOptions.bind(adapt)
|
||||
|
||||
@@ -22,6 +22,7 @@ import {
|
||||
import { ElementType } from '../../dataset/enum/Element'
|
||||
import { ElementStyleKey } from '../../dataset/enum/ElementStyle'
|
||||
import { ListStyle, ListType } from '../../dataset/enum/List'
|
||||
import { MoveDirection } from '../../dataset/enum/Observer'
|
||||
import { RowFlex } from '../../dataset/enum/Row'
|
||||
import { TableBorder, TdBorder, TdSlash } from '../../dataset/enum/table/Table'
|
||||
import { TitleLevel } from '../../dataset/enum/Title'
|
||||
@@ -52,6 +53,7 @@ import {
|
||||
IEditorOption,
|
||||
IEditorResult,
|
||||
IEditorText,
|
||||
IFocusOption,
|
||||
ISetValueOption,
|
||||
IUpdateOption
|
||||
} from '../../interface/Editor'
|
||||
@@ -2726,4 +2728,23 @@ export class CommandAdapt {
|
||||
// 插入标题
|
||||
this.draw.insertElementList([cloneElement])
|
||||
}
|
||||
|
||||
public focus(payload?: IFocusOption) {
|
||||
const { position = LocationPosition.AFTER } = payload || {}
|
||||
const curIndex =
|
||||
position === LocationPosition.BEFORE
|
||||
? 0
|
||||
: this.draw.getOriginalMainElementList().length - 1
|
||||
this.range.setRange(curIndex, curIndex)
|
||||
this.draw.render({
|
||||
curIndex,
|
||||
isCompute: false,
|
||||
isSubmitHistory: false
|
||||
})
|
||||
const positionList = this.draw.getPosition().getPositionList()
|
||||
this.draw.getCursor().moveCursorToVisible({
|
||||
cursorPosition: positionList[curIndex],
|
||||
direction: MoveDirection.DOWN
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { IElement } from '..'
|
||||
import { IElement, LocationPosition } from '..'
|
||||
import {
|
||||
EditorMode,
|
||||
PageMode,
|
||||
@@ -125,3 +125,7 @@ export type IUpdateOption = Omit<
|
||||
export interface ISetValueOption {
|
||||
isSetCursor?: boolean
|
||||
}
|
||||
|
||||
export interface IFocusOption {
|
||||
position?: LocationPosition
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user