From a813c9fa17ef80d5b62e7af9bd6486016580eb8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E4=BA=91=E9=A3=9E?= Date: Fri, 15 Jul 2022 18:12:21 +0800 Subject: [PATCH] feat:add hyperlink contextmenu --- src/editor/core/contextmenu/ContextMenu.ts | 4 ++- .../core/contextmenu/menus/hyperlinkMenus.ts | 33 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 src/editor/core/contextmenu/menus/hyperlinkMenus.ts diff --git a/src/editor/core/contextmenu/ContextMenu.ts b/src/editor/core/contextmenu/ContextMenu.ts index 68bef9a..d57d6b7 100644 --- a/src/editor/core/contextmenu/ContextMenu.ts +++ b/src/editor/core/contextmenu/ContextMenu.ts @@ -8,6 +8,7 @@ import { Position } from '../position/Position' import { RangeManager } from '../range/RangeManager' import { controlMenus } from './menus/controlMenus' import { globalMenus } from './menus/globalMenus' +import { hyperlinkMenus } from './menus/hyperlinkMenus' import { imageMenus } from './menus/imageMenus' import { tableMenus } from './menus/tableMenus' @@ -40,7 +41,8 @@ export class ContextMenu { ...globalMenus, ...tableMenus, ...imageMenus, - ...controlMenus + ...controlMenus, + ...hyperlinkMenus ] this.contextMenuContainerList = [] this.contextMenuRelationShip = new Map() diff --git a/src/editor/core/contextmenu/menus/hyperlinkMenus.ts b/src/editor/core/contextmenu/menus/hyperlinkMenus.ts new file mode 100644 index 0000000..fdfd53c --- /dev/null +++ b/src/editor/core/contextmenu/menus/hyperlinkMenus.ts @@ -0,0 +1,33 @@ +import { ElementType } from '../../../dataset/enum/Element' +import { IRegisterContextMenu } from '../../../interface/contextmenu/ContextMenu' +import { Command } from '../../command/Command' + +export const hyperlinkMenus: IRegisterContextMenu[] = [ + { + name: '删除链接', + when: (payload) => { + return payload.startElement?.type === ElementType.HYPERLINK + }, + callback: (command: Command) => { + console.log('command: ', command) + } + }, + { + name: '取消链接', + when: (payload) => { + return payload.startElement?.type === ElementType.HYPERLINK + }, + callback: (command: Command) => { + console.log('command: ', command) + } + }, + { + name: '打开链接', + when: (payload) => { + return payload.startElement?.type === ElementType.HYPERLINK + }, + callback: (command: Command) => { + console.log('command: ', command) + } + } +] \ No newline at end of file