feat: add executeFocus api #796

main
Hufe921 2 years ago
parent 3c598bae1a
commit 3c176318e0

@ -961,3 +961,13 @@ Usage:
```javascript ```javascript
instance.command.executeInsertTitle(payload: IElement) 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 ```javascript
instance.command.executeInsertTitle(payload: IElement) instance.command.executeInsertTitle(payload: IElement)
``` ```
## executeFocus
功能:光标聚焦
用法:
```javascript
instance.command.executeFocus(payload?: IFocusOption)
```

@ -95,6 +95,7 @@ export class Command {
public executeInsertControl: CommandAdapt['insertControl'] public executeInsertControl: CommandAdapt['insertControl']
public executeUpdateOptions: CommandAdapt['updateOptions'] public executeUpdateOptions: CommandAdapt['updateOptions']
public executeInsertTitle: CommandAdapt['insertTitle'] public executeInsertTitle: CommandAdapt['insertTitle']
public executeFocus: CommandAdapt['focus']
public getCatalog: CommandAdapt['getCatalog'] public getCatalog: CommandAdapt['getCatalog']
public getImage: CommandAdapt['getImage'] public getImage: CommandAdapt['getImage']
public getOptions: CommandAdapt['getOptions'] public getOptions: CommandAdapt['getOptions']
@ -214,6 +215,7 @@ export class Command {
this.executeSetZone = adapt.setZone.bind(adapt) this.executeSetZone = adapt.setZone.bind(adapt)
this.executeUpdateOptions = adapt.updateOptions.bind(adapt) this.executeUpdateOptions = adapt.updateOptions.bind(adapt)
this.executeInsertTitle = adapt.insertTitle.bind(adapt) this.executeInsertTitle = adapt.insertTitle.bind(adapt)
this.executeFocus = adapt.focus.bind(adapt)
// 获取 // 获取
this.getImage = adapt.getImage.bind(adapt) this.getImage = adapt.getImage.bind(adapt)
this.getOptions = adapt.getOptions.bind(adapt) this.getOptions = adapt.getOptions.bind(adapt)

@ -22,6 +22,7 @@ import {
import { ElementType } from '../../dataset/enum/Element' import { ElementType } from '../../dataset/enum/Element'
import { ElementStyleKey } from '../../dataset/enum/ElementStyle' import { ElementStyleKey } from '../../dataset/enum/ElementStyle'
import { ListStyle, ListType } from '../../dataset/enum/List' import { ListStyle, ListType } from '../../dataset/enum/List'
import { MoveDirection } from '../../dataset/enum/Observer'
import { RowFlex } from '../../dataset/enum/Row' import { RowFlex } from '../../dataset/enum/Row'
import { TableBorder, TdBorder, TdSlash } from '../../dataset/enum/table/Table' import { TableBorder, TdBorder, TdSlash } from '../../dataset/enum/table/Table'
import { TitleLevel } from '../../dataset/enum/Title' import { TitleLevel } from '../../dataset/enum/Title'
@ -52,6 +53,7 @@ import {
IEditorOption, IEditorOption,
IEditorResult, IEditorResult,
IEditorText, IEditorText,
IFocusOption,
ISetValueOption, ISetValueOption,
IUpdateOption IUpdateOption
} from '../../interface/Editor' } from '../../interface/Editor'
@ -2726,4 +2728,23 @@ export class CommandAdapt {
// 插入标题 // 插入标题
this.draw.insertElementList([cloneElement]) 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 { import {
EditorMode, EditorMode,
PageMode, PageMode,
@ -125,3 +125,7 @@ export type IUpdateOption = Omit<
export interface ISetValueOption { export interface ISetValueOption {
isSetCursor?: boolean isSetCursor?: boolean
} }
export interface IFocusOption {
position?: LocationPosition
}

Loading…
Cancel
Save