diff --git a/.gitignore b/.gitignore index 53f7466..cfc2815 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,6 @@ node_modules .DS_Store dist dist-ssr -*.local \ No newline at end of file +*.local +cache +.temp \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 0ba75df..60a2174 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -17,7 +17,8 @@ "TEXTLIKE", "trlist", "vite", - "Yahei" + "Yahei", + "vitepress" ], "cSpell.ignorePaths": [ ".github", diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts new file mode 100644 index 0000000..720b3fb --- /dev/null +++ b/docs/.vitepress/config.ts @@ -0,0 +1,63 @@ +import { defineConfig } from 'vitepress' + +export default defineConfig({ + base: '/canvas-editor-docs/', + title: 'canvas-editor', + description: 'rich text editor by canvas/svg', + themeConfig: { + logo: '/favicon.png', + nav: [{ + text: '指南', + link: '/guide/start', + activeMatch: '/guide/' + }, { + text: 'Demo', + link: 'https://hufe.club/canvas-editor' + }], + sidebar: [ + { + text: '开始', + items: [ + { text: '入门', link: '/guide/start' }, + { text: '配置', link: '/guide/option' }, + { text: '数据结构', link: '/guide/schema' } + ] + }, + { + text: '命令', + items: [ + { text: '执行动作命令', link: '/guide/command-execute' }, + { text: '获取数据命令', link: '/guide/command-get' } + ] + }, + { + text: '监听', + items: [ + { text: '事件监听', link: '/guide/listener' } + ] + }, + { + text: '快捷键', + items: [ + { text: '内部快捷键', link: '/guide/shortcut-internal' }, + { text: '自定义快捷键', link: '/guide/shortcut-custom' }, + ] + }, + { + text: '右键菜单', + items: [ + { text: '内部右键菜单', link: '/guide/contextmenu-internal' }, + { text: '自定义右键菜单', link: '/guide/contextmenu-custom' } + ] + } + ], + socialLinks: [{ + icon: 'github', + link: 'https://github.com/Hufe921/canvas-editor' + }], + footer: { + message: 'Released under the MIT License.', + copyright: 'Copyright © 2021-present Hufe' + } + } +}) \ No newline at end of file diff --git a/docs/guide/command-execute.md b/docs/guide/command-execute.md new file mode 100644 index 0000000..decd6db --- /dev/null +++ b/docs/guide/command-execute.md @@ -0,0 +1,529 @@ +# 执行动作命令 + +## 使用方式 + +```javascript +import Editor from "@hufe921/canvas-editor" + +const instance = new Editor(container, data, options) +instance.command.commandName() +``` + +## executeMode +功能:切换编辑器模式(编辑、清洁、只读) + +用法: +```javascript +instance.command.executeMode(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, endIndex) +``` + +## 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) +``` + +## 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() +``` + +## executeLeft +功能:行居左 + +用法: +```javascript +instance.command.executeLeft() +``` + +## executeCenter +功能:行居中 + +用法: +```javascript +instance.command.executeCenter() +``` + +## executeRight +功能:行居右 + +用法: +```javascript +instance.command.executeRight() +``` + +## executeAlignment +功能:行两端对齐 + +用法: +```javascript +instance.command.executeAlignment() +``` + +## executeRowMargin +功能:行间距 + +用法: +```javascript +instance.command.executeRowMargin(number) +``` + +## executeInsertTable +功能:插入表格 + +用法: +```javascript +instance.command.executeInsertTable(row, col) +``` + +## 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() +``` + +## executeImage +功能:插入图片 + +用法: +```javascript +instance.command.executeImage({ + width: number; + height: number; + value: string; +}) +``` + +## executeHyperlink +功能:插入链接 + +用法: +```javascript +instance.command.executeHyperlink({ + type: ElementType.HYPERLINK, + value: '', + url, + valueList: IElement[] +}) +``` + +## executeDeleteHyperlink +功能:删除链接 + +用法: +```javascript +instance.command.executeDeleteHyperlink() +``` + +## executeCancelHyperlink +功能:取消链接 + +用法: +```javascript +instance.command.executeCancelHyperlink() +``` + +## executeEditHyperlink +功能:编辑链接 + +用法: +```javascript +instance.command.executeEditHyperlink(newUrl) +``` + +## executeSeparator +功能:插入分割线 + +用法: +```javascript +instance.command.executeSeparator(dashArray) +``` + +## executePageBreak +功能:分页符 + +用法: +```javascript +instance.command.executePageBreak() +``` + +## executeAddWatermark +功能:添加水印 + +用法: +```javascript +instance.command.executeAddWatermark({ + data: string; + color?: string; + opacity?: number; + size?: number; + font?: string; +}) +``` + +## executeDeleteWatermark +功能:添加水印 + +用法: +```javascript +instance.command.executeDeleteWatermark() +``` + +## executeSearch +功能:搜索 + +用法: +```javascript +instance.command.executeSearch(keyword) +``` + +## executeSearchNavigatePre +功能:搜索导航-上一个 + +用法: +```javascript +instance.command.executeSearchNavigatePre() +``` + +## executeSearchNavigateNext +功能:搜索导航-下一个 + +用法: +```javascript +instance.command.executeSearchNavigateNext() +``` + +## executeReplace +功能:搜索替换 + +用法: +```javascript +instance.command.executeReplace(newWord) +``` + +## executePrint +功能:打印 + +用法: +```javascript +instance.command.executePrint() +``` + +## executeReplaceImageElement +功能:替换图片 + +用法: +```javascript +instance.command.executeReplaceImageElement(newUrl) +``` + +## executeSaveAsImageElement +功能:另存为图片 + +用法: +```javascript +instance.command.executeSaveAsImageElement() +``` + +## executeChangeImageDisplay +功能:改变图片行显示方式 + +用法: +```javascript +instance.command.executeSaveAsImageElement(element, display) +``` + +## executePageMode +功能:页面模式 + +用法: +```javascript +instance.command.executePageMode(pageMode) +``` + +## executePageScaleRecovery +功能:恢复页面原始缩放比例 + +用法: +```javascript +instance.command.executePageMode() +``` + +## executePageScaleMinus +功能:页面缩小 + +用法: +```javascript +instance.command.executePageScaleMinus() +``` + +## executePageScaleAdd +功能:页面放大 + +用法: +```javascript +instance.command.executePageScaleAdd() +``` + +## executePaperSize +功能:设置纸张大小 + +用法: +```javascript +instance.command.executePaperSize(width, height) +``` + +## executeSetPaperMargin +功能:设置纸张页边距 + +用法: +```javascript +instance.command.executeSetPaperMargin([top: number, right: number, bottom: number, left: number]) +``` + +## executeInsertElementList +功能:插入元素 + +用法: +```javascript +instance.command.executeInsertElementList(IElement[]) +``` + +## executeRemoveControl +功能:删除控件 + +用法: +```javascript +instance.command.executeRemoveControl() +``` \ No newline at end of file diff --git a/docs/guide/command-get.md b/docs/guide/command-get.md new file mode 100644 index 0000000..324b4ea --- /dev/null +++ b/docs/guide/command-get.md @@ -0,0 +1,67 @@ +# 获取数据命令 + +## 使用方式 + +```javascript +import Editor from "@hufe921/canvas-editor" + +const instance = new Editor(container, data, options) +const value = instance.command.commandName() +``` +## getValue +功能:获取当前文档信息 + +用法: +```javascript +const { + version: string; + width: number; + height: number; + margins: IMargin; + header?: IHeader; + watermark?: IWatermark; + data: IElement[]; +} = instance.command.getValue() +``` + +## getImage +功能:获取当前页面图片base64字符串 + +用法: +```javascript +const base64StringList = instance.command.getValue() +``` + +## getWordCount +功能:获取文档字数 + +用法: +```javascript +const wordCount = await instance.command.getWordCount() +``` +## getRangeText +功能:获取选区文本 + +用法: +```javascript +const rangeText = instance.command.getRangeText() +``` + +## getPaperMargin +功能:获取页边距 + +用法: +```javascript +const [top: number, right: number, bottom: number, left: number] = instance.command.getPaperMargin() +``` + +## getSearchNavigateInfo +功能:获取搜索导航信息 + +用法: +```javascript +const { + index: number; + count: number; +} = instance.command.getSearchNavigateInfo() +``` diff --git a/docs/guide/contextmenu-custom.md b/docs/guide/contextmenu-custom.md new file mode 100644 index 0000000..44fa3a9 --- /dev/null +++ b/docs/guide/contextmenu-custom.md @@ -0,0 +1,20 @@ +# 自定义右键菜单 + +## 使用方式 + +```javascript +import Editor from "@hufe921/canvas-editor" + +const instance = new Editor(container, data, options) +instance.register.contextMenuList([ + { + isDivider?: boolean; + icon?: string; + name?: string; + shortCut?: string; + when?: (payload: IContextMenuContext) => boolean; + callback?: (command: Command, context: IContextMenuContext) => any; + childMenus?: IRegisterContextMenu[]; + } + ]) +``` \ No newline at end of file diff --git a/docs/guide/contextmenu-internal.md b/docs/guide/contextmenu-internal.md new file mode 100644 index 0000000..e95d304 --- /dev/null +++ b/docs/guide/contextmenu-internal.md @@ -0,0 +1,36 @@ +# 内部右键菜单 + +## 全局 +- 剪切 +- 复制 +- 粘贴 +- 全选 +- 打印 + +## 超链接 +- 删除链接 +- 取消链接 +- 编辑链接 + +## 图片 +- 更改图片 +- 另存为图片 +- 文字环绕 + - 嵌入型 + - 上下型环绕 + +## 表格 +- 插入行列 + - 上方插入1行 + - 下方插入1行 + - 左侧插入1列 + - 右侧插入1列 +- 删除行列 + - 删除1行 + - 删除1列 + - 删除整个表格 +- 合并单元格 +- 取消合并 + +## 控件 +- 删除控件 \ No newline at end of file diff --git a/docs/guide/listener.md b/docs/guide/listener.md new file mode 100644 index 0000000..42b6554 --- /dev/null +++ b/docs/guide/listener.md @@ -0,0 +1,82 @@ +# 事件监听 + +## 使用方式 + +```javascript +import Editor from "@hufe921/canvas-editor" + +const instance = new Editor(container, data, options) +instance.listener.eventName = ()=>{} +``` + +## rangeStyleChange +功能:选区样式发生改变 + +用法: +```javascript +instance.listener.rangeStyleChange = (payload: IRangeStyle)=>{} +``` + +## visiblePageNoListChange +功能:可见页发生改变 + +用法: +```javascript +instance.listener.visiblePageNoListChange = (payload: number[])=>{} +``` + +## intersectionPageNoChange +功能:当前页发生改变 + +用法: +```javascript +instance.listener.intersectionPageNoChange = (payload: number)=>{} +``` + +## pageSizeChange +功能:当前页数发生改变 + +用法: +```javascript +instance.listener.pageSizeChange = (payload: number)=>{} +``` + +## pageScaleChange +功能:当前页面缩放比例发生改变 + +用法: +```javascript +instance.listener.pageScaleChange = (payload: number)=>{} +``` + +## contentChange +功能:当前内容发生改变 + +用法: +```javascript +instance.listener.contentChange = ()=>{} +``` + +## controlChange +功能:当前光标所在控件发生改变 + +用法: +```javascript +instance.listener.controlChange = (payload: IControl | null)=>{} +``` + +## pageModeChange +功能:页面模式发生改变 + +用法: +```javascript +instance.listener.controlChange = (payload: PageMode)=>{} +``` + +## saved +功能:文档执行保存 + +用法: +```javascript +instance.listener.saved = (payload: IEditorResult)=>{} +``` \ No newline at end of file diff --git a/docs/guide/option.md b/docs/guide/option.md new file mode 100644 index 0000000..6d87e7c --- /dev/null +++ b/docs/guide/option.md @@ -0,0 +1,55 @@ +# 配置 + +## 使用方式 + +```javascript +import Editor from "@hufe921/canvas-editor" + +new Editor(container, [], { + // 配置项 +}) +``` + +## 完整配置 + +```typescript +interface IEditorOption { + mode?: EditorMode; // 编辑器模式:编辑、清洁、只读。默认:编辑 + defaultType?: string; // 默认元素类型。默认:TEXT + defaultFont?: string; // 默认字体。默认:Yahei + defaultSize?: number; // 默认字号。默认:16 + defaultBasicRowMarginHeight?: number; // 默认行高。默认:8 + defaultRowMargin?: number; // 默认行间距。默认:1 + defaultTabWidth?: number; // 默认tab宽度。默认:32 + width?: number; // 纸张宽度。默认:794 + height?: number; // 纸张高度。默认:1123 + scale?: number; // 缩放比例。默认:1 + pageGap?: number; // 纸张间隔。默认:20 + pageNumberBottom?: number; // 页码距离纸张下边距。默认:60 + pageNumberSize?: number; // 页码字号。默认:12 + pageNumberFont?: string; // 页码字体。默认:Yahei + 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 + defaultTdHeight?: number; // 默认单元格高度。默认:40 + defaultHyperlinkColor?: string; // 默认超链接颜色。默认:#0000FF + headerTop?: number; // 页眉距离上边距。默认:50 + header?: IHeader; // 页眉信息。{data:string; color?:string; size?:number; font?:string;} + 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;} +} +``` \ No newline at end of file diff --git a/docs/guide/schema.md b/docs/guide/schema.md new file mode 100644 index 0000000..f938b08 --- /dev/null +++ b/docs/guide/schema.md @@ -0,0 +1,131 @@ +# 数据结构 + +```typescript +interface IElement { + // 基础 + 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; + // 样式 + 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; + // 表格 + colgroup?: { + id?: string; + width: number; + }[]; + trList?: { + id?: string; + height: number; + tdList: { + colspan: number; + rowspan: number; + value: IElement[]; + }[]; + }[]; + tdId?: string; + trId?: string; + tableId?: string; + // 超链接 + valueList?: IElement[]; + url?: string; + hyperlinkId?: string; + // 上下标 + actualSize?: number; + // 分割线 + dashArray?: number[]; + // 控件 + 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; + }; + }; + controlId?: string; + controlComponent?: { + PREFIX = 'prefix', + POSTFIX = 'postfix', + PLACEHOLDER = 'placeholder', + VALUE = 'value', + CHECKBOX = 'checkbox' + }; + // 复选框 + checkbox?: { + value: boolean | null; + code?: string; + disabled?: boolean; + }; + // LaTeX + laTexSVG?: string; + // 日期 + dateFormat?: string; + dateId?: string; + // 图片 + imgDisplay?: { + INLINE = 'inline', + BLOCK = 'block' + } + // 内容块 + block?: { + type: { + IFRAME = 'iframe', + VIDEO = 'video' + }; + iframeBlock?: { + src: string; + }; + videoBlock?: { + src: string; + }; + }; +} +``` \ No newline at end of file diff --git a/docs/guide/shortcut-custom.md b/docs/guide/shortcut-custom.md new file mode 100644 index 0000000..8c6ec40 --- /dev/null +++ b/docs/guide/shortcut-custom.md @@ -0,0 +1,19 @@ +# 自定义快捷键 + +## 使用方式 + +```javascript +import Editor from "@hufe921/canvas-editor" + +const instance = new Editor(container, data, options) +instance.register.shortcutList([ + { + key: KeyMap; + ctrl?: boolean; + shift?: boolean; + alt?: boolean; + isGlobal?: boolean; + callback: (command: Command) => any; + } + ]) +``` \ No newline at end of file diff --git a/docs/guide/shortcut-internal.md b/docs/guide/shortcut-internal.md new file mode 100644 index 0000000..4f13eab --- /dev/null +++ b/docs/guide/shortcut-internal.md @@ -0,0 +1,82 @@ +# 内部快捷键 + +## Backspace +功能:向前删除 + +## Delete +功能:向后删除 + +## Enter +功能:换行 + +## ← +功能:向左移动 + +## → +功能:向右移动 + +## ↑ +功能:向上移动 + +## ↓ +功能:向下移动 + +## Esc +功能:退出格式刷 + +## Tab +功能:增加缩进 + +## Ctrl + Z +功能:撤销 + +## Ctrl + Y +功能:重做 + +## Ctrl + C +功能:复制 + +## Ctrl + X +功能:剪切 + +## Ctrl + A +功能:全选 + +## Ctrl + S +功能:保存 + +## Ctrl + { +功能:增大字体 + +## Ctrl + } +功能:减小字体 + +## Ctrl + B +功能:加粗 + +## Ctrl + I +功能:斜体 + +## Ctrl + U +功能:下划线 + +## Ctrl + L +功能:行居左 + +## Ctrl + E +功能:行居中 + +## Ctrl + R +功能:行居右 + +## Ctrl + J +功能:两端对齐 + +## Ctrl + Shift + X +功能:删除线 + +## Ctrl + Shift + > +功能:上标 + +## Ctrl + Shift + < +功能:下标 \ No newline at end of file diff --git a/docs/guide/start.md b/docs/guide/start.md new file mode 100644 index 0000000..58bd36b --- /dev/null +++ b/docs/guide/start.md @@ -0,0 +1,58 @@ +# 入门 + +> 所见即所得的富文本编辑器。 + +得益于光标及文字排版的完全自行实现。绘制底层也可由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/)。 +::: + +## 功能点 + +- 富文本操作(撤销、重做、字体、字号、加粗、斜体、上下标、对齐方式.....) +- 插入元素(表格、图片、链接、代码块、分页符、Math公式、日期选择器、内容块......) +- 打印(基于canvas转图片、pdf绘制) +- 控件(单选、文本、复选框) +- 右键菜单(内部、自定义) +- 快捷键(内部、自定义) +- 页眉、页码 +- 文字拖拽 +- 页边距 +- 水印 +- 分页 + +## 待开发 + +- 渲染性能 +- 控件规则 +- 表格分页 +- 可编辑页眉页脚 + +## Step. 1: 下载npm包 + +```sh +npm i @hufe921/canvas-editor --save +``` + +## Step. 2: 准备一个容器 + +```html +
+``` + +## Step. 3: 实例化编辑器 + +```javascript +import Editor from "@hufe921/canvas-editor" + +new Editor(document.querySelector(".canvas-editor"), [ + { + value: "Hello World" + } + ], {}) +``` + +## Step. 4: 配置编辑器 + +详见下一节 \ No newline at end of file diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..8911033 --- /dev/null +++ b/docs/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的富文本编辑器 + actions: + - theme: brand + text: 开始 + link: /guide/start.html + - theme: alt + text: 在 GitHub 上查看 + link: https://github.com/Hufe921/canvas-editor + +features: + - icon: 💡 + title: 所见即所得 + details: 类word可分页,所见即所得 + - icon: ⚡️ + title: 轻量的数据结构 + details: 一段JSON即可呈现复杂样式 + - icon: 🛠️ + title: 丰富的功能 + details: 支持常见富文本操作、表格、水印、控件、公式等 + - icon: 📦 + title: 使用方便 + details: 官方发布核心npm包,菜单栏、工具栏可自行维护 + - icon: 🔩 + title: 灵活的开发机制 + details: 通过接口可获取生命周期、事件回调、自定义右键菜单、快捷键等 + - icon: 🔑 + title: 完全类型化的API + details: 灵活的 API 和完整的 TypeScript 类型。 +--- + + \ No newline at end of file diff --git a/docs/public/favicon.png b/docs/public/favicon.png new file mode 100644 index 0000000..d05e470 Binary files /dev/null and b/docs/public/favicon.png differ diff --git a/package.json b/package.json index b6a43be..8a7f8eb 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,10 @@ "lint": "eslint .", "cypress:open": "cypress open", "cypress:run": "cypress run", - "type:check": "tsc --noEmit" + "type:check": "tsc --noEmit", + "docs:dev": "vitepress dev docs", + "docs:build": "vitepress build docs", + "docs:preview": "vitepress preview docs" }, "devDependencies": { "@rollup/plugin-typescript": "^10.0.1", @@ -52,7 +55,9 @@ "eslint": "7.32.0", "typescript": "^4.3.2", "vite": "^2.4.2", - "vite-plugin-css-injected-by-js": "^2.1.1" + "vite-plugin-css-injected-by-js": "^2.1.1", + "vitepress": "^1.0.0-alpha.33", + "vue": "^3.2.45" }, "dependencies": { "prismjs": "^1.27.0" diff --git a/yarn.lock b/yarn.lock index e61f27f..38f0bec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,129 @@ # 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== + dependencies: + "@algolia/autocomplete-shared" "1.7.2" + +"@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== + dependencies: + "@algolia/autocomplete-shared" "1.7.2" + +"@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/cache-browser-local-storage@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.14.3.tgz#b9e0da012b2f124f785134a4d468ee0841b2399d" + integrity sha512-hWH1yCxgG3+R/xZIscmUrWAIBnmBFHH5j30fY/+aPkEZWt90wYILfAHIOZ1/Wxhho5SkPfwFmT7ooX2d9JeQBw== + dependencies: + "@algolia/cache-common" "4.14.3" + +"@algolia/cache-common@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.14.3.tgz#a78e9faee3dfec018eab7b0996e918e06b476ac7" + integrity sha512-oZJofOoD9FQOwiGTzyRnmzvh3ZP8WVTNPBLH5xU5JNF7drDbRT0ocVT0h/xB2rPHYzOeXRrLaQQBwRT/CKom0Q== + +"@algolia/cache-in-memory@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.14.3.tgz#96cefb942aeb80e51e6a7e29f25f4f7f3439b736" + integrity sha512-ES0hHQnzWjeioLQf5Nq+x1AWdZJ50znNPSH3puB/Y4Xsg4Av1bvLmTJe7SY2uqONaeMTvL0OaVcoVtQgJVw0vg== + dependencies: + "@algolia/cache-common" "4.14.3" + +"@algolia/client-account@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.14.3.tgz#6d7d032a65c600339ce066505c77013d9a9e4966" + integrity sha512-PBcPb0+f5Xbh5UfLZNx2Ow589OdP8WYjB4CnvupfYBrl9JyC1sdH4jcq/ri8osO/mCZYjZrQsKAPIqW/gQmizQ== + dependencies: + "@algolia/client-common" "4.14.3" + "@algolia/client-search" "4.14.3" + "@algolia/transporter" "4.14.3" + +"@algolia/client-analytics@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.14.3.tgz#ca409d00a8fff98fdcc215dc96731039900055dc" + integrity sha512-eAwQq0Hb/aauv9NhCH5Dp3Nm29oFx28sayFN2fdOWemwSeJHIl7TmcsxVlRsO50fsD8CtPcDhtGeD3AIFLNvqw== + dependencies: + "@algolia/client-common" "4.14.3" + "@algolia/client-search" "4.14.3" + "@algolia/requester-common" "4.14.3" + "@algolia/transporter" "4.14.3" + +"@algolia/client-common@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.14.3.tgz#c44e48652b2121a20d7a40cfd68d095ebb4191a8" + integrity sha512-jkPPDZdi63IK64Yg4WccdCsAP4pHxSkr4usplkUZM5C1l1oEpZXsy2c579LQ0rvwCs5JFmwfNG4ahOszidfWPw== + dependencies: + "@algolia/requester-common" "4.14.3" + "@algolia/transporter" "4.14.3" + +"@algolia/client-personalization@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.14.3.tgz#8f71325035aa2a5fa7d1d567575235cf1d6c654f" + integrity sha512-UCX1MtkVNgaOL9f0e22x6tC9e2H3unZQlSUdnVaSKpZ+hdSChXGaRjp2UIT7pxmPqNCyv51F597KEX5WT60jNg== + dependencies: + "@algolia/client-common" "4.14.3" + "@algolia/requester-common" "4.14.3" + "@algolia/transporter" "4.14.3" + +"@algolia/client-search@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.14.3.tgz#cf1e77549f5c3e73408ffe6441ede985fde69da0" + integrity sha512-I2U7xBx5OPFdPLA8AXKUPPxGY3HDxZ4r7+mlZ8ZpLbI8/ri6fnu6B4z3wcL7sgHhDYMwnAE8Xr0AB0h3Hnkp4A== + dependencies: + "@algolia/client-common" "4.14.3" + "@algolia/requester-common" "4.14.3" + "@algolia/transporter" "4.14.3" + +"@algolia/logger-common@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.14.3.tgz#87d4725e7f56ea5a39b605771b7149fff62032a7" + integrity sha512-kUEAZaBt/J3RjYi8MEBT2QEexJR2kAE2mtLmezsmqMQZTV502TkHCxYzTwY2dE7OKcUTxi4OFlMuS4GId9CWPw== + +"@algolia/logger-console@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.14.3.tgz#1f19f8f0a5ef11f01d1f9545290eb6a89b71fb8a" + integrity sha512-ZWqAlUITktiMN2EiFpQIFCJS10N96A++yrexqC2Z+3hgF/JcKrOxOdT4nSCQoEPvU4Ki9QKbpzbebRDemZt/hw== + dependencies: + "@algolia/logger-common" "4.14.3" + +"@algolia/requester-browser-xhr@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.14.3.tgz#bcf55cba20f58fd9bc95ee55793b5219f3ce8888" + integrity sha512-AZeg2T08WLUPvDncl2XLX2O67W5wIO8MNaT7z5ii5LgBTuk/rU4CikTjCe2xsUleIZeFl++QrPAi4Bdxws6r/Q== + dependencies: + "@algolia/requester-common" "4.14.3" + +"@algolia/requester-common@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.14.3.tgz#2d02fbe01afb7ae5651ae8dfe62d6c089f103714" + integrity sha512-RrRzqNyKFDP7IkTuV3XvYGF9cDPn9h6qEDl595lXva3YUk9YSS8+MGZnnkOMHvjkrSCKfoLeLbm/T4tmoIeclw== + +"@algolia/requester-node-http@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.14.3.tgz#72389e1c2e5d964702451e75e368eefe85a09d8f" + integrity sha512-O5wnPxtDRPuW2U0EaOz9rMMWdlhwP0J0eSL1Z7TtXF8xnUeeUyNJrdhV5uy2CAp6RbhM1VuC3sOJcIR6Av+vbA== + dependencies: + "@algolia/requester-common" "4.14.3" + +"@algolia/transporter@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.14.3.tgz#5593036bd9cf2adfd077fdc3e81d2e6118660a7a" + integrity sha512-2qlKlKsnGJ008exFRb5RTeTOqhLZj0bkMCMVskxoqWejs2Q2QtWmsiH98hDfpw0fmnyhzHEt0Z7lqxBYp8bW2w== + dependencies: + "@algolia/cache-common" "4.14.3" + "@algolia/logger-common" "4.14.3" + "@algolia/requester-common" "4.14.3" + "@babel/code-frame@7.12.11": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" @@ -23,6 +146,11 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/parser@^7.16.4": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" + integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== + "@cypress/request@^2.88.10": version "2.88.10" resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.10.tgz#b66d76b07f860d3a4b8d7a0604d020c662752cce" @@ -55,6 +183,139 @@ 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/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== + dependencies: + "@docsearch/react" "3.3.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== + dependencies: + "@algolia/autocomplete-core" "1.7.2" + "@algolia/autocomplete-preset-algolia" "1.7.2" + "@docsearch/css" "3.3.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== + "@eslint/eslintrc@^0.4.3": version "0.4.3" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" @@ -162,6 +423,11 @@ 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/yauzl@^2.9.1": version "2.9.2" resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" @@ -239,6 +505,128 @@ "@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== + +"@vue/compiler-core@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz#d9311207d96f6ebd5f4660be129fb99f01ddb41b" + integrity sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/shared" "3.2.45" + estree-walker "^2.0.2" + source-map "^0.6.1" + +"@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" + integrity sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw== + dependencies: + "@vue/compiler-core" "3.2.45" + "@vue/shared" "3.2.45" + +"@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" + integrity sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.45" + "@vue/compiler-dom" "3.2.45" + "@vue/compiler-ssr" "3.2.45" + "@vue/reactivity-transform" "3.2.45" + "@vue/shared" "3.2.45" + estree-walker "^2.0.2" + magic-string "^0.25.7" + postcss "^8.1.10" + source-map "^0.6.1" + +"@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" + integrity sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ== + dependencies: + "@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/reactivity-transform@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz#07ac83b8138550c83dfb50db43cde1e0e5e8124d" + integrity sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.45" + "@vue/shared" "3.2.45" + estree-walker "^2.0.2" + magic-string "^0.25.7" + +"@vue/reactivity@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.45.tgz#412a45b574de601be5a4a5d9a8cbd4dee4662ff0" + integrity sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A== + dependencies: + "@vue/shared" "3.2.45" + +"@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" + integrity sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A== + dependencies: + "@vue/reactivity" "3.2.45" + "@vue/shared" "3.2.45" + +"@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" + integrity sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA== + dependencies: + "@vue/runtime-core" "3.2.45" + "@vue/shared" "3.2.45" + csstype "^2.6.8" + +"@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" + integrity sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g== + dependencies: + "@vue/compiler-ssr" "3.2.45" + "@vue/shared" "3.2.45" + +"@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== + dependencies: + "@types/web-bluetooth" "^0.0.16" + "@vueuse/metadata" "9.9.0" + "@vueuse/shared" "9.9.0" + vue-demi "*" + +"@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/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== + dependencies: + vue-demi "*" + acorn-jsx@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -277,6 +665,26 @@ ajv@^8.0.1: require-from-string "^2.0.2" uri-js "^4.2.2" +algoliasearch@^4.0.0: + version "4.14.3" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.14.3.tgz#f02a77a4db17de2f676018938847494b692035e7" + integrity sha512-GZTEuxzfWbP/vr7ZJfGzIl8fOsoxN916Z6FY2Egc9q2TmZ6hvq5KfAxY89pPW01oW/2HDEKA8d30f9iAH9eXYg== + dependencies: + "@algolia/cache-browser-local-storage" "4.14.3" + "@algolia/cache-common" "4.14.3" + "@algolia/cache-in-memory" "4.14.3" + "@algolia/client-account" "4.14.3" + "@algolia/client-analytics" "4.14.3" + "@algolia/client-common" "4.14.3" + "@algolia/client-personalization" "4.14.3" + "@algolia/client-search" "4.14.3" + "@algolia/logger-common" "4.14.3" + "@algolia/logger-console" "4.14.3" + "@algolia/requester-browser-xhr" "4.14.3" + "@algolia/requester-common" "4.14.3" + "@algolia/requester-node-http" "4.14.3" + "@algolia/transporter" "4.14.3" + ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" @@ -394,6 +802,11 @@ bluebird@^3.7.2: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== +body-scroll-lock@4.0.0-beta.0: + version "4.0.0-beta.0" + resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz#4f78789d10e6388115c0460cd6d7d4dd2bbc4f7e" + integrity sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -563,6 +976,11 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" +csstype@^2.6.8: + version "2.6.21" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" + integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== + 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" @@ -808,6 +1226,34 @@ 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== + 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" + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -1392,6 +1838,11 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= +jsonc-parser@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -1483,6 +1934,13 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -1545,6 +2003,11 @@ nanoid@^3.1.30: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -1647,6 +2110,15 @@ 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: + version "8.4.20" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" + integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + postcss@^8.3.8: version "8.3.11" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.11.tgz#c3beca7ea811cd5e1c4a3ec6d2e7599ef1f8f858" @@ -1656,6 +2128,11 @@ postcss@^8.3.8: picocolors "^1.0.0" source-map-js "^0.6.2" +preact@^10.0.0: + version "10.11.3" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.11.3.tgz#8a7e4ba19d3992c488b0785afcc0f8aa13c78d19" + integrity sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg== + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -1780,6 +2257,13 @@ 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== + optionalDependencies: + fsevents "~2.3.2" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -1823,6 +2307,15 @@ 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== + dependencies: + jsonc-parser "^3.2.0" + vscode-oniguruma "^1.7.0" + vscode-textmate "^8.0.0" + signal-exit@^3.0.2: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" @@ -1856,6 +2349,21 @@ source-map-js@^0.6.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -2080,6 +2588,59 @@ 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== + dependencies: + esbuild "^0.16.3" + postcss "^8.4.20" + resolve "^1.22.1" + rollup "^3.7.0" + 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" + body-scroll-lock "4.0.0-beta.0" + shiki "^0.12.1" + vite "^4.0.2" + vue "^3.2.45" + +vscode-oniguruma@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz#439bfad8fe71abd7798338d1cd3dc53a8beea94b" + integrity sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA== + +vscode-textmate@^8.0.0: + version "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@^3.2.45: + version "3.2.45" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.45.tgz#94a116784447eb7dbd892167784619fef379b3c8" + integrity sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA== + dependencies: + "@vue/compiler-dom" "3.2.45" + "@vue/compiler-sfc" "3.2.45" + "@vue/runtime-dom" "3.2.45" + "@vue/server-renderer" "3.2.45" + "@vue/shared" "3.2.45" + which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"