From 9f8016884f56431fd29a77241bcc69368ffdbb37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=A5=E5=9D=B3=E8=B5=B5?= Date: Thu, 27 Jul 2023 21:22:26 +0800 Subject: [PATCH] docs: support document internationalization #222 * docs: add English docuemnt #213 * docs: support document internationalization #222 --------- Co-authored-by: Hufe921 --- docs/.vitepress/config.ts | 115 +++- docs/en/guide/api.md | 24 + docs/en/guide/command-execute.md | 745 ++++++++++++++++++++++++++ docs/en/guide/command-get.md | 116 ++++ docs/en/guide/contextmenu-custom.md | 20 + docs/en/guide/contextmenu-internal.md | 49 ++ docs/en/guide/eventbus.md | 121 +++++ docs/en/guide/i18n.md | 93 ++++ docs/en/guide/listener.md | 112 ++++ docs/en/guide/option.md | 125 +++++ docs/en/guide/plugin.md | 23 + docs/en/guide/schema.md | 132 +++++ docs/en/guide/shortcut-custom.md | 21 + docs/en/guide/shortcut-internal.md | 165 ++++++ docs/en/guide/start.md | 95 ++++ docs/en/index.md | 43 ++ docs/guide/api.md | 9 +- docs/guide/command-execute.md | 149 +++++- docs/guide/command-get.md | 26 +- docs/guide/contextmenu-custom.md | 2 +- docs/guide/contextmenu-internal.md | 19 +- docs/guide/eventbus.md | 22 +- docs/guide/i18n.md | 132 ++--- docs/guide/listener.md | 44 +- docs/guide/option.md | 144 ++--- docs/guide/plugin.md | 2 +- docs/guide/schema.md | 2 +- docs/guide/shortcut-custom.md | 2 +- docs/guide/shortcut-internal.md | 43 +- docs/guide/start.md | 68 ++- docs/index.md | 2 +- package.json | 4 +- yarn.lock | 641 ++++++++++++++-------- 33 files changed, 2861 insertions(+), 449 deletions(-) create mode 100644 docs/en/guide/api.md create mode 100644 docs/en/guide/command-execute.md create mode 100644 docs/en/guide/command-get.md create mode 100644 docs/en/guide/contextmenu-custom.md create mode 100644 docs/en/guide/contextmenu-internal.md create mode 100644 docs/en/guide/eventbus.md create mode 100644 docs/en/guide/i18n.md create mode 100644 docs/en/guide/listener.md create mode 100644 docs/en/guide/option.md create mode 100644 docs/en/guide/plugin.md create mode 100644 docs/en/guide/schema.md create mode 100644 docs/en/guide/shortcut-custom.md create mode 100644 docs/en/guide/shortcut-internal.md create mode 100644 docs/en/guide/start.md create mode 100644 docs/en/index.md diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 8598149..48b0c91 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -5,20 +5,24 @@ export default defineConfig({ title: 'canvas-editor', description: 'rich text editor by canvas/svg', themeConfig: { + i18nRouting: false, algolia: { appId: 'RWSVW6F3S5', apiKey: 'e462fffb4d2e9ab4a78c29e0b457ab33', - indexName: 'hufe', + indexName: 'hufe' }, logo: '/favicon.png', - nav: [{ - text: '指南', - link: '/guide/start', - activeMatch: '/guide/' - }, { - text: 'Demo', - link: 'https://hufe.club/canvas-editor' - }], + nav: [ + { + text: '指南', + link: '/guide/start', + activeMatch: '/guide/' + }, + { + text: 'Demo', + link: 'https://hufe.club/canvas-editor' + } + ], sidebar: [ { text: '开始', @@ -47,7 +51,7 @@ export default defineConfig({ text: '快捷键', items: [ { text: '内部快捷键', link: '/guide/shortcut-internal' }, - { text: '自定义快捷键', link: '/guide/shortcut-custom' }, + { text: '自定义快捷键', link: '/guide/shortcut-custom' } ] }, { @@ -59,24 +63,93 @@ export default defineConfig({ }, { text: 'API', - items: [ - { text: '全局API', link: '/guide/api' } - ] + items: [{ text: '全局API', link: '/guide/api' }] }, { text: '插件', - items: [ - { text: '自定义插件', link: '/guide/plugin' } - ] + items: [{ text: '自定义插件', link: '/guide/plugin' }] + } + ], + socialLinks: [ + { + icon: 'github', + link: 'https://github.com/Hufe921/canvas-editor' } ], - socialLinks: [{ - icon: 'github', - link: 'https://github.com/Hufe921/canvas-editor' - }], footer: { message: 'Released under the MIT License.', copyright: 'Copyright © 2021-present Hufe' } + }, + locales: { + root: { + label: '简体中文', + lang: 'zh-CN' + }, + en: { + label: 'English', + lang: 'en', + link: '/en/', + themeConfig: { + nav: [ + { + text: 'Guide', + link: '/en/guide/start', + activeMatch: '/en/guide/' + }, + { + text: 'Demo', + link: 'https://hufe.club/canvas-editor' + } + ], + sidebar: [ + { + text: 'Start', + items: [ + { text: 'start', link: '/en/guide/start' }, + { text: 'option', link: '/en/guide/option' }, + { text: 'i18n', link: '/en/guide/i18n' }, + { text: 'schema', link: '/en/guide/schema' } + ] + }, + { + text: 'Command', + items: [ + { text: 'execute', link: '/en/guide/command-execute' }, + { text: 'get', link: '/en/guide/command-get' } + ] + }, + { + text: 'Listener', + items: [ + { text: 'listener', link: '/en/guide/listener' }, + { text: 'eventbus', link: '/en/guide/eventbus' } + ] + }, + { + text: 'Shortcut', + items: [ + { text: 'internal', link: '/en/guide/shortcut-internal' }, + { text: 'custom', link: '/en/guide/shortcut-custom' } + ] + }, + { + text: 'Contextmenu', + items: [ + { text: 'internal', link: '/en/guide/contextmenu-internal' }, + { text: 'custom', link: '/en/guide/contextmenu-custom' } + ] + }, + { + text: 'Api', + items: [{ text: 'api', link: '/en/guide/api' }] + }, + { + text: 'Plugin', + items: [{ text: 'plugin', link: '/en/guide/plugin' }] + } + ] + } + } } -}) \ No newline at end of file +}) diff --git a/docs/en/guide/api.md b/docs/en/guide/api.md new file mode 100644 index 0000000..3c8c474 --- /dev/null +++ b/docs/en/guide/api.md @@ -0,0 +1,24 @@ +# Global API + +## How to Use + +```javascript +import Editor from "@hufe921/canvas-editor" + +const instance = new Editor(container, data, options) +instance.apiName() +``` + +## destroy + +Feature: Destroy the editor + +Usage: + +```javascript +instance.destroy() +``` + +::: warning +Only destroy the editor DOM and related events, menu bars, toolbars, external variables, etc. need to be handled by themselves. +::: diff --git a/docs/en/guide/command-execute.md b/docs/en/guide/command-execute.md new file mode 100644 index 0000000..e112bea --- /dev/null +++ b/docs/en/guide/command-execute.md @@ -0,0 +1,745 @@ +# Execute Command + +## How to Use + +```javascript +import Editor from "@hufe921/canvas-editor" + +const instance = new Editor(container, data, options) +instance.command.commandName() +``` + +## executeMode + +Feature: Switch editor mode (Edit, Clean, Read only) + +Usage: + +```javascript +instance.command.executeMode(editorMode: EditorMode) +``` + +## executeCut + +Feature: Cut + +Usage: + +```javascript +instance.command.executeCut() +``` + +## executeCopy + +Feature: Copy + +Usage: + +```javascript +instance.command.executeCopy() +``` + +## executePaste + +Feature: Paste + +Usage: + +```javascript +instance.command.executePaste() +``` + +## executeSelectAll + +Feature: Select all + +Usage: + +```javascript +instance.command.executeSelectAll() +``` + +## executeBackspace + +Feature: Forward delete + +Usage: + +```javascript +instance.command.executeBackspace() +``` + +## executeSetRange + +Feature: Set selection + +Usage: + +```javascript +instance.command.executeSetRange(startIndex: number , endIndex: number) +``` + +## executeUndo + +Feature: Undo + +Usage: + +```javascript +instance.command.executeUndo() +``` + +## executeRedo + +Feature: Redo + +Usage: + +```javascript +instance.command.executeRedo() +``` + +## executePainter + +Feature: Format Brush - Copy style + +Usage: + +```javascript +instance.command.executePainter() +``` + +## executeApplyPainterStyle + +Feature: Format brush - Apply style + +Usage: + +```javascript +instance.command.executeApplyPainterStyle() +``` + +## executeFormat + +Feature: Clear format + +Usage: + +```javascript +instance.command.executeFormat() +``` + +## executeFont + +Feature: Set font + +Usage: + +```javascript +instance.command.executeFont(font: string) +``` + +## executeSize + +Feature: Set font size + +Usage: + +```javascript +instance.command.executeSize(size: number) +``` + +## executeSizeAdd + +Feature: Increase the font size + +Usage: + +```javascript +instance.command.executeSizeAdd() +``` + +## executeSizeMinus + +Feature: Reduce the font size + +Usage: + +```javascript +instance.command.executeSizeMinus() +``` + +## executeBold + +Feature: Bold + +Usage: + +```javascript +instance.command.executeBold() +``` + +## executeItalic + +Feature: Italic + +Usage: + +```javascript +instance.command.executeItalic() +``` + +## executeUnderline + +Feature: Underline + +Usage: + +```javascript +instance.command.executeUnderline() +``` + +## executeStrikeout + +Feature: Strikeout + +Usage: + +```javascript +instance.command.executeStrikeout() +``` + +## executeSuperscript + +Feature: Superscript + +Usage: + +```javascript +instance.command.executeSuperscript() +``` + +## executeSubscript + +Feature: Subscript + +Usage: + +```javascript +instance.command.executeSubscript() +``` + +## executeColor + +Feature: Font color + +Usage: + +```javascript +instance.command.executeColor() +``` + +## executeHighlight + +Feature: Highlight + +Usage: + +```javascript +instance.command.executeHighlight() +``` + +## executeTitle + +Feature: Set title + +Usage: + +```javascript +instance.command.executeTitle(TitleLevel | null) +``` + +## executeList + +Feature: Set list + +Usage: + +```javascript +instance.command.executeList(listType: ListType | null, listStyle?: ListStyle) +``` + +## executeRowFlex + +Feature: Line alignment + +Usage: + +```javascript +instance.command.executeRowFlex(rowFlex: RowFlex) +``` + +## executeRowMargin + +Feature: Line spacing + +Usage: + +```javascript +instance.command.executeRowMargin(rowMargin: number) +``` + +## executeInsertTable + +Feature: Insert table + +Usage: + +```javascript +instance.command.executeInsertTable(row: number, col: number) +``` + +## executeInsertTableTopRow + +Feature: Insert a row up + +Usage: + +```javascript +instance.command.executeInsertTableTopRow() +``` + +## executeInsertTableBottomRow + +Feature: Insert a row down + +Usage: + +```javascript +instance.command.executeInsertTableBottomRow() +``` + +## executeInsertTableLeftCol + +Feature: Insert a column to the left + +Usage: + +```javascript +instance.command.executeInsertTableLeftCol() +``` + +## executeInsertTableRightCol + +Feature: Insert a column to the right + +Usage: + +```javascript +instance.command.executeInsertTableRightCol() +``` + +## executeDeleteTableRow + +Feature: Deletes the current row + +Usage: + +```javascript +instance.command.executeDeleteTableRow() +``` + +## executeDeleteTableCol + +Feature: Delete the current column + +Usage: + +```javascript +instance.command.executeDeleteTableCol() +``` + +## executeDeleteTable + +Feature: Delete the table + +Usage: + +```javascript +instance.command.executeDeleteTable() +``` + +## executeMergeTableCell + +Feature: Merge tables + +Usage: + +```javascript +instance.command.executeMergeTableCell() +``` + +## executeCancelMergeTableCell + +Feature: Cancel the merge form + +Usage: + +```javascript +instance.command.executeCancelMergeTableCell() +``` + +## executeTableTdVerticalAlign + +Feature: Table cell vertical alignment + +Usage: + +```javascript +instance.command.executeTableTdVerticalAlign(payload: VerticalAlign) +``` + +## executeTableBorderType + +Feature: Table border type + +Usage: + +```javascript +instance.command.executeTableBorderType(payload: TableBorder) +``` + +## executeTableTdBackgroundColor + +Feature: Table cell background color + +Usage: + +```javascript +instance.command.executeTableTdBackgroundColor(payload: string) +``` + +## executeImage + +Feature: Insert a picture + +Usage: + +```javascript +instance.command.executeImage({ + width: number; + height: number; + value: string; +}) +``` + +## executeHyperlink + +Feature: Insert a link + +Usage: + +```javascript +instance.command.executeHyperlink({ + type: ElementType.HYPERLINK, + value: string, + url: string, + valueList: IElement[] +}) +``` + +## executeDeleteHyperlink + +Feature: Delete the link + +Usage: + +```javascript +instance.command.executeDeleteHyperlink() +``` + +## executeCancelHyperlink + +Feature: Unlink + +Usage: + +```javascript +instance.command.executeCancelHyperlink() +``` + +## executeEditHyperlink + +Feature: Edit the link + +Usage: + +```javascript +instance.command.executeEditHyperlink(newUrl: string) +``` + +## executeSeparator + +Feature: Insert a dividing line + +Usage: + +```javascript +instance.command.executeSeparator(dashArray: number[]) +``` + +## executePageBreak + +Feature: Page breaks + +Usage: + +```javascript +instance.command.executePageBreak() +``` + +## executeAddWatermark + +Feature: Add a watermark + +Usage: + +```javascript +instance.command.executeAddWatermark({ + data: string; + color?: string; + opacity?: number; + size?: number; + font?: string; +}) +``` + +## executeDeleteWatermark + +Feature: Remove the watermark + +Usage: + +```javascript +instance.command.executeDeleteWatermark() +``` + +## executeSearch + +Feature: 搜索 + +Usage: + +```javascript +instance.command.executeSearch(keyword: string) +``` + +## executeSearchNavigatePre + +Feature: Search Navigation - Previous + +Usage: + +```javascript +instance.command.executeSearchNavigatePre() +``` + +## executeSearchNavigateNext + +Feature: Search Navigation - Next + +Usage: + +```javascript +instance.command.executeSearchNavigateNext() +``` + +## executeReplace + +Feature: Search for replacement + +Usage: + +```javascript +instance.command.executeReplace(newWord: string) +``` + +## executePrint + +Feature: Print + +Usage: + +```javascript +instance.command.executePrint() +``` + +## executeReplaceImageElement + +Feature: Replace the picture + +Usage: + +```javascript +instance.command.executeReplaceImageElement(newUrl: string) +``` + +## executeSaveAsImageElement + +Feature: Save as picture + +Usage: + +```javascript +instance.command.executeSaveAsImageElement() +``` + +## executeChangeImageDisplay + +Feature: Change how image rows are displayed + +Usage: + +```javascript +instance.command.executeSaveAsImageElement(element: IElement, display: ImageDisplay) +``` + +## executePageMode + +Feature: Page mode + +Usage: + +```javascript +instance.command.executePageMode(pageMode: PageMode) +``` + +## executePageScaleRecovery + +Feature: Restore the original zoom factor of the page + +Usage: + +```javascript +instance.command.executePageScaleRecovery() +``` + +## executePageScaleMinus + +Feature: Page zoom out + +Usage: + +```javascript +instance.command.executePageScaleMinus() +``` + +## executePageScaleAdd + +Feature: Page zoom in + +Usage: + +```javascript +instance.command.executePageScaleAdd() +``` + +## executePaperSize + +Feature: Set the paper size + +Usage: + +```javascript +instance.command.executePaperSize(width: number, height: number) +``` + +## executePaperDirection + +Feature: Set the paper orientation + +Usage: + +```javascript +instance.command.executePaperDirection(paperDirection: PaperDirection) +``` + +## executeSetPaperMargin + +Feature: Set the paper margins + +Usage: + +```javascript +instance.command.executeSetPaperMargin([top: number, right: number, bottom: number, left: number]) +``` + +## executeInsertElementList + +Feature: Insert an element + +Usage: + +```javascript +instance.command.executeInsertElementList(elementList: IElement[]) +``` + +## executeAppendElementList + +Feature: Append elements + +Usage: + +```javascript +instance.command.executeAppendElementList(elementList: IElement[], options?: IAppendElementListOption) +``` + +## executeSetValue + +Feature: Set the editor data + +Usage: + +```javascript +instance.command.executeSetValue(payload: Partial) +``` + +## executeRemoveControl + +Feature: Delete the control + +Usage: + +```javascript +instance.command.executeRemoveControl() +``` + +## executeSetLocale + +Feature: Set local language + +Usage: + +```javascript +instance.command.executeSetLocale(locale: string) +``` + +## executeLocationCatalog + +Feature: Locate directory location + +Usage: + +```javascript +instance.command.executeLocationCatalog(titleId: string) +``` + +## executeWordTool + +Feature: Word Tool (Delete blank lines and leading Spaces) + +Usage: + +```javascript +instance.command.executeWordTool() +``` diff --git a/docs/en/guide/command-get.md b/docs/en/guide/command-get.md new file mode 100644 index 0000000..bbfa8c3 --- /dev/null +++ b/docs/en/guide/command-get.md @@ -0,0 +1,116 @@ +# Get Data Command + +## How to Use + +```javascript +import Editor from "@hufe921/canvas-editor" + +const instance = new Editor(container, data, options) +const value = instance.command.commandName() +``` + +## getValue + +Feature: Get the current document value + +Usage: + +```javascript +const { + version: string; + width: number; + height: number; + margins: IMargin; + header?: IHeader; + watermark?: IWatermark; + data: IEditorData; +} = instance.command.getValue(options?: IGetValueOption) +``` + +## getImage + +Feature: Gets the base64 string of the current page image + +Usage: + +```javascript +const base64StringList = await instance.command.getImage(pixelRatio?: number) +``` + +## getWordCount + +Feature: Get document word count + +Usage: + +```javascript +const wordCount = await instance.command.getWordCount() +``` + +## getRangeText + +Feature: Get selection text + +Usage: + +```javascript +const rangeText = instance.command.getRangeText() +``` + +## getRangeContext + +Feature: Get selection context + +Usage: + +```javascript +const rangeContext = instance.command.getRangeContext() +``` + +## getPaperMargin + +Feature: Gets the margins + +Usage: + +```javascript +const [top: number, right: number, bottom: number, left: number] = + instance.command.getPaperMargin() +``` + +## getSearchNavigateInfo + +Feature: Get search navigation information + +Usage: + +```javascript +const { + index: number; + count: number; +} = instance.command.getSearchNavigateInfo() +``` + +## getCatalog + +Feature: Get directory + +Usage: + +```javascript +const catalog = await instance.command.getCatalog() +``` + +## getHTML + +Feature: Get HTML + +Usage: + +```javascript +const { + header: string + main: string + footer: string +} = await instance.command.getHTML() +``` diff --git a/docs/en/guide/contextmenu-custom.md b/docs/en/guide/contextmenu-custom.md new file mode 100644 index 0000000..153c7e9 --- /dev/null +++ b/docs/en/guide/contextmenu-custom.md @@ -0,0 +1,20 @@ +# Customize Contextmenu + +## How to Use + +```javascript +import Editor from "@hufe921/canvas-editor" + +const instance = new Editor(container, data, options) +instance.register.contextMenuList([ + { + isDivider?: boolean; + icon?: string; + name?: string; // Use %s for selection text. Example: Search: %s + shortCut?: string; + when?: (payload: IContextMenuContext) => boolean; + callback?: (command: Command, context: IContextMenuContext) => any; + childMenus?: IRegisterContextMenu[]; + } + ]) +``` diff --git a/docs/en/guide/contextmenu-internal.md b/docs/en/guide/contextmenu-internal.md new file mode 100644 index 0000000..0b711f5 --- /dev/null +++ b/docs/en/guide/contextmenu-internal.md @@ -0,0 +1,49 @@ +# Internal Contextmenu + +## Global + +- Cut +- Copy +- Paste +- Select all +- Print + +## Hyperlinks + +- Delete the link +- Unlink +- Edit the link + +## Image + +- Change the picture +- Save as picture +- Text wrapping +- Embedded type +- Upper and lower surrounding + +## Table + +- Table borders +- All borders +- Borderless +- Outer border +- Vertical alignment +- Top alignment +- Center vertically +- Bottom end alignment +- Insert rows and columns +- Insert 1 row above +- Insert 1 row below +- Insert 1 column on the left +- Insert 1 column on the right side +- Delete rows and columns +- Delete 1 row +- Remove 1 column +- Delete the entire table +- Merge cells +- Cancel the merge + +## control + +- Delete the control diff --git a/docs/en/guide/eventbus.md b/docs/en/guide/eventbus.md new file mode 100644 index 0000000..f27ac5d --- /dev/null +++ b/docs/en/guide/eventbus.md @@ -0,0 +1,121 @@ +# Event Listening(eventBus) + +## How to Use + +```javascript +import Editor from "@hufe921/canvas-editor" + +const instance = new Editor(container, data, options) + +// register +instance.eventBus.on( + eventName: K, + callback: EventMap[K] +) + +// remove +instance.eventBus.off( + eventName: K, + callback: EventMap[K] +) +``` + +## rangeStyleChange + +Feature: The selection style changes + +Usage: + +```javascript +instance.eventBus.on('rangeStyleChange', (payload: IRangeStyle) => void) +``` + +## visiblePageNoListChange + +Feature: The visible page changes + +Usage: + +```javascript +instance.eventBus.on('visiblePageNoListChange', (payload: number[]) => void) +``` + +## intersectionPageNoChange + +Feature: The current page changes + +Usage: + +```javascript +instance.eventBus.on('intersectionPageNoChange', (payload: number) => void) +``` + +## pageSizeChange + +Feature: The current number of pages has changed + +Usage: + +```javascript +instance.eventBus.on('pageSizeChange', (payload: number) => void) +``` + +## pageScaleChange + +Feature: The current page scaling has changed + +Usage: + +```javascript +instance.eventBus.on('pageScaleChange', (payload: number) => void) +``` + +## contentChange + +Feature: The current content has changed + +Usage: + +```javascript +instance.eventBus.on('contentChange', () => void) +``` + +## controlChange + +Feature: The control where the current cursor is located changes + +Usage: + +```javascript +instance.eventBus.on('controlChange', (payload: IControl | null) => void) +``` + +## pageModeChange + +Feature: The page mode changes + +Usage: + +```javascript +instance.eventBus.on('pageModeChange', (payload: PageMode) => void) +``` + +## saved + +Feature: Document saved + +Usage: + +```javascript +instance.eventBus.on('saved', (payload: IEditorResult) => void) +``` + +## zoneChange + +Feature: The zone changes + +Usage: + +```javascript +instance.eventBus.on('zoneChange', (payload: EditorZone) => void) +``` diff --git a/docs/en/guide/i18n.md b/docs/en/guide/i18n.md new file mode 100644 index 0000000..68adb3d --- /dev/null +++ b/docs/en/guide/i18n.md @@ -0,0 +1,93 @@ +# i18n + +## How to Use + +```javascript +import Editor from "@hufe921/canvas-editor" + +const instance = new Editor(container, data, options) + +// register +instance.register.langMap(locale: string, lang: ILang) + +// set locale +instance.command.executeSetLocale(locale) +``` + +## ILang + +```typescript +interface ILang { + contextmenu: { + global: { + cut: string + copy: string + paste: string + selectAll: string + print: string + } + control: { + delete: string + } + hyperlink: { + delete: string + cancel: string + edit: string + } + image: { + change: string + saveAs: string + textWrap: string + textWrapType: { + embed: string + upDown: string + } + } + table: { + insertRowCol: string + insertTopRow: string + insertBottomRow: string + insertLeftCol: string + insertRightCol: string + deleteRowCol: string + deleteRow: string + deleteCol: string + deleteTable: string + mergeCell: string + mergeCancelCell: string + verticalAlign: string + verticalAlignTop: string + verticalAlignMiddle: string + verticalAlignBottom: string + border: string + borderAll: string + borderEmpty: string + borderExternal: string + } + } + datePicker: { + now: string + confirm: string + return: string + timeSelect: string + weeks: { + sun: string + mon: string + tue: string + wed: string + thu: string + fri: string + sat: string + } + year: string + month: string + hour: string + minute: string + second: string + } + frame: { + header: string + footer: string + } +} +``` diff --git a/docs/en/guide/listener.md b/docs/en/guide/listener.md new file mode 100644 index 0000000..521e029 --- /dev/null +++ b/docs/en/guide/listener.md @@ -0,0 +1,112 @@ +# Event Listening(listener) + +> The listener can respond to only one method. eventBus is recommended for event listening + +## How to Use + +```javascript +import Editor from "@hufe921/canvas-editor" + +const instance = new Editor(container, data, options) +instance.listener.eventName = ()=>{} +``` + +## rangeStyleChange + +Feature: The selection style changes + +Usage: + +```javascript +instance.listener.rangeStyleChange = (payload: IRangeStyle) => {} +``` + +## visiblePageNoListChange + +Feature: The visible page changes + +Usage: + +```javascript +instance.listener.visiblePageNoListChange = (payload: number[]) => {} +``` + +## intersectionPageNoChange + +Feature: The current page changes + +Usage: + +```javascript +instance.listener.intersectionPageNoChange = (payload: number) => {} +``` + +## pageSizeChange + +Feature: The current page size has changed + +Usage: + +```javascript +instance.listener.pageSizeChange = (payload: number) => {} +``` + +## pageScaleChange + +Feature: The current page scaling has changed + +Usage: + +```javascript +instance.listener.pageScaleChange = (payload: number) => {} +``` + +## contentChange + +Feature: The current content has changed + +Usage: + +```javascript +instance.listener.contentChange = () => {} +``` + +## controlChange + +Feature: The control where the current cursor is located changes + +Usage: + +```javascript +instance.listener.controlChange = (payload: IControl | null) => {} +``` + +## pageModeChange + +Feature: The page mode changes + +Usage: + +```javascript +instance.listener.pageModeChange = (payload: PageMode) => {} +``` + +## saved + +Feature: Document saved + +Usage: + +```javascript +instance.listener.saved = (payload: IEditorResult) => {} +``` + +## zoneChange + +Feature: 区域发生改变 + +Usage: + +```javascript +instance.listener.zoneChange = (payload: EditorZone) => {} +``` diff --git a/docs/en/guide/option.md b/docs/en/guide/option.md new file mode 100644 index 0000000..54ad07e --- /dev/null +++ b/docs/en/guide/option.md @@ -0,0 +1,125 @@ +# Configuration + +## How to Use ? + +```javascript +import Editor from "@hufe921/canvas-editor" + +new Editor(container, IEditorData | IElement[], { + // option +}) +``` + +## Complete Configuration + +```typescript +interface IEditorOption { + mode?: EditorMode // Editor mode: Edit, Clean (Visual aids are not displayed.) For example: page break), read-only. default: Edit + defaultType?: string // Default element type. default: TEXT + defaultFont?: string // Default font. default: Yahei + defaultSize?: number // Default font size. default: 16 + minSize?: number // Min font size。default: 5 + maxSize?: number // Max font size。default: 72 + defaultBasicRowMarginHeight?: number // Default line height。default: 8 + defaultRowMargin?: number // Default line spacing. default: 1 + defaultTabWidth?: number // Default tab width. default: 32 + width?: number // Paper width. default: 794 + height?: number // Paper height. default: 1123 + scale?: number // scaling. default: 1 + pageGap?: number // Paper spacing. default: 20 + underlineColor?: string // Underline color. default: #000000 + strikeoutColor?: string // Strikeout color. default: #FF0000 + rangeColor?: string // Range color. default: #AECBFA + rangeAlpha?: number // Range transparency. default: 0.6 + rangeMinWidth?: number // Range min width. default: 5 + searchMatchColor?: string // Search for highlight color. default: #FFFF00 + searchNavigateMatchColor?: string // Search navigation highlighted color.default: #AAD280 + searchMatchAlpha?: number // Search for highlight transparency. default: 0.6 + highlightAlpha?: number // Highlight element transparency. default: 0.6 + resizerColor?: string // Image sizer color. default: #4182D9 + resizerSize?: number // Image sizer size. default: 5 + marginIndicatorSize?: number // The margin indicator length. default: 35 + marginIndicatorColor?: string // The margin indicator color. default: #BABABA + margins?: IMargin // Page margins. default: [100, 120, 100, 120] + pageMode?: PageMode // Paper mode: Linkage, Pagination. default: Pagination + tdPadding?: number // Cell padding. default: 5 + defaultTrMinHeight?: number // Default table row minimum height. default: 40 + defaultColMinWidth?: number // Default minimum width for table columns (applied if the overall width is sufficient, otherwise scaled down). default: 40 + defaultHyperlinkColor?: string // Default hyperlink color. default: #0000FF + header?: IHeader // Header information.{top?:number; maxHeightRadio?:MaxHeightRatio;} + footer?: IFooter // Footer information. {bottom?:number; maxHeightRadio?:MaxHeightRatio;} + pageNumber?: IPageNumber // Page number information. {bottom:number; size:number; font:string; color:string; rowFlex:RowFlex; format:string; numberType:NumberType;} + paperDirection?: PaperDirection // Paper orientation: portrait, landscape + inactiveAlpha?: number // When the body content is out of focus, transparency. default: 0.6 + historyMaxRecordCount: number // History (undo redo) maximum number of records. default: 100 + printPixelRatio: number // Print the pixel ratio (larger values are clearer, but larger sizes). default: 3 + wordBreak: WordBreak // Word and punctuation breaks: No punctuation in the first line of the BREAK_WORD &The word is not split, and the line is folded after BREAK_ALL full according to the width of the character. default: BREAK_WORD + watermark?: IWatermark // Watermark{data:string; color?:string; opacity?:number; size?:number; font?:string;} + control?: IControlOption // Control {placeholderColor?:string; bracketColor?:string; prefix?:string; postfix?:string;} + checkbox?: ICheckboxOption // Checkbox {width?:number; height?:number; gap?:number; lineWidth?:number; fillStyle?:string; fontStyle?: string;} + cursor?: ICursorOption // Cursor style. {width?: number; color?: string; dragWidth?: number; dragColor?: string;} + title?: ITitleOption // Title configuration.{ defaultFirstSize?: number; defaultSecondSize?: number; defaultThirdSize?: number defaultFourthSize?: number; defaultFifthSize?: number; defaultSixthSize?: number;} + placeholder?: IPlaceholder // Placeholder text +} +``` + +## Header Configuration + +```typescript +interface IHeader { + top?: number // Size from the top of the page.default: 30 + maxHeightRadio?: MaxHeightRatio // Occupies the maximum height ratio of the page.default: HALF + disabled?: boolean // Whether to disable +} +``` + +## Footer Configuration + +```typescript +interface IFooter { + bottom?: number // The size from the bottom of the page.default: 30 + maxHeightRadio?: MaxHeightRatio // Occupies the maximum height ratio of the page.default: HALF + disabled?: boolean // Whether to disable +} +``` + +## Page Number Configuration + +```typescript +interface IPageNumber { + bottom?: number // The size from the bottom of the page.default: 60 + size?: number // font size.default: 12 + font?: string // font.default: Yahei + color?: string // font color.default: #000000 + rowFlex?: RowFlex // Line alignment.default: CENTER + format?: string // Page number format.default: {pageNo}。example:{pageNo}/{pageCount} + numberType?: NumberType // The numeric type. default: ARABIC + disabled?: boolean // Whether to disable + startPageNo?: number // Start page number.default: 1 + fromPageNo?: number // Page numbers appear from page number.default: 0 +} +``` + +## Watermark Configuration + +```typescript +interface IWatermark { + data: string // text. + color?: string // color.default: #AEB5C0 + opacity?: number // transparency.default: 0.3 + size?: number // font size.default: 200 + font?: string // font.default: Yahei +} +``` + +## Placeholder Text Configuration + +```typescript +interface IPlaceholder { + data: string // text. + color?: string // color.default: #DCDFE6 + opacity?: number // transparency.default: 1 + size?: number // font size.default: 16 + font?: string // font.default: Yahei +} +``` diff --git a/docs/en/guide/plugin.md b/docs/en/guide/plugin.md new file mode 100644 index 0000000..51ba735 --- /dev/null +++ b/docs/en/guide/plugin.md @@ -0,0 +1,23 @@ +# Custom Plugin + +::: warning +Currently, only methods can be added and modified to the editor instance, and more functions will be extended in the future +::: + +## Write a Plugin + +```javascript +export function myPlugin(editor: Editor, options?: Option) { + // 1. update,see more:src/plugins/copy + editor.command.updateFunction = () => {} + + // 2. add,see more:src/plugins/markdown + editor.command.addFunction = () => {} +} +``` + +## Use Plugin + +```javascript +instance.add(myPlugin, options?: Option) +``` diff --git a/docs/en/guide/schema.md b/docs/en/guide/schema.md new file mode 100644 index 0000000..be43038 --- /dev/null +++ b/docs/en/guide/schema.md @@ -0,0 +1,132 @@ +# Data Structure + +```typescript +interface IElement { + // basic + id?: string; + type?: { + TEXT = 'text', + IMAGE = 'image', + TABLE = 'table', + HYPERLINK = 'hyperlink', + SUPERSCRIPT = 'superscript', + SUBSCRIPT = 'subscript', + SEPARATOR = 'separator', + PAGE_BREAK = 'pageBreak', + CONTROL = 'control', + CHECKBOX = 'checkbox', + LATEX = 'latex', + TAB = 'tab', + DATE = 'date', + BLOCK = 'block' + }; + value: string; + valueList?: IElement[]; // Use of composite elements (hyperlinks, titles, lists, and so on). + // style + font?: string; + size?: number; + width?: number; + height?: number; + bold?: boolean; + color?: string; + highlight?: string; + italic?: boolean; + underline?: boolean; + strikeout?: boolean; + rowFlex?: { + LEFT = 'left', + CENTER = 'center', + RIGHT = 'right', + ALIGNMENT = 'alignment' + }; + rowMargin?: number; + letterSpacing?: number; + // table + colgroup?: { + width: number; + }[]; + trList?: { + height: number; + tdList: { + colspan: number; + rowspan: number; + verticalAlign?: VerticalAlign; + backgroundColor?: string; + value: IElement[]; + }[]; + }[]; + borderType?: TableBorder; + // Hyperlinks + url?: string; + // Superscript and subscript + actualSize?: number; + // Dividing line + dashArray?: number[]; + // control + control?: { + type: { + TEXT = 'text', + SELECT = 'select', + CHECKBOX = 'checkbox' + }; + value: IElement[] | null; + placeholder?: string; + conceptId?: string; + prefix?: string; + postfix?: string; + code: string | null; + min?: number; + max?: number; + valueSets: { + value: string; + code: string; + }[]; + checkbox?: { + value: boolean | null; + code?: string; + disabled?: boolean; + }; + }; + controlComponent?: { + PREFIX = 'prefix', + POSTFIX = 'postfix', + PLACEHOLDER = 'placeholder', + VALUE = 'value', + CHECKBOX = 'checkbox' + }; + // checkbox + checkbox?: { + value: boolean | null; + code?: string; + disabled?: boolean; + }; + // LaTeX + laTexSVG?: string; + // date + dateFormat?: string; + // picture + imgDisplay?: { + INLINE = 'inline', + BLOCK = 'block' + } + // block + block?: { + type: { + IFRAME = 'iframe', + VIDEO = 'video' + }; + iframeBlock?: { + src: string; + }; + videoBlock?: { + src: string; + }; + }; + // title + level?: TitleLevel; + // list + listType?: ListType; + listStyle?: ListStyle; + listWrap?: boolean; +} +``` diff --git a/docs/en/guide/shortcut-custom.md b/docs/en/guide/shortcut-custom.md new file mode 100644 index 0000000..e3cf04a --- /dev/null +++ b/docs/en/guide/shortcut-custom.md @@ -0,0 +1,21 @@ +# Custom shortcut keys + +## How to use? + +```javascript +import Editor from "@hufe921/canvas-editor" + +const instance = new Editor(container, data, options) +instance.register.shortcutList([ + { + key: KeyMap; + ctrl?: boolean; + meta?: boolean; + mod?: boolean; // windows:ctrl || mac:command + shift?: boolean; + alt?: boolean; + isGlobal?: boolean; + callback: (command: Command) => any; + } + ]) +``` diff --git a/docs/en/guide/shortcut-internal.md b/docs/en/guide/shortcut-internal.md new file mode 100644 index 0000000..27661b2 --- /dev/null +++ b/docs/en/guide/shortcut-internal.md @@ -0,0 +1,165 @@ +# Internal shortcut keys + +## Backspace + +Feature: Forward delete + +## Delete + +Feature: Backward delete + +## Enter + +Feature: Line break + +## Shift + Enter + +Feature: Line breaks within the list + +## ← + +Feature: Move to the left + +## Shift + ← + +Feature: Zoom the selection to the left + +## → + +Feature: Move to the right + +## Shift + → + +Feature: Zoom the selection to the right + +## ↑ + +Feature: Move up + +## Shift + ↑ + +Feature: Zoom up the selection + +## ↓ + +Feature: Move down + +## Shift + ↓ + +Feature: Zoom down the selection + +## Esc + +Feature: Exit format brush + +## Tab + +Feature: Increase indent + +## Ctrl/Cmd + Z + +Feature: Undo + +## Ctrl/Cmd + Y + +Feature: Redo + +## Ctrl/Cmd + C + +Feature: Copy + +## Ctrl/Cmd + X + +Feature: Cut + +## Ctrl/Cmd + A + +Feature: Select all + +## Ctrl/Cmd + S + +Feature: Save + +## Ctrl/Cmd + { + +Feature: Increase the font + +## Ctrl/Cmd + } + +Feature: Reduce the font + +## Ctrl/Cmd + B + +Feature: Bold + +## Ctrl/Cmd + I + +Feature: Italic + +## Ctrl/Cmd + U + +Feature: Underline + +## Ctrl/Cmd + L + +Feature: Line left + +## Ctrl/Cmd + E + +Feature: Line center + +## Ctrl/Cmd + R + +Feature: Line right + +## Ctrl/Cmd + J + +Feature: Both sides are aligned + +## Ctrl + Shift + X + +Feature: Strikethrough + +## Ctrl/Cmd + Shift + > + +Feature: Superscript + +## Ctrl/Cmd + Shift + < + +Feature: Subscript + +## Ctrl + Alt/Option + 0 + +Feature: Main body + +## Ctrl + Alt/Option + 1 + +Feature: Header1 + +## Ctrl + Alt/Option + 2 + +Feature: Header2 + +## Ctrl + Alt/Option + 3 + +Feature: Header3 + +## Ctrl + Alt/Option + 4 + +Feature: Header4 + +## Ctrl + Alt/Option + 5 + +Feature: Header5 + +## Ctrl + Alt/Option + 6 + +Feature: Header6 + +## Ctrl/Cmd + Shift + I + +Feature: Unordered list + +## Ctrl/Cmd + Shift + U + +Feature: Ordered list diff --git a/docs/en/guide/start.md b/docs/en/guide/start.md new file mode 100644 index 0000000..16ac0e0 --- /dev/null +++ b/docs/en/guide/start.md @@ -0,0 +1,95 @@ +# Getting Started + +> WYSIWYG rich text editor. + +Benefit from the complete self-implementation of cursor and text layout. The underlying rendering can also be rendered by svg, See code:[feature/svg](https://github.com/Hufe921/canvas-editor/tree/feature/svg); Or complete pdf drawing with pdfjs,See code:[feature/pdf](https://github.com/Hufe921/canvas-editor/tree/feature/pdf). + +::: warning +The official only provides the editor core layer npm package, the menu bar or other external tools can refer to the document extension, or directly refer the implementation of [official](https://github.com/Hufe921/canvas-editor), See details [demo](https://hufe.club/canvas-editor/). +::: + +## Features + +- Rich text operations (Undo, Redo, Font, Size, Bold, Italic, Superscript, Alignment, Title, List, ...) +- Insert elements (Table, Image, Link, Code Block, Page Break, Math Formula, Date Picker, content Block, ...) +- Print (Based on canvas to picture, pdf drawing) +- Controls (Radio, Text, Checkbox) +- Right-click menu (Internal, Custom) +- Shortcut keys (Internal, Custom) +- Text, Element, Control drag and drop +- Header, Footer, Page Number +- Page Margin +- Watermark +- Pagination + +## TODO + +- Improve title and list functions +- Computational performance +- Control rule +- Table paging +- Out of the box version for vue, react and other frameworks + +## Step. 1: Download NPM Package + +```sh +npm i @hufe921/canvas-editor --save +``` + +## Step. 2: Prepare Container + +```html +
+``` + +## Step. 3: Instantiate Editor + +- Examples that only the body content is included + +```javascript +import Editor from '@hufe921/canvas-editor' + +new Editor( + document.querySelector('.canvas-editor'), + [ + { + value: 'Hello World' + } + ], + {} +) +``` + +- Examples that contain body, header, footer content + +```javascript +import Editor from '@hufe921/canvas-editor' + +new Editor( + document.querySelector('.canvas-editor'), + { + header: [ + { + value: 'Header', + rowFlex: RowFlex.CENTER + } + ], + main: [ + { + value: 'Hello World' + } + ], + footer: [ + { + value: 'canvas-editor', + size: 12 + } + ] + }, + {} +) +``` + +## Step. 4: Configuration Editor + +See the next section for details diff --git a/docs/en/index.md b/docs/en/index.md new file mode 100644 index 0000000..59a53be --- /dev/null +++ b/docs/en/index.md @@ -0,0 +1,43 @@ +--- +layout: home + +title: canvas-editor +titleTemplate: rich text editor by canvas/svg + +hero: + name: canvas-editor + text: canvas/svg based rich text editor + actions: + - theme: brand + text: Get Started + link: /en/guide/start.html + - theme: alt + text: View on Github + link: https://github.com/Hufe921/canvas-editor + +features: + - icon: 💡 + title: WYSIWYG + details: Similar to word pageable, what you see is what you get + - icon: ⚡️ + title: Lightweight Data Structure + details: A piece of JSON can render complex styles + - icon: 🛠️ + title: Rich Features + details: Supports familiar rich text operations, tables, watermarks, controls, formulas, etc + - icon: 📦 + title: Easy to Use + details: The core npm package is officially released, and the menu bar and toolbar can be maintained by themselves + - icon: 🔩 + title: Flexible Development Mechanism + details: Through the interface, you can obtain the life cycle, event callback, custom right-click menu, and shortcut keys + - icon: 🔑 + title: Full TypeScript Types API + details: Flexible apis and full TypeScript types +--- + + diff --git a/docs/guide/api.md b/docs/guide/api.md index 4cd6f8c..8fef5a9 100644 --- a/docs/guide/api.md +++ b/docs/guide/api.md @@ -1,4 +1,4 @@ -# 全局API +# 全局 API ## 使用方式 @@ -8,14 +8,17 @@ import Editor from "@hufe921/canvas-editor" const instance = new Editor(container, data, options) instance.apiName() ``` + ## destroy + 功能:销毁编辑器 用法: + ```javascript instance.destroy() ``` ::: warning -仅销毁编辑器dom及相关事件,菜单栏、工具栏、外部变量等需自行处理。 -::: \ No newline at end of file +仅销毁编辑器 dom 及相关事件,菜单栏、工具栏、外部变量等需自行处理。 +::: diff --git a/docs/guide/command-execute.md b/docs/guide/command-execute.md index 3cfb642..6295124 100644 --- a/docs/guide/command-execute.md +++ b/docs/guide/command-execute.md @@ -10,336 +10,421 @@ instance.command.commandName() ``` ## executeMode + 功能:切换编辑器模式(编辑、清洁、只读) 用法: + ```javascript instance.command.executeMode(editorMode: EditorMode) ``` ## executeCut + 功能:剪切 用法: + ```javascript instance.command.executeCut() ``` ## executeCopy + 功能:复制 用法: + ```javascript instance.command.executeCopy() ``` ## executePaste + 功能:粘贴 用法: + ```javascript instance.command.executePaste() ``` ## executeSelectAll + 功能:全选 用法: + ```javascript instance.command.executeSelectAll() ``` ## executeBackspace + 功能:向前删除 用法: + ```javascript instance.command.executeBackspace() ``` ## executeSetRange + 功能:设置选区 用法: + ```javascript instance.command.executeSetRange(startIndex: number , endIndex: number) ``` ## executeUndo + 功能:撤销 用法: + ```javascript instance.command.executeUndo() ``` ## executeRedo + 功能:重做 用法: + ```javascript instance.command.executeRedo() ``` ## executePainter + 功能:格式刷-复制样式 用法: + ```javascript instance.command.executePainter() ``` ## executeApplyPainterStyle + 功能:格式刷-应用样式 用法: + ```javascript instance.command.executeApplyPainterStyle() ``` ## executeFormat + 功能:清除样式 用法: + ```javascript instance.command.executeFormat() ``` ## executeFont + 功能:设置字体 用法: + ```javascript instance.command.executeFont(font: string) ``` ## executeSize + 功能:设置字号 用法: + ```javascript instance.command.executeSize(size: number) ``` ## executeSizeAdd + 功能:增大字号 用法: + ```javascript instance.command.executeSizeAdd() ``` ## executeSizeMinus + 功能:减小字号 用法: + ```javascript instance.command.executeSizeMinus() ``` ## executeBold + 功能:字体加粗 用法: + ```javascript instance.command.executeBold() ``` ## executeItalic + 功能:字体斜体 用法: + ```javascript instance.command.executeItalic() ``` ## executeUnderline + 功能:下划线 用法: + ```javascript instance.command.executeUnderline() ``` ## executeStrikeout + 功能:删除线 用法: + ```javascript instance.command.executeStrikeout() ``` ## executeSuperscript + 功能:上标 用法: + ```javascript instance.command.executeSuperscript() ``` ## executeSubscript + 功能:上下标 用法: + ```javascript instance.command.executeSubscript() ``` ## executeColor + 功能:字体颜色 用法: + ```javascript instance.command.executeColor() ``` ## executeHighlight + 功能:高亮 用法: + ```javascript instance.command.executeHighlight() ``` + ## executeTitle + 功能:标题设置 用法: + ```javascript instance.command.executeTitle(TitleLevel | null) ``` ## executeList + 功能:列表设置 用法: + ```javascript instance.command.executeList(listType: ListType | null, listStyle?: ListStyle) ``` ## executeRowFlex + 功能:行对齐 用法: + ```javascript instance.command.executeRowFlex(rowFlex: RowFlex) ``` ## executeRowMargin + 功能:行间距 用法: + ```javascript instance.command.executeRowMargin(rowMargin: number) ``` ## executeInsertTable + 功能:插入表格 用法: + ```javascript instance.command.executeInsertTable(row: number, col: number) ``` ## executeInsertTableTopRow + 功能:向上插入一行 用法: + ```javascript instance.command.executeInsertTableTopRow() ``` ## executeInsertTableBottomRow + 功能:向下插入一行 用法: + ```javascript instance.command.executeInsertTableBottomRow() ``` ## executeInsertTableLeftCol + 功能:向左插入一列 用法: + ```javascript instance.command.executeInsertTableLeftCol() ``` ## executeInsertTableRightCol + 功能:向右插入一列 用法: + ```javascript instance.command.executeInsertTableRightCol() ``` ## executeDeleteTableRow + 功能:删除当前行 用法: + ```javascript instance.command.executeDeleteTableRow() ``` ## executeDeleteTableCol + 功能:删除当前列 用法: + ```javascript instance.command.executeDeleteTableCol() ``` ## executeDeleteTable + 功能:删除表格 用法: + ```javascript instance.command.executeDeleteTable() ``` ## executeMergeTableCell + 功能:合并表格 用法: + ```javascript instance.command.executeMergeTableCell() ``` ## executeCancelMergeTableCell + 功能:取消合并表格 用法: + ```javascript instance.command.executeCancelMergeTableCell() ``` ## executeTableTdVerticalAlign + 功能:表格单元格垂直对齐方式 用法: + ```javascript instance.command.executeTableTdVerticalAlign(payload: VerticalAlign) ``` ## executeTableBorderType + 功能:表格边框类型 用法: + ```javascript instance.command.executeTableBorderType(payload: TableBorder) ``` ## executeTableTdBackgroundColor + 功能:表格单元格背景色 用法: + ```javascript instance.command.executeTableTdBackgroundColor(payload: string) ``` ## executeImage + 功能:插入图片 用法: + ```javascript instance.command.executeImage({ width: number; @@ -349,9 +434,11 @@ instance.command.executeImage({ ``` ## executeHyperlink + 功能:插入链接 用法: + ```javascript instance.command.executeHyperlink({ type: ElementType.HYPERLINK, @@ -362,49 +449,61 @@ instance.command.executeHyperlink({ ``` ## executeDeleteHyperlink + 功能:删除链接 用法: + ```javascript instance.command.executeDeleteHyperlink() ``` ## executeCancelHyperlink + 功能:取消链接 用法: + ```javascript instance.command.executeCancelHyperlink() ``` ## executeEditHyperlink + 功能:编辑链接 用法: + ```javascript instance.command.executeEditHyperlink(newUrl: string) ``` ## executeSeparator + 功能:插入分割线 用法: + ```javascript instance.command.executeSeparator(dashArray: number[]) ``` ## executePageBreak + 功能:分页符 用法: + ```javascript instance.command.executePageBreak() ``` ## executeAddWatermark + 功能:添加水印 用法: + ```javascript instance.command.executeAddWatermark({ data: string; @@ -416,185 +515,231 @@ instance.command.executeAddWatermark({ ``` ## executeDeleteWatermark -功能:添加水印 + +功能:删除水印 用法: + ```javascript instance.command.executeDeleteWatermark() ``` ## executeSearch + 功能:搜索 用法: + ```javascript instance.command.executeSearch(keyword: string) ``` ## executeSearchNavigatePre + 功能:搜索导航-上一个 用法: + ```javascript instance.command.executeSearchNavigatePre() ``` ## executeSearchNavigateNext + 功能:搜索导航-下一个 用法: + ```javascript instance.command.executeSearchNavigateNext() ``` ## executeReplace + 功能:搜索替换 用法: + ```javascript instance.command.executeReplace(newWord: string) ``` ## executePrint + 功能:打印 用法: + ```javascript instance.command.executePrint() ``` ## executeReplaceImageElement + 功能:替换图片 用法: + ```javascript instance.command.executeReplaceImageElement(newUrl: string) ``` ## executeSaveAsImageElement + 功能:另存为图片 用法: + ```javascript instance.command.executeSaveAsImageElement() ``` ## executeChangeImageDisplay + 功能:改变图片行显示方式 用法: + ```javascript instance.command.executeSaveAsImageElement(element: IElement, display: ImageDisplay) ``` ## executePageMode + 功能:页面模式 用法: + ```javascript instance.command.executePageMode(pageMode: PageMode) ``` ## executePageScaleRecovery + 功能:恢复页面原始缩放比例 用法: + ```javascript instance.command.executePageScaleRecovery() ``` ## executePageScaleMinus + 功能:页面缩小 用法: + ```javascript instance.command.executePageScaleMinus() ``` ## executePageScaleAdd + 功能:页面放大 用法: + ```javascript instance.command.executePageScaleAdd() ``` ## executePaperSize + 功能:设置纸张大小 用法: + ```javascript instance.command.executePaperSize(width: number, height: number) ``` ## executePaperDirection + 功能:设置纸张方向 用法: + ```javascript instance.command.executePaperDirection(paperDirection: PaperDirection) ``` ## executeSetPaperMargin + 功能:设置纸张页边距 用法: + ```javascript instance.command.executeSetPaperMargin([top: number, right: number, bottom: number, left: number]) ``` ## executeInsertElementList + 功能:插入元素 用法: + ```javascript instance.command.executeInsertElementList(elementList: IElement[]) ``` ## executeAppendElementList + 功能:追加元素 用法: + ```javascript instance.command.executeAppendElementList(elementList: IElement[], options?: IAppendElementListOption) ``` ## executeSetValue + 功能:设置编辑器数据 用法: + ```javascript instance.command.executeSetValue(payload: Partial) ``` ## executeRemoveControl + 功能:删除控件 用法: + ```javascript instance.command.executeRemoveControl() ``` ## executeSetLocale + 功能:设置本地语言 用法: + ```javascript instance.command.executeSetLocale(locale: string) ``` ## executeLocationCatalog + 功能:定位目录位置 用法: + ```javascript instance.command.executeLocationCatalog(titleId: string) ``` ## executeWordTool + 功能:文字工具(删除空行、行首空格) 用法: + ```javascript instance.command.executeWordTool() -``` \ No newline at end of file +``` diff --git a/docs/guide/command-get.md b/docs/guide/command-get.md index 741c82f..720079b 100644 --- a/docs/guide/command-get.md +++ b/docs/guide/command-get.md @@ -8,10 +8,13 @@ import Editor from "@hufe921/canvas-editor" const instance = new Editor(container, data, options) const value = instance.command.commandName() ``` + ## getValue + 功能:获取当前文档信息 用法: + ```javascript const { version: string; @@ -25,49 +28,62 @@ const { ``` ## getImage -功能:获取当前页面图片base64字符串 + +功能:获取当前页面图片 base64 字符串 用法: + ```javascript const base64StringList = await instance.command.getImage(pixelRatio?: number) ``` ## getWordCount + 功能:获取文档字数 用法: + ```javascript const wordCount = await instance.command.getWordCount() ``` ## getRangeText + 功能:获取选区文本 用法: + ```javascript const rangeText = instance.command.getRangeText() ``` ## getRangeContext + 功能:获取选区上下文 用法: + ```javascript const rangeContext = instance.command.getRangeContext() ``` ## getPaperMargin + 功能:获取页边距 用法: + ```javascript -const [top: number, right: number, bottom: number, left: number] = instance.command.getPaperMargin() +const [top: number, right: number, bottom: number, left: number] = + instance.command.getPaperMargin() ``` ## getSearchNavigateInfo + 功能:获取搜索导航信息 用法: + ```javascript const { index: number; @@ -76,17 +92,21 @@ const { ``` ## getCatalog + 功能:获取目录 用法: + ```javascript const catalog = await instance.command.getCatalog() ``` ## getHTML -功能:获取HTML + +功能:获取 HTML 用法: + ```javascript const { header: string diff --git a/docs/guide/contextmenu-custom.md b/docs/guide/contextmenu-custom.md index bf92efd..ae66cf8 100644 --- a/docs/guide/contextmenu-custom.md +++ b/docs/guide/contextmenu-custom.md @@ -17,4 +17,4 @@ instance.register.contextMenuList([ childMenus?: IRegisterContextMenu[]; } ]) -``` \ No newline at end of file +``` diff --git a/docs/guide/contextmenu-internal.md b/docs/guide/contextmenu-internal.md index 5939da1..9486d24 100644 --- a/docs/guide/contextmenu-internal.md +++ b/docs/guide/contextmenu-internal.md @@ -1,6 +1,7 @@ # 内部右键菜单 ## 全局 + - 剪切 - 复制 - 粘贴 @@ -8,11 +9,13 @@ - 打印 ## 超链接 + - 删除链接 - 取消链接 - 编辑链接 ## 图片 + - 更改图片 - 另存为图片 - 文字环绕 @@ -20,6 +23,7 @@ - 上下型环绕 ## 表格 + - 表格边框 - 所有框线 - 无框线 @@ -29,16 +33,17 @@ - 垂直居中 - 底端对齐 - 插入行列 - - 上方插入1行 - - 下方插入1行 - - 左侧插入1列 - - 右侧插入1列 + - 上方插入 1 行 + - 下方插入 1 行 + - 左侧插入 1 列 + - 右侧插入 1 列 - 删除行列 - - 删除1行 - - 删除1列 + - 删除 1 行 + - 删除 1 列 - 删除整个表格 - 合并单元格 - 取消合并 ## 控件 -- 删除控件 \ No newline at end of file + +- 删除控件 diff --git a/docs/guide/eventbus.md b/docs/guide/eventbus.md index c6456ed..9fa2a2f 100644 --- a/docs/guide/eventbus.md +++ b/docs/guide/eventbus.md @@ -21,81 +21,101 @@ instance.eventBus.off( ``` ## rangeStyleChange + 功能:选区样式发生改变 用法: + ```javascript instance.eventBus.on('rangeStyleChange', (payload: IRangeStyle) => void) ``` ## visiblePageNoListChange + 功能:可见页发生改变 用法: + ```javascript instance.eventBus.on('visiblePageNoListChange', (payload: number[]) => void) ``` ## intersectionPageNoChange + 功能:当前页发生改变 用法: + ```javascript instance.eventBus.on('intersectionPageNoChange', (payload: number) => void) ``` ## pageSizeChange + 功能:当前页数发生改变 用法: + ```javascript instance.eventBus.on('pageSizeChange', (payload: number) => void) ``` ## pageScaleChange + 功能:当前页面缩放比例发生改变 用法: + ```javascript instance.eventBus.on('pageScaleChange', (payload: number) => void) ``` ## contentChange + 功能:当前内容发生改变 用法: + ```javascript instance.eventBus.on('contentChange', () => void) ``` ## controlChange + 功能:当前光标所在控件发生改变 用法: + ```javascript instance.eventBus.on('controlChange', (payload: IControl | null) => void) ``` ## pageModeChange + 功能:页面模式发生改变 用法: + ```javascript instance.eventBus.on('pageModeChange', (payload: PageMode) => void) ``` ## saved + 功能:文档执行保存 用法: + ```javascript instance.eventBus.on('saved', (payload: IEditorResult) => void) ``` ## zoneChange + 功能:区域发生改变 用法: + ```javascript instance.eventBus.on('zoneChange', (payload: EditorZone) => void) -``` \ No newline at end of file +``` diff --git a/docs/guide/i18n.md b/docs/guide/i18n.md index 9fc508e..0953ae7 100644 --- a/docs/guide/i18n.md +++ b/docs/guide/i18n.md @@ -20,74 +20,74 @@ instance.command.executeSetLocale(locale) interface ILang { contextmenu: { global: { - cut: string; - copy: string; - paste: string; - selectAll: string; - print: string; - }; - control: { - delete: string; - }; - hyperlink: { - delete: string; - cancel: string; - edit: string; - }; - image: { - change: string; - saveAs: string; - textWrap: string; - textWrapType: { - embed: string; - upDown: string; - } - }; - table: { - insertRowCol: string; - insertTopRow: string; - insertBottomRow: string; - insertLeftCol: string; - insertRightCol: string; - deleteRowCol: string; - deleteRow: string; - deleteCol: string; - deleteTable: string; - mergeCell: string; - mergeCancelCell: string; - verticalAlign: string; - verticalAlignTop: string; - verticalAlignMiddle: string; - verticalAlignBottom: string; - border: string; - borderAll: string; - borderEmpty: string; - borderExternal: string; - }; - }; + cut: string + copy: string + paste: string + selectAll: string + print: string + } + control: { + delete: string + } + hyperlink: { + delete: string + cancel: string + edit: string + } + image: { + change: string + saveAs: string + textWrap: string + textWrapType: { + embed: string + upDown: string + } + } + table: { + insertRowCol: string + insertTopRow: string + insertBottomRow: string + insertLeftCol: string + insertRightCol: string + deleteRowCol: string + deleteRow: string + deleteCol: string + deleteTable: string + mergeCell: string + mergeCancelCell: string + verticalAlign: string + verticalAlignTop: string + verticalAlignMiddle: string + verticalAlignBottom: string + border: string + borderAll: string + borderEmpty: string + borderExternal: string + } + } datePicker: { - now: string; - confirm: string; - return: string; - timeSelect: string; + now: string + confirm: string + return: string + timeSelect: string weeks: { - sun: string; - mon: string; - tue: string; - wed: string; - thu: string; - fri: string; - sat: string; - }; - year: string; - month: string; - hour: string; - minute: string; - second: string; - }; + sun: string + mon: string + tue: string + wed: string + thu: string + fri: string + sat: string + } + year: string + month: string + hour: string + minute: string + second: string + } frame: { - header: string; - footer: string; + header: string + footer: string } } -``` \ No newline at end of file +``` diff --git a/docs/guide/listener.md b/docs/guide/listener.md index c679fcd..9fac188 100644 --- a/docs/guide/listener.md +++ b/docs/guide/listener.md @@ -1,6 +1,6 @@ # 事件监听(listener) -> listener只能响应一个方法,推荐使用eventBus进行事件监听 +> listener 只能响应一个方法,推荐使用 eventBus 进行事件监听 ## 使用方式 @@ -12,81 +12,101 @@ instance.listener.eventName = ()=>{} ``` ## rangeStyleChange + 功能:选区样式发生改变 用法: + ```javascript -instance.listener.rangeStyleChange = (payload: IRangeStyle)=>{} +instance.listener.rangeStyleChange = (payload: IRangeStyle) => {} ``` ## visiblePageNoListChange + 功能:可见页发生改变 用法: + ```javascript -instance.listener.visiblePageNoListChange = (payload: number[])=>{} +instance.listener.visiblePageNoListChange = (payload: number[]) => {} ``` ## intersectionPageNoChange + 功能:当前页发生改变 用法: + ```javascript -instance.listener.intersectionPageNoChange = (payload: number)=>{} +instance.listener.intersectionPageNoChange = (payload: number) => {} ``` ## pageSizeChange + 功能:当前页数发生改变 用法: + ```javascript -instance.listener.pageSizeChange = (payload: number)=>{} +instance.listener.pageSizeChange = (payload: number) => {} ``` ## pageScaleChange + 功能:当前页面缩放比例发生改变 用法: + ```javascript -instance.listener.pageScaleChange = (payload: number)=>{} +instance.listener.pageScaleChange = (payload: number) => {} ``` ## contentChange + 功能:当前内容发生改变 用法: + ```javascript -instance.listener.contentChange = ()=>{} +instance.listener.contentChange = () => {} ``` ## controlChange + 功能:当前光标所在控件发生改变 用法: + ```javascript -instance.listener.controlChange = (payload: IControl | null)=>{} +instance.listener.controlChange = (payload: IControl | null) => {} ``` ## pageModeChange + 功能:页面模式发生改变 用法: + ```javascript -instance.listener.pageModeChange = (payload: PageMode)=>{} +instance.listener.pageModeChange = (payload: PageMode) => {} ``` ## saved + 功能:文档执行保存 用法: + ```javascript -instance.listener.saved = (payload: IEditorResult)=>{} +instance.listener.saved = (payload: IEditorResult) => {} ``` ## zoneChange + 功能:区域发生改变 用法: + ```javascript -instance.listener.zoneChange = (payload: EditorZone)=>{} -``` \ No newline at end of file +instance.listener.zoneChange = (payload: EditorZone) => {} +``` diff --git a/docs/guide/option.md b/docs/guide/option.md index 57f33a0..b961b34 100644 --- a/docs/guide/option.md +++ b/docs/guide/option.md @@ -14,52 +14,52 @@ new Editor(container, IEditorData | IElement[], { ```typescript interface IEditorOption { - mode?: EditorMode; // 编辑器模式:编辑、清洁(不显示视觉辅助元素。如:分页符)、只读。默认:编辑 - defaultType?: string; // 默认元素类型。默认:TEXT - defaultFont?: string; // 默认字体。默认:Yahei - defaultSize?: number; // 默认字号。默认:16 - minSize?: number; // 最小字号。默认:5 - maxSize?: number; // 最大字号。默认:72 - defaultBasicRowMarginHeight?: number; // 默认行高。默认:8 - defaultRowMargin?: number; // 默认行间距。默认:1 - defaultTabWidth?: number; // 默认tab宽度。默认:32 - width?: number; // 纸张宽度。默认:794 - height?: number; // 纸张高度。默认:1123 - scale?: number; // 缩放比例。默认:1 - pageGap?: number; // 纸张间隔。默认:20 - underlineColor?: string; // 下划线颜色。默认:#000000 - strikeoutColor?: string; // 删除线颜色。默认:#FF0000 - rangeColor?: string; // 选区颜色。默认:#AECBFA - rangeAlpha?: number; // 选区透明度。默认:0.6 - rangeMinWidth?: number; // 选区最小宽度。默认:5 - searchMatchColor?: string; // 搜索高亮颜色。默认:#FFFF00 - searchNavigateMatchColor?: string; // 搜索导航高亮颜色。默认:#AAD280 - searchMatchAlpha?: number; // 搜索高亮透明度。默认:0.6 - highlightAlpha?: number; // 高亮元素透明度。默认:0.6 - resizerColor?: string; // 图片尺寸器颜色。默认:#4182D9 - resizerSize?: number; // 图片尺寸器大小。默认:5 - marginIndicatorSize?: number; // 页边距指示器长度。默认:35 - marginIndicatorColor?: string; // 页边距指示器颜色。默认:#BABABA - margins?: IMargin; // 页面边距。默认:[100, 120, 100, 120] - pageMode?: PageMode; // 纸张模式:连页、分页。默认:分页 - tdPadding?: number; // 单元格内边距。默认:5 - defaultTrMinHeight?: number; // 默认表格行最小高度。默认:40 - defaultColMinWidth?: number; // 默认表格列最小宽度(整体宽度足够时应用,否则会按比例缩小)。默认:40 - defaultHyperlinkColor?: string; // 默认超链接颜色。默认:#0000FF - header?: IHeader; // 页眉信息。{top?:number; maxHeightRadio?:MaxHeightRatio;} - footer?: IFooter; // 页脚信息。{bottom?:number; maxHeightRadio?:MaxHeightRatio;} - pageNumber?: IPageNumber; // 页码信息。{bottom:number; size:number; font:string; color:string; rowFlex:RowFlex; format:string; numberType:NumberType;} - paperDirection?: PaperDirection; // 纸张方向:纵向、横向 - inactiveAlpha?: number; // 正文内容失焦时透明度。默认值:0.6 - historyMaxRecordCount: number; // 历史(撤销重做)最大记录次数。默认:100次 - printPixelRatio: number; // 打印像素比率(值越大越清晰,但尺寸越大)。默认:3 - wordBreak: WordBreak; // 单词与标点断行:BREAK_WORD首行不出现标点&单词不拆分、BREAK_ALL按字符宽度撑满后折行。默认:BREAK_WORD - watermark?: IWatermark; // 水印信息。{data:string; color?:string; opacity?:number; size?:number; font?:string;} - control?: IControlOption; // 控件信息。 {placeholderColor?:string; bracketColor?:string; prefix?:string; postfix?:string;} - checkbox?: ICheckboxOption; // 复选框信息。{width?:number; height?:number; gap?:number; lineWidth?:number; fillStyle?:string; fontStyle?: string;} - cursor?: ICursorOption; // 光标样式。{width?: number; color?: string; dragWidth?: number; dragColor?: string;} - title?: ITitleOption; // 标题配置。{ defaultFirstSize?: number; defaultSecondSize?: number; defaultThirdSize?: number defaultFourthSize?: number; defaultFifthSize?: number; defaultSixthSize?: number;} - placeholder?: IPlaceholder; // 编辑器空白占位文本 + mode?: EditorMode // 编辑器模式:编辑、清洁(不显示视觉辅助元素。如:分页符)、只读。默认:编辑 + defaultType?: string // 默认元素类型。默认:TEXT + defaultFont?: string // 默认字体。默认:Yahei + defaultSize?: number // 默认字号。默认:16 + minSize?: number // 最小字号。默认:5 + maxSize?: number // 最大字号。默认:72 + defaultBasicRowMarginHeight?: number // 默认行高。默认:8 + defaultRowMargin?: number // 默认行间距。默认:1 + defaultTabWidth?: number // 默认tab宽度。默认:32 + width?: number // 纸张宽度。默认:794 + height?: number // 纸张高度。默认:1123 + scale?: number // 缩放比例。默认:1 + pageGap?: number // 纸张间隔。默认:20 + underlineColor?: string // 下划线颜色。默认:#000000 + strikeoutColor?: string // 删除线颜色。默认:#FF0000 + rangeColor?: string // 选区颜色。默认:#AECBFA + rangeAlpha?: number // 选区透明度。默认:0.6 + rangeMinWidth?: number // 选区最小宽度。默认:5 + searchMatchColor?: string // 搜索高亮颜色。默认:#FFFF00 + searchNavigateMatchColor?: string // 搜索导航高亮颜色。默认:#AAD280 + searchMatchAlpha?: number // 搜索高亮透明度。默认:0.6 + highlightAlpha?: number // 高亮元素透明度。默认:0.6 + resizerColor?: string // 图片尺寸器颜色。默认:#4182D9 + resizerSize?: number // 图片尺寸器大小。默认:5 + marginIndicatorSize?: number // 页边距指示器长度。默认:35 + marginIndicatorColor?: string // 页边距指示器颜色。默认:#BABABA + margins?: IMargin // 页面边距。默认:[100, 120, 100, 120] + pageMode?: PageMode // 纸张模式:连页、分页。默认:分页 + tdPadding?: number // 单元格内边距。默认:5 + defaultTrMinHeight?: number // 默认表格行最小高度。默认:40 + defaultColMinWidth?: number // 默认表格列最小宽度(整体宽度足够时应用,否则会按比例缩小)。默认:40 + defaultHyperlinkColor?: string // 默认超链接颜色。默认:#0000FF + header?: IHeader // 页眉信息。{top?:number; maxHeightRadio?:MaxHeightRatio;} + footer?: IFooter // 页脚信息。{bottom?:number; maxHeightRadio?:MaxHeightRatio;} + pageNumber?: IPageNumber // 页码信息。{bottom:number; size:number; font:string; color:string; rowFlex:RowFlex; format:string; numberType:NumberType;} + paperDirection?: PaperDirection // 纸张方向:纵向、横向 + inactiveAlpha?: number // 正文内容失焦时透明度。默认值:0.6 + historyMaxRecordCount: number // 历史(撤销重做)最大记录次数。默认:100次 + printPixelRatio: number // 打印像素比率(值越大越清晰,但尺寸越大)。默认:3 + wordBreak: WordBreak // 单词与标点断行:BREAK_WORD首行不出现标点&单词不拆分、BREAK_ALL按字符宽度撑满后折行。默认:BREAK_WORD + watermark?: IWatermark // 水印信息。{data:string; color?:string; opacity?:number; size?:number; font?:string;} + control?: IControlOption // 控件信息。 {placeholderColor?:string; bracketColor?:string; prefix?:string; postfix?:string;} + checkbox?: ICheckboxOption // 复选框信息。{width?:number; height?:number; gap?:number; lineWidth?:number; fillStyle?:string; fontStyle?: string;} + cursor?: ICursorOption // 光标样式。{width?: number; color?: string; dragWidth?: number; dragColor?: string;} + title?: ITitleOption // 标题配置。{ defaultFirstSize?: number; defaultSecondSize?: number; defaultThirdSize?: number defaultFourthSize?: number; defaultFifthSize?: number; defaultSixthSize?: number;} + placeholder?: IPlaceholder // 编辑器空白占位文本 } ``` @@ -67,9 +67,9 @@ interface IEditorOption { ```typescript interface IHeader { - top?: number; // 距离页面顶部大小。默认:30 - maxHeightRadio?: MaxHeightRatio; // 占页面最大高度比。默认:HALF - disabled?: boolean; // 是否禁用 + top?: number // 距离页面顶部大小。默认:30 + maxHeightRadio?: MaxHeightRatio // 占页面最大高度比。默认:HALF + disabled?: boolean // 是否禁用 } ``` @@ -77,9 +77,9 @@ interface IHeader { ```typescript interface IFooter { - bottom?: number; // 距离页面底部大小。默认:30 - maxHeightRadio?: MaxHeightRatio; // 占页面最大高度比。默认:HALF - disabled?: boolean; // 是否禁用 + bottom?: number // 距离页面底部大小。默认:30 + maxHeightRadio?: MaxHeightRatio // 占页面最大高度比。默认:HALF + disabled?: boolean // 是否禁用 } ``` @@ -87,16 +87,16 @@ interface IFooter { ```typescript interface IPageNumber { - bottom?: number; // 距离页面底部大小。默认:60 - size?: number; // 字体大小。默认:12 - font?: string; // 字体。默认:Yahei - color?: string; // 字体颜色。默认:#000000 - rowFlex?: RowFlex; // 行对齐方式。默认:CENTER - format?: string; // 页码格式。默认:{pageNo}。示例:第{pageNo}页/共{pageCount}页 - numberType?: NumberType; // 数字类型。默认:ARABIC - disabled?: boolean; // 是否禁用 - startPageNo?: number; // 起始页码。默认:1 - fromPageNo?: number; // 从第几页开始出现页码。默认:0 + bottom?: number // 距离页面底部大小。默认:60 + size?: number // 字体大小。默认:12 + font?: string // 字体。默认:Yahei + color?: string // 字体颜色。默认:#000000 + rowFlex?: RowFlex // 行对齐方式。默认:CENTER + format?: string // 页码格式。默认:{pageNo}。示例:第{pageNo}页/共{pageCount}页 + numberType?: NumberType // 数字类型。默认:ARABIC + disabled?: boolean // 是否禁用 + startPageNo?: number // 起始页码。默认:1 + fromPageNo?: number // 从第几页开始出现页码。默认:0 } ``` @@ -104,11 +104,11 @@ interface IPageNumber { ```typescript interface IWatermark { - data: string; // 文本。 - color?: string; // 颜色。默认:#AEB5C0 - opacity?: number; // 透明度。默认:0.3 - size?: number; // 字体大小。默认:200 - font?: string; // 字体。默认:Yahei + data: string // 文本。 + color?: string // 颜色。默认:#AEB5C0 + opacity?: number // 透明度。默认:0.3 + size?: number // 字体大小。默认:200 + font?: string // 字体。默认:Yahei } ``` @@ -116,10 +116,10 @@ interface IWatermark { ```typescript interface IPlaceholder { - data: string; // 文本。 - color?: string; // 颜色。默认:#DCDFE6 - opacity?: number; // 透明度。默认:1 - size?: number; // 字体大小。默认:16 - font?: string; // 字体。默认:Yahei + data: string // 文本。 + color?: string // 颜色。默认:#DCDFE6 + opacity?: number // 透明度。默认:1 + size?: number // 字体大小。默认:16 + font?: string // 字体。默认:Yahei } ``` diff --git a/docs/guide/plugin.md b/docs/guide/plugin.md index 36fcc46..ed1cf6c 100644 --- a/docs/guide/plugin.md +++ b/docs/guide/plugin.md @@ -20,4 +20,4 @@ export function myPlugin(editor: Editor, options?: Option) { ```javascript instance.add(myPlugin, options?: Option) -``` \ No newline at end of file +``` diff --git a/docs/guide/schema.md b/docs/guide/schema.md index d12dfa6..8fb6837 100644 --- a/docs/guide/schema.md +++ b/docs/guide/schema.md @@ -129,4 +129,4 @@ interface IElement { listStyle?: ListStyle; listWrap?: boolean; } -``` \ No newline at end of file +``` diff --git a/docs/guide/shortcut-custom.md b/docs/guide/shortcut-custom.md index eb535f8..12d3ca4 100644 --- a/docs/guide/shortcut-custom.md +++ b/docs/guide/shortcut-custom.md @@ -18,4 +18,4 @@ instance.register.shortcutList([ callback: (command: Command) => any; } ]) -``` \ No newline at end of file +``` diff --git a/docs/guide/shortcut-internal.md b/docs/guide/shortcut-internal.md index 8ed3b2d..42f0c3f 100644 --- a/docs/guide/shortcut-internal.md +++ b/docs/guide/shortcut-internal.md @@ -1,124 +1,165 @@ # 内部快捷键 ## Backspace + 功能:向前删除 ## Delete + 功能:向后删除 ## Enter + 功能:换行 ## Shift + Enter + 功能:列表内换行 ## ← + 功能:向左移动 ## Shift + ← + 功能:向左缩放选区 ## → + 功能:向右移动 ## Shift + → + 功能:向右缩放选区 ## ↑ + 功能:向上移动 ## Shift + ↑ + 功能:向上缩放选区 ## ↓ + 功能:向下移动 ## Shift + ↓ + 功能:向下缩放选区 ## Esc + 功能:退出格式刷 ## Tab + 功能:增加缩进 ## Ctrl/Cmd + Z + 功能:撤销 ## Ctrl/Cmd + Y + 功能:重做 ## Ctrl/Cmd + C + 功能:复制 ## Ctrl/Cmd + X + 功能:剪切 ## Ctrl/Cmd + A + 功能:全选 ## Ctrl/Cmd + S + 功能:保存 ## Ctrl/Cmd + { + 功能:增大字体 ## Ctrl/Cmd + } + 功能:减小字体 ## Ctrl/Cmd + B + 功能:加粗 ## Ctrl/Cmd + I + 功能:斜体 ## Ctrl/Cmd + U + 功能:下划线 ## Ctrl/Cmd + L + 功能:行居左 ## Ctrl/Cmd + E + 功能:行居中 ## Ctrl/Cmd + R + 功能:行居右 ## Ctrl/Cmd + J + 功能:两端对齐 ## Ctrl + Shift + X + 功能:删除线 ## Ctrl/Cmd + Shift + > + 功能:上标 ## Ctrl/Cmd + Shift + < + 功能:下标 ## Ctrl + Alt/Option + 0 + 功能:正文 ## Ctrl + Alt/Option + 1 + 功能:标题一 ## Ctrl + Alt/Option + 2 + 功能:标题二 ## Ctrl + Alt/Option + 3 + 功能:标题三 ## Ctrl + Alt/Option + 4 + 功能:标题四 ## Ctrl + Alt/Option + 5 + 功能:标题五 ## Ctrl + Alt/Option + 6 + 功能:标题六 ## Ctrl/Cmd + Shift + I + 功能:无序列表 ## Ctrl/Cmd + Shift + U -功能:有序列表 \ No newline at end of file + +功能:有序列表 diff --git a/docs/guide/start.md b/docs/guide/start.md index 515d080..29b577e 100644 --- a/docs/guide/start.md +++ b/docs/guide/start.md @@ -2,17 +2,17 @@ > 所见即所得的富文本编辑器。 -得益于光标及文字排版的完全自行实现。绘制底层也可由svg渲染,详见代码:[feature/svg](https://github.com/Hufe921/canvas-editor/tree/feature/svg);或借助pdfjs的完成pdf的绘制,详见代码:[feature/pdf](https://github.com/Hufe921/canvas-editor/tree/feature/pdf)。 +得益于光标及文字排版的完全自行实现。绘制底层也可由 svg 渲染,详见代码:[feature/svg](https://github.com/Hufe921/canvas-editor/tree/feature/svg);或借助 pdfjs 的完成 pdf 的绘制,详见代码:[feature/pdf](https://github.com/Hufe921/canvas-editor/tree/feature/pdf)。 ::: warning -官方仅提供编辑器核心层npm包,菜单栏或其他外部工具可自行参考文档扩展,或直接参考[官方](https://github.com/Hufe921/canvas-editor)实现,详见[demo](https://hufe.club/canvas-editor/)。 +官方仅提供编辑器核心层 npm 包,菜单栏或其他外部工具可自行参考文档扩展,或直接参考[官方](https://github.com/Hufe921/canvas-editor)实现,详见[demo](https://hufe.club/canvas-editor/)。 ::: ## 功能点 - 富文本操作(撤销、重做、字体、字号、加粗、斜体、上下标、对齐方式、标题、列表.....) -- 插入元素(表格、图片、链接、代码块、分页符、Math公式、日期选择器、内容块......) -- 打印(基于canvas转图片、pdf绘制) +- 插入元素(表格、图片、链接、代码块、分页符、Math 公式、日期选择器、内容块......) +- 打印(基于 canvas 转图片、pdf 绘制) - 控件(单选、文本、复选框) - 右键菜单(内部、自定义) - 快捷键(内部、自定义) @@ -28,9 +28,9 @@ - 计算性能 - 控件规则 - 表格分页 -- vue、react等框架开箱即用版 +- vue、react 等框架开箱即用版 -## Step. 1: 下载npm包 +## Step. 1: 下载 npm 包 ```sh npm i @hufe921/canvas-editor --save @@ -45,35 +45,51 @@ npm i @hufe921/canvas-editor --save ## Step. 3: 实例化编辑器 - 仅包含正文内容 + ```javascript -import Editor from "@hufe921/canvas-editor" +import Editor from '@hufe921/canvas-editor' -new Editor(document.querySelector(".canvas-editor"), [ +new Editor( + document.querySelector('.canvas-editor'), + [ { - value: "Hello World" + value: 'Hello World' } - ], {}) + ], + {} +) ``` - 包含正文、页眉、页脚内容 + ```javascript -import Editor from "@hufe921/canvas-editor" - -new Editor(document.querySelector(".canvas-editor"), { - header: [{ - value: "Header", - rowFlex: RowFlex.CENTER - }], - main: [{ - value: "Hello World" - }], - footer: [{ - value: 'canvas-editor', - size: 12 - }] -}, {}) +import Editor from '@hufe921/canvas-editor' + +new Editor( + document.querySelector('.canvas-editor'), + { + header: [ + { + value: 'Header', + rowFlex: RowFlex.CENTER + } + ], + main: [ + { + value: 'Hello World' + } + ], + footer: [ + { + value: 'canvas-editor', + size: 12 + } + ] + }, + {} +) ``` ## Step. 4: 配置编辑器 -详见下一节 \ No newline at end of file +详见下一节 diff --git a/docs/index.md b/docs/index.md index 9234403..2de4457 100644 --- a/docs/index.md +++ b/docs/index.md @@ -40,4 +40,4 @@ features: .main>p { max-width:100% !important; } - \ No newline at end of file + diff --git a/package.json b/package.json index 569e92d..89b95d1 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "typescript": "^4.3.2", "vite": "^2.4.2", "vite-plugin-css-injected-by-js": "^2.1.1", - "vitepress": "^1.0.0-alpha.33", + "vitepress": "1.0.0-beta.6", "vue": "^3.2.45" }, "dependencies": { @@ -71,4 +71,4 @@ "pre-commit": "npm run lint && npm run type:check", "commit-msg": "node scripts/verifyCommit.js" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index c50572b..8cb0869 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,24 +2,32 @@ # yarn lockfile v1 -"@algolia/autocomplete-core@1.7.2": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.7.2.tgz#8abbed88082f611997538760dffcb43b33b1fd1d" - integrity sha512-eclwUDC6qfApNnEfu1uWcL/rudQsn59tjEoUYZYE2JSXZrHLRjBUGMxiCoknobU2Pva8ejb0eRxpIYDtVVqdsw== +"@algolia/autocomplete-core@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz#1d56482a768c33aae0868c8533049e02e8961be7" + integrity sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw== dependencies: - "@algolia/autocomplete-shared" "1.7.2" + "@algolia/autocomplete-plugin-algolia-insights" "1.9.3" + "@algolia/autocomplete-shared" "1.9.3" -"@algolia/autocomplete-preset-algolia@1.7.2": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.2.tgz#9cd4f64b3d64399657ee2dc2b7e0a939e0713a26" - integrity sha512-+RYEG6B0QiGGfRb2G3MtPfyrl0dALF3cQNTWBzBX6p5o01vCCGTTinAm2UKG3tfc2CnOMAtnPLkzNZyJUpnVJw== +"@algolia/autocomplete-plugin-algolia-insights@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz#9b7f8641052c8ead6d66c1623d444cbe19dde587" + integrity sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg== dependencies: - "@algolia/autocomplete-shared" "1.7.2" + "@algolia/autocomplete-shared" "1.9.3" -"@algolia/autocomplete-shared@1.7.2": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.2.tgz#daa23280e78d3b42ae9564d12470ae034db51a89" - integrity sha512-QCckjiC7xXHIUaIL3ektBtjJ0w7tTA3iqKcAE/Hjn1lZ5omp7i3Y4e09rAr9ZybqirL7AbxCLLq0Ra5DDPKeug== +"@algolia/autocomplete-preset-algolia@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz#64cca4a4304cfcad2cf730e83067e0c1b2f485da" + integrity sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA== + dependencies: + "@algolia/autocomplete-shared" "1.9.3" + +"@algolia/autocomplete-shared@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz#2e22e830d36f0a9cf2c0ccd3c7f6d59435b77dfa" + integrity sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ== "@algolia/cache-browser-local-storage@4.14.3": version "4.14.3" @@ -151,6 +159,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== +"@babel/parser@^7.20.15", "@babel/parser@^7.21.3": + version "7.22.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" + integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== + "@cypress/request@^2.88.10": version "2.88.10" resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.10.tgz#b66d76b07f860d3a4b8d7a0604d020c662752cce" @@ -183,138 +196,138 @@ debug "^3.1.0" lodash.once "^4.1.1" -"@docsearch/css@3.3.1", "@docsearch/css@^3.3.0": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.3.1.tgz#32041581bffb1a834072fd21ca66d1dd9f016098" - integrity sha512-nznHXeFHpAYjyaSNFNFpU+IJPjQA7AINM8ONjDx/Zx4O/pGAvqwgmcLNc7zR8qXRutqnzLo06yN63xFn36KFBw== +"@docsearch/css@3.5.1", "@docsearch/css@^3.5.1": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.5.1.tgz#4adf9884735bbfea621c3716e80ea97baa419b73" + integrity sha512-2Pu9HDg/uP/IT10rbQ+4OrTQuxIWdKVUEdcw9/w7kZJv9NeHS6skJx1xuRiFyoGKwAzcHXnLp7csE99sj+O1YA== -"@docsearch/js@^3.3.0": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.3.1.tgz#61256bfb0cb17840e6259b9c86f409aa98f02438" - integrity sha512-BCVu7njUFJSUXDNvgK65xNYU1L7U3CKFJlawDXql17nQwfpBrNZHqp+eb8z9qu0SzauQKss9tsf/qwlFJ9BOGw== +"@docsearch/js@^3.5.1": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.5.1.tgz#6d8de3b4fcf7de94462c0e592e333efa9ebbbabd" + integrity sha512-EXi8de5njxgP6TV3N9ytnGRLG9zmBNTEZjR4VzwPcpPLbZxxTLG2gaFyJyKiFVQxHW/DPlMrDJA3qoRRGEkgZw== dependencies: - "@docsearch/react" "3.3.1" + "@docsearch/react" "3.5.1" preact "^10.0.0" -"@docsearch/react@3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.3.1.tgz#47ce4a267a9daf1b5d913b979284b4f624088003" - integrity sha512-wdeQBODPkue6yVEEg4ntt+TiGJ6iXMBUNjBQJ0s1WVoc1OdcCnks/lkQ5LEfXETYR/q9QSbCCBnMjvnSoILaag== +"@docsearch/react@3.5.1": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.5.1.tgz#35f4a75f948211d8bb6830d2147c575f96a85274" + integrity sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ== dependencies: - "@algolia/autocomplete-core" "1.7.2" - "@algolia/autocomplete-preset-algolia" "1.7.2" - "@docsearch/css" "3.3.1" + "@algolia/autocomplete-core" "1.9.3" + "@algolia/autocomplete-preset-algolia" "1.9.3" + "@docsearch/css" "3.5.1" algoliasearch "^4.0.0" -"@esbuild/android-arm64@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.12.tgz#86c4fdd7c0d65fe9dcbe138fbe72720658ec3b88" - integrity sha512-0LacmiIW+X0/LOLMZqYtZ7d4uY9fxYABAYhSSOu+OGQVBqH4N5eIYgkT7bBFnR4Nm3qo6qS3RpHKVrDASqj/uQ== - -"@esbuild/android-arm@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.12.tgz#15e33bb1c8c2f560fbb27cda227c0fa22d83d0ef" - integrity sha512-CTWgMJtpCyCltrvipZrrcjjRu+rzm6pf9V8muCsJqtKujR3kPmU4ffbckvugNNaRmhxAF1ZI3J+0FUIFLFg8KA== - -"@esbuild/android-x64@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.12.tgz#3b0ddaf59fdf94e8e9fcb2aa6537cbab93d5fe22" - integrity sha512-sS5CR3XBKQXYpSGMM28VuiUnbX83Z+aWPZzClW+OB2JquKqxoiwdqucJ5qvXS8pM6Up3RtJfDnRQZkz3en2z5g== - -"@esbuild/darwin-arm64@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.12.tgz#ac6c5d85cabf20de5047b55eab7f3c252d9aae71" - integrity sha512-Dpe5hOAQiQRH20YkFAg+wOpcd4PEuXud+aGgKBQa/VriPJA8zuVlgCOSTwna1CgYl05lf6o5els4dtuyk1qJxQ== - -"@esbuild/darwin-x64@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.12.tgz#3433e6432dd474994302bcfe35c5420fae46a206" - integrity sha512-ApGRA6X5txIcxV0095X4e4KKv87HAEXfuDRcGTniDWUUN+qPia8sl/BqG/0IomytQWajnUn4C7TOwHduk/FXBQ== - -"@esbuild/freebsd-arm64@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.12.tgz#b150587dc54dc2369cb826e6ee9f94fc5ec14635" - integrity sha512-AMdK2gA9EU83ccXCWS1B/KcWYZCj4P3vDofZZkl/F/sBv/fphi2oUqUTox/g5GMcIxk8CF1CVYTC82+iBSyiUg== - -"@esbuild/freebsd-x64@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.12.tgz#e682a61cde8d6332aaeb4c2b28fce0d833928903" - integrity sha512-KUKB9w8G/xaAbD39t6gnRBuhQ8vIYYlxGT2I+mT6UGRnCGRr1+ePFIGBQmf5V16nxylgUuuWVW1zU2ktKkf6WQ== - -"@esbuild/linux-arm64@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.12.tgz#d0d75e10796d4f1414ecaf16a8071ce05446cb9f" - integrity sha512-29HXMLpLklDfmw7T2buGqq3HImSUaZ1ArmrPOMaNiZZQptOSZs32SQtOHEl8xWX5vfdwZqrBfNf8Te4nArVzKQ== - -"@esbuild/linux-arm@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.12.tgz#945ebcd99205fadea5ee22bff624189bd95c0484" - integrity sha512-vhDdIv6z4eL0FJyNVfdr3C/vdd/Wc6h1683GJsFoJzfKb92dU/v88FhWdigg0i6+3TsbSDeWbsPUXb4dif2abg== - -"@esbuild/linux-ia32@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.12.tgz#132e61b2124eee6033bf7f0d5b312c02524d39db" - integrity sha512-JFDuNDTTfgD1LJg7wHA42o2uAO/9VzHYK0leAVnCQE/FdMB599YMH73ux+nS0xGr79pv/BK+hrmdRin3iLgQjg== - -"@esbuild/linux-loong64@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.12.tgz#d27dc1e203c0d0516c1daadb7988f88b643f8ea2" - integrity sha512-xTGzVPqm6WKfCC0iuj1fryIWr1NWEM8DMhAIo+4rFgUtwy/lfHl+Obvus4oddzRDbBetLLmojfVZGmt/g/g+Rw== - -"@esbuild/linux-mips64el@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.12.tgz#9616c378ca76f12d06ffaf242da68a58be966a18" - integrity sha512-zI1cNgHa3Gol+vPYjIYHzKhU6qMyOQrvZ82REr5Fv7rlh5PG6SkkuCoH7IryPqR+BK2c/7oISGsvPJPGnO2bHQ== - -"@esbuild/linux-ppc64@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.12.tgz#b033a248212249c05c162b64124744345a041f92" - integrity sha512-/C8OFXExoMmvTDIOAM54AhtmmuDHKoedUd0Otpfw3+AuuVGemA1nQK99oN909uZbLEU6Bi+7JheFMG3xGfZluQ== - -"@esbuild/linux-riscv64@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.12.tgz#b6476abff413b5b472e6cf093086b9d5be4553a8" - integrity sha512-qeouyyc8kAGV6Ni6Isz8hUsKMr00EHgVwUKWNp1r4l88fHEoNTDB8mmestvykW6MrstoGI7g2EAsgr0nxmuGYg== - -"@esbuild/linux-s390x@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.12.tgz#981a639f8c2a2e0646f47eba0fae7c2c270b208b" - integrity sha512-s9AyI/5vz1U4NNqnacEGFElqwnHusWa81pskAf8JNDM2eb6b2E6PpBmT8RzeZv6/TxE6/TADn2g9bb0jOUmXwQ== - -"@esbuild/linux-x64@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.12.tgz#01b777229d8baf068eeeb7cd7c396aea4d1ebd36" - integrity sha512-e8YA7GQGLWhvakBecLptUiKxOk4E/EPtSckS1i0MGYctW8ouvNUoh7xnU15PGO2jz7BYl8q1R6g0gE5HFtzpqQ== - -"@esbuild/netbsd-x64@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.12.tgz#6d4b9de7dc3ac99bf04653fe640b3be63c57b1aa" - integrity sha512-z2+kUxmOqBS+6SRVd57iOLIHE8oGOoEnGVAmwjm2aENSP35HPS+5cK+FL1l+rhrsJOFIPrNHqDUNechpuG96Sg== - -"@esbuild/openbsd-x64@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.12.tgz#2a28010b1848466586d5e2189e9f1b8334b65708" - integrity sha512-PAonw4LqIybwn2/vJujhbg1N9W2W8lw9RtXIvvZoyzoA/4rA4CpiuahVbASmQohiytRsixbNoIOUSjRygKXpyA== - -"@esbuild/sunos-x64@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.12.tgz#3ee120008cc759d604825dd25501152071ef30f0" - integrity sha512-+wr1tkt1RERi+Zi/iQtkzmMH4nS8+7UIRxjcyRz7lur84wCkAITT50Olq/HiT4JN2X2bjtlOV6vt7ptW5Gw60Q== - -"@esbuild/win32-arm64@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.12.tgz#8c599a91f1c55b3df304c450ac0613855c10502e" - integrity sha512-XEjeUSHmjsAOJk8+pXJu9pFY2O5KKQbHXZWQylJzQuIBeiGrpMeq9sTVrHefHxMOyxUgoKQTcaTS+VK/K5SviA== - -"@esbuild/win32-ia32@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.12.tgz#102b5a44b514f8849a10cc4cc618c60c70a4c536" - integrity sha512-eRKPM7e0IecUAUYr2alW7JGDejrFJXmpjt4MlfonmQ5Rz9HWpKFGCjuuIRgKO7W9C/CWVFXdJ2GjddsBXqQI4A== - -"@esbuild/win32-x64@0.16.12": - version "0.16.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.12.tgz#31197bb509049b63c059c4808ac58e66fdff7479" - integrity sha512-iPYKN78t3op2+erv2frW568j1q0RpqX6JOLZ7oPPaAV1VaF7dDstOrNw37PVOYoTWE11pV4A1XUitpdEFNIsPg== +"@esbuild/android-arm64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz#9e00eb6865ed5f2dbe71a1e96f2c52254cd92903" + integrity sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg== + +"@esbuild/android-arm@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.17.tgz#1aa013b65524f4e9f794946b415b32ae963a4618" + integrity sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg== + +"@esbuild/android-x64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.17.tgz#c2bd0469b04ded352de011fae34a7a1d4dcecb79" + integrity sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw== + +"@esbuild/darwin-arm64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz#0c21a59cb5bd7a2cec66c7a42431dca42aefeddd" + integrity sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g== + +"@esbuild/darwin-x64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz#92f8763ff6f97dff1c28a584da7b51b585e87a7b" + integrity sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g== + +"@esbuild/freebsd-arm64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz#934f74bdf4022e143ba2f21d421b50fd0fead8f8" + integrity sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ== + +"@esbuild/freebsd-x64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz#16b6e90ba26ecc865eab71c56696258ec7f5d8bf" + integrity sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA== + +"@esbuild/linux-arm64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz#179a58e8d4c72116eb068563629349f8f4b48072" + integrity sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ== + +"@esbuild/linux-arm@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz#9d78cf87a310ae9ed985c3915d5126578665c7b5" + integrity sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg== + +"@esbuild/linux-ia32@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz#6fed202602d37361bca376c9d113266a722a908c" + integrity sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg== + +"@esbuild/linux-loong64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz#cdc60304830be1e74560c704bfd72cab8a02fa06" + integrity sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg== + +"@esbuild/linux-mips64el@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz#c367b2855bb0902f5576291a2049812af2088086" + integrity sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ== + +"@esbuild/linux-ppc64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz#7fdc0083d42d64a4651711ee0a7964f489242f45" + integrity sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ== + +"@esbuild/linux-riscv64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz#5198a417f3f5b86b10c95647b8bc032e5b6b2b1c" + integrity sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g== + +"@esbuild/linux-s390x@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz#7459c2fecdee2d582f0697fb76a4041f4ad1dd1e" + integrity sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg== + +"@esbuild/linux-x64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz#948cdbf46d81c81ebd7225a7633009bc56a4488c" + integrity sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ== + +"@esbuild/netbsd-x64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz#6bb89668c0e093c5a575ded08e1d308bd7fd63e7" + integrity sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ== + +"@esbuild/openbsd-x64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz#abac2ae75fef820ef6c2c48da4666d092584c79d" + integrity sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA== + +"@esbuild/sunos-x64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz#74a45fe1db8ea96898f1a9bb401dcf1dadfc8371" + integrity sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g== + +"@esbuild/win32-arm64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz#fd95ffd217995589058a4ed8ac17ee72a3d7f615" + integrity sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw== + +"@esbuild/win32-ia32@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz#9b7ef5d0df97593a80f946b482e34fcba3fa4aaf" + integrity sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg== + +"@esbuild/win32-x64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz#bcb2e042631b3c15792058e189ed879a22b2968b" + integrity sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA== "@eslint/eslintrc@^0.4.3": version "0.4.3" @@ -345,6 +358,11 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -423,10 +441,10 @@ resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== -"@types/web-bluetooth@^0.0.16": - version "0.0.16" - resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz#1d12873a8e49567371f2a75fe3e7f7edca6662d8" - integrity sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ== +"@types/web-bluetooth@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz#5c9f3c617f64a9735d7b72a7cc671e166d900c40" + integrity sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA== "@types/yauzl@^2.9.1": version "2.9.2" @@ -505,10 +523,10 @@ "@typescript-eslint/types" "4.33.0" eslint-visitor-keys "^2.0.0" -"@vitejs/plugin-vue@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz#93815beffd23db46288c787352a8ea31a0c03e5e" - integrity sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA== +"@vitejs/plugin-vue@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz#ee0b6dfcc62fe65364e6395bf38fa2ba10bb44b6" + integrity sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw== "@vue/compiler-core@3.2.45": version "3.2.45" @@ -520,6 +538,16 @@ estree-walker "^2.0.2" source-map "^0.6.1" +"@vue/compiler-core@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz#7fbf591c1c19e1acd28ffd284526e98b4f581128" + integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g== + dependencies: + "@babel/parser" "^7.21.3" + "@vue/shared" "3.3.4" + estree-walker "^2.0.2" + source-map-js "^1.0.2" + "@vue/compiler-dom@3.2.45": version "3.2.45" resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz#c43cc15e50da62ecc16a42f2622d25dc5fd97dce" @@ -528,6 +556,14 @@ "@vue/compiler-core" "3.2.45" "@vue/shared" "3.2.45" +"@vue/compiler-dom@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz#f56e09b5f4d7dc350f981784de9713d823341151" + integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w== + dependencies: + "@vue/compiler-core" "3.3.4" + "@vue/shared" "3.3.4" + "@vue/compiler-sfc@3.2.45": version "3.2.45" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz#7f7989cc04ec9e7c55acd406827a2c4e96872c70" @@ -544,6 +580,22 @@ postcss "^8.1.10" source-map "^0.6.1" +"@vue/compiler-sfc@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz#b19d942c71938893535b46226d602720593001df" + integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ== + dependencies: + "@babel/parser" "^7.20.15" + "@vue/compiler-core" "3.3.4" + "@vue/compiler-dom" "3.3.4" + "@vue/compiler-ssr" "3.3.4" + "@vue/reactivity-transform" "3.3.4" + "@vue/shared" "3.3.4" + estree-walker "^2.0.2" + magic-string "^0.30.0" + postcss "^8.1.10" + source-map-js "^1.0.2" + "@vue/compiler-ssr@3.2.45": version "3.2.45" resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz#bd20604b6e64ea15344d5b6278c4141191c983b2" @@ -552,10 +604,18 @@ "@vue/compiler-dom" "3.2.45" "@vue/shared" "3.2.45" -"@vue/devtools-api@^6.4.5": - version "6.4.5" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.4.5.tgz#d54e844c1adbb1e677c81c665ecef1a2b4bb8380" - integrity sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ== +"@vue/compiler-ssr@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz#9d1379abffa4f2b0cd844174ceec4a9721138777" + integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ== + dependencies: + "@vue/compiler-dom" "3.3.4" + "@vue/shared" "3.3.4" + +"@vue/devtools-api@^6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz#98b99425edee70b4c992692628fa1ea2c1e57d07" + integrity sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q== "@vue/reactivity-transform@3.2.45": version "3.2.45" @@ -568,6 +628,17 @@ estree-walker "^2.0.2" magic-string "^0.25.7" +"@vue/reactivity-transform@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz#52908476e34d6a65c6c21cd2722d41ed8ae51929" + integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw== + dependencies: + "@babel/parser" "^7.20.15" + "@vue/compiler-core" "3.3.4" + "@vue/shared" "3.3.4" + estree-walker "^2.0.2" + magic-string "^0.30.0" + "@vue/reactivity@3.2.45": version "3.2.45" resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.45.tgz#412a45b574de601be5a4a5d9a8cbd4dee4662ff0" @@ -575,6 +646,13 @@ dependencies: "@vue/shared" "3.2.45" +"@vue/reactivity@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.3.4.tgz#a27a29c6cd17faba5a0e99fbb86ee951653e2253" + integrity sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ== + dependencies: + "@vue/shared" "3.3.4" + "@vue/runtime-core@3.2.45": version "3.2.45" resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.45.tgz#7ad7ef9b2519d41062a30c6fa001ec43ac549c7f" @@ -583,6 +661,14 @@ "@vue/reactivity" "3.2.45" "@vue/shared" "3.2.45" +"@vue/runtime-core@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz#4bb33872bbb583721b340f3088888394195967d1" + integrity sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA== + dependencies: + "@vue/reactivity" "3.3.4" + "@vue/shared" "3.3.4" + "@vue/runtime-dom@3.2.45": version "3.2.45" resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz#1a2ef6ee2ad876206fbbe2a884554bba2d0faf59" @@ -592,6 +678,15 @@ "@vue/shared" "3.2.45" csstype "^2.6.8" +"@vue/runtime-dom@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz#992f2579d0ed6ce961f47bbe9bfe4b6791251566" + integrity sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ== + dependencies: + "@vue/runtime-core" "3.3.4" + "@vue/shared" "3.3.4" + csstype "^3.1.1" + "@vue/server-renderer@3.2.45": version "3.2.45" resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.45.tgz#ca9306a0c12b0530a1a250e44f4a0abac6b81f3f" @@ -600,32 +695,54 @@ "@vue/compiler-ssr" "3.2.45" "@vue/shared" "3.2.45" +"@vue/server-renderer@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz#ea46594b795d1536f29bc592dd0f6655f7ea4c4c" + integrity sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ== + dependencies: + "@vue/compiler-ssr" "3.3.4" + "@vue/shared" "3.3.4" + "@vue/shared@3.2.45": version "3.2.45" resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.45.tgz#a3fffa7489eafff38d984e23d0236e230c818bc2" integrity sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg== -"@vueuse/core@^9.8.2": - version "9.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-9.9.0.tgz#ad6849cd03ba7ee396ef93fa01d4f2e5b11a4942" - integrity sha512-JdDb7TrE0imZnwBhMF4+0PCJqGD3AxzH8S2sfk54P0rqvklK+EAtAR/mPb1HwV/JPujQFQJhghQ190Yq03YpVw== +"@vue/shared@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780" + integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ== + +"@vueuse/core@10.2.1", "@vueuse/core@^10.2.1": + version "10.2.1" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.2.1.tgz#a62b54cdaf1496138a9f8a7df7f9d644892b421f" + integrity sha512-c441bfMbkAwTNwVRHQ0zdYZNETK//P84rC01aP2Uy/aRFCiie9NE/k9KdIXbno0eDYP5NPUuWv0aA/I4Unr/7w== dependencies: - "@types/web-bluetooth" "^0.0.16" - "@vueuse/metadata" "9.9.0" - "@vueuse/shared" "9.9.0" - vue-demi "*" + "@types/web-bluetooth" "^0.0.17" + "@vueuse/metadata" "10.2.1" + "@vueuse/shared" "10.2.1" + vue-demi ">=0.14.5" -"@vueuse/metadata@9.9.0": - version "9.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-9.9.0.tgz#d3f3f40dcedb6a045e7940a1fba78828a70d9b7e" - integrity sha512-pgxsUJv/d7IjKpLeB6TthggEsaBwM3ffc5jPrr5TmxAm/fup0mGR5VTzrdA/PSx85tpb+CIvP92D+55qBNc8ag== +"@vueuse/integrations@^10.2.1": + version "10.2.1" + resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-10.2.1.tgz#abc44b35f909f6b5e1a66a2d69a257bb4b087536" + integrity sha512-FDP5lni+z9FjHE9H3xuvwSjoRV9U8jmDvJpmHPCBjUgPGYRynwb60eHWXCFJXLUtb4gSIHy0e+iaEbrKdalCkQ== + dependencies: + "@vueuse/core" "10.2.1" + "@vueuse/shared" "10.2.1" + vue-demi ">=0.14.5" + +"@vueuse/metadata@10.2.1": + version "10.2.1" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.2.1.tgz#0865066def62ed97629c417ec79678d508d22934" + integrity sha512-3Gt68mY/i6bQvFqx7cuGBzrCCQu17OBaGWS5JdwISpMsHnMKKjC2FeB5OAfMcCQ0oINfADP3i9A4PPRo0peHdQ== -"@vueuse/shared@9.9.0": - version "9.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-9.9.0.tgz#3f02e6a86d9c789c3dd73308bd3adea958860086" - integrity sha512-+D0XFwHG0T+uaIbCSlROBwm1wzs71B7n3KyDOxnvfEMMHDOzl09rYKwaE2AENmYwYPXfHPbSBRDD2gBVHbvTcg== +"@vueuse/shared@10.2.1": + version "10.2.1" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.2.1.tgz#0fd0a5dd014b7713b7fe03347b30fad69bb15b30" + integrity sha512-QWHq2bSuGptkcxx4f4M/fBYC3Y8d3M2UYyLsyzoPgEoVzJURQ0oJeWXu79OiLlBb8gTKkqe4mO85T/sf39mmiw== dependencies: - vue-demi "*" + vue-demi ">=0.14.5" acorn-jsx@^5.3.1: version "5.3.2" @@ -702,6 +819,11 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-sequence-parser@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz#e0aa1cdcbc8f8bb0b5bca625aac41f5f056973cf" + integrity sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -981,6 +1103,11 @@ csstype@^2.6.8: resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== +csstype@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + cypress-file-upload@^5.0.8: version "5.0.8" resolved "https://registry.yarnpkg.com/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz#d8824cbeaab798e44be8009769f9a6c9daa1b4a1" @@ -1226,33 +1353,33 @@ esbuild@^0.13.2: esbuild-windows-64 "0.13.13" esbuild-windows-arm64 "0.13.13" -esbuild@^0.16.3: - version "0.16.12" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.12.tgz#60850b9ad2f103f1c4316be42c34d5023f27378d" - integrity sha512-eq5KcuXajf2OmivCl4e89AD3j8fbV+UTE9vczEzq5haA07U9oOTzBWlh3+6ZdjJR7Rz2QfWZ2uxZyhZxBgJ4+g== +esbuild@^0.18.10: + version "0.18.17" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.17.tgz#2aaf6bc6759b0c605777fdc435fea3969e091cad" + integrity sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg== optionalDependencies: - "@esbuild/android-arm" "0.16.12" - "@esbuild/android-arm64" "0.16.12" - "@esbuild/android-x64" "0.16.12" - "@esbuild/darwin-arm64" "0.16.12" - "@esbuild/darwin-x64" "0.16.12" - "@esbuild/freebsd-arm64" "0.16.12" - "@esbuild/freebsd-x64" "0.16.12" - "@esbuild/linux-arm" "0.16.12" - "@esbuild/linux-arm64" "0.16.12" - "@esbuild/linux-ia32" "0.16.12" - "@esbuild/linux-loong64" "0.16.12" - "@esbuild/linux-mips64el" "0.16.12" - "@esbuild/linux-ppc64" "0.16.12" - "@esbuild/linux-riscv64" "0.16.12" - "@esbuild/linux-s390x" "0.16.12" - "@esbuild/linux-x64" "0.16.12" - "@esbuild/netbsd-x64" "0.16.12" - "@esbuild/openbsd-x64" "0.16.12" - "@esbuild/sunos-x64" "0.16.12" - "@esbuild/win32-arm64" "0.16.12" - "@esbuild/win32-ia32" "0.16.12" - "@esbuild/win32-x64" "0.16.12" + "@esbuild/android-arm" "0.18.17" + "@esbuild/android-arm64" "0.18.17" + "@esbuild/android-x64" "0.18.17" + "@esbuild/darwin-arm64" "0.18.17" + "@esbuild/darwin-x64" "0.18.17" + "@esbuild/freebsd-arm64" "0.18.17" + "@esbuild/freebsd-x64" "0.18.17" + "@esbuild/linux-arm" "0.18.17" + "@esbuild/linux-arm64" "0.18.17" + "@esbuild/linux-ia32" "0.18.17" + "@esbuild/linux-loong64" "0.18.17" + "@esbuild/linux-mips64el" "0.18.17" + "@esbuild/linux-ppc64" "0.18.17" + "@esbuild/linux-riscv64" "0.18.17" + "@esbuild/linux-s390x" "0.18.17" + "@esbuild/linux-x64" "0.18.17" + "@esbuild/netbsd-x64" "0.18.17" + "@esbuild/openbsd-x64" "0.18.17" + "@esbuild/sunos-x64" "0.18.17" + "@esbuild/win32-arm64" "0.18.17" + "@esbuild/win32-ia32" "0.18.17" + "@esbuild/win32-x64" "0.18.17" escape-string-regexp@^1.0.5: version "1.0.5" @@ -1517,6 +1644,13 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== +focus-trap@^7.5.2: + version "7.5.2" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.5.2.tgz#e5ee678d10a18651f2591ffb66c949fb098d57cf" + integrity sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw== + dependencies: + tabbable "^6.2.0" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -1941,6 +2075,18 @@ magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" +magic-string@^0.30.0: + version "0.30.1" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.1.tgz#ce5cd4b0a81a5d032bd69aab4522299b2166284d" + integrity sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + +mark.js@8.11.1: + version "8.11.1" + resolved "https://registry.yarnpkg.com/mark.js/-/mark.js-8.11.1.tgz#180f1f9ebef8b0e638e4166ad52db879beb2ffc5" + integrity sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ== + merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -1988,6 +2134,11 @@ minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minisearch@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/minisearch/-/minisearch-6.1.0.tgz#6e74e743dbd0e88fa5ca52fef2391e0aa7055252" + integrity sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg== + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -2008,6 +2159,11 @@ nanoid@^3.3.4: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== +nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -2110,7 +2266,7 @@ pify@^2.2.0: resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= -postcss@^8.1.10, postcss@^8.4.20: +postcss@^8.1.10: version "8.4.20" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== @@ -2128,6 +2284,15 @@ postcss@^8.3.8: picocolors "^1.0.0" source-map-js "^0.6.2" +postcss@^8.4.26: + version "8.4.27" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057" + integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + preact@^10.0.0: version "10.11.3" resolved "https://registry.yarnpkg.com/preact/-/preact-10.11.3.tgz#8a7e4ba19d3992c488b0785afcc0f8aa13c78d19" @@ -2257,10 +2422,10 @@ rollup@^2.57.0: optionalDependencies: fsevents "~2.3.2" -rollup@^3.7.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.9.0.tgz#0ff7ab7cd71ce3a6ab140c5cf661f2b35eb6aab8" - integrity sha512-nGGylpmblyjTpF4lEUPgmOw6OVxRvnI6Iuuh6Lz4O/X66cVOX1XJSsqP1YamxQ+mPuFE7qJxLFDSCk8rNv5dDw== +rollup@^3.25.2: + version "3.26.3" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.26.3.tgz#bbc8818cadd0aebca348dbb3d68d296d220967b8" + integrity sha512-7Tin0C8l86TkpcMtXvQu6saWH93nhG3dGQ1/+l5V2TDMceTxO7kDiK6GzbfLWNNxqJXm591PcEZUozZm51ogwQ== optionalDependencies: fsevents "~2.3.2" @@ -2307,11 +2472,12 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shiki@^0.12.1: - version "0.12.1" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.12.1.tgz#26fce51da12d055f479a091a5307470786f300cd" - integrity sha512-aieaV1m349rZINEBkjxh2QbBvFFQOlgqYTNtCal82hHj4dDZ76oMlQIX+C7ryerBTDiga3e5NfH6smjdJ02BbQ== +shiki@^0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.14.3.tgz#d1a93c463942bdafb9866d74d619a4347d0bbf64" + integrity sha512-U3S/a+b0KS+UkTyMjoNojvTgrBHjgp7L6ovhFVZsXmBGnVdQ4K4U9oK0z63w538S91ATngv1vXigHCSWOwnr+g== dependencies: + ansi-sequence-parser "^1.1.0" jsonc-parser "^3.2.0" vscode-oniguruma "^1.7.0" vscode-textmate "^8.0.0" @@ -2441,6 +2607,11 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +tabbable@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" + integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== + table@^6.0.9: version "6.8.0" resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" @@ -2593,32 +2764,35 @@ vite@^2.4.2: optionalDependencies: fsevents "~2.3.2" -vite@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.0.3.tgz#de27ad3f263a03ae9419cdc8bc07721eadcba8b9" - integrity sha512-HvuNv1RdE7deIfQb8mPk51UKjqptO/4RXZ5yXSAvurd5xOckwS/gg8h9Tky3uSbnjYTgUm0hVCet1cyhKd73ZA== +vite@^4.4.6: + version "4.4.7" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.7.tgz#71b8a37abaf8d50561aca084dbb77fa342824154" + integrity sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw== dependencies: - esbuild "^0.16.3" - postcss "^8.4.20" - resolve "^1.22.1" - rollup "^3.7.0" + esbuild "^0.18.10" + postcss "^8.4.26" + rollup "^3.25.2" optionalDependencies: fsevents "~2.3.2" -vitepress@^1.0.0-alpha.33: - version "1.0.0-alpha.33" - resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.0.0-alpha.33.tgz#5002ce435ad98b8e0c259e9df7770542bb3676c3" - integrity sha512-EhMDqWLllYr5mXqAz4GCQ1o/bu5umQ6C2d8voiSaTHMkYCxsGc31ETykflM6NOhGx6yccwXygrYIIeN1l6BUEA== - dependencies: - "@docsearch/css" "^3.3.0" - "@docsearch/js" "^3.3.0" - "@vitejs/plugin-vue" "^4.0.0" - "@vue/devtools-api" "^6.4.5" - "@vueuse/core" "^9.8.2" +vitepress@1.0.0-beta.6: + version "1.0.0-beta.6" + resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.0.0-beta.6.tgz#f5439bcbb53ab9a51f6f2b2a57d1bfad19cff476" + integrity sha512-xK/ulKgQpKZVbvlL4+/vW49VG7ySi5nmSoKUNH1G4kM+Cj9JwYM+PDJO7jSJROv8zW99G0ise+maDYnaLlbGBQ== + dependencies: + "@docsearch/css" "^3.5.1" + "@docsearch/js" "^3.5.1" + "@vitejs/plugin-vue" "^4.2.3" + "@vue/devtools-api" "^6.5.0" + "@vueuse/core" "^10.2.1" + "@vueuse/integrations" "^10.2.1" body-scroll-lock "4.0.0-beta.0" - shiki "^0.12.1" - vite "^4.0.2" - vue "^3.2.45" + focus-trap "^7.5.2" + mark.js "8.11.1" + minisearch "^6.1.0" + shiki "^0.14.3" + vite "^4.4.6" + vue "^3.3.4" vscode-oniguruma@^1.7.0: version "1.7.0" @@ -2630,10 +2804,10 @@ vscode-textmate@^8.0.0: resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-8.0.0.tgz#2c7a3b1163ef0441097e0b5d6389cd5504b59e5d" integrity sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg== -vue-demi@*: - version "0.13.11" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99" - integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== +vue-demi@>=0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.5.tgz#676d0463d1a1266d5ab5cba932e043d8f5f2fbd9" + integrity sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA== vue@^3.2.45: version "3.2.45" @@ -2646,6 +2820,17 @@ vue@^3.2.45: "@vue/server-renderer" "3.2.45" "@vue/shared" "3.2.45" +vue@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.3.4.tgz#8ed945d3873667df1d0fcf3b2463ada028f88bd6" + integrity sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw== + dependencies: + "@vue/compiler-dom" "3.3.4" + "@vue/compiler-sfc" "3.3.4" + "@vue/runtime-dom" "3.3.4" + "@vue/server-renderer" "3.3.4" + "@vue/shared" "3.3.4" + which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"