Showing preview only (7,161K chars total). Download the full file or copy to clipboard to get everything.
Repository: wanglin2/mind-map
Branch: main
Commit: fc4f93a38ee2
Files: 195
Total size: 6.8 MB
Directory structure:
gitextract_r5aeeteh/
├── .gitignore
├── Dockerfile
├── LICENSE
├── README.md
├── README_EN.md
├── README_MORE_EN.md
├── README_MORE_ZH.md
├── copy.js
├── dist/
│ ├── css/
│ │ ├── app.css
│ │ ├── chunk-2f9a41ed.css
│ │ ├── chunk-3222d6ee.css
│ │ └── chunk-vendors.css
│ └── js/
│ ├── app.js
│ ├── chunk-2f9a41ed.js
│ ├── chunk-3222d6ee.js
│ └── chunk-vendors.js
├── index.html
├── nginx.conf
├── simple-mind-map/
│ ├── .eslintrc.js
│ ├── .prettierignore
│ ├── .prettierrc
│ ├── README.md
│ ├── bin/
│ │ ├── createPluginsTypeFiles.js
│ │ └── wsServer.mjs
│ ├── example/
│ │ ├── exampleData.js
│ │ └── exportFullData.json
│ ├── full.js
│ ├── index.js
│ ├── package.json
│ ├── scripts/
│ │ └── walkJsFiles.js
│ └── src/
│ ├── constants/
│ │ ├── constant.js
│ │ └── defaultOptions.js
│ ├── core/
│ │ ├── command/
│ │ │ ├── Command.js
│ │ │ ├── KeyCommand.js
│ │ │ └── keyMap.js
│ │ ├── event/
│ │ │ └── Event.js
│ │ ├── render/
│ │ │ ├── Render.js
│ │ │ ├── TextEdit.js
│ │ │ └── node/
│ │ │ ├── MindMapNode.js
│ │ │ ├── Shape.js
│ │ │ ├── Style.js
│ │ │ ├── nodeCommandWraps.js
│ │ │ ├── nodeCooperate.js
│ │ │ ├── nodeCreateContents.js
│ │ │ ├── nodeExpandBtn.js
│ │ │ ├── nodeExpandBtnPlaceholderRect.js
│ │ │ ├── nodeGeneralization.js
│ │ │ ├── nodeLayout.js
│ │ │ ├── nodeModifyWidth.js
│ │ │ └── quickCreateChildBtn.js
│ │ └── view/
│ │ └── View.js
│ ├── layouts/
│ │ ├── Base.js
│ │ ├── CatalogOrganization.js
│ │ ├── Fishbone.js
│ │ ├── LogicalStructure.js
│ │ ├── MindMap.js
│ │ ├── OrganizationStructure.js
│ │ ├── Timeline.js
│ │ ├── VerticalTimeline.js
│ │ └── fishboneUtils.js
│ ├── parse/
│ │ ├── markdown.js
│ │ ├── markdownTo.js
│ │ ├── toMarkdown.js
│ │ ├── toTxt.js
│ │ └── xmind.js
│ ├── plugins/
│ │ ├── AssociativeLine.js
│ │ ├── Cooperate.js
│ │ ├── Demonstrate.js
│ │ ├── Drag.js
│ │ ├── Export.js
│ │ ├── ExportPDF.js
│ │ ├── ExportXMind.js
│ │ ├── Formula.js
│ │ ├── FormulaStyle.js
│ │ ├── KeyboardNavigation.js
│ │ ├── MindMapLayoutPro.js
│ │ ├── MiniMap.js
│ │ ├── NodeBase64ImageStorage.js
│ │ ├── NodeImgAdjust.js
│ │ ├── OuterFrame.js
│ │ ├── Painter.js
│ │ ├── RainbowLines.js
│ │ ├── RichText.js
│ │ ├── Scrollbar.js
│ │ ├── Search.js
│ │ ├── Select.js
│ │ ├── TouchEvent.js
│ │ ├── Watermark.js
│ │ ├── associativeLine/
│ │ │ ├── associativeLineControls.js
│ │ │ ├── associativeLineText.js
│ │ │ └── associativeLineUtils.js
│ │ └── outerFrame/
│ │ ├── outerFrameText.js
│ │ └── outerFrameUtils.js
│ ├── svg/
│ │ ├── btns.js
│ │ └── icons.js
│ ├── theme/
│ │ ├── default.js
│ │ └── index.js
│ └── utils/
│ ├── AutoMove.js
│ ├── BatchExecution.js
│ ├── Lru.js
│ ├── index.js
│ ├── mersenneTwister.js
│ ├── simulateCSSBackgroundInCanvas.js
│ └── xmind.js
└── web/
├── .prettierignore
├── .prettierrc
├── babel.config.js
├── package.json
├── public/
│ └── index.html
├── scripts/
│ ├── ai.js
│ ├── createNodeImageList.js
│ └── updateVersion.js
├── src/
│ ├── App.vue
│ ├── api/
│ │ └── index.js
│ ├── assets/
│ │ ├── icon-font/
│ │ │ └── iconfont.css
│ │ └── svg/
│ │ ├── business/
│ │ │ └── 商务
│ │ ├── education/
│ │ │ └── 教育
│ │ ├── festival/
│ │ │ └── 节日
│ │ ├── food/
│ │ │ └── 食物
│ │ ├── medicine/
│ │ │ └── 医疗
│ │ ├── tools/
│ │ │ └── 工具
│ │ └── travel/
│ │ └── 旅行
│ ├── components/
│ │ └── ImgUpload/
│ │ ├── index.vue
│ │ └── style.less
│ ├── config/
│ │ ├── constant.js
│ │ ├── en.js
│ │ ├── icon.js
│ │ ├── image.js
│ │ ├── index.js
│ │ ├── vi.js
│ │ ├── zh.js
│ │ └── zhtw.js
│ ├── i18n.js
│ ├── lang/
│ │ ├── en_us.js
│ │ ├── index.js
│ │ ├── vi_vn.js
│ │ ├── zh_cn.js
│ │ └── zh_tw.js
│ ├── main.js
│ ├── pages/
│ │ ├── Doc.vue
│ │ └── Edit/
│ │ ├── Index.vue
│ │ └── components/
│ │ ├── AiChat.vue
│ │ ├── AiConfigDialog.vue
│ │ ├── AiCreate.vue
│ │ ├── AssociativeLineStyle.vue
│ │ ├── BaseStyle.vue
│ │ ├── Color.vue
│ │ ├── Contextmenu.vue
│ │ ├── Count.vue
│ │ ├── Demonstrate.vue
│ │ ├── Edit.vue
│ │ ├── Export.vue
│ │ ├── FormulaSidebar.vue
│ │ ├── Fullscreen.vue
│ │ ├── Import.vue
│ │ ├── MouseAction.vue
│ │ ├── Navigator.vue
│ │ ├── NavigatorToolbar.vue
│ │ ├── NodeHyperlink.vue
│ │ ├── NodeIcon.vue
│ │ ├── NodeIconSidebar.vue
│ │ ├── NodeIconToolbar.vue
│ │ ├── NodeImage.vue
│ │ ├── NodeImgPlacementToolbar.vue
│ │ ├── NodeImgPreview.vue
│ │ ├── NodeNote.vue
│ │ ├── NodeNoteContentShow.vue
│ │ ├── NodeNoteSidebar.vue
│ │ ├── NodeOuterFrame.vue
│ │ ├── NodeTag.vue
│ │ ├── NodeTagStyle.vue
│ │ ├── Outline.vue
│ │ ├── OutlineEdit.vue
│ │ ├── OutlineSidebar.vue
│ │ ├── RichTextToolbar.vue
│ │ ├── Scale.vue
│ │ ├── Scrollbar.vue
│ │ ├── Search.vue
│ │ ├── Setting.vue
│ │ ├── ShortcutKey.vue
│ │ ├── Sidebar.vue
│ │ ├── SidebarTrigger.vue
│ │ ├── Structure.vue
│ │ ├── Style.vue
│ │ ├── Theme.vue
│ │ ├── Toolbar.vue
│ │ └── ToolbarNodeBtnList.vue
│ ├── router.js
│ ├── store.js
│ ├── style/
│ │ └── outlineTree.less
│ └── utils/
│ ├── ai.js
│ ├── handleClipboardText.js
│ ├── index.js
│ └── loading.js
└── vue.config.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
node_modules
.DS_Store
dist_electron
simple-mind-map/dist
simple-mind-map/types
utools/dist
================================================
FILE: Dockerfile
================================================
FROM nginx
RUN mkdir /app
COPY ./index.html /app/
COPY ./dist /app/dist/
COPY nginx.conf /etc/nginx/nginx.conf
================================================
FILE: LICENSE
================================================
The MIT License (MIT)
Copyright (c) 2021-2023 The MindMap Team
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
<h1 align="center">Simple mind map</h1>
[](https://www.npmjs.com/package/simple-mind-map)

[](https://github.com/wanglin2/mind-map/issues)

[](https://github.com/wanglin2/mind-map/stargazers)
[](https://github.com/wanglin2/mind-map/network/members)
[English](./README_EN.md) | 中文
> 中文名:思绪思维导图。一个简单&强大的 Web 思维导图库和思维导图软件。
本项目包含两部分:开源的JavaScript库和闭源的客户端软件。
# 库、Web
> 即本仓库中的代码,目前已进入低维护状态。
- 一个 `js` 思维导图库,不依赖任何框架,可以用来快速完成 Web 思维导图产品的开发。
> 开发文档:[https://wanglin2.github.io/mind-map-docs/](https://wanglin2.github.io/mind-map-docs/)
- 一个 Web 思维导图,基于思维导图库、`Vue2.x`、`ElementUI` 开发,支持操作电脑本地文件,可以当做一个在线版思维导图应用使用,也可以自部署和二次开发。
> 在线地址:[https://wanglin2.github.io/mind-map/](https://wanglin2.github.io/mind-map/)
了解更多信息:[README](./README_MORE_ZH.md)。
# 客户端、插件
> 客户端和插件代码不开源,正在积极开发维护中。
- 思绪思维导图客户端
本地化存储,隐私优先,数据安全,软件无需联网即可使用!
- [x] 1.支持创建无限数量的文件、节点(自由节点);支持创建使用模板;
- [x] 2.提供丰富的设置:基础设置、自定义字体/快捷键/右键菜单/图标、图床配置、AI配置、webdav云同步配置等等,可玩性很高;
- [x] 3.支持思维导图、逻辑结构图、目录组织图、组织结构图、时间轴、鱼骨图、表格等多种结构类型;
- [x] 4.内置上百个丰富好看的主题,也支持自定义主题及AI生成主题;
- [x] 5.节点支持添加文本、图片、链接、图标、备注、附件、标签、概要节点、关联线、外框、标记、待办、描述、编号、数学公式等丰富内容;
- [x] 6.支持导入XMind、FreeMind、Markdown、Txt、Xlsx等格式文件;支持导出为PNG、XMind、SVG、PDF、Markdown、Txt、Xlsx、FreeMind、Mermaid、Html等格式;
- [x] 7.丰富的样式设置:文字、边框、背景、形状、线条、内外边距、图片标签布局等等;
- [x] 8.支持历史版本管理、演示模式、AI生成、手绘风格、大纲编辑、水印、滚动条、同级节点对齐、小地图、进入指定节点、彩虹线条、节点双向链接、搜索替换等等实用有趣的功能;
支持Windows、Mac及Linux系统;支持中文简体、繁體中文、English、Tiếng Việt、Русский、日本語、한국어、Deutsch、Français、Português语言。
下载地址:[Github](https://github.com/wanglin2/mind-map/releases)、[百度网盘](https://pan.baidu.com/s/1C8phEJ5pagAAa-o1tU42Uw?pwd=jqfb)、[夸克网盘](https://pan.quark.cn/s/2733982f1976)、[微软应用商店](https://apps.microsoft.com/detail/9p58vg94khcq?hl=zh-CN&gl=CN)
> 如果在macOS上安装后无法打开,报错**不受信任**或者**移到垃圾箱**,执行下面命令后再启动即可:
> ``` shell
> sudo xattr -d com.apple.quarantine /Applications/思绪思维导图.app
> ```






- Obsidian插件
下载地址:[Github](https://github.com/wanglin2/obsidian-simplemindmap/releases)





- UTools插件
已上架[uTools](https://www.u.tools/)插件应用市场,可直接在`uTools`插件应用市场中搜索`思绪`进行安装,也可以直接访问该地址:[主页](https://www.u-tools.cn/plugins/detail/%E6%80%9D%E7%BB%AA%E6%80%9D%E7%BB%B4%E5%AF%BC%E5%9B%BE/),点击右侧的【启动】按钮进行安装。
================================================
FILE: README_EN.md
================================================
<h1 align="center">Simple mind map</h1>
[](https://www.npmjs.com/package/simple-mind-map)

[](https://github.com/wanglin2/mind-map/issues)

[](https://github.com/wanglin2/mind-map/stargazers)
[](https://github.com/wanglin2/mind-map/network/members)
English | [中文](./README.md)
> Chinese name: 思绪思维导图. A simple & powerful web mind map library and mind map software.
This project consists of two parts: an open-source JavaScript library and closed-source client software.
# Library, Web
> Refers to the code in this repository, currently in low-maintenance status.
- A `js` mind map library, independent of any framework, which can be used to quickly develop web-based mind map products.
> Documentation: [https://wanglin2.github.io/mind-map-docs/](https://wanglin2.github.io/mind-map-docs/)
- A web-based mind map application, developed using the mind map library, `Vue2.x`, and `ElementUI`. It supports operations on local computer files, can be used as an online mind map application, and is open for self-deployment and secondary development.
> Online address: [https://wanglin2.github.io/mind-map/](https://wanglin2.github.io/mind-map/)
Learn more: [README](./README_MORE_EN.md).
# Client, Plugins
> The client and plugin code are not open source and are under active development and maintenance.
- 思绪思维导图 Client
Local storage, privacy-first, data security. The software can be used without an internet connection!
- [x] 1. Supports creating unlimited files and nodes (free nodes); supports creating and using templates.
- [x] 2. Offers rich settings: basic settings, custom fonts/shortcuts/right-click menus/icons, image hosting configuration, AI configuration, WebDAV cloud sync configuration, etc., highly customizable.
- [x] 3. Supports various structure types: mind maps, logical structure diagrams, directory organization charts, organizational charts, timelines, fishbone diagrams, tables, etc.
- [x] 4. Built-in hundreds of rich and beautiful themes, also supports custom themes and AI-generated themes.
- [x] 5. Nodes support adding rich content: text, images, links, icons, notes, attachments, tags, summary nodes, association lines, borders, markers, to-dos, descriptions, numbering, mathematical formulas, etc.
- [x] 6. Supports importing files in XMind, FreeMind, Markdown, Txt, Xlsx, etc.; supports exporting to PNG, XMind, SVG, PDF, Markdown, Txt, Xlsx, FreeMind, Mermaid, Html, etc.
- [x] 7. Rich style settings: text, borders, background, shape, lines, inner/outer margins, image tag layout, etc.
- [x] 8. Supports practical and interesting features: historical version management, presentation mode, AI generation, hand-drawn style, outline editing, watermark, scrollbars, sibling node alignment, minimap, entering specific nodes, rainbow lines, bidirectional node linking, search and replace, etc.
Supports Windows, Mac, and Linux systems; supports 中文简体、繁體中文、English、Tiếng Việt、Русский、日本語、한국어、Deutsch、Français、Português languages.
Download links: [Github](https://github.com/wanglin2/mind-map/releases), [Baidu Netdisk](https://pan.baidu.com/s/1C8phEJ5pagAAa-o1tU42Uw?pwd=jqfb), [Quark Netdisk](https://pan.quark.cn/s/2733982f1976)、[Microsoft App Store](https://apps.microsoft.com/detail/9p58vg94khcq?hl=zh-CN&gl=CN)
> If the software fails to open after installation on macOS, showing an error like **untrusted** or **moved to trash**, execute the following command and then restart:
> ``` shell
> sudo xattr -d com.apple.quarantine /Applications/思绪思维导图.app
> ```






- Obsidian Plugin
Download link: [Github](https://github.com/wanglin2/obsidian-simplemindmap/releases)





- UTools Plugin
Available in the [uTools](https://www.u.tools/) plugin market. You can search for `思绪` directly in the uTools plugin market to install it, or visit this address directly: [Homepage](https://www.u-tools.cn/plugins/detail/%E6%80%9D%E7%BB%AA%E6%80%9D%E7%BB%B4%E5%AF%BC%E5%9B%BE/), and click the 【Launch】 button on the right to install.
================================================
FILE: README_MORE_EN.md
================================================
# Features
- [x] Plugin-based architecture. Apart from core functionalities, other features are provided as plugins, allowing on-demand use to reduce bundle size.
- [x] Supports various structures: Logical Structure Diagrams (left, right), Mind Maps, Organizational Charts, Directory Organization Charts, Timelines (horizontal, vertical), Fishbone Diagrams, etc.
- [x] Built-in multiple themes, allows high customization of styles, supports registering new themes.
- [x] Node content supports text (plain text, rich text), images, icons, hyperlinks, notes, tags, summaries, mathematical formulas.
- [x] Nodes support drag-and-drop (move, free resize), multiple node shapes; supports extending node content, supports using DDM for fully custom node content.
- [x] Supports canvas dragging and zooming.
- [x] Supports two methods for multi-selecting nodes: mouse button drag selection and Ctrl+left click.
- [x] Supports export to `json`, `png`, `svg`, `pdf`, `markdown`, `xmind`, `txt`; supports import from `json`, `xmind`, `markdown`.
- [x] Supports shortcuts, undo/redo, associative lines, search/replace, mini-map, watermark, scrollbars, hand-drawn style, rainbow lines, markers, outer frames.
- [x] Provides rich configuration options to meet various scenarios and usage habits.
- [x] Supports collaborative editing.
- [x] Supports presentation mode.
- [x] More features await your discovery.
The following plugins are officially provided and can be imported as needed (if a feature doesn't work, it's likely because the corresponding plugin hasn't been imported). Please refer to the documentation for specific usage:
| RichText (Node Rich Text Plugin) | Select (Mouse Multi-Select Node Plugin) | Drag (Node Drag Plugin) | AssociativeLine (Associative Line Plugin) |
| ------------------------------------- | ----------------------------------------- | ------------------------------------- | ----------------------------------------- |
| Export (Export Plugin) | KeyboardNavigation (Keyboard Navigation Plugin) | MiniMap (Mini-Map Plugin) | Watermark (Watermark Plugin) |
| TouchEvent (Mobile Touch Event Support Plugin) | NodeImgAdjust (Drag to Adjust Node Image Size Plugin) | Search (Search Plugin) | Painter (Node Format Painter Plugin) |
| Scrollbar (Scrollbar Plugin) | Formula (Mathematical Formula Plugin) | Cooperate (Collaborative Editing Plugin) | RainbowLines (Rainbow Lines Plugin) |
| Demonstrate (Presentation Mode Plugin) | OuterFrame (Outer Frame Plugin) | MindMapLayoutPro (Mind Map Layout Plugin) | |
Features that will **not** be implemented in this project:
> 1. Free nodes, i.e., multiple root nodes.
>
> 2. Adding nodes after a summary node.
>
> If you need the above features, this library may not meet your requirements.
# Installation
```bash
npm i simple-mind-map
```
# Usage
Provide a container element with non-zero width and height:
```html
<div id="mindMapContainer"></div>
```
Also, set the following CSS styles:
```css
#mindMapContainer * {
margin: 0;
padding: 0;
}
```
Then create an instance:
```js
import MindMap from "simple-mind-map";
const mindMap = new MindMap({
el: document.getElementById("mindMapContainer"),
data: {
data: {
text: "Root Node",
},
children: [],
},
});
```
You will get a mind map. Want to implement more features? Check the [Development Documentation](https://wanglin2.github.io/mind-map-docs/).
# License
[MIT](./LICENSE). Commercial use is permitted freely as long as the `simple-mind-map` copyright notice and attribution are retained. If you have questions or wish to remove these requirements, please contact the author (WeChat: wanglinguanfang) for a paid option to remove them.
> Example: You can add the following content on any page of your application, such as the About page, Help page, Documentation page, Open Source Notice, etc.:
>
> The mind map feature of this product is developed based on the SimpleMindMap project. The copyright belongs to the original project. [Open Source License](https://github.com/wanglin2/mind-map/blob/main/LICENSE).
# Development Help / Technical Support / Consulting
Due to limited time and a shift in focus, we currently do not provide any development support (including paid support). Thank you for your understanding!
# Star
If you like this project, welcome to give it a star. It means a lot to us.
[](https://star-history.com/#wanglin2/mind-map&Date)
================================================
FILE: README_MORE_ZH.md
================================================
# 特性
- [x] 插件化架构,除核心功能外,其他功能作为插件提供,按需使用,减小打包体积
- [x] 支持逻辑结构图(向左、向右逻辑结构图)、思维导图、组织结构图、目录组织图、时间轴(横向、竖向)、鱼骨图等结构
- [x] 内置多种主题,允许高度自定义样式,支持注册新主题
- [x] 节点内容支持文本(普通文本、富文本)、图片、图标、超链接、备注、标签、概要、数学公式
- [x] 节点支持拖拽(拖拽移动、自由调整)、多种节点形状;支持扩展节点内容、支持使用 DDM 完全自定义节点内容
- [x] 支持画布拖动、缩放
- [x] 支持鼠标按键拖动选择和 Ctrl+左键两种多选节点方式
- [x] 支持导出为`json`、`png`、`svg`、`pdf`、`markdown`、`xmind`、`txt`,支持从`json`、`xmind`、`markdown`导入
- [x] 支持快捷键、前进后退、关联线、搜索替换、小地图、水印、滚动条、手绘风格、彩虹线条、标记、外框
- [x] 提供丰富的配置,满足各种场景各种使用习惯
- [x] 支持协同编辑
- [x] 支持演示模式
- [x] 更多功能等你来发现
官方提供了如下插件,可根据需求按需引入(某个功能不生效大概率是因为你没有引入对应的插件),具体使用方式请查看文档:
| RichText(节点富文本插件) | Select(鼠标多选节点插件) | Drag(节点拖拽插件) | AssociativeLine(关联线插件) |
| ------------------------------------ | ----------------------------------------- | ------------------------------------ | ------------------------------------ |
| Export(导出插件) | KeyboardNavigation(键盘导航插件) | MiniMap(小地图插件) | Watermark(水印插件) |
| TouchEvent(移动端触摸事件支持插件) | NodeImgAdjust(拖拽调整节点图片大小插件) | Search(搜索插件) | Painter(节点格式刷插件) |
| Scrollbar(滚动条插件) | Formula(数学公式插件) | Cooperate(协同编辑插件) | RainbowLines(彩虹线条插件) |
| Demonstrate(演示模式插件) | OuterFrame(外框插件) | MindMapLayoutPro(思维导图布局插件) | |
本项目不会实现的特性:
> 1.自由节点,即多个根节点;
>
> 2.概要节点后面继续添加节点;
>
> 如果你需要以上特性,那么本库可能无法满足你的需求。
# 安装
```bash
npm i simple-mind-map
```
# 使用
提供一个宽高不为 0 的容器元素:
```html
<div id="mindMapContainer"></div>
```
另外再设置一下`css`样式:
```css
#mindMapContainer * {
margin: 0;
padding: 0;
}
```
然后创建一个实例:
```js
import MindMap from "simple-mind-map";
const mindMap = new MindMap({
el: document.getElementById("mindMapContainer"),
data: {
data: {
text: "根节点",
},
children: [],
},
});
```
即可得到一个思维导图。想要实现更多功能?可以查看[开发文档](https://wanglin2.github.io/mind-map-docs/)。
# License
[MIT](./LICENSE)。保留`simple-mind-map`版权声明和注明来源的情况下可随意商用,如有疑问或不想保留可联系作者(微信:wanglinguanfang)通过付费的方式去除。
> 示例:可以在你应用中的关于页面、帮助页面、文档页面、开源声明等任何页面添加以下内容:
>
> 本产品思维导图基于SimpleMindMap项目开发,版权归源项目所有,[开源协议](https://github.com/wanglin2/mind-map/blob/main/LICENSE)。
# 开发帮助/技术支持/咨询等
因精力有限,及重心转变,暂不提供任何开发支持(包括有偿),请见谅!
# star
如果喜欢本项目,欢迎点个 star,这对我们很重要。
[](https://star-history.com/#wanglin2/mind-map&Date)
# 关于定制
如果你有个性化的商用定制需求,可以联系我们,我们提供付费开发服务,无论前端、后端、还是部署,都可以帮你一站式搞定。
# 谁在使用
<table>
<tr>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="http://drawon.cn/">
<img src="./web/src/assets/avatar/桌案.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>drawon.cn(桌案)</b></sub>
</a>
</td>
</tr>
</table>
# 感谢赞赏过本项目的人
## 最强王者
<table>
<tr>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/hi.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>hi</b></sub>
</a>
</td>
</tr>
</table>
## 钻石赞助
<table>
<tr>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/黄智彪@一米一栗科技.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>黄智彪@一米一栗科技</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/沨沄.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>沨沄</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/行.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>行</b></sub>
</a>
</td>
</tr>
</table>
## 黄金赞助
<table>
<tr>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/小土渣的宇宙.jpeg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>小土渣的宇宙</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/Chris.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>Chris</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/仓鼠.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>仓鼠</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/风格.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>风格</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>LiuJL</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/Kyle.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>Kyle</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/秀树因馨雨.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>秀树因馨雨</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>黄泳</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/ccccs.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>ccccs</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/炫.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>炫</b></sub>
</a>
</td>
</tr>
<tr>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>晏江</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/梁辉.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>梁辉</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/千帆.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>千帆</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/布林.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>布林</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/达仁科技.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>达仁科技</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/沐风牧草.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>沐风牧草</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/俊奇.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>俊奇</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/庆国.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>庆国</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>Matt</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/雨馨.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>雨馨</b></sub>
</a>
</td>
</tr>
<tr>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/峰.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>峰</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/御风.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>御风</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/兔子快跑.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>兔子快跑</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>LSHM</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>newplayer</b></sub>
</a>
</td>
</tr>
</table>
## 青铜赞助
<table>
<tr>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/Think.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>Think</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/志斌.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>志斌</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/qp.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>qp</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/ZXR.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>ZXR</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/花儿朵朵.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>花儿朵朵</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/suka.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>suka</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/水车.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>水车</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/才镇.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>才镇</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/小米.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>小米bbᯤ²ᴳ</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/棐.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>*棐</b></sub>
</a>
</td>
</tr>
<tr>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/南风.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>南风</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/蜉蝣撼大叔.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>蜉蝣撼大叔</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/乙.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>乙</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/敏.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>敏</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/有希.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>有希</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/樊笼.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>樊笼</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/小逗比.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>小逗比</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/天清如愿.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>天清如愿</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/敬明朗.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>敬明朗</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>飞箭</b></sub>
</a>
</td>
</tr>
<tr>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/戚永峰.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>戚永峰</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/moom.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>moom</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/张扬.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>张扬</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/长沙利奥软件.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>长沙利奥软件</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/HaHN.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>HaHN</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/继龙.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>继龙</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/欣.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>欣</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>易空小易</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/国发.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>国发</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>建明</b></sub>
</a>
</td>
</tr>
<tr>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/汪津合.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>汪津合</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>博文</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/慕智打印-兰兰.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>慕智打印-兰兰</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>锦冰</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/旭东.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>旭东</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/橘半.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>橘半</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/pluvet.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>pluvet</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/皇登攀.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>皇登攀</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>SR</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/逆水行舟.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>逆水行舟</b></sub>
</a>
</td>
</tr>
<tr>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/L.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>L</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>sunniberg</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/在下青铜五.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>sunniberg</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/在下青铜五.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>在下青铜五</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/木星二号.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>木星二号</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/阿晨.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>阿晨</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>铁</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/Alex.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>Alex</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/子豪.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>子豪</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/宏涛.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>宏涛</b></sub>
</a>
</td>
</tr>
<tr>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/最多5个字.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>最多5个字</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/ZX.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>ZX</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>协成</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/木木.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>木木</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/好名字.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>好名字</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/lsytyrt.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>lsytyrt</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/buddy.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>buddy</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>小川</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/Tobin.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>Tobin</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/夏虫不语冰.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>夏虫不语冰</b></sub>
</a>
</td>
</tr>
<tr>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/晴空.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>晴空</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/。.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>。</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/Jeffrey.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>Jeffrey</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/张文建.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>张文建</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/Lawliet.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>Lawliet</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/一叶孤舟.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>一叶孤舟</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>Eric</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/Joe.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>Joe</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>中文网字计划-江夏尧</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/海云.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>海云</b></sub>
</a>
</td>
</tr>
<tr>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/皮老板.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>皮老板</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/h.r.w.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>h.r.w</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/时光匆匆.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>时光匆匆</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/广兴.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>广兴</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/一亩三.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>一亩三</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/xbkkjbs0246658.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>xbkkjbs0246658</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/4399行星元帅.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>4399行星元帅</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/Xavier.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>Xavier</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/冒号括号.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>:)</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/可米阳光.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>可米阳光</b></sub>
</a>
</td>
</tr>
<tr>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/MrFujing.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>MrFujing</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/Sword.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>Sword</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/好好先生Ervin.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>好好先生Ervin</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/胡永刚.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>胡永刚</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/旋风.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>旋风</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/星夜寒.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>星夜寒</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/神话.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>神话</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>Towards the future</b></sub>
</a>
</td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>安嘉</b></sub>
</a>
</td>
</tr>
</table>
================================================
FILE: copy.js
================================================
const fs = require('fs')
const path = require('path')
const src = path.resolve(__dirname, './dist/index.html')
const dest = path.resolve(__dirname, './index.html')
if (fs.existsSync(dest)) {
fs.unlinkSync(dest)
}
if (fs.existsSync(src)) {
fs.copyFileSync(src, dest)
fs.unlinkSync(src)
}
// console.warn('请检查付费插件是否启用!!!')
================================================
FILE: dist/css/app.css
================================================
*{margin:0;padding:0;box-sizing:border-box}#app{font-family:Avenir,Helvetica,Arial,sans-serif;color:#2c3e50}.customScrollbar::-webkit-scrollbar{width:7px;height:7px}.customScrollbar::-webkit-scrollbar-thumb{border-radius:7px;background-color:rgba(0,0,0,.3);cursor:pointer}.customScrollbar::-webkit-scrollbar-track{box-shadow:none;background:transparent;display:none}.el-dialog{border-radius:10px}@font-face{font-family:iconfont;src:url(../fonts/iconfont.woff2) format("woff2"),url(../fonts/iconfont.woff) format("woff"),url(../fonts/iconfont.ttf) format("truetype")}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.iconAIshengcheng:before{content:"\e6b5"}.iconprinting:before{content:"\ea28"}.iconwenjianjia:before{content:"\e614"}.iconcontentleft:before{content:"\e8c9"}.iconjuzhongduiqi:before{content:"\ec80"}.iconfile-excel:before{content:"\e7b7"}.iconfreemind:before{content:"\e97d"}.iconwaikuang:before{content:"\e640"}.iconhighlight:before{content:"\e6b8"}.iconyanshibofang:before{content:"\e648"}.iconfujian:before{content:"\e88a"}.icongeshihua:before{content:"\e7a3"}.iconyuanma:before{content:"\e658"}.icongundongtiao:before{content:"\e670"}.iconxietongwendang:before{content:"\e60d"}.iconTXT:before{content:"\e6e1"}.iconwenjian1:before{content:"\e69f"}.icondodeparent:before{content:"\e70f"}.icongongshi:before{content:"\e617"}.icontouming:before{content:"\e60c"}.iconlieri:before{content:"\e60b"}.iconmoon_line:before{content:"\e745"}.iconsousuo:before{content:"\e693"}.iconjiantouyou:before{content:"\e62d"}.iconbianji1:before{content:"\e60a"}.icondaohang1:before{content:"\e632"}.iconyanjing:before{content:"\e8bf"}.iconwangzhan:before{content:"\e628"}.iconcsdn:before{content:"\e608"}.iconshejiaotubiao-10:before{content:"\e644"}.iconstar:before{content:"\e7df"}.iconfork:before{content:"\e641"}.iconxiazai:before{content:"\e613"}.iconteamwork:before{content:"\e870"}.iconshuiyin:before{content:"\e67a"}.iconxmind:before{content:"\ea57"}.iconmouseR:before{content:"\e6bd"}.iconmouseL:before{content:"\e6c0"}.iconwenjian:before{content:"\e607"}.iconpdf:before{content:"\e740"}.iconPNG:before{content:"\ec18"}.iconSVG:before{content:"\e621"}.iconmarkdown:before{content:"\ec04"}.iconjson:before{content:"\ea42"}.iconlianjiexian:before{content:"\e75b"}.iconbangzhu:before{content:"\e620"}.iconshezhi:before{content:"\e8b7"}.iconwushuju:before{content:"\e643"}.iconzuijinliulan:before{content:"\e62f"}.icon3zuidahua-3:before{content:"\e692"}.iconzuixiaohua:before{content:"\e650"}.iconzuidahua:before{content:"\e651"}.iconguanbi:before{content:"\e652"}.icondiannao:before{content:"\eac0"}.iconzhuye:before{content:"\e65c"}.iconbendi1x:before{content:"\e606"}.iconbeijingyanse:before{content:"\e6f8"}.iconqingchu:before{content:"\e605"}.iconcase:before{content:"\e6c6"}.iconxingzhuang-wenzi:before{content:"\eb99"}.iconzitijiacu:before{content:"\ec83"}.iconzitixiahuaxian:before{content:"\ec85"}.iconzitixieti:before{content:"\ec86"}.iconshanchuxian:before{content:"\e612"}.iconzitiyanse:before{content:"\e854"}.icongithub:before{content:"\e64f"}.iconchoose1:before{content:"\e6c5"}.iconzhuti:before{content:"\e7aa"}.icondaochu1:before{content:"\e63e"}.iconlingcunwei:before{content:"\e657"}.iconexport:before{content:"\e642"}.icondakai:before{content:"\ebdf"}.iconxinjian:before{content:"\e64e"}.iconjianqie:before{content:"\e601"}.iconzhengli:before{content:"\e83b"}.iconfuzhi:before{content:"\e604"}.iconniantie:before{content:"\e63f"}.iconshangyi:before{content:"\e6be"}.iconxiayi:before{content:"\e6bf"}.icongaikuozonglan:before{content:"\e609"}.iconquanxuan:before{content:"\f199"}.icondaoru:before{content:"\e6a3"}.iconhoutui-shi:before{content:"\e656"}.iconqianjin1:before{content:"\e654"}.iconwithdraw:before{content:"\e603"}.iconqianjin:before{content:"\e600"}.iconhuifumoren:before{content:"\e60e"}.iconhuanhang:before{content:"\e61e"}.iconsuoxiao:before{content:"\ec13"}.iconbianji:before{content:"\e626"}.iconfangda:before{content:"\e663"}.iconquanping1:before{content:"\e664"}.icondingwei:before{content:"\e616"}.icondaohang:before{content:"\e611"}.iconjianpan:before{content:"\e64d"}.iconquanping:before{content:"\e602"}.icondaochu:before{content:"\e63d"}.iconbiaoqian:before{content:"\e63c"}.iconflow-Mark:before{content:"\e65b"}.iconchaolianjie:before{content:"\e6f4"}.iconjingzi:before{content:"\e610"}.iconxiaolian:before{content:"\e60f"}.iconimage:before{content:"\e629"}.iconjiegou:before{content:"\e61d"}.iconyangshi:before{content:"\e631"}.iconfuhao-dagangshu:before{content:"\e71f"}.icontianjiazijiedian:before{content:"\e622"}.iconjiedian:before{content:"\e655"}.iconshanchu:before{content:"\e696"}.iconzhankai:before{content:"\e64c"}.iconzhankai1:before{content:"\e673"}
================================================
FILE: dist/css/chunk-2f9a41ed.css
================================================
.imgUploadContainer[data-v-6399710d]{width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:hsla(0,0%,100%,.9);z-index:1000}.imgUploadContainer .imgUploadPanel[data-v-6399710d]{position:relative;width:100%;font-size:22px;white-space:nowrap;color:#909090;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.imgUploadContainer .imgUploadPanel .title[data-v-6399710d]{margin-bottom:15px;font-size:22px;font-weight:700;color:hsla(218,9%,51%,.8)}.imgUploadContainer .imgUploadPanel .closeBtn[data-v-6399710d]{position:absolute;right:25px;top:32px;cursor:pointer}.imgUploadContainer .imgUploadPanel .imgUploadInputArea[data-v-6399710d]{display:block;width:100%;height:200px;font-size:20px;color:rgba(51,51,51,.4);background-color:hsla(0,0%,87%,.6);border:none;outline:none;cursor:pointer;text-align:center;display:flex;justify-content:center;align-items:center;white-space:normal;padding:10px}.imgUploadContainer .imgUploadPanel #imgUploadInput[data-v-6399710d]{display:none}.imgUploadContainer .imgUploadPanel .uploadInfoBox[data-v-6399710d]{position:relative;width:100%;height:200px;background-color:hsla(0,0%,87%,.6)}.imgUploadContainer .imgUploadPanel .uploadInfoBox .previewBox[data-v-6399710d]{width:100%;height:100%;background-size:contain;background-repeat:no-repeat;background-position:50%}.imgUploadContainer .imgUploadPanel .uploadInfoBox .delBtn[data-v-6399710d]{position:absolute;right:0;top:0;cursor:pointer;width:20px;height:20px;background-color:#fff}.nodeImageDialog .title[data-v-4b797c30]{font-size:18px;margin-bottom:12px}.nodeImageDialog .inputBox[data-v-4b797c30]{display:flex;align-items:center;margin-bottom:10px}.nodeImageDialog .inputBox .label[data-v-4b797c30]{width:150px}.nodeHyperlinkDialog .item[data-v-187bf89f]{display:flex;align-items:center;margin-bottom:10px}.nodeHyperlinkDialog .item .name[data-v-187bf89f]{display:block;width:50px}.nodeIconDialog[data-v-41bec544] .el-dialog__body{padding:0 20px}.nodeIconDialog .deleteBtn[data-v-41bec544]{margin-bottom:20px}.nodeIconDialog .item[data-v-41bec544]{margin-bottom:20px;font-weight:700}.nodeIconDialog .item .title[data-v-41bec544]{margin-bottom:10px}.nodeIconDialog .item .list[data-v-41bec544]{display:flex;flex-wrap:wrap}.nodeIconDialog .item .list .icon[data-v-41bec544]{width:24px;height:24px;margin-right:10px;margin-bottom:10px;cursor:pointer;position:relative}.nodeIconDialog .item .list .icon[data-v-41bec544] img,.nodeIconDialog .item .list .icon[data-v-41bec544] svg{width:100%;height:100%}.nodeIconDialog .item .list .icon.selected[data-v-41bec544]:after{content:"";position:absolute;left:-4px;top:-4px;width:28px;height:28px;border-radius:50%;border:2px solid #409eff}
/*!
* @toast-ui/editor
* @version 3.2.2 | Fri Feb 17 2023
* @author NHN Cloud FE Development Lab <dl_javascript@nhn.com>
* @license MIT
*/.ProseMirror{position:relative;word-wrap:break-word;white-space:pre-wrap;white-space:break-spaces;-webkit-font-variant-ligatures:none;font-variant-ligatures:none;-webkit-font-feature-settings:"liga" 0;font-feature-settings:"liga" 0}.ProseMirror pre{white-space:pre-wrap}.ProseMirror li{position:relative}.ProseMirror-hideselection ::selection{background:transparent}.ProseMirror-hideselection ::-moz-selection{background:transparent}.ProseMirror-hideselection{caret-color:transparent}.ProseMirror-selectednode{outline:2px solid #8cf}li.ProseMirror-selectednode{outline:none}li.ProseMirror-selectednode:after{content:"";position:absolute;left:-32px;right:-2px;top:-2px;bottom:-2px;border:2px solid #8cf;pointer-events:none}img.ProseMirror-separator{display:inline!important;border:none!important;margin:0!important}.auto-height,.auto-height .toastui-editor-defaultUI{height:auto}.auto-height .toastui-editor-md-container{position:relative}:not(.auto-height)>.toastui-editor-defaultUI,:not(.auto-height)>.toastui-editor-defaultUI>.toastui-editor-main{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}:not(.auto-height)>.toastui-editor-defaultUI>.toastui-editor-main{-ms-flex:1;-webkit-box-flex:1;flex:1}.toastui-editor-defaultUI-toolbar:after,.toastui-editor-md-container:after{content:"";display:block;height:0;clear:both}.toastui-editor-main{min-height:0;position:relative;height:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.toastui-editor-md-container{display:none;overflow:hidden;height:100%}.toastui-editor-md-container .toastui-editor{line-height:1.5;position:relative}.toastui-editor-md-container .toastui-editor,.toastui-editor-md-container .toastui-editor-md-preview{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0;height:inherit}.toastui-editor-md-container .toastui-editor-md-preview{overflow:auto;padding:0 25px;height:100%}.toastui-editor-md-container .toastui-editor-md-preview>p:first-child{margin-top:0!important}.toastui-editor-md-container .toastui-editor-md-preview .toastui-editor-contents{padding-top:8px}.toastui-editor-main .toastui-editor-md-tab-style>.toastui-editor,.toastui-editor-main .toastui-editor-md-tab-style>.toastui-editor-md-preview{width:100%;display:none}.toastui-editor-main .toastui-editor-md-tab-style>.active{display:block}.toastui-editor-main .toastui-editor-md-vertical-style>.toastui-editor-tabs{display:none}.toastui-editor-main .toastui-editor-md-tab-style>.toastui-editor-tabs{display:block}.toastui-editor-main .toastui-editor-md-vertical-style .toastui-editor,.toastui-editor-main .toastui-editor-md-vertical-style .toastui-editor-md-preview{width:50%}.toastui-editor-main .toastui-editor-md-splitter{display:none;height:100%;width:1px;background-color:#ebedf2;position:absolute;left:50%}.toastui-editor-main .toastui-editor-md-vertical-style .toastui-editor-md-splitter{display:block}.toastui-editor-ww-container{display:none;overflow:hidden;height:inherit;background-color:#fff}.auto-height .toastui-editor-main-container{position:relative}.toastui-editor-main-container{position:absolute;line-height:1;color:#222;width:100%;height:inherit}.toastui-editor-ww-container>.toastui-editor{height:inherit;position:relative;width:100%}.toastui-editor-ww-container .toastui-editor-contents{overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:16px 25px 0 25px;height:inherit}.toastui-editor-ww-container .toastui-editor-contents p{margin:0}.toastui-editor-md-mode .toastui-editor-md-container,.toastui-editor-ww-mode .toastui-editor-ww-container{display:block;z-index:20}.toastui-editor-md-mode .toastui-editor-md-vertical-style{display:-ms-flexbox;display:-webkit-box;display:flex}.toastui-editor-defaultUI.hidden,.toastui-editor-main.hidden{display:none}.toastui-editor-defaultUI .ProseMirror{padding:18px 25px}.toastui-editor-defaultUI{position:relative;border:1px solid #dadde6;height:100%;font-family:Open Sans,Helvetica Neue,Helvetica,Arial,나눔바른고딕,Nanum Barun Gothic,맑은고딕,Malgun Gothic,sans-serif;border-radius:4px}.toastui-editor-defaultUI button{color:#333;height:28px;font-size:13px;cursor:pointer;border:none;border-radius:2px}.toastui-editor-defaultUI .toastui-editor-ok-button{min-width:63px;height:32px;background-color:#00a9ff;color:#fff;outline-color:#009bf2}.toastui-editor-defaultUI .toastui-editor-ok-button:hover{background-color:#009bf2}.toastui-editor-defaultUI .toastui-editor-close-button{min-width:63px;height:32px;background-color:#f7f9fc;border:1px solid #dadde6;margin-right:5px;outline-color:#cbcfdb}.toastui-editor-defaultUI .toastui-editor-close-button:hover{border-color:#cbcfdb}.toastui-editor-mode-switch{background-color:#fff;border-top:1px solid #dadde6;font-size:12px;text-align:right;height:28px;padding-right:10px;border-radius:0 0 3px 3px}.toastui-editor-mode-switch .tab-item{display:inline-block;width:96px;height:24px;line-height:24px;text-align:center;background:#f7f9fc;color:#969aa5;margin-top:-1px;margin-right:-1px;cursor:pointer;border:1px solid #dadde6;border-radius:0 0 4px 4px;font-weight:500;-webkit-box-sizing:border-box;box-sizing:border-box}.toastui-editor-mode-switch .tab-item.active{border-top:1px solid #fff;background-color:#fff;color:#555}.toastui-editor-defaultUI .toastui-editor-md-tab-container{float:left;height:45px;font-size:13px;background:#f7f9fc;border-bottom:1px solid #ebedf2;border-top-left-radius:3px}.toastui-editor-md-tab-container .toastui-editor-tabs{margin-left:15px;height:100%}.toastui-editor-md-tab-container .tab-item{display:inline-block;width:70px;height:33px;line-height:33px;font-size:12px;font-weight:500;text-align:center;background:#eaedf1;color:#969aa5;cursor:pointer;border:1px solid #dadde6;border-radius:4px 4px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:13px}.toastui-editor-md-tab-container .tab-item.active{border-bottom:1px solid #fff;background-color:#fff;color:#555}.toastui-editor-md-tab-container .tab-item:last-child{margin-left:-1px}.toastui-editor-defaultUI-toolbar{display:-ms-flexbox;display:-webkit-box;display:flex;padding:0 25px;height:45px;background-color:#f7f9fc;border-bottom:1px solid #ebedf2;border-radius:3px 3px 0 0}.toastui-editor-toolbar{height:46px;-webkit-box-sizing:border-box;box-sizing:border-box}.toastui-editor-toolbar-divider{display:inline-block;width:1px;height:18px;background-color:#e1e3e9;margin:14px 12px}.toastui-editor-toolbar-group{display:-ms-flexbox;display:-webkit-box;display:flex}.toastui-editor-defaultUI-toolbar button{-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;width:32px;height:32px;padding:0;border-radius:3px;margin:7px 5px;border:1px solid #f7f9fc}.toastui-editor-defaultUI-toolbar button:not(:disabled):hover{border:1px solid #e4e7ee;background-color:#fff}.toastui-editor-defaultUI-toolbar .scroll-sync{display:inline-block;position:relative;width:70px;height:10px;text-align:center;line-height:10px;color:#81858f;cursor:pointer}.toastui-editor-defaultUI-toolbar .scroll-sync:before{content:"Scroll";position:absolute;left:0;font-size:14px}.toastui-editor-defaultUI-toolbar .scroll-sync.active:before{color:#00a9ff}.toastui-editor-defaultUI-toolbar .scroll-sync input{opacity:0;width:0;height:0}.toastui-editor-defaultUI-toolbar .switch{position:absolute;top:0;left:45px;right:0;bottom:0;background-color:#d6d8de;-webkit-transition:.4s;transition:.4s;border-radius:50px}.toastui-editor-defaultUI-toolbar input:checked+.switch{background-color:#acddfa}.toastui-editor-defaultUI-toolbar .switch:before{position:absolute;content:"";height:14px;width:14px;left:0;bottom:-2px;background-color:#94979f;-webkit-transition:.4s;transition:.4s;border-radius:50%}.toastui-editor-defaultUI-toolbar input:checked+.switch:before{background-color:#00a9ff;-webkit-transform:translateX(12px);transform:translateX(12px)}.toastui-editor-dropdown-toolbar .scroll-sync{margin:0 5px}.toastui-editor-dropdown-toolbar{position:absolute;height:46px;z-index:30;border-radius:2px;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.08);box-shadow:0 2px 4px 0 rgba(0,0,0,.08);border:1px solid #dadde6;background-color:#f7f9fc;display:-ms-flexbox;display:-webkit-box;display:flex}.toastui-editor-toolbar-item-wrapper{margin:7px 5px;height:32px;line-height:32px}.toastui-editor-popup{width:400px;margin-right:auto;background:#fff;z-index:30;position:absolute;border-radius:2px;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.08);box-shadow:0 2px 4px 0 rgba(0,0,0,.08);border:1px solid #dadde6}.toastui-editor-popup-body{padding:15px;font-size:12px}.toastui-editor-popup-body label{font-weight:600;color:#555;display:block;margin:20px 0 5px}.toastui-editor-popup-body .toastui-editor-button-container{text-align:right;margin-top:20px}.toastui-editor-popup-body input[type=text]{width:calc(100% - 26px);height:30px;padding:0 12px;border-radius:2px;border:1px solid #e1e3e9;color:#333}.toastui-editor-popup-body input[type=text]:focus{outline:1px solid #00a9ff;border-color:transparent}.toastui-editor-popup-body input[type=text].disabled{background-color:#f7f9fc;border-color:#e1e3e9;color:#969aa5}.toastui-editor-popup-body input[type=file]{opacity:0;border:none;width:1px;height:1px;position:absolute;top:0;left:0}.toastui-editor-popup-body input.wrong,.toastui-editor-popup-body span.wrong{border-color:#fa2828}.toastui-editor-popup-add-image .toastui-editor-popup-body,.toastui-editor-popup-add-link .toastui-editor-popup-body{padding:0 20px 20px}.toastui-editor-popup-add-image .toastui-editor-tabs{margin:5px 0 10px}.toastui-editor-popup-add-image .toastui-editor-tabs .tab-item{display:inline-block;width:60px;height:40px;line-height:40px;border-bottom:1px solid #dadde6;color:#333;font-size:13px;font-weight:600;text-align:center;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box}.toastui-editor-popup-add-image .toastui-editor-tabs .tab-item:hover{border-bottom:1px solid #cbcfdb}.toastui-editor-popup-add-image .toastui-editor-tabs .tab-item.active{color:#00a9ff;border-bottom:2px solid #00a9ff}.toastui-editor-popup-add-image .toastui-editor-file-name{width:58%;display:inline-block;border-radius:2px;border:1px solid #e1e3e9;color:#dadde6;height:30px;line-height:30px;padding:0 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.toastui-editor-popup-add-image .toastui-editor-file-name.has-file{color:#333}.toastui-editor-popup-add-image .toastui-editor-file-select-button{width:33%;margin-left:5px;height:32px;border-radius:2px;border:1px solid #dadde6;background-color:#f7f9fc;vertical-align:top}.toastui-editor-popup-add-image .toastui-editor-file-select-button:hover{border-color:#cbcfdb}.toastui-editor-popup-add-table{width:auto}.toastui-editor-popup-add-table .toastui-editor-table-selection{position:relative}.toastui-editor-popup-add-table .toastui-editor-table-cell{display:table-cell;width:20px;height:20px;border:1px solid #e1e3e9;background:#fff;-webkit-box-sizing:border-box;box-sizing:border-box}.toastui-editor-popup-add-table .toastui-editor-table-cell.header{background:#f7f9fc}.toastui-editor-popup-add-table .toastui-editor-table-row{display:table-row}.toastui-editor-popup-add-table .toastui-editor-table{display:table;border-collapse:collapse}.toastui-editor-popup-add-table .toastui-editor-table-selection-layer{position:absolute;top:0;left:0;border:1px solid #00a9ff;background:rgba(0,169,255,.1);z-index:30}.toastui-editor-popup-add-table .toastui-editor-table-description{margin:5px 0 0;text-align:center;color:#333}.toastui-editor-popup-add-heading{width:auto}.toastui-editor-popup-add-heading .toastui-editor-popup-body{padding:0}.toastui-editor-popup-add-heading h1,.toastui-editor-popup-add-heading h2,.toastui-editor-popup-add-heading h3,.toastui-editor-popup-add-heading h4,.toastui-editor-popup-add-heading h5,.toastui-editor-popup-add-heading h6,.toastui-editor-popup-add-heading p,.toastui-editor-popup-add-heading ul{padding:0;margin:0}.toastui-editor-popup-add-heading ul{padding:5px 0;list-style:none}.toastui-editor-popup-add-heading ul li{padding:4px 12px;cursor:pointer}.toastui-editor-popup-add-heading ul li:hover{background-color:#dff4ff}.toastui-editor-popup-add-heading h1{font-size:24px}.toastui-editor-popup-add-heading h2{font-size:22px}.toastui-editor-popup-add-heading h3{font-size:20px}.toastui-editor-popup-add-heading h4{font-size:18px}.toastui-editor-popup-add-heading h5{font-size:16px}.toastui-editor-popup-add-heading h6{font-size:14px}.toastui-editor-context-menu{position:absolute;width:auto;min-width:197px;color:#333;border-radius:2px;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.08);box-shadow:0 2px 4px 0 rgba(0,0,0,.08);border:1px solid #dadde6;z-index:30;padding:5px 0;background-color:#fff}.toastui-editor-context-menu .menu-group{list-style:none;border-bottom:1px solid #ebedf2;padding:0;margin:0;font-size:13px}.toastui-editor-context-menu .menu-group:last-child{border-bottom:none!important}.toastui-editor-context-menu .menu-item{height:32px;line-height:32px;padding:0 14px;cursor:pointer}.toastui-editor-context-menu span{display:inline-block}.toastui-editor-context-menu span:before{background:url(data:image/png;base64,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) no-repeat;background-size:466px 146px;content:"";width:20px;height:20px;display:inline-block;vertical-align:middle;margin-right:10px}.toastui-editor-context-menu .add-row-up:before{background-position:3px -104px}.toastui-editor-context-menu .add-row-down:before{background-position:-19px -104px}.toastui-editor-context-menu .remove-row:before{background-position:-41px -104px}.toastui-editor-context-menu .add-column-left:before{background-position:-63px -104px}.toastui-editor-context-menu .add-column-right:before{background-position:-85px -104px}.toastui-editor-context-menu .remove-column:before{background-position:-111px -104px}.toastui-editor-context-menu .align-column-left:before{background-position:-129px -104px}.toastui-editor-context-menu .align-column-center:before{background-position:-151px -104px}.toastui-editor-context-menu .align-column-right:before{background-position:-173px -104px}.toastui-editor-context-menu .remove-table:before{background-position:-197px -104px}.toastui-editor-context-menu .disabled span:before{opacity:.3}.toastui-editor-context-menu li:not(.disabled):hover{background-color:#dff4ff}.toastui-editor-context-menu li.disabled{color:#c9ccd5}.toastui-editor-tooltip{position:absolute;background-color:#444;z-index:40;padding:4px 7px;font-size:12px;border-radius:3px;color:#fff;font-family:Open Sans,Helvetica Neue,Helvetica,Arial,나눔바른고딕,Nanum Barun Gothic,맑은고딕,Malgun Gothic,sans-serif}.toastui-editor-tooltip .arrow{content:"";display:inline-block;width:10px;height:10px;background-color:#444;-webkit-transform:rotate(45deg);transform:rotate(45deg);position:absolute;top:-3px;left:6px;z-index:-1}.toastui-editor-toolbar-icons{background:url(data:image/png;base64,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) no-repeat;background-size:466px 146px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:2dppx),only screen and (min-resolution:192dpi){.toastui-editor-context-menu span:before,.toastui-editor-toolbar-icons{background:url(data:image/png;base64,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P0A9dgflJJi2Szl5led4F57jlvpECs/6vuTjuhR3dAo961VP9UoRby5eaGBuxz2Zy/3pyiWBlJEiA/s5FHaEnU170tGmBChvV5O1/Zske9dQ3upqiLdbfuL3hTpvY+q8m3ELRkrj1xLs36Md8A17jhOutYwTnYufJw89tLmvbxmhJagIVEmgaoW0yvjlXQREQASakkA77LJL42wfGmdpGiktpZBagaFRfQqNsDNGSykNldFTUQ6+3ZQFWEJlRsA6pVmzZjML1sks0hoiosy9vMoqq2wVjg7VEMNQkHbLTzEI7tOqdCoeTd1nn7dK2tjwf2F5Gsro3cVhdS4CItCcBKSQNud9kVQiIAIikIqAjZLSQNu8lGeujZiyW8pvs7mHI6W2tb/tlF28jigvcRfSmLUpw+doZDQvxM0Xb40zpbLKiE03nWtLiOpVRp1A7ZYfl6+4yTPqo5hO4nndFPt4fi+OHTv2Qb5x/Y+4P9lFQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAQ6mYDfyZlX3kVABESgnQgc/WRhlf5F3j6Dvjdw6UT/mnbKm/IiAiIgAiIgAiLQngSkkLbnfVWuREAEOohA7+OFsc8v8w4peN43yfZGlnW/y9t/9kT/2g7CoKyKgAiIgAiIgAi0IIGeFpRZIouACIhA3QSOm1fY4A3f28MiWqXg/fyCyf7CuiMdhQiOmFc4YOEy7zsk/fZhyRe89ww7b8GTI+YXthv0vBO9gjcZ8TdoUBYWer43r8vzzpk1yb+vQWkqmVEmcPQjhY36+rzv0amzI6I0qqy5XC9kdGDumDHeSRdv5T/nHOsx2y0/9bCoFPbIBYX/Vyh4H6KuebNf8BZ3dXl/fvM23oO9vo+TDhEQgUYQ0AhpIygrDREQgaYiMO2hwrYDg96dKDprB4L53qvdXd4ul2zj/66pBK0gzLR5hY8P+N5d5GNEXe773umzJ/m9FaJo2ssoo9+kNXhWUt4aITT8mPnsnYpS+u1GpKc0Ro+AKW8r+rxHkGCd0ZMiSPnlsWO8repVStstP3ndk6nzC5+ifjmDTogPFKfB8/8ibheu0eNdcO5W/tLi6zoXARHIlkDVI6Q8wGcjwjH8LqKxc0oW4uQRZzVyVduTSEW1hErs7zQB7+32vetmTvTvqia90fZrvKmATyAPYyvK4nsraJSdm9W9rpheDR5OnldYa7HvbV/wvXeQp/GDBe9VRjdeLHR7v5u9jf9sDVEqSJsTGBz0LqCsDCmjllfsgZvnfTSe9aqelXjAtPY6ny80pugZpl76J/l4NqlxVSxOs+fLRkbJx5nkZ4SiXZyXvM4ZMeki9TOR5b56R0pz550WQp3lzSXTbvmxkVHyNtrKqOFdJ5TlAMe6FrPd8lMLg3Jhri8Uuucs8M7jGT+2lD+uvZlrZy3u86Yc/lDhs5du4z9Zym+zuPNc7kvbp/+SSf7PmkUmySECaQlUrZBGioyPQuN5mSikecSZFkAtPYlUVGsQ/7tpLL27v+B9hUrgnkKX95VWqLBCLscge9SQLcvK/PlBB0Qm97psWlVePGpe4T39vjf9tYK3N/ekhzxFRzDPZsDzuDd/pUV72bhx3uzzt/BfjjzI0ukEtkwAkOSW/llJiLCiU53PFx1FdxyxoLA7ZX/DtxS8q5/3vZOwj+jtT5CjqfPF82vTdGlbBcecgX7vpMF+ryFTqrt6vA26ewIFZSfqlS46uk5Einqn7ubLOwRV0aizvMXib6v88OrYMZa3UbVmIcuwOLq93Wmb3NrITLGMYHee4V9YmsNkaaQQJdLqLRR6UEav4tneN+ZlOe2ch5iu+zjybkDn3rZcXz+8/h5vwLt/2vzCh1H0noqFaSrr4QsK+xcGvatp9li75wu8G65vKgEljAhUIFC1QkrtMqTIOLNCAqkuu7icmSpQNp6y6Emk4tqBlQYP0pP+uXp70rPJVcVYLqLyTT1CSmwXVYyxwR6ofA/pG/RmUB7HlUuae/P/eMGc/foy73ga7ofMmujfXM6/rnUMgUfJ6UeKcmtuxUf6Z6U4ZJpzRqzwVtfzRZm+zSVFQ8RZK5nNna+hNaNBHhqpjFqCoeJ7EkrpvECAmCzBeW1/+fJOK1MG5S1Mqt3y0+g1o+XuWBayRHE0Whm1jM2a7N9y+LyoLopkKZfpRlwzZfT5ImUU5fNXzHQ7lJluf3UyBCOo8+mI8j2CeKvgvh4K9s298wqTeyf7rzt/TWUWvKMjefxg0CQ6HS3L1+YV1lvqe0fRTtuVjr3NUPgHKBVPwfy2Mb53ycUTfZsWnXiUmbloOvc/uTfziOfqCdt412utbyLChjhOfbiwDfrPnsww244EN+SevNUS5rn5B8bfWY99HwN2N87e2n/I3MsdVU+HopKJaplLJ5N0BkcecaYVi7QNWiYVJjReAfwHW2ikNMA0dV7hGG7qhXbCDb1o9mS/5DSWIMAo/9Ho/iKl8L/jYsDe1v88Sj6ep9J7B+a7ON+U3/i4v+5u76OsE7w/7iZ75xGgEv1AYcC7gxdlS68hLb5zPBvWgJpu7jwTLbuGNP5O6FvubVicz0acjxnHsozwyOpd5+KT2VwE4uWtGSSrt7zF81NvXLXyaAYZ4rJTMSYpoxcyknhc3F/cfuS8wgeZhXUv74mhgRh2MYenbSCX6VEoFPxp873dBru9Qi0dCEc8Wth4cIX3l1Covp7Vv
gitextract_r5aeeteh/
├── .gitignore
├── Dockerfile
├── LICENSE
├── README.md
├── README_EN.md
├── README_MORE_EN.md
├── README_MORE_ZH.md
├── copy.js
├── dist/
│ ├── css/
│ │ ├── app.css
│ │ ├── chunk-2f9a41ed.css
│ │ ├── chunk-3222d6ee.css
│ │ └── chunk-vendors.css
│ └── js/
│ ├── app.js
│ ├── chunk-2f9a41ed.js
│ ├── chunk-3222d6ee.js
│ └── chunk-vendors.js
├── index.html
├── nginx.conf
├── simple-mind-map/
│ ├── .eslintrc.js
│ ├── .prettierignore
│ ├── .prettierrc
│ ├── README.md
│ ├── bin/
│ │ ├── createPluginsTypeFiles.js
│ │ └── wsServer.mjs
│ ├── example/
│ │ ├── exampleData.js
│ │ └── exportFullData.json
│ ├── full.js
│ ├── index.js
│ ├── package.json
│ ├── scripts/
│ │ └── walkJsFiles.js
│ └── src/
│ ├── constants/
│ │ ├── constant.js
│ │ └── defaultOptions.js
│ ├── core/
│ │ ├── command/
│ │ │ ├── Command.js
│ │ │ ├── KeyCommand.js
│ │ │ └── keyMap.js
│ │ ├── event/
│ │ │ └── Event.js
│ │ ├── render/
│ │ │ ├── Render.js
│ │ │ ├── TextEdit.js
│ │ │ └── node/
│ │ │ ├── MindMapNode.js
│ │ │ ├── Shape.js
│ │ │ ├── Style.js
│ │ │ ├── nodeCommandWraps.js
│ │ │ ├── nodeCooperate.js
│ │ │ ├── nodeCreateContents.js
│ │ │ ├── nodeExpandBtn.js
│ │ │ ├── nodeExpandBtnPlaceholderRect.js
│ │ │ ├── nodeGeneralization.js
│ │ │ ├── nodeLayout.js
│ │ │ ├── nodeModifyWidth.js
│ │ │ └── quickCreateChildBtn.js
│ │ └── view/
│ │ └── View.js
│ ├── layouts/
│ │ ├── Base.js
│ │ ├── CatalogOrganization.js
│ │ ├── Fishbone.js
│ │ ├── LogicalStructure.js
│ │ ├── MindMap.js
│ │ ├── OrganizationStructure.js
│ │ ├── Timeline.js
│ │ ├── VerticalTimeline.js
│ │ └── fishboneUtils.js
│ ├── parse/
│ │ ├── markdown.js
│ │ ├── markdownTo.js
│ │ ├── toMarkdown.js
│ │ ├── toTxt.js
│ │ └── xmind.js
│ ├── plugins/
│ │ ├── AssociativeLine.js
│ │ ├── Cooperate.js
│ │ ├── Demonstrate.js
│ │ ├── Drag.js
│ │ ├── Export.js
│ │ ├── ExportPDF.js
│ │ ├── ExportXMind.js
│ │ ├── Formula.js
│ │ ├── FormulaStyle.js
│ │ ├── KeyboardNavigation.js
│ │ ├── MindMapLayoutPro.js
│ │ ├── MiniMap.js
│ │ ├── NodeBase64ImageStorage.js
│ │ ├── NodeImgAdjust.js
│ │ ├── OuterFrame.js
│ │ ├── Painter.js
│ │ ├── RainbowLines.js
│ │ ├── RichText.js
│ │ ├── Scrollbar.js
│ │ ├── Search.js
│ │ ├── Select.js
│ │ ├── TouchEvent.js
│ │ ├── Watermark.js
│ │ ├── associativeLine/
│ │ │ ├── associativeLineControls.js
│ │ │ ├── associativeLineText.js
│ │ │ └── associativeLineUtils.js
│ │ └── outerFrame/
│ │ ├── outerFrameText.js
│ │ └── outerFrameUtils.js
│ ├── svg/
│ │ ├── btns.js
│ │ └── icons.js
│ ├── theme/
│ │ ├── default.js
│ │ └── index.js
│ └── utils/
│ ├── AutoMove.js
│ ├── BatchExecution.js
│ ├── Lru.js
│ ├── index.js
│ ├── mersenneTwister.js
│ ├── simulateCSSBackgroundInCanvas.js
│ └── xmind.js
└── web/
├── .prettierignore
├── .prettierrc
├── babel.config.js
├── package.json
├── public/
│ └── index.html
├── scripts/
│ ├── ai.js
│ ├── createNodeImageList.js
│ └── updateVersion.js
├── src/
│ ├── App.vue
│ ├── api/
│ │ └── index.js
│ ├── assets/
│ │ ├── icon-font/
│ │ │ └── iconfont.css
│ │ └── svg/
│ │ ├── business/
│ │ │ └── 商务
│ │ ├── education/
│ │ │ └── 教育
│ │ ├── festival/
│ │ │ └── 节日
│ │ ├── food/
│ │ │ └── 食物
│ │ ├── medicine/
│ │ │ └── 医疗
│ │ ├── tools/
│ │ │ └── 工具
│ │ └── travel/
│ │ └── 旅行
│ ├── components/
│ │ └── ImgUpload/
│ │ ├── index.vue
│ │ └── style.less
│ ├── config/
│ │ ├── constant.js
│ │ ├── en.js
│ │ ├── icon.js
│ │ ├── image.js
│ │ ├── index.js
│ │ ├── vi.js
│ │ ├── zh.js
│ │ └── zhtw.js
│ ├── i18n.js
│ ├── lang/
│ │ ├── en_us.js
│ │ ├── index.js
│ │ ├── vi_vn.js
│ │ ├── zh_cn.js
│ │ └── zh_tw.js
│ ├── main.js
│ ├── pages/
│ │ ├── Doc.vue
│ │ └── Edit/
│ │ ├── Index.vue
│ │ └── components/
│ │ ├── AiChat.vue
│ │ ├── AiConfigDialog.vue
│ │ ├── AiCreate.vue
│ │ ├── AssociativeLineStyle.vue
│ │ ├── BaseStyle.vue
│ │ ├── Color.vue
│ │ ├── Contextmenu.vue
│ │ ├── Count.vue
│ │ ├── Demonstrate.vue
│ │ ├── Edit.vue
│ │ ├── Export.vue
│ │ ├── FormulaSidebar.vue
│ │ ├── Fullscreen.vue
│ │ ├── Import.vue
│ │ ├── MouseAction.vue
│ │ ├── Navigator.vue
│ │ ├── NavigatorToolbar.vue
│ │ ├── NodeHyperlink.vue
│ │ ├── NodeIcon.vue
│ │ ├── NodeIconSidebar.vue
│ │ ├── NodeIconToolbar.vue
│ │ ├── NodeImage.vue
│ │ ├── NodeImgPlacementToolbar.vue
│ │ ├── NodeImgPreview.vue
│ │ ├── NodeNote.vue
│ │ ├── NodeNoteContentShow.vue
│ │ ├── NodeNoteSidebar.vue
│ │ ├── NodeOuterFrame.vue
│ │ ├── NodeTag.vue
│ │ ├── NodeTagStyle.vue
│ │ ├── Outline.vue
│ │ ├── OutlineEdit.vue
│ │ ├── OutlineSidebar.vue
│ │ ├── RichTextToolbar.vue
│ │ ├── Scale.vue
│ │ ├── Scrollbar.vue
│ │ ├── Search.vue
│ │ ├── Setting.vue
│ │ ├── ShortcutKey.vue
│ │ ├── Sidebar.vue
│ │ ├── SidebarTrigger.vue
│ │ ├── Structure.vue
│ │ ├── Style.vue
│ │ ├── Theme.vue
│ │ ├── Toolbar.vue
│ │ └── ToolbarNodeBtnList.vue
│ ├── router.js
│ ├── store.js
│ ├── style/
│ │ └── outlineTree.less
│ └── utils/
│ ├── ai.js
│ ├── handleClipboardText.js
│ ├── index.js
│ └── loading.js
└── vue.config.js
Showing preview only (1,514K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (8415 symbols across 64 files)
FILE: dist/js/app.js
function t (line 1) | function t(t){for(var o,i,l=t[0],c=t[1],d=t[2],s=0,h=[];s<l.length;s++)i...
function n (line 1) | function n(){for(var e,t=0;t<a.length;t++){for(var n=a[t],o=!0,i=1;i<n.l...
function l (line 1) | function l(e){return c.p+"js/"+({}[e]||e)+".js"}
function c (line 1) | function c(t){if(o[t])return o[t].exports;var n=o[t]={i:t,l:!1,exports:{...
function r (line 1) | function r(e){this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_...
method setIsHandleLocalFile (line 1) | setIsHandleLocalFile(e,t){e.isHandleLocalFile=t}
method setLocalConfig (line 1) | setLocalConfig(e,t){const n=Object.keys(e.aiConfig);Object.keys(t).forEa...
method setActiveSidebar (line 1) | setActiveSidebar(e,t){e.activeSidebar=t}
method setIsOutlineEdit (line 1) | setIsOutlineEdit(e,t){e.isOutlineEdit=t}
method setIsReadonly (line 1) | setIsReadonly(e,t){e.isReadonly=t}
method setIsSourceCodeEdit (line 1) | setIsSourceCodeEdit(e,t){e.isSourceCodeEdit=t}
method setExtraTextOnExport (line 1) | setExtraTextOnExport(e,t){e.extraTextOnExport=t}
method setIsDragOutlineTreeNode (line 1) | setIsDragOutlineTreeNode(e,t){e.isDragOutlineTreeNode=t}
method setExtendThemeGroupList (line 1) | setExtendThemeGroupList(e,t){e.extendThemeGroupList=t}
method setBgList (line 1) | setBgList(e,t){e.bgList=t}
FILE: dist/js/chunk-2f9a41ed.js
function r (line 1) | function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}
method constructor (line 1) | constructor(e){this.ops=e,this.index=0,this.offset=0}
method hasNext (line 1) | hasNext(){return this.peekLength()<1/0}
method next (line 1) | next(e){e||(e=1/0);const t=this.ops[this.index];if(t){const n=this.off...
method peek (line 1) | peek(){return this.ops[this.index]}
method peekLength (line 1) | peekLength(){return this.ops[this.index]?i.default.length(this.ops[thi...
method peekType (line 1) | peekType(){const e=this.ops[this.index];return e?"number"===typeof e.d...
method rest (line 1) | rest(){if(this.hasNext()){if(0===this.offset)return this.ops.slice(thi...
function i (line 1) | function i(e){return Object.prototype.toString.call(e)}
function r (line 1) | function r(e){return"[object String]"===i(e)}
method constructor (line 1) | constructor(e){this.ops=e,this.index=0,this.offset=0}
method hasNext (line 1) | hasNext(){return this.peekLength()<1/0}
method next (line 1) | next(e){e||(e=1/0);const t=this.ops[this.index];if(t){const n=this.off...
method peek (line 1) | peek(){return this.ops[this.index]}
method peekLength (line 1) | peekLength(){return this.ops[this.index]?i.default.length(this.ops[thi...
method peekType (line 1) | peekType(){const e=this.ops[this.index];return e?"number"===typeof e.d...
method rest (line 1) | rest(){if(this.hasNext()){if(0===this.offset)return this.ops.slice(thi...
function s (line 1) | function s(e,t){return o.call(e,t)}
method constructor (line 17) | constructor(e,t,n){this.$anchor=e,this.$head=t,this.ranges=n||[new a(e...
method anchor (line 17) | get anchor(){return this.$anchor.pos}
method head (line 17) | get head(){return this.$head.pos}
method from (line 17) | get from(){return this.$from.pos}
method to (line 17) | get to(){return this.$to.pos}
method $from (line 17) | get $from(){return this.ranges[0].$from}
method $to (line 17) | get $to(){return this.ranges[0].$to}
method empty (line 17) | get empty(){let e=this.ranges;for(let t=0;t<e.length;t++)if(e[t].$from...
method content (line 17) | content(){return this.$from.doc.slice(this.from,this.to,!0)}
method replace (line 17) | replace(e,t=i["Slice"].empty){let n=t.content.lastChild,r=null;for(let...
method replaceWith (line 17) | replaceWith(e,t){let n=e.steps.length,i=this.ranges;for(let r=0;r<i.le...
method findFrom (line 17) | static findFrom(e,t,n=!1){let i=e.parent.inlineContent?new h(e):g(e.no...
method near (line 17) | static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new...
method atStart (line 17) | static atStart(e){return g(e,e,0,0,1)||new f(e)}
method atEnd (line 17) | static atEnd(e){return g(e,e,e.content.size,e.childCount,-1)||new f(e)}
method fromJSON (line 17) | static fromJSON(e,t){if(!t||!t.type)throw new RangeError("Invalid inpu...
method jsonID (line 17) | static jsonID(e,t){if(e in o)throw new RangeError("Duplicate use of se...
method getBookmark (line 17) | getBookmark(){return h.between(this.$anchor,this.$head).getBookmark()}
function a (line 1) | function a(e){var t=Array.prototype.slice.call(arguments,1);return t.for...
method constructor (line 17) | constructor(e,t){if(this.content=e,this.size=t||0,null==t)for(let n=0;...
method nodesBetween (line 17) | nodesBetween(e,t,n,i=0,r){for(let o=0,s=0;s<t;o++){let a=this.content[...
method descendants (line 17) | descendants(e){this.nodesBetween(0,this.size,e)}
method textBetween (line 17) | textBetween(e,t,n,i){let r="",o=!0;return this.nodesBetween(e,t,(s,a)=...
method append (line 17) | append(e){if(!e.size)return this;if(!this.size)return e;let t=this.las...
method cut (line 17) | cut(e,t=this.size){if(0==e&&t==this.size)return this;let n=[],i=0;if(t...
method cutByIndex (line 17) | cutByIndex(e,t){return e==t?a.empty:0==e&&t==this.content.length?this:...
method replaceChild (line 17) | replaceChild(e,t){let n=this.content[e];if(n==t)return this;let i=this...
method addToStart (line 17) | addToStart(e){return new a([e].concat(this.content),this.size+e.nodeSi...
method addToEnd (line 17) | addToEnd(e){return new a(this.content.concat(e),this.size+e.nodeSize)}
method eq (line 17) | eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<...
method firstChild (line 17) | get firstChild(){return this.content.length?this.content[0]:null}
method lastChild (line 17) | get lastChild(){return this.content.length?this.content[this.content.l...
method childCount (line 17) | get childCount(){return this.content.length}
method child (line 17) | child(e){let t=this.content[e];if(!t)throw new RangeError("Index "+e+"...
method maybeChild (line 17) | maybeChild(e){return this.content[e]||null}
method forEach (line 17) | forEach(e){for(let t=0,n=0;t<this.content.length;t++){let i=this.conte...
method findDiffStart (line 17) | findDiffStart(e,t=0){return o(this,e,t)}
method findDiffEnd (line 17) | findDiffEnd(e,t=this.size,n=e.size){return s(this,e,t,n)}
method findIndex (line 17) | findIndex(e,t=-1){if(0==e)return c(0,e);if(e==this.size)return c(this....
method toString (line 17) | toString(){return"<"+this.toStringInner()+">"}
method toStringInner (line 17) | toStringInner(){return this.content.join(", ")}
method toJSON (line 17) | toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}
method fromJSON (line 17) | static fromJSON(e,t){if(!t)return a.empty;if(!Array.isArray(t))throw n...
method fromArray (line 17) | static fromArray(e){if(!e.length)return a.empty;let t,n=0;for(let i=0;...
method from (line 17) | static from(e){if(!e)return a.empty;if(e instanceof a)return e;if(Arra...
method constructor (line 17) | constructor(e,t){this.$from=e,this.$to=t}
function l (line 1) | function l(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))}
function c (line 1) | function c(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(6553...
function h (line 1) | function h(e){if(e>65535){e-=65536;var t=55296+(e>>10),n=56320+(1023&e);...
method constructor (line 17) | constructor(e,t=e){c(e),c(t),super(e,t)}
method $cursor (line 17) | get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}
method map (line 17) | map(e,t){let n=e.resolve(t.map(this.head));if(!n.parent.inlineContent)...
method replace (line 17) | replace(e,t=i["Slice"].empty){if(super.replace(e,t),t==i["Slice"].empt...
method eq (line 17) | eq(e){return e instanceof h&&e.anchor==this.anchor&&e.head==this.head}
method getBookmark (line 17) | getBookmark(){return new d(this.anchor,this.head)}
method toJSON (line 17) | toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}
method fromJSON (line 17) | static fromJSON(e,t){if("number"!=typeof t.anchor||"number"!=typeof t....
method create (line 17) | static create(e,t,n=t){let i=e.resolve(t);return new this(i,n==t?i:e.r...
method between (line 17) | static between(e,t,n){let i=e.pos-t.pos;if(n&&!i||(n=i>=0?1:-1),!t.par...
function g (line 1) | function g(e,t){var n;return s(m,t)?m[t]:35===t.charCodeAt(0)&&f.test(t)...
function v (line 1) | function v(e){return e.indexOf("\\")<0?e:e.replace(d,"$1")}
method constructor (line 17) | constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=v...
method reportNonstrict (line 17) | reportNonstrict(e,t,n){let r=this.strict;if("function"===typeof r&&(r=...
method useStrictBehavior (line 17) | useStrictBehavior(e,t,n){let i=this.strict;if("function"===typeof i)tr...
method isTrusted (line 17) | isTrusted(e){if(e.url&&!e.protocol){const t=f.protocolFromUrl(e.url);i...
method getMap (line 26) | getMap(){return f.empty}
method merge (line 26) | merge(e){return null}
method fromJSON (line 26) | static fromJSON(e,t){if(!t||!t.stepType)throw new RangeError("Invalid ...
method jsonID (line 26) | static jsonID(e,t){if(e in g)throw new RangeError("Duplicate use of st...
function b (line 1) | function b(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(p,(...
method constructor (line 17) | constructor(e,t,n){this.id=void 0,this.size=void 0,this.cramped=void 0...
method sup (line 17) | sup(){return E[M[this.id]]}
method sub (line 17) | sub(){return E[N[this.id]]}
method fracNum (line 17) | fracNum(){return E[O[this.id]]}
method fracDen (line 17) | fracDen(){return E[z[this.id]]}
method cramp (line 17) | cramp(){return E[D[this.id]]}
method text (line 17) | text(){return E[L[this.id]]}
method isTight (line 17) | isTight(){return this.size>=2}
method constructor (line 26) | constructor(e,t){this.doc=e,this.failed=t}
method ok (line 26) | static ok(e){return new b(e,null)}
method fail (line 26) | static fail(e){return new b(null,e)}
method fromReplace (line 26) | static fromReplace(e,t,n,r){try{return b.ok(e.replace(t,n,r))}catch(o)...
function C (line 1) | function C(e){return x[e]}
method constructor (line 26) | constructor(e,t){super(),this.pos=e,this.mark=t}
method apply (line 26) | apply(e){let t=e.nodeAt(this.pos);if(!t)return b.fail("No node at mark...
method invert (line 26) | invert(e){let t=e.nodeAt(this.pos);if(t){let e=this.mark.addToSet(t.ma...
method map (line 26) | map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new C(...
method toJSON (line 26) | toJSON(){return{stepType:"addNodeMark",pos:this.pos,mark:this.mark.toJ...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.pos)throw new RangeError("I...
function k (line 1) | function k(e){return y.test(e)?e.replace(w,C):e}
method constructor (line 17) | constructor(e,t,n){this.name=e,this.init=C(t.init,n),this.apply=C(t.ap...
method constructor (line 26) | constructor(e,t){super(),this.pos=e,this.mark=t}
method apply (line 26) | apply(e){let t=e.nodeAt(this.pos);if(!t)return b.fail("No node at mark...
method invert (line 26) | invert(e){let t=e.nodeAt(this.pos);return t&&this.mark.isInSet(t.marks...
method map (line 26) | map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new k(...
method toJSON (line 26) | toJSON(){return{stepType:"removeNodeMark",pos:this.pos,mark:this.mark....
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.pos)throw new RangeError("I...
function S (line 1) | function S(e){return e.replace(A,"\\$&")}
method constructor (line 17) | constructor(e,t){this.schema=e,this.plugins=[],this.pluginsByKey=Objec...
method constructor (line 26) | constructor(e,t,n,i,r,o,s=!1){super(),this.from=e,this.to=t,this.gapFr...
method apply (line 26) | apply(e){if(this.structure&&(T(e,this.from,this.gapFrom)||T(e,this.gap...
method getMap (line 26) | getMap(){return new f([this.from,this.gapFrom-this.from,this.insert,th...
method invert (line 26) | invert(e){let t=this.gapTo-this.gapFrom;return new S(this.from,this.fr...
method map (line 26) | map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1),i=e.ma...
method toJSON (line 26) | toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gap...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to...
function T (line 1) | function T(e){switch(e){case 9:case 32:return!0}return!1}
method constructor (line 17) | constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.dep...
method resolveDepth (line 17) | resolveDepth(e){return null==e?this.depth:e<0?this.depth+e:e}
method parent (line 17) | get parent(){return this.node(this.depth)}
method doc (line 17) | get doc(){return this.node(0)}
method node (line 17) | node(e){return this.path[3*this.resolveDepth(e)]}
method index (line 17) | index(e){return this.path[3*this.resolveDepth(e)+1]}
method indexAfter (line 17) | indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e!=this.dep...
method start (line 17) | start(e){return e=this.resolveDepth(e),0==e?0:this.path[3*e-1]+1}
method end (line 17) | end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).conten...
method before (line 17) | before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is ...
method after (line 17) | after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is n...
method textOffset (line 17) | get textOffset(){return this.pos-this.path[this.path.length-1]}
method nodeAfter (line 17) | get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.chi...
method nodeBefore (line 17) | get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[thi...
method posAtIndex (line 17) | posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[3*t],i=0==t?0:t...
method marks (line 17) | marks(){let e=this.parent,t=this.index();if(0==e.content.size)return d...
method marksAcross (line 17) | marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.is...
method sharedDepth (line 17) | sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this....
method blockRange (line 17) | blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(l...
method sameParent (line 17) | sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}
method max (line 17) | max(e){return e.pos>this.pos?e:this}
method min (line 17) | min(e){return e.pos<this.pos?e:this}
method toString (line 17) | toString(){let e="";for(let t=1;t<=this.depth;t++)e+=(e?"/":"")+this.n...
method resolve (line 17) | static resolve(e,t){if(!(t>=0&&t<=e.content.size))throw new RangeError...
method resolveCached (line 17) | static resolveCached(e,t){for(let i=0;i<E.length;i++){let n=E[i];if(n....
method constructor (line 17) | constructor(e){this.config=e}
method schema (line 17) | get schema(){return this.config.schema}
method plugins (line 17) | get plugins(){return this.config.plugins}
method apply (line 17) | apply(e){return this.applyTransaction(e).state}
method filterTransaction (line 17) | filterTransaction(e,t=-1){for(let n=0;n<this.config.plugins.length;n++...
method applyTransaction (line 17) | applyTransaction(e){if(!this.filterTransaction(e))return{state:this,tr...
method applyInner (line 17) | applyInner(e){if(!e.before.eq(this.doc))throw new RangeError("Applying...
method tr (line 17) | get tr(){return new x(this)}
method create (line 17) | static create(e){let t=new S(e.doc?e.doc.type.schema:e.schema,e.plugin...
method reconfigure (line 17) | reconfigure(e){let t=new S(this.schema,e.plugins),n=t.fields,i=new T(t...
method toJSON (line 17) | toJSON(e){let t={doc:this.doc.toJSON(),selection:this.selection.toJSON...
method fromJSON (line 17) | static fromJSON(e,t,n){if(!t)throw new RangeError("Invalid input for E...
function E (line 1) | function E(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case...
function N (line 1) | function N(e){return M.test(e)}
function O (line 1) | function O(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:...
method constructor (line 17) | constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}
method start (line 17) | get start(){return this.$from.before(this.depth+1)}
method end (line 17) | get end(){return this.$to.after(this.depth+1)}
method parent (line 17) | get parent(){return this.$from.node(this.depth)}
method startIndex (line 17) | get startIndex(){return this.$from.index(this.depth)}
method endIndex (line 17) | get endIndex(){return this.$to.indexAfter(this.depth)}
function z (line 1) | function z(e){return e=e.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCas...
method constructor (line 17) | constructor(e="key"){this.key=O(e)}
method get (line 17) | get(e){return e.config.pluginsByKey[this.key]}
method getState (line 17) | getState(e){return e[this.key]}
function m (line 1) | function m(e){var t=e.trim().toLowerCase();return!p.test(t)||!!f.test(t)}
method constructor (line 26) | constructor(e=[],t,n=0,i=e.length){this.maps=e,this.mirror=t,this.from...
method slice (line 26) | slice(e=0,t=this.maps.length){return new m(this.maps,this.mirror,e,t)}
method copy (line 26) | copy(){return new m(this.maps.slice(),this.mirror&&this.mirror.slice()...
method appendMap (line 26) | appendMap(e,t){this.to=this.maps.push(e),null!=t&&this.setMirror(this....
method appendMapping (line 26) | appendMapping(e){for(let t=0,n=this.maps.length;t<e.maps.length;t++){l...
method getMirror (line 26) | getMirror(e){if(this.mirror)for(let t=0;t<this.mirror.length;t++)if(th...
method setMirror (line 26) | setMirror(e,t){this.mirror||(this.mirror=[]),this.mirror.push(e,t)}
method appendMappingInverted (line 26) | appendMappingInverted(e){for(let t=e.maps.length-1,n=this.maps.length+...
method invert (line 26) | invert(){let e=new m;return e.appendMappingInverted(this),e}
method map (line 26) | map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from...
method mapResult (line 26) | mapResult(e,t=1){return this._map(e,t,!1)}
method _map (line 26) | _map(e,t,n){let i=0;for(let r=this.from;r<this.to;r++){let n=this.maps...
function v (line 1) | function v(e){var t=h.parse(e,!0);if(t.hostname&&(!t.protocol||g.indexOf...
method constructor (line 17) | constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=v...
method reportNonstrict (line 17) | reportNonstrict(e,t,n){let r=this.strict;if("function"===typeof r&&(r=...
method useStrictBehavior (line 17) | useStrictBehavior(e,t,n){let i=this.strict;if("function"===typeof i)tr...
method isTrusted (line 17) | isTrusted(e){if(e.url&&!e.protocol){const t=f.protocolFromUrl(e.url);i...
method getMap (line 26) | getMap(){return f.empty}
method merge (line 26) | merge(e){return null}
method fromJSON (line 26) | static fromJSON(e,t){if(!t||!t.stepType)throw new RangeError("Invalid ...
method jsonID (line 26) | static jsonID(e,t){if(e in g)throw new RangeError("Duplicate use of st...
function b (line 1) | function b(e){var t=h.parse(e,!0);if(t.hostname&&(!t.protocol||g.indexOf...
method constructor (line 17) | constructor(e,t,n){this.id=void 0,this.size=void 0,this.cramped=void 0...
method sup (line 17) | sup(){return E[M[this.id]]}
method sub (line 17) | sub(){return E[N[this.id]]}
method fracNum (line 17) | fracNum(){return E[O[this.id]]}
method fracDen (line 17) | fracDen(){return E[z[this.id]]}
method cramp (line 17) | cramp(){return E[D[this.id]]}
method text (line 17) | text(){return E[L[this.id]]}
method isTight (line 17) | isTight(){return this.size>=2}
method constructor (line 26) | constructor(e,t){this.doc=e,this.failed=t}
method ok (line 26) | static ok(e){return new b(e,null)}
method fail (line 26) | static fail(e){return new b(null,e)}
method fromReplace (line 26) | static fromReplace(e,t,n,r){try{return b.ok(e.replace(t,n,r))}catch(o)...
function y (line 1) | function y(e,t){if(!(this instanceof y))return new y(e,t);t||i.isString(...
function i (line 1) | function i(e,t,n){this.type=e,this.tag=t,this.attrs=null,this.map=null,t...
function a (line 1) | function a(e,t,n,i){this.src=e,this.env=n,this.md=t,this.tokens=i,this.t...
method constructor (line 17) | constructor(e,t){if(this.content=e,this.size=t||0,null==t)for(let n=0;...
method nodesBetween (line 17) | nodesBetween(e,t,n,i=0,r){for(let o=0,s=0;s<t;o++){let a=this.content[...
method descendants (line 17) | descendants(e){this.nodesBetween(0,this.size,e)}
method textBetween (line 17) | textBetween(e,t,n,i){let r="",o=!0;return this.nodesBetween(e,t,(s,a)=...
method append (line 17) | append(e){if(!e.size)return this;if(!this.size)return e;let t=this.las...
method cut (line 17) | cut(e,t=this.size){if(0==e&&t==this.size)return this;let n=[],i=0;if(t...
method cutByIndex (line 17) | cutByIndex(e,t){return e==t?a.empty:0==e&&t==this.content.length?this:...
method replaceChild (line 17) | replaceChild(e,t){let n=this.content[e];if(n==t)return this;let i=this...
method addToStart (line 17) | addToStart(e){return new a([e].concat(this.content),this.size+e.nodeSi...
method addToEnd (line 17) | addToEnd(e){return new a(this.content.concat(e),this.size+e.nodeSize)}
method eq (line 17) | eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<...
method firstChild (line 17) | get firstChild(){return this.content.length?this.content[0]:null}
method lastChild (line 17) | get lastChild(){return this.content.length?this.content[this.content.l...
method childCount (line 17) | get childCount(){return this.content.length}
method child (line 17) | child(e){let t=this.content[e];if(!t)throw new RangeError("Index "+e+"...
method maybeChild (line 17) | maybeChild(e){return this.content[e]||null}
method forEach (line 17) | forEach(e){for(let t=0,n=0;t<this.content.length;t++){let i=this.conte...
method findDiffStart (line 17) | findDiffStart(e,t=0){return o(this,e,t)}
method findDiffEnd (line 17) | findDiffEnd(e,t=this.size,n=e.size){return s(this,e,t,n)}
method findIndex (line 17) | findIndex(e,t=-1){if(0==e)return c(0,e);if(e==this.size)return c(this....
method toString (line 17) | toString(){return"<"+this.toStringInner()+">"}
method toStringInner (line 17) | toStringInner(){return this.content.join(", ")}
method toJSON (line 17) | toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}
method fromJSON (line 17) | static fromJSON(e,t){if(!t)return a.empty;if(!Array.isArray(t))throw n...
method fromArray (line 17) | static fromArray(e){if(!e.length)return a.empty;let t,n=0;for(let i=0;...
method from (line 17) | static from(e){if(!e)return a.empty;if(e instanceof a)return e;if(Arra...
method constructor (line 17) | constructor(e,t){this.$from=e,this.$to=t}
function i (line 1) | function i(){this.input=null,this.next_in=0,this.avail_in=0,this.total_i...
function A (line 1) | function A(e){throw new RangeError(w[e])}
method constructor (line 26) | constructor(e,t,n,i=!1){super(),this.from=e,this.to=t,this.slice=n,thi...
method apply (line 26) | apply(e){return this.structure&&T(e,this.from,this.to)?b.fail("Structu...
method getMap (line 26) | getMap(){return new f([this.from,this.to-this.from,this.slice.size])}
method invert (line 26) | invert(e){return new A(this.from,this.from+this.slice.size,e.slice(thi...
method map (line 26) | map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return...
method merge (line 26) | merge(e){if(!(e instanceof A)||e.structure||this.structure)return null...
method toJSON (line 26) | toJSON(){let e={stepType:"replace",from:this.from,to:this.to};return t...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to...
function S (line 1) | function S(e,t){var n=e.length,i=[];while(n--)i[n]=t(e[n]);return i}
method constructor (line 17) | constructor(e,t){this.schema=e,this.plugins=[],this.pluginsByKey=Objec...
method constructor (line 26) | constructor(e,t,n,i,r,o,s=!1){super(),this.from=e,this.to=t,this.gapFr...
method apply (line 26) | apply(e){if(this.structure&&(T(e,this.from,this.gapFrom)||T(e,this.gap...
method getMap (line 26) | getMap(){return new f([this.from,this.gapFrom-this.from,this.insert,th...
method invert (line 26) | invert(e){let t=this.gapTo-this.gapFrom;return new S(this.from,this.fr...
method map (line 26) | map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1),i=e.ma...
method toJSON (line 26) | toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gap...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to...
function T (line 1) | function T(e,t){var n=e.split("@"),i="";n.length>1&&(i=n[0]+"@",e=n[1]),...
method constructor (line 17) | constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.dep...
method resolveDepth (line 17) | resolveDepth(e){return null==e?this.depth:e<0?this.depth+e:e}
method parent (line 17) | get parent(){return this.node(this.depth)}
method doc (line 17) | get doc(){return this.node(0)}
method node (line 17) | node(e){return this.path[3*this.resolveDepth(e)]}
method index (line 17) | index(e){return this.path[3*this.resolveDepth(e)+1]}
method indexAfter (line 17) | indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e!=this.dep...
method start (line 17) | start(e){return e=this.resolveDepth(e),0==e?0:this.path[3*e-1]+1}
method end (line 17) | end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).conten...
method before (line 17) | before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is ...
method after (line 17) | after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is n...
method textOffset (line 17) | get textOffset(){return this.pos-this.path[this.path.length-1]}
method nodeAfter (line 17) | get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.chi...
method nodeBefore (line 17) | get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[thi...
method posAtIndex (line 17) | posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[3*t],i=0==t?0:t...
method marks (line 17) | marks(){let e=this.parent,t=this.index();if(0==e.content.size)return d...
method marksAcross (line 17) | marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.is...
method sharedDepth (line 17) | sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this....
method blockRange (line 17) | blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(l...
method sameParent (line 17) | sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}
method max (line 17) | max(e){return e.pos>this.pos?e:this}
method min (line 17) | min(e){return e.pos<this.pos?e:this}
method toString (line 17) | toString(){let e="";for(let t=1;t<=this.depth;t++)e+=(e?"/":"")+this.n...
method resolve (line 17) | static resolve(e,t){if(!(t>=0&&t<=e.content.size))throw new RangeError...
method resolveCached (line 17) | static resolveCached(e,t){for(let i=0;i<E.length;i++){let n=E[i];if(n....
method constructor (line 17) | constructor(e){this.config=e}
method schema (line 17) | get schema(){return this.config.schema}
method plugins (line 17) | get plugins(){return this.config.plugins}
method apply (line 17) | apply(e){return this.applyTransaction(e).state}
method filterTransaction (line 17) | filterTransaction(e,t=-1){for(let n=0;n<this.config.plugins.length;n++...
method applyTransaction (line 17) | applyTransaction(e){if(!this.filterTransaction(e))return{state:this,tr...
method applyInner (line 17) | applyInner(e){if(!e.before.eq(this.doc))throw new RangeError("Applying...
method tr (line 17) | get tr(){return new x(this)}
method create (line 17) | static create(e){let t=new S(e.doc?e.doc.type.schema:e.schema,e.plugin...
method reconfigure (line 17) | reconfigure(e){let t=new S(this.schema,e.plugins),n=t.fields,i=new T(t...
method toJSON (line 17) | toJSON(e){let t={doc:this.doc.toJSON(),selection:this.selection.toJSON...
method fromJSON (line 17) | static fromJSON(e,t,n){if(!t)throw new RangeError("Invalid input for E...
function E (line 1) | function E(e){var t,n,i=[],r=0,o=e.length;while(r<o)t=e.charCodeAt(r++),...
function M (line 1) | function M(e){return S(e,(function(e){var t="";return e>65535&&(e-=65536...
method constructor (line 17) | constructor(e){this.spec=e,this.props={},e.props&&E(e.props,this,this....
method getState (line 17) | getState(e){return e[this.key]}
function N (line 1) | function N(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:c}
function O (line 1) | function O(e,t){return e+22+75*(e<26)-((0!=t)<<5)}
method constructor (line 17) | constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}
method start (line 17) | get start(){return this.$from.before(this.depth+1)}
method end (line 17) | get end(){return this.$to.after(this.depth+1)}
method parent (line 17) | get parent(){return this.$from.node(this.depth)}
method startIndex (line 17) | get startIndex(){return this.$from.index(this.depth)}
method endIndex (line 17) | get endIndex(){return this.$to.indexAfter(this.depth)}
function z (line 1) | function z(e,t,n){var i=0;for(e=n?C(e/p):e>>1,e+=C(e/t);e>x*d>>1;i+=c)e=...
method constructor (line 17) | constructor(e="key"){this.key=O(e)}
method get (line 17) | get(e){return e.config.pluginsByKey[this.key]}
method getState (line 17) | getState(e){return e[this.key]}
function D (line 1) | function D(e){var t,n,i,r,o,s,a,u,p,v,b=[],y=e.length,w=0,x=m,k=f;for(n=...
method constructor (line 17) | constructor(e,t,n,i=d.none){this.type=e,this.attrs=t,this.marks=i,this...
method nodeSize (line 17) | get nodeSize(){return this.isLeaf?1:2+this.content.size}
method childCount (line 17) | get childCount(){return this.content.childCount}
method child (line 17) | child(e){return this.content.child(e)}
method maybeChild (line 17) | maybeChild(e){return this.content.maybeChild(e)}
method forEach (line 17) | forEach(e){this.content.forEach(e)}
method nodesBetween (line 17) | nodesBetween(e,t,n,i=0){this.content.nodesBetween(e,t,n,i,this)}
method descendants (line 17) | descendants(e){this.nodesBetween(0,this.content.size,e)}
method textContent (line 17) | get textContent(){return this.isLeaf&&this.type.spec.leafText?this.typ...
method textBetween (line 17) | textBetween(e,t,n,i){return this.content.textBetween(e,t,n,i)}
method firstChild (line 17) | get firstChild(){return this.content.firstChild}
method lastChild (line 17) | get lastChild(){return this.content.lastChild}
method eq (line 17) | eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}
method sameMarkup (line 17) | sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}
method hasMarkup (line 17) | hasMarkup(e,t,n){return this.type==e&&h(this.attrs,t||e.defaultAttrs||...
method copy (line 17) | copy(e=null){return e==this.content?this:new D(this.type,this.attrs,e,...
method mark (line 17) | mark(e){return e==this.marks?this:new D(this.type,this.attrs,this.cont...
method cut (line 17) | cut(e,t=this.content.size){return 0==e&&t==this.content.size?this:this...
method slice (line 17) | slice(e,t=this.content.size,n=!1){if(e==t)return p.empty;let i=this.re...
method replace (line 17) | replace(e,t,n){return g(this.resolve(e),this.resolve(t),n)}
method nodeAt (line 17) | nodeAt(e){for(let t=this;;){let{index:n,offset:i}=t.content.findIndex(...
method childAfter (line 17) | childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{n...
method childBefore (line 17) | childBefore(e){if(0==e)return{node:null,index:0,offset:0};let{index:t,...
method resolve (line 17) | resolve(e){return T.resolveCached(this,e)}
method resolveNoCache (line 17) | resolveNoCache(e){return T.resolve(this,e)}
method rangeHasMark (line 17) | rangeHasMark(e,t,n){let i=!1;return t>e&&this.nodesBetween(e,t,e=>(n.i...
method isBlock (line 17) | get isBlock(){return this.type.isBlock}
method isTextblock (line 17) | get isTextblock(){return this.type.isTextblock}
method inlineContent (line 17) | get inlineContent(){return this.type.inlineContent}
method isInline (line 17) | get isInline(){return this.type.isInline}
method isText (line 17) | get isText(){return this.type.isText}
method isLeaf (line 17) | get isLeaf(){return this.type.isLeaf}
method isAtom (line 17) | get isAtom(){return this.type.isAtom}
method toString (line 17) | toString(){if(this.type.spec.toDebugString)return this.type.spec.toDeb...
method contentMatchAt (line 17) | contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.cont...
method canReplace (line 17) | canReplace(e,t,n=a.empty,i=0,r=n.childCount){let o=this.contentMatchAt...
method canReplaceWith (line 17) | canReplaceWith(e,t,n,i){if(i&&!this.type.allowsMarks(i))return!1;let r...
method canAppend (line 17) | canAppend(e){return e.content.size?this.canReplace(this.childCount,thi...
method check (line 17) | check(){this.type.checkContent(this.content);let e=d.none;for(let t=0;...
method toJSON (line 17) | toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=...
method fromJSON (line 17) | static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Nod...
function L (line 1) | function L(e){var t,n,i,r,o,s,a,u,p,v,b,y,w,x,S,T=[];for(e=E(e),y=e.leng...
method constructor (line 17) | constructor(e,t,n,i){if(super(e,t,null,i),!n)throw new RangeError("Emp...
method toString (line 17) | toString(){return this.type.spec.toDebugString?this.type.spec.toDebugS...
method textContent (line 17) | get textContent(){return this.text}
method textBetween (line 17) | textBetween(e,t){return this.text.slice(e,t)}
method nodeSize (line 17) | get nodeSize(){return this.text.length}
method mark (line 17) | mark(e){return e==this.marks?this:new L(this.type,this.attrs,this.text...
method withText (line 17) | withText(e){return e==this.text?this:new L(this.type,this.attrs,e,this...
method cut (line 17) | cut(e=0,t=this.text.length){return 0==e&&t==this.text.length?this:this...
method eq (line 17) | eq(e){return this.sameMarkup(e)&&this.text==e.text}
method toJSON (line 17) | toJSON(){let e=super.toJSON();return e.text=this.text,e}
function I (line 1) | function I(e){return T(e,(function(e){return v.test(e)?D(e.slice(4).toLo...
function F (line 1) | function F(e){return T(e,(function(e){return b.test(e)?"xn--"+L(e):e}))}
method constructor (line 17) | constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}
method parse (line 17) | static parse(e,t){let n=new R(e,t);if(null==n.next)return F.empty;let ...
method matchType (line 17) | matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==...
method matchFragment (line 17) | matchFragment(e,t=0,n=e.childCount){let i=this;for(let r=t;i&&r<n;r++)...
method inlineContent (line 17) | get inlineContent(){return 0!=this.next.length&&this.next[0].type.isIn...
method defaultType (line 17) | get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this...
method compatible (line 17) | compatible(e){for(let t=0;t<this.next.length;t++)for(let n=0;n<e.next....
method fillBefore (line 17) | fillBefore(e,t=!1,n=0){let i=[this];function r(o,s){let l=o.matchFragm...
method findWrapping (line 17) | findWrapping(e){for(let n=0;n<this.wrapCache.length;n+=2)if(this.wrapC...
method computeWrapping (line 17) | computeWrapping(e){let t=Object.create(null),n=[{match:this,type:null,...
method edgeCount (line 17) | get edgeCount(){return this.next.length}
method edge (line 17) | edge(e){if(e>=this.next.length)throw new RangeError(`There's no ${e}th...
method toString (line 17) | toString(){let e=[];function t(n){e.push(n);for(let i=0;i<n.next.lengt...
function o (line 1) | function o(e,t,n,i,o){if(e===t)return e?[[r,e]]:[];if(null!=n){var a=E(e...
method constructor (line 17) | constructor(e,t,n={}){this.match=e,this.match=e,this.handler="string"=...
function s (line 1) | function s(e,t){var s;if(!e)return[[i,t]];if(!t)return[[n,e]];var l=e.le...
method constructor (line 17) | constructor(e,t,n){this.$anchor=e,this.$head=t,this.ranges=n||[new a(e...
method anchor (line 17) | get anchor(){return this.$anchor.pos}
method head (line 17) | get head(){return this.$head.pos}
method from (line 17) | get from(){return this.$from.pos}
method to (line 17) | get to(){return this.$to.pos}
method $from (line 17) | get $from(){return this.ranges[0].$from}
method $to (line 17) | get $to(){return this.ranges[0].$to}
method empty (line 17) | get empty(){let e=this.ranges;for(let t=0;t<e.length;t++)if(e[t].$from...
method content (line 17) | content(){return this.$from.doc.slice(this.from,this.to,!0)}
method replace (line 17) | replace(e,t=i["Slice"].empty){let n=t.content.lastChild,r=null;for(let...
method replaceWith (line 17) | replaceWith(e,t){let n=e.steps.length,i=this.ranges;for(let r=0;r<i.le...
method findFrom (line 17) | static findFrom(e,t,n=!1){let i=e.parent.inlineContent?new h(e):g(e.no...
method near (line 17) | static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new...
method atStart (line 17) | static atStart(e){return g(e,e,0,0,1)||new f(e)}
method atEnd (line 17) | static atEnd(e){return g(e,e,e.content.size,e.childCount,-1)||new f(e)}
method fromJSON (line 17) | static fromJSON(e,t){if(!t||!t.type)throw new RangeError("Invalid inpu...
method jsonID (line 17) | static jsonID(e,t){if(e in o)throw new RangeError("Duplicate use of se...
method getBookmark (line 17) | getBookmark(){return h.between(this.$anchor,this.$head).getBookmark()}
function a (line 1) | function a(e,t){for(var r=e.length,o=t.length,s=Math.ceil((r+o)/2),a=s,c...
method constructor (line 17) | constructor(e,t){if(this.content=e,this.size=t||0,null==t)for(let n=0;...
method nodesBetween (line 17) | nodesBetween(e,t,n,i=0,r){for(let o=0,s=0;s<t;o++){let a=this.content[...
method descendants (line 17) | descendants(e){this.nodesBetween(0,this.size,e)}
method textBetween (line 17) | textBetween(e,t,n,i){let r="",o=!0;return this.nodesBetween(e,t,(s,a)=...
method append (line 17) | append(e){if(!e.size)return this;if(!this.size)return e;let t=this.las...
method cut (line 17) | cut(e,t=this.size){if(0==e&&t==this.size)return this;let n=[],i=0;if(t...
method cutByIndex (line 17) | cutByIndex(e,t){return e==t?a.empty:0==e&&t==this.content.length?this:...
method replaceChild (line 17) | replaceChild(e,t){let n=this.content[e];if(n==t)return this;let i=this...
method addToStart (line 17) | addToStart(e){return new a([e].concat(this.content),this.size+e.nodeSi...
method addToEnd (line 17) | addToEnd(e){return new a(this.content.concat(e),this.size+e.nodeSize)}
method eq (line 17) | eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<...
method firstChild (line 17) | get firstChild(){return this.content.length?this.content[0]:null}
method lastChild (line 17) | get lastChild(){return this.content.length?this.content[this.content.l...
method childCount (line 17) | get childCount(){return this.content.length}
method child (line 17) | child(e){let t=this.content[e];if(!t)throw new RangeError("Index "+e+"...
method maybeChild (line 17) | maybeChild(e){return this.content[e]||null}
method forEach (line 17) | forEach(e){for(let t=0,n=0;t<this.content.length;t++){let i=this.conte...
method findDiffStart (line 17) | findDiffStart(e,t=0){return o(this,e,t)}
method findDiffEnd (line 17) | findDiffEnd(e,t=this.size,n=e.size){return s(this,e,t,n)}
method findIndex (line 17) | findIndex(e,t=-1){if(0==e)return c(0,e);if(e==this.size)return c(this....
method toString (line 17) | toString(){return"<"+this.toStringInner()+">"}
method toStringInner (line 17) | toStringInner(){return this.content.join(", ")}
method toJSON (line 17) | toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}
method fromJSON (line 17) | static fromJSON(e,t){if(!t)return a.empty;if(!Array.isArray(t))throw n...
method fromArray (line 17) | static fromArray(e){if(!e.length)return a.empty;let t,n=0;for(let i=0;...
method from (line 17) | static from(e){if(!e)return a.empty;if(e instanceof a)return e;if(Arra...
method constructor (line 17) | constructor(e,t){this.$from=e,this.$to=t}
function l (line 1) | function l(e,t,n,i){var r=e.substring(0,n),s=t.substring(0,i),a=e.substr...
function c (line 1) | function c(e,t){if(!e||!t||e.charAt(0)!==t.charAt(0))return 0;var n=0,i=...
function h (line 1) | function h(e,t){var n=e.length,i=t.length;if(0==n||0==i)return 0;n>i?e=e...
method constructor (line 17) | constructor(e,t=e){c(e),c(t),super(e,t)}
method $cursor (line 17) | get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}
method map (line 17) | map(e,t){let n=e.resolve(t.map(this.head));if(!n.parent.inlineContent)...
method replace (line 17) | replace(e,t=i["Slice"].empty){if(super.replace(e,t),t==i["Slice"].empt...
method eq (line 17) | eq(e){return e instanceof h&&e.anchor==this.anchor&&e.head==this.head}
method getBookmark (line 17) | getBookmark(){return new d(this.anchor,this.head)}
method toJSON (line 17) | toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}
method fromJSON (line 17) | static fromJSON(e,t){if("number"!=typeof t.anchor||"number"!=typeof t....
method create (line 17) | static create(e,t,n=t){let i=e.resolve(t);return new this(i,n==t?i:e.r...
method between (line 17) | static between(e,t,n){let i=e.pos-t.pos;if(n&&!i||(n=i>=0?1:-1),!t.par...
function d (line 1) | function d(e,t){if(!e||!t||e.slice(-1)!==t.slice(-1))return 0;var n=0,i=...
method constructor (line 17) | constructor(e,t){this.type=e,this.attrs=t}
method addToSet (line 17) | addToSet(e){let t,n=!1;for(let i=0;i<e.length;i++){let r=e[i];if(this....
method removeFromSet (line 17) | removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e....
method isInSet (line 17) | isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}
method eq (line 17) | eq(e){return this==e||this.type==e.type&&h(this.attrs,e.attrs)}
method toJSON (line 17) | toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=...
method fromJSON (line 17) | static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Mar...
method sameSet (line 17) | static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;fo...
method setFrom (line 17) | static setFrom(e){if(!e||Array.isArray(e)&&0==e.length)return d.none;i...
method constructor (line 17) | constructor(e,t){this.anchor=e,this.head=t}
method map (line 17) | map(e){return new d(e.map(this.anchor),e.map(this.head))}
method resolve (line 17) | resolve(e){return h.between(e.resolve(this.anchor),e.resolve(this.head))}
method constructor (line 19) | constructor(e){Array.isArray(e)?this.ops=e:null!=e&&Array.isArray(e.op...
method registerEmbed (line 19) | static registerEmbed(e,t){this.handlers[e]=t}
method unregisterEmbed (line 19) | static unregisterEmbed(e){delete this.handlers[e]}
method getHandler (line 19) | static getHandler(e){const t=this.handlers[e];if(!t)throw new Error(`n...
method insert (line 19) | insert(e,t){const n={};return"string"===typeof e&&0===e.length?this:(n...
method delete (line 19) | delete(e){return e<=0?this:this.push({delete:e})}
method retain (line 19) | retain(e,t){if("number"===typeof e&&e<=0)return this;const n={retain:e...
method push (line 19) | push(e){let t=this.ops.length,n=this.ops[t-1];if(e=r(e),"object"===typ...
method chop (line 19) | chop(){const e=this.ops[this.ops.length-1];return e&&"number"===typeof...
method filter (line 19) | filter(e){return this.ops.filter(e)}
method forEach (line 19) | forEach(e){this.ops.forEach(e)}
method map (line 19) | map(e){return this.ops.map(e)}
method partition (line 19) | partition(e){const t=[],n=[];return this.forEach(i=>{const r=e(i)?t:n;...
method reduce (line 19) | reduce(e,t){return this.ops.reduce(e,t)}
method changeLength (line 19) | changeLength(){return this.reduce((e,t)=>t.insert?e+a.default.length(t...
method length (line 19) | length(){return this.reduce((e,t)=>e+a.default.length(t),0)}
method slice (line 19) | slice(e=0,t=1/0){const n=[],i=new l.default(this.ops);let r=0;while(r<...
method compose (line 19) | compose(e){const t=new l.default(this.ops),n=new l.default(e.ops),i=[]...
method concat (line 19) | concat(e){const t=new d(this.ops.slice());return e.ops.length>0&&(t.pu...
method diff (line 19) | diff(e,t){if(this.ops===e.ops)return new d;const n=[this,e].map(t=>t.m...
method eachLine (line 19) | eachLine(e,t="\n"){const n=new l.default(this.ops);let i=new d,r=0;whi...
method invert (line 19) | invert(e){const t=new d;return this.reduce((n,i)=>{if(i.insert)t.delet...
method transform (line 19) | transform(e,t=!1){if(t=!!t,"number"===typeof e)return this.transformPo...
method transformPosition (line 19) | transformPosition(e,t=!1){t=!!t;const n=new l.default(this.ops);let i=...
method constructor (line 65) | constructor(e,t){this.items=e,this.eventCount=t}
method popEvent (line 65) | popEvent(e,t){if(0==this.eventCount)return null;let n,i,r=this.items.l...
method addTransform (line 65) | addTransform(e,t,n,i){let r=[],o=this.eventCount,s=this.items,a=!i&&s....
method remapping (line 65) | remapping(e,t){let n=new l["a"];return this.items.forEach((t,i)=>{let ...
method addMaps (line 65) | addMaps(e){return 0==this.eventCount?this:new d(this.items.append(e.ma...
method rebased (line 65) | rebased(e,t){if(!this.eventCount)return this;let n=[],i=Math.max(0,thi...
method emptyItemCount (line 65) | emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}
method compress (line 65) | compress(e=this.items.length){let t=this.remapping(0,e),n=t.maps.lengt...
function u (line 1) | function u(e,t){var n=e.length>t.length?e:t,i=e.length>t.length?t:e;if(n...
method constructor (line 17) | constructor(e){let t=e.nodeAfter,n=e.node(0).resolve(e.pos+t.nodeSize)...
method map (line 17) | map(e,t){let{deleted:n,pos:i}=t.mapResult(this.anchor),r=e.resolve(i);...
method content (line 17) | content(){return new i["Slice"](i["Fragment"].from(this.node),0,0)}
method eq (line 17) | eq(e){return e instanceof u&&e.anchor==this.anchor}
method toJSON (line 17) | toJSON(){return{type:"node",anchor:this.anchor}}
method getBookmark (line 17) | getBookmark(){return new p(this.anchor)}
method fromJSON (line 17) | static fromJSON(e,t){if("number"!=typeof t.anchor)throw new RangeError...
method create (line 17) | static create(e,t){return new u(e.resolve(t))}
method isSelectable (line 17) | static isSelectable(e){return!e.isText&&!1!==e.type.spec.selectable}
function p (line 1) | function p(e){var t=!1,o=[],s=0,a=null,l=0,c=0,d=0,u=0,p=0;while(l<e.len...
method constructor (line 17) | constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}
method size (line 17) | get size(){return this.content.size-this.openStart-this.openEnd}
method insertAt (line 17) | insertAt(e,t){let n=m(this.content,e+this.openStart,t);return n&&new p...
method removeBetween (line 17) | removeBetween(e,t){return new p(f(this.content,e+this.openStart,t+this...
method eq (line 17) | eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&...
method toString (line 17) | toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}
method toJSON (line 17) | toJSON(){if(!this.content.size)return null;let e={content:this.content...
method fromJSON (line 17) | static fromJSON(e,t){if(!t)return p.empty;let n=t.openStart||0,i=t.ope...
method maxOpen (line 17) | static maxOpen(e,t=!0){let n=0,i=0;for(let r=e.firstChild;r&&!r.isLeaf...
method constructor (line 17) | constructor(e){this.anchor=e}
method map (line 17) | map(e){let{deleted:t,pos:n}=e.mapResult(this.anchor);return t?new d(n,...
method resolve (line 17) | resolve(e){let t=e.resolve(this.anchor),n=t.nodeAfter;return n&&u.isSe...
method constructor (line 26) | constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}
method deleted (line 26) | get deleted(){return(this.delInfo&u)>0}
method deletedBefore (line 26) | get deletedBefore(){return(this.delInfo&(c|d))>0}
method deletedAfter (line 26) | get deletedAfter(){return(this.delInfo&(h|d))>0}
method deletedAcross (line 26) | get deletedAcross(){return(this.delInfo&d)>0}
method constructor (line 65) | constructor(e,t,n,i){this.map=e,this.step=t,this.selection=n,this.mirr...
method merge (line 65) | merge(e){if(this.step&&e.step&&!e.selection){let t=e.step.merge(this.s...
function y (line 1) | function y(e){function t(e,t){if(!e||!t)return 6;var n=e.charAt(e.length...
function w (line 1) | function w(e,t){e.push([r,""]);var o,s=0,a=0,l=0,h="",u="";while(s<e.len...
method constructor (line 26) | constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}
method apply (line 26) | apply(e){let t=e.slice(this.from,this.to),n=e.resolve(this.from),r=n.n...
method invert (line 26) | invert(){return new x(this.from,this.to,this.mark)}
method map (line 26) | map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return...
method merge (line 26) | merge(e){return e instanceof w&&e.mark.eq(this.mark)&&this.from<=e.to&...
method toJSON (line 26) | toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.f...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to...
function x (line 1) | function x(e){return e>=55296&&e<=56319}
method constructor (line 17) | constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this...
method selection (line 17) | get selection(){return this.curSelectionFor<this.steps.length&&(this.c...
method setSelection (line 17) | setSelection(e){if(e.$from.doc!=this.doc)throw new RangeError("Selecti...
method selectionSet (line 17) | get selectionSet(){return(this.updated&b)>0}
method setStoredMarks (line 17) | setStoredMarks(e){return this.storedMarks=e,this.updated|=y,this}
method ensureMarks (line 17) | ensureMarks(e){return i["Mark"].sameSet(this.storedMarks||this.selecti...
method addStoredMark (line 17) | addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||...
method removeStoredMark (line 17) | removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.store...
method storedMarksSet (line 17) | get storedMarksSet(){return(this.updated&y)>0}
method addStep (line 17) | addStep(e,t){super.addStep(e,t),this.updated=this.updated&~y,this.stor...
method setTime (line 17) | setTime(e){return this.time=e,this}
method replaceSelection (line 17) | replaceSelection(e){return this.selection.replace(this,e),this}
method replaceSelectionWith (line 17) | replaceSelectionWith(e,t=!0){let n=this.selection;return t&&(e=e.mark(...
method deleteSelection (line 17) | deleteSelection(){return this.selection.replace(this),this}
method insertText (line 17) | insertText(e,t,n){let i=this.doc.type.schema;if(null==t)return e?this....
method setMeta (line 17) | setMeta(e,t){return this.meta["string"==typeof e?e:e.key]=t,this}
method getMeta (line 17) | getMeta(e){return this.meta["string"==typeof e?e:e.key]}
method isGeneric (line 17) | get isGeneric(){for(let e in this.meta)return!1;return!0}
method scrollIntoView (line 17) | scrollIntoView(){return this.updated|=w,this}
method scrolledIntoView (line 17) | get scrolledIntoView(){return(this.updated&w)>0}
method constructor (line 26) | constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}
method apply (line 26) | apply(e){let t=e.slice(this.from,this.to),n=new i["Slice"](y(t.content...
method invert (line 26) | invert(){return new w(this.from,this.to,this.mark)}
method map (line 26) | map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return...
method merge (line 26) | merge(e){return e instanceof x&&e.mark.eq(this.mark)&&this.from<=e.to&...
method toJSON (line 26) | toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:thi...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to...
function C (line 1) | function C(e){return e>=56320&&e<=57343}
method constructor (line 26) | constructor(e,t){super(),this.pos=e,this.mark=t}
method apply (line 26) | apply(e){let t=e.nodeAt(this.pos);if(!t)return b.fail("No node at mark...
method invert (line 26) | invert(e){let t=e.nodeAt(this.pos);if(t){let e=this.mark.addToSet(t.ma...
method map (line 26) | map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new C(...
method toJSON (line 26) | toJSON(){return{stepType:"addNodeMark",pos:this.pos,mark:this.mark.toJ...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.pos)throw new RangeError("I...
function k (line 1) | function k(e){return C(e.charCodeAt(0))}
method constructor (line 17) | constructor(e,t,n){this.name=e,this.init=C(t.init,n),this.apply=C(t.ap...
method constructor (line 26) | constructor(e,t){super(),this.pos=e,this.mark=t}
method apply (line 26) | apply(e){let t=e.nodeAt(this.pos);if(!t)return b.fail("No node at mark...
method invert (line 26) | invert(e){let t=e.nodeAt(this.pos);return t&&this.mark.isInSet(t.marks...
method map (line 26) | map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new k(...
method toJSON (line 26) | toJSON(){return{stepType:"removeNodeMark",pos:this.pos,mark:this.mark....
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.pos)throw new RangeError("I...
function A (line 1) | function A(e){return x(e.charCodeAt(e.length-1))}
method constructor (line 26) | constructor(e,t,n,i=!1){super(),this.from=e,this.to=t,this.slice=n,thi...
method apply (line 26) | apply(e){return this.structure&&T(e,this.from,this.to)?b.fail("Structu...
method getMap (line 26) | getMap(){return new f([this.from,this.to-this.from,this.slice.size])}
method invert (line 26) | invert(e){return new A(this.from,this.from+this.slice.size,e.slice(thi...
method map (line 26) | map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return...
method merge (line 26) | merge(e){if(!(e instanceof A)||e.structure||this.structure)return null...
method toJSON (line 26) | toJSON(){let e={stepType:"replace",from:this.from,to:this.to};return t...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to...
function S (line 1) | function S(e){for(var t=[],n=0;n<e.length;n++)e[n][1].length>0&&t.push(e...
method constructor (line 17) | constructor(e,t){this.schema=e,this.plugins=[],this.pluginsByKey=Objec...
method constructor (line 26) | constructor(e,t,n,i,r,o,s=!1){super(),this.from=e,this.to=t,this.gapFr...
method apply (line 26) | apply(e){if(this.structure&&(T(e,this.from,this.gapFrom)||T(e,this.gap...
method getMap (line 26) | getMap(){return new f([this.from,this.gapFrom-this.from,this.insert,th...
method invert (line 26) | invert(e){let t=this.gapTo-this.gapFrom;return new S(this.from,this.fr...
method map (line 26) | map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1),i=e.ma...
method toJSON (line 26) | toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gap...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to...
function T (line 1) | function T(e,t,o,s){return A(e)||k(s)?null:S([[r,e],[n,t],[i,o],[r,s]])}
method constructor (line 17) | constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.dep...
method resolveDepth (line 17) | resolveDepth(e){return null==e?this.depth:e<0?this.depth+e:e}
method parent (line 17) | get parent(){return this.node(this.depth)}
method doc (line 17) | get doc(){return this.node(0)}
method node (line 17) | node(e){return this.path[3*this.resolveDepth(e)]}
method index (line 17) | index(e){return this.path[3*this.resolveDepth(e)+1]}
method indexAfter (line 17) | indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e!=this.dep...
method start (line 17) | start(e){return e=this.resolveDepth(e),0==e?0:this.path[3*e-1]+1}
method end (line 17) | end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).conten...
method before (line 17) | before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is ...
method after (line 17) | after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is n...
method textOffset (line 17) | get textOffset(){return this.pos-this.path[this.path.length-1]}
method nodeAfter (line 17) | get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.chi...
method nodeBefore (line 17) | get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[thi...
method posAtIndex (line 17) | posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[3*t],i=0==t?0:t...
method marks (line 17) | marks(){let e=this.parent,t=this.index();if(0==e.content.size)return d...
method marksAcross (line 17) | marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.is...
method sharedDepth (line 17) | sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this....
method blockRange (line 17) | blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(l...
method sameParent (line 17) | sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}
method max (line 17) | max(e){return e.pos>this.pos?e:this}
method min (line 17) | min(e){return e.pos<this.pos?e:this}
method toString (line 17) | toString(){let e="";for(let t=1;t<=this.depth;t++)e+=(e?"/":"")+this.n...
method resolve (line 17) | static resolve(e,t){if(!(t>=0&&t<=e.content.size))throw new RangeError...
method resolveCached (line 17) | static resolveCached(e,t){for(let i=0;i<E.length;i++){let n=E[i];if(n....
method constructor (line 17) | constructor(e){this.config=e}
method schema (line 17) | get schema(){return this.config.schema}
method plugins (line 17) | get plugins(){return this.config.plugins}
method apply (line 17) | apply(e){return this.applyTransaction(e).state}
method filterTransaction (line 17) | filterTransaction(e,t=-1){for(let n=0;n<this.config.plugins.length;n++...
method applyTransaction (line 17) | applyTransaction(e){if(!this.filterTransaction(e))return{state:this,tr...
method applyInner (line 17) | applyInner(e){if(!e.before.eq(this.doc))throw new RangeError("Applying...
method tr (line 17) | get tr(){return new x(this)}
method create (line 17) | static create(e){let t=new S(e.doc?e.doc.type.schema:e.schema,e.plugin...
method reconfigure (line 17) | reconfigure(e){let t=new S(this.schema,e.plugins),n=t.fields,i=new T(t...
method toJSON (line 17) | toJSON(e){let t={doc:this.doc.toJSON(),selection:this.selection.toJSON...
method fromJSON (line 17) | static fromJSON(e,t,n){if(!t)throw new RangeError("Invalid input for E...
function E (line 1) | function E(e,t,n){var i="number"===typeof n?{index:n,length:0}:n.oldRang...
function M (line 1) | function M(e,t,n,i){return o(e,t,n,i,!0)}
method constructor (line 17) | constructor(e){this.spec=e,this.props={},e.props&&E(e.props,this,this....
method getState (line 17) | getState(e){return e[this.key]}
function c (line 1) | function c(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. L...
function h (line 1) | function h(e){var t=c(e),n=t[0],i=t[1];return 3*(n+i)/4-i}
method constructor (line 17) | constructor(e,t=e){c(e),c(t),super(e,t)}
method $cursor (line 17) | get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}
method map (line 17) | map(e,t){let n=e.resolve(t.map(this.head));if(!n.parent.inlineContent)...
method replace (line 17) | replace(e,t=i["Slice"].empty){if(super.replace(e,t),t==i["Slice"].empt...
method eq (line 17) | eq(e){return e instanceof h&&e.anchor==this.anchor&&e.head==this.head}
method getBookmark (line 17) | getBookmark(){return new d(this.anchor,this.head)}
method toJSON (line 17) | toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}
method fromJSON (line 17) | static fromJSON(e,t){if("number"!=typeof t.anchor||"number"!=typeof t....
method create (line 17) | static create(e,t,n=t){let i=e.resolve(t);return new this(i,n==t?i:e.r...
method between (line 17) | static between(e,t,n){let i=e.pos-t.pos;if(n&&!i||(n=i>=0?1:-1),!t.par...
function d (line 1) | function d(e,t,n){return 3*(t+n)/4-n}
method constructor (line 17) | constructor(e,t){this.type=e,this.attrs=t}
method addToSet (line 17) | addToSet(e){let t,n=!1;for(let i=0;i<e.length;i++){let r=e[i];if(this....
method removeFromSet (line 17) | removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e....
method isInSet (line 17) | isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}
method eq (line 17) | eq(e){return this==e||this.type==e.type&&h(this.attrs,e.attrs)}
method toJSON (line 17) | toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=...
method fromJSON (line 17) | static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Mar...
method sameSet (line 17) | static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;fo...
method setFrom (line 17) | static setFrom(e){if(!e||Array.isArray(e)&&0==e.length)return d.none;i...
method constructor (line 17) | constructor(e,t){this.anchor=e,this.head=t}
method map (line 17) | map(e){return new d(e.map(this.anchor),e.map(this.head))}
method resolve (line 17) | resolve(e){return h.between(e.resolve(this.anchor),e.resolve(this.head))}
method constructor (line 19) | constructor(e){Array.isArray(e)?this.ops=e:null!=e&&Array.isArray(e.op...
method registerEmbed (line 19) | static registerEmbed(e,t){this.handlers[e]=t}
method unregisterEmbed (line 19) | static unregisterEmbed(e){delete this.handlers[e]}
method getHandler (line 19) | static getHandler(e){const t=this.handlers[e];if(!t)throw new Error(`n...
method insert (line 19) | insert(e,t){const n={};return"string"===typeof e&&0===e.length?this:(n...
method delete (line 19) | delete(e){return e<=0?this:this.push({delete:e})}
method retain (line 19) | retain(e,t){if("number"===typeof e&&e<=0)return this;const n={retain:e...
method push (line 19) | push(e){let t=this.ops.length,n=this.ops[t-1];if(e=r(e),"object"===typ...
method chop (line 19) | chop(){const e=this.ops[this.ops.length-1];return e&&"number"===typeof...
method filter (line 19) | filter(e){return this.ops.filter(e)}
method forEach (line 19) | forEach(e){this.ops.forEach(e)}
method map (line 19) | map(e){return this.ops.map(e)}
method partition (line 19) | partition(e){const t=[],n=[];return this.forEach(i=>{const r=e(i)?t:n;...
method reduce (line 19) | reduce(e,t){return this.ops.reduce(e,t)}
method changeLength (line 19) | changeLength(){return this.reduce((e,t)=>t.insert?e+a.default.length(t...
method length (line 19) | length(){return this.reduce((e,t)=>e+a.default.length(t),0)}
method slice (line 19) | slice(e=0,t=1/0){const n=[],i=new l.default(this.ops);let r=0;while(r<...
method compose (line 19) | compose(e){const t=new l.default(this.ops),n=new l.default(e.ops),i=[]...
method concat (line 19) | concat(e){const t=new d(this.ops.slice());return e.ops.length>0&&(t.pu...
method diff (line 19) | diff(e,t){if(this.ops===e.ops)return new d;const n=[this,e].map(t=>t.m...
method eachLine (line 19) | eachLine(e,t="\n"){const n=new l.default(this.ops);let i=new d,r=0;whi...
method invert (line 19) | invert(e){const t=new d;return this.reduce((n,i)=>{if(i.insert)t.delet...
method transform (line 19) | transform(e,t=!1){if(t=!!t,"number"===typeof e)return this.transformPo...
method transformPosition (line 19) | transformPosition(e,t=!1){t=!!t;const n=new l.default(this.ops);let i=...
method constructor (line 65) | constructor(e,t){this.items=e,this.eventCount=t}
method popEvent (line 65) | popEvent(e,t){if(0==this.eventCount)return null;let n,i,r=this.items.l...
method addTransform (line 65) | addTransform(e,t,n,i){let r=[],o=this.eventCount,s=this.items,a=!i&&s....
method remapping (line 65) | remapping(e,t){let n=new l["a"];return this.items.forEach((t,i)=>{let ...
method addMaps (line 65) | addMaps(e){return 0==this.eventCount?this:new d(this.items.append(e.ma...
method rebased (line 65) | rebased(e,t){if(!this.eventCount)return this;let n=[],i=Math.max(0,thi...
method emptyItemCount (line 65) | emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}
method compress (line 65) | compress(e=this.items.length){let t=this.remapping(0,e),n=t.maps.lengt...
function u (line 1) | function u(e){var t,n,i=c(e),s=i[0],a=i[1],l=new o(d(e,s,a)),h=0,u=a>0?s...
method constructor (line 17) | constructor(e){let t=e.nodeAfter,n=e.node(0).resolve(e.pos+t.nodeSize)...
method map (line 17) | map(e,t){let{deleted:n,pos:i}=t.mapResult(this.anchor),r=e.resolve(i);...
method content (line 17) | content(){return new i["Slice"](i["Fragment"].from(this.node),0,0)}
method eq (line 17) | eq(e){return e instanceof u&&e.anchor==this.anchor}
method toJSON (line 17) | toJSON(){return{type:"node",anchor:this.anchor}}
method getBookmark (line 17) | getBookmark(){return new p(this.anchor)}
method fromJSON (line 17) | static fromJSON(e,t){if("number"!=typeof t.anchor)throw new RangeError...
method create (line 17) | static create(e,t){return new u(e.resolve(t))}
method isSelectable (line 17) | static isSelectable(e){return!e.isText&&!1!==e.type.spec.selectable}
function p (line 1) | function p(e){return i[e>>18&63]+i[e>>12&63]+i[e>>6&63]+i[63&e]}
method constructor (line 17) | constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}
method size (line 17) | get size(){return this.content.size-this.openStart-this.openEnd}
method insertAt (line 17) | insertAt(e,t){let n=m(this.content,e+this.openStart,t);return n&&new p...
method removeBetween (line 17) | removeBetween(e,t){return new p(f(this.content,e+this.openStart,t+this...
method eq (line 17) | eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&...
method toString (line 17) | toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}
method toJSON (line 17) | toJSON(){if(!this.content.size)return null;let e={content:this.content...
method fromJSON (line 17) | static fromJSON(e,t){if(!t)return p.empty;let n=t.openStart||0,i=t.ope...
method maxOpen (line 17) | static maxOpen(e,t=!0){let n=0,i=0;for(let r=e.firstChild;r&&!r.isLeaf...
method constructor (line 17) | constructor(e){this.anchor=e}
method map (line 17) | map(e){let{deleted:t,pos:n}=e.mapResult(this.anchor);return t?new d(n,...
method resolve (line 17) | resolve(e){let t=e.resolve(this.anchor),n=t.nodeAfter;return n&&u.isSe...
method constructor (line 26) | constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}
method deleted (line 26) | get deleted(){return(this.delInfo&u)>0}
method deletedBefore (line 26) | get deletedBefore(){return(this.delInfo&(c|d))>0}
method deletedAfter (line 26) | get deletedAfter(){return(this.delInfo&(h|d))>0}
method deletedAcross (line 26) | get deletedAcross(){return(this.delInfo&d)>0}
method constructor (line 65) | constructor(e,t,n,i){this.map=e,this.step=t,this.selection=n,this.mirr...
method merge (line 65) | merge(e){if(this.step&&e.step&&!e.selection){let t=e.step.merge(this.s...
function f (line 1) | function f(e,t,n){for(var i,r=[],o=t;o<n;o+=3)i=(e[o]<<16&16711680)+(e[o...
method constructor (line 17) | constructor(e){super(e.resolve(0),e.resolve(e.content.size))}
method replace (line 17) | replace(e,t=i["Slice"].empty){if(t==i["Slice"].empty){e.delete(0,e.doc...
method toJSON (line 17) | toJSON(){return{type:"all"}}
method fromJSON (line 17) | static fromJSON(e){return new f(e)}
method map (line 17) | map(e){return new f(e)}
method eq (line 17) | eq(e){return e instanceof f}
method getBookmark (line 17) | getBookmark(){return m}
method constructor (line 26) | constructor(e,t=!1){if(this.ranges=e,this.inverted=t,!e.length&&f.empt...
method recover (line 26) | recover(e){let t=0,n=a(e);if(!this.inverted)for(let i=0;i<n;i++)t+=thi...
method mapResult (line 26) | mapResult(e,t=1){return this._map(e,t,!1)}
method map (line 26) | map(e,t=1){return this._map(e,t,!0)}
method _map (line 26) | _map(e,t,n){let i=0,r=this.inverted?2:1,o=this.inverted?1:2;for(let a=...
method touches (line 26) | touches(e,t){let n=0,i=a(t),r=this.inverted?2:1,o=this.inverted?1:2;fo...
method forEach (line 26) | forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let i=0,r=0...
method invert (line 26) | invert(){return new f(this.ranges,!this.inverted)}
method toString (line 26) | toString(){return(this.inverted?"-":"")+JSON.stringify(this.ranges)}
method offset (line 26) | static offset(e){return 0==e?f.empty:new f(e<0?[0,-e,0]:[0,0,e])}
method constructor (line 65) | constructor(e,t,n,i,r){this.done=e,this.undone=t,this.prevRanges=n,thi...
function m (line 1) | function m(e){for(var t,n=e.length,r=n%3,o=[],s=16383,a=0,l=n-r;a<l;a+=s...
method constructor (line 26) | constructor(e=[],t,n=0,i=e.length){this.maps=e,this.mirror=t,this.from...
method slice (line 26) | slice(e=0,t=this.maps.length){return new m(this.maps,this.mirror,e,t)}
method copy (line 26) | copy(){return new m(this.maps.slice(),this.mirror&&this.mirror.slice()...
method appendMap (line 26) | appendMap(e,t){this.to=this.maps.push(e),null!=t&&this.setMirror(this....
method appendMapping (line 26) | appendMapping(e){for(let t=0,n=this.maps.length;t<e.maps.length;t++){l...
method getMirror (line 26) | getMirror(e){if(this.mirror)for(let t=0;t<this.mirror.length;t++)if(th...
method setMirror (line 26) | setMirror(e,t){this.mirror||(this.mirror=[]),this.mirror.push(e,t)}
method appendMappingInverted (line 26) | appendMappingInverted(e){for(let t=e.maps.length-1,n=this.maps.length+...
method invert (line 26) | invert(){let e=new m;return e.appendMappingInverted(this),e}
method map (line 26) | map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from...
method mapResult (line 26) | mapResult(e,t=1){return this._map(e,t,!1)}
method _map (line 26) | _map(e,t,n){let i=0;for(let r=this.from;r<this.to;r++){let n=this.maps...
function t (line 1) | function t(e){return"number"===typeof e.delete?e.delete:"number"===typeo...
function d (line 1) | function d(e){if(!(this instanceof d))return new d(e);this.options=r.ass...
method constructor (line 17) | constructor(e,t){this.type=e,this.attrs=t}
method addToSet (line 17) | addToSet(e){let t,n=!1;for(let i=0;i<e.length;i++){let r=e[i];if(this....
method removeFromSet (line 17) | removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e....
method isInSet (line 17) | isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}
method eq (line 17) | eq(e){return this==e||this.type==e.type&&h(this.attrs,e.attrs)}
method toJSON (line 17) | toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=...
method fromJSON (line 17) | static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Mar...
method sameSet (line 17) | static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;fo...
method setFrom (line 17) | static setFrom(e){if(!e||Array.isArray(e)&&0==e.length)return d.none;i...
method constructor (line 17) | constructor(e,t){this.anchor=e,this.head=t}
method map (line 17) | map(e){return new d(e.map(this.anchor),e.map(this.head))}
method resolve (line 17) | resolve(e){return h.between(e.resolve(this.anchor),e.resolve(this.head))}
method constructor (line 19) | constructor(e){Array.isArray(e)?this.ops=e:null!=e&&Array.isArray(e.op...
method registerEmbed (line 19) | static registerEmbed(e,t){this.handlers[e]=t}
method unregisterEmbed (line 19) | static unregisterEmbed(e){delete this.handlers[e]}
method getHandler (line 19) | static getHandler(e){const t=this.handlers[e];if(!t)throw new Error(`n...
method insert (line 19) | insert(e,t){const n={};return"string"===typeof e&&0===e.length?this:(n...
method delete (line 19) | delete(e){return e<=0?this:this.push({delete:e})}
method retain (line 19) | retain(e,t){if("number"===typeof e&&e<=0)return this;const n={retain:e...
method push (line 19) | push(e){let t=this.ops.length,n=this.ops[t-1];if(e=r(e),"object"===typ...
method chop (line 19) | chop(){const e=this.ops[this.ops.length-1];return e&&"number"===typeof...
method filter (line 19) | filter(e){return this.ops.filter(e)}
method forEach (line 19) | forEach(e){this.ops.forEach(e)}
method map (line 19) | map(e){return this.ops.map(e)}
method partition (line 19) | partition(e){const t=[],n=[];return this.forEach(i=>{const r=e(i)?t:n;...
method reduce (line 19) | reduce(e,t){return this.ops.reduce(e,t)}
method changeLength (line 19) | changeLength(){return this.reduce((e,t)=>t.insert?e+a.default.length(t...
method length (line 19) | length(){return this.reduce((e,t)=>e+a.default.length(t),0)}
method slice (line 19) | slice(e=0,t=1/0){const n=[],i=new l.default(this.ops);let r=0;while(r<...
method compose (line 19) | compose(e){const t=new l.default(this.ops),n=new l.default(e.ops),i=[]...
method concat (line 19) | concat(e){const t=new d(this.ops.slice());return e.ops.length>0&&(t.pu...
method diff (line 19) | diff(e,t){if(this.ops===e.ops)return new d;const n=[this,e].map(t=>t.m...
method eachLine (line 19) | eachLine(e,t="\n"){const n=new l.default(this.ops);let i=new d,r=0;whi...
method invert (line 19) | invert(e){const t=new d;return this.reduce((n,i)=>{if(i.insert)t.delet...
method transform (line 19) | transform(e,t=!1){if(t=!!t,"number"===typeof e)return this.transformPo...
method transformPosition (line 19) | transformPosition(e,t=!1){t=!!t;const n=new l.default(this.ops);let i=...
method constructor (line 65) | constructor(e,t){this.items=e,this.eventCount=t}
method popEvent (line 65) | popEvent(e,t){if(0==this.eventCount)return null;let n,i,r=this.items.l...
method addTransform (line 65) | addTransform(e,t,n,i){let r=[],o=this.eventCount,s=this.items,a=!i&&s....
method remapping (line 65) | remapping(e,t){let n=new l["a"];return this.items.forEach((t,i)=>{let ...
method addMaps (line 65) | addMaps(e){return 0==this.eventCount?this:new d(this.items.append(e.ma...
method rebased (line 65) | rebased(e,t){if(!this.eventCount)return this;let n=[],i=Math.max(0,thi...
method emptyItemCount (line 65) | emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}
method compress (line 65) | compress(e=this.items.length){let t=this.remapping(0,e),n=t.maps.lengt...
function u (line 1) | function u(e,t){var n=new d(t);if(n.push(e,!0),n.err)throw n.msg||a[n.er...
method constructor (line 17) | constructor(e){let t=e.nodeAfter,n=e.node(0).resolve(e.pos+t.nodeSize)...
method map (line 17) | map(e,t){let{deleted:n,pos:i}=t.mapResult(this.anchor),r=e.resolve(i);...
method content (line 17) | content(){return new i["Slice"](i["Fragment"].from(this.node),0,0)}
method eq (line 17) | eq(e){return e instanceof u&&e.anchor==this.anchor}
method toJSON (line 17) | toJSON(){return{type:"node",anchor:this.anchor}}
method getBookmark (line 17) | getBookmark(){return new p(this.anchor)}
method fromJSON (line 17) | static fromJSON(e,t){if("number"!=typeof t.anchor)throw new RangeError...
method create (line 17) | static create(e,t){return new u(e.resolve(t))}
method isSelectable (line 17) | static isSelectable(e){return!e.isText&&!1!==e.type.spec.selectable}
function p (line 1) | function p(e,t){return t=t||{},t.raw=!0,u(e,t)}
method constructor (line 17) | constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}
method size (line 17) | get size(){return this.content.size-this.openStart-this.openEnd}
method insertAt (line 17) | insertAt(e,t){let n=m(this.content,e+this.openStart,t);return n&&new p...
method removeBetween (line 17) | removeBetween(e,t){return new p(f(this.content,e+this.openStart,t+this...
method eq (line 17) | eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&...
method toString (line 17) | toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}
method toJSON (line 17) | toJSON(){if(!this.content.size)return null;let e={content:this.content...
method fromJSON (line 17) | static fromJSON(e,t){if(!t)return p.empty;let n=t.openStart||0,i=t.ope...
method maxOpen (line 17) | static maxOpen(e,t=!0){let n=0,i=0;for(let r=e.firstChild;r&&!r.isLeaf...
method constructor (line 17) | constructor(e){this.anchor=e}
method map (line 17) | map(e){let{deleted:t,pos:n}=e.mapResult(this.anchor);return t?new d(n,...
method resolve (line 17) | resolve(e){let t=e.resolve(this.anchor),n=t.nodeAfter;return n&&u.isSe...
method constructor (line 26) | constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}
method deleted (line 26) | get deleted(){return(this.delInfo&u)>0}
method deletedBefore (line 26) | get deletedBefore(){return(this.delInfo&(c|d))>0}
method deletedAfter (line 26) | get deletedAfter(){return(this.delInfo&(h|d))>0}
method deletedAcross (line 26) | get deletedAcross(){return(this.delInfo&d)>0}
method constructor (line 65) | constructor(e,t,n,i){this.map=e,this.step=t,this.selection=n,this.mirr...
method merge (line 65) | merge(e){if(this.step&&e.step&&!e.selection){let t=e.step.merge(this.s...
function o (line 1) | function o(e,t){var n=this._transformState;n.transforming=!1;var i=n.wri...
method constructor (line 17) | constructor(e,t,n={}){this.match=e,this.match=e,this.handler="string"=...
function s (line 1) | function s(e){if(!(this instanceof s))return new s(e);i.call(this,e),thi...
method constructor (line 17) | constructor(e,t,n){this.$anchor=e,this.$head=t,this.ranges=n||[new a(e...
method anchor (line 17) | get anchor(){return this.$anchor.pos}
method head (line 17) | get head(){return this.$head.pos}
method from (line 17) | get from(){return this.$from.pos}
method to (line 17) | get to(){return this.$to.pos}
method $from (line 17) | get $from(){return this.ranges[0].$from}
method $to (line 17) | get $to(){return this.ranges[0].$to}
method empty (line 17) | get empty(){let e=this.ranges;for(let t=0;t<e.length;t++)if(e[t].$from...
method content (line 17) | content(){return this.$from.doc.slice(this.from,this.to,!0)}
method replace (line 17) | replace(e,t=i["Slice"].empty){let n=t.content.lastChild,r=null;for(let...
method replaceWith (line 17) | replaceWith(e,t){let n=e.steps.length,i=this.ranges;for(let r=0;r<i.le...
method findFrom (line 17) | static findFrom(e,t,n=!1){let i=e.parent.inlineContent?new h(e):g(e.no...
method near (line 17) | static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new...
method atStart (line 17) | static atStart(e){return g(e,e,0,0,1)||new f(e)}
method atEnd (line 17) | static atEnd(e){return g(e,e,e.content.size,e.childCount,-1)||new f(e)}
method fromJSON (line 17) | static fromJSON(e,t){if(!t||!t.type)throw new RangeError("Invalid inpu...
method jsonID (line 17) | static jsonID(e,t){if(e in o)throw new RangeError("Duplicate use of se...
method getBookmark (line 17) | getBookmark(){return h.between(this.$anchor,this.$head).getBookmark()}
function a (line 1) | function a(){var e=this;"function"===typeof this._flush?this._flush((fun...
method constructor (line 17) | constructor(e,t){if(this.content=e,this.size=t||0,null==t)for(let n=0;...
method nodesBetween (line 17) | nodesBetween(e,t,n,i=0,r){for(let o=0,s=0;s<t;o++){let a=this.content[...
method descendants (line 17) | descendants(e){this.nodesBetween(0,this.size,e)}
method textBetween (line 17) | textBetween(e,t,n,i){let r="",o=!0;return this.nodesBetween(e,t,(s,a)=...
method append (line 17) | append(e){if(!e.size)return this;if(!this.size)return e;let t=this.las...
method cut (line 17) | cut(e,t=this.size){if(0==e&&t==this.size)return this;let n=[],i=0;if(t...
method cutByIndex (line 17) | cutByIndex(e,t){return e==t?a.empty:0==e&&t==this.content.length?this:...
method replaceChild (line 17) | replaceChild(e,t){let n=this.content[e];if(n==t)return this;let i=this...
method addToStart (line 17) | addToStart(e){return new a([e].concat(this.content),this.size+e.nodeSi...
method addToEnd (line 17) | addToEnd(e){return new a(this.content.concat(e),this.size+e.nodeSize)}
method eq (line 17) | eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<...
method firstChild (line 17) | get firstChild(){return this.content.length?this.content[0]:null}
method lastChild (line 17) | get lastChild(){return this.content.length?this.content[this.content.l...
method childCount (line 17) | get childCount(){return this.content.length}
method child (line 17) | child(e){let t=this.content[e];if(!t)throw new RangeError("Index "+e+"...
method maybeChild (line 17) | maybeChild(e){return this.content[e]||null}
method forEach (line 17) | forEach(e){for(let t=0,n=0;t<this.content.length;t++){let i=this.conte...
method findDiffStart (line 17) | findDiffStart(e,t=0){return o(this,e,t)}
method findDiffEnd (line 17) | findDiffEnd(e,t=this.size,n=e.size){return s(this,e,t,n)}
method findIndex (line 17) | findIndex(e,t=-1){if(0==e)return c(0,e);if(e==this.size)return c(this....
method toString (line 17) | toString(){return"<"+this.toStringInner()+">"}
method toStringInner (line 17) | toStringInner(){return this.content.join(", ")}
method toJSON (line 17) | toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}
method fromJSON (line 17) | static fromJSON(e,t){if(!t)return a.empty;if(!Array.isArray(t))throw n...
method fromArray (line 17) | static fromArray(e){if(!e.length)return a.empty;let t,n=0;for(let i=0;...
method from (line 17) | static from(e){if(!e)return a.empty;if(e instanceof a)return e;if(Arra...
method constructor (line 17) | constructor(e,t){this.$from=e,this.$to=t}
function l (line 1) | function l(e,t,n){if(t)return e.emit("error",t);if(null!=n&&e.push(n),e....
function a (line 1) | function a(e){var t=o.copyOptions(e);return o.ensureFlagExists("ignoreDe...
method constructor (line 17) | constructor(e,t){if(this.content=e,this.size=t||0,null==t)for(let n=0;...
method nodesBetween (line 17) | nodesBetween(e,t,n,i=0,r){for(let o=0,s=0;s<t;o++){let a=this.content[...
method descendants (line 17) | descendants(e){this.nodesBetween(0,this.size,e)}
method textBetween (line 17) | textBetween(e,t,n,i){let r="",o=!0;return this.nodesBetween(e,t,(s,a)=...
method append (line 17) | append(e){if(!e.size)return this;if(!this.size)return e;let t=this.las...
method cut (line 17) | cut(e,t=this.size){if(0==e&&t==this.size)return this;let n=[],i=0;if(t...
method cutByIndex (line 17) | cutByIndex(e,t){return e==t?a.empty:0==e&&t==this.content.length?this:...
method replaceChild (line 17) | replaceChild(e,t){let n=this.content[e];if(n==t)return this;let i=this...
method addToStart (line 17) | addToStart(e){return new a([e].concat(this.content),this.size+e.nodeSi...
method addToEnd (line 17) | addToEnd(e){return new a(this.content.concat(e),this.size+e.nodeSize)}
method eq (line 17) | eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<...
method firstChild (line 17) | get firstChild(){return this.content.length?this.content[0]:null}
method lastChild (line 17) | get lastChild(){return this.content.length?this.content[this.content.l...
method childCount (line 17) | get childCount(){return this.content.length}
method child (line 17) | child(e){let t=this.content[e];if(!t)throw new RangeError("Index "+e+"...
method maybeChild (line 17) | maybeChild(e){return this.content[e]||null}
method forEach (line 17) | forEach(e){for(let t=0,n=0;t<this.content.length;t++){let i=this.conte...
method findDiffStart (line 17) | findDiffStart(e,t=0){return o(this,e,t)}
method findDiffEnd (line 17) | findDiffEnd(e,t=this.size,n=e.size){return s(this,e,t,n)}
method findIndex (line 17) | findIndex(e,t=-1){if(0==e)return c(0,e);if(e==this.size)return c(this....
method toString (line 17) | toString(){return"<"+this.toStringInner()+">"}
method toStringInner (line 17) | toStringInner(){return this.content.join(", ")}
method toJSON (line 17) | toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}
method fromJSON (line 17) | static fromJSON(e,t){if(!t)return a.empty;if(!Array.isArray(t))throw n...
method fromArray (line 17) | static fromArray(e){if(!e.length)return a.empty;let t,n=0;for(let i=0;...
method from (line 17) | static from(e){if(!e)return a.empty;if(e instanceof a)return e;if(Arra...
method constructor (line 17) | constructor(e,t){this.$from=e,this.$to=t}
function l (line 1) | function l(e,t,n){return(!n&&e.spaces?"\n":"")+Array(t+1).join(e.spaces)}
function c (line 1) | function c(e,t,n){if(t.ignoreAttributes)return"";"attributesFn"in t&&(e=...
function h (line 1) | function h(e,t,n){return i=e,r="xml",t.ignoreDeclaration?"":"<?xml"+c(e[...
method constructor (line 17) | constructor(e,t=e){c(e),c(t),super(e,t)}
method $cursor (line 17) | get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}
method map (line 17) | map(e,t){let n=e.resolve(t.map(this.head));if(!n.parent.inlineContent)...
method replace (line 17) | replace(e,t=i["Slice"].empty){if(super.replace(e,t),t==i["Slice"].empt...
method eq (line 17) | eq(e){return e instanceof h&&e.anchor==this.anchor&&e.head==this.head}
method getBookmark (line 17) | getBookmark(){return new d(this.anchor,this.head)}
method toJSON (line 17) | toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}
method fromJSON (line 17) | static fromJSON(e,t){if("number"!=typeof t.anchor||"number"!=typeof t....
method create (line 17) | static create(e,t,n=t){let i=e.resolve(t);return new this(i,n==t?i:e.r...
method between (line 17) | static between(e,t,n){let i=e.pos-t.pos;if(n&&!i||(n=i>=0?1:-1),!t.par...
function d (line 1) | function d(e,t,n){if(t.ignoreInstruction)return"";var o;for(o in e)if(e....
method constructor (line 17) | constructor(e,t){this.type=e,this.attrs=t}
method addToSet (line 17) | addToSet(e){let t,n=!1;for(let i=0;i<e.length;i++){let r=e[i];if(this....
method removeFromSet (line 17) | removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e....
method isInSet (line 17) | isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}
method eq (line 17) | eq(e){return this==e||this.type==e.type&&h(this.attrs,e.attrs)}
method toJSON (line 17) | toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=...
method fromJSON (line 17) | static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Mar...
method sameSet (line 17) | static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;fo...
method setFrom (line 17) | static setFrom(e){if(!e||Array.isArray(e)&&0==e.length)return d.none;i...
method constructor (line 17) | constructor(e,t){this.anchor=e,this.head=t}
method map (line 17) | map(e){return new d(e.map(this.anchor),e.map(this.head))}
method resolve (line 17) | resolve(e){return h.between(e.resolve(this.anchor),e.resolve(this.head))}
method constructor (line 19) | constructor(e){Array.isArray(e)?this.ops=e:null!=e&&Array.isArray(e.op...
method registerEmbed (line 19) | static registerEmbed(e,t){this.handlers[e]=t}
method unregisterEmbed (line 19) | static unregisterEmbed(e){delete this.handlers[e]}
method getHandler (line 19) | static getHandler(e){const t=this.handlers[e];if(!t)throw new Error(`n...
method insert (line 19) | insert(e,t){const n={};return"string"===typeof e&&0===e.length?this:(n...
method delete (line 19) | delete(e){return e<=0?this:this.push({delete:e})}
method retain (line 19) | retain(e,t){if("number"===typeof e&&e<=0)return this;const n={retain:e...
method push (line 19) | push(e){let t=this.ops.length,n=this.ops[t-1];if(e=r(e),"object"===typ...
method chop (line 19) | chop(){const e=this.ops[this.ops.length-1];return e&&"number"===typeof...
method filter (line 19) | filter(e){return this.ops.filter(e)}
method forEach (line 19) | forEach(e){this.ops.forEach(e)}
method map (line 19) | map(e){return this.ops.map(e)}
method partition (line 19) | partition(e){const t=[],n=[];return this.forEach(i=>{const r=e(i)?t:n;...
method reduce (line 19) | reduce(e,t){return this.ops.reduce(e,t)}
method changeLength (line 19) | changeLength(){return this.reduce((e,t)=>t.insert?e+a.default.length(t...
method length (line 19) | length(){return this.reduce((e,t)=>e+a.default.length(t),0)}
method slice (line 19) | slice(e=0,t=1/0){const n=[],i=new l.default(this.ops);let r=0;while(r<...
method compose (line 19) | compose(e){const t=new l.default(this.ops),n=new l.default(e.ops),i=[]...
method concat (line 19) | concat(e){const t=new d(this.ops.slice());return e.ops.length>0&&(t.pu...
method diff (line 19) | diff(e,t){if(this.ops===e.ops)return new d;const n=[this,e].map(t=>t.m...
method eachLine (line 19) | eachLine(e,t="\n"){const n=new l.default(this.ops);let i=new d,r=0;whi...
method invert (line 19) | invert(e){const t=new d;return this.reduce((n,i)=>{if(i.insert)t.delet...
method transform (line 19) | transform(e,t=!1){if(t=!!t,"number"===typeof e)return this.transformPo...
method transformPosition (line 19) | transformPosition(e,t=!1){t=!!t;const n=new l.default(this.ops);let i=...
method constructor (line 65) | constructor(e,t){this.items=e,this.eventCount=t}
method popEvent (line 65) | popEvent(e,t){if(0==this.eventCount)return null;let n,i,r=this.items.l...
method addTransform (line 65) | addTransform(e,t,n,i){let r=[],o=this.eventCount,s=this.items,a=!i&&s....
method remapping (line 65) | remapping(e,t){let n=new l["a"];return this.items.forEach((t,i)=>{let ...
method addMaps (line 65) | addMaps(e){return 0==this.eventCount?this:new d(this.items.append(e.ma...
method rebased (line 65) | rebased(e,t){if(!this.eventCount)return this;let n=[],i=Math.max(0,thi...
method emptyItemCount (line 65) | emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}
method compress (line 65) | compress(e=this.items.length){let t=this.remapping(0,e),n=t.maps.lengt...
function u (line 1) | function u(e,t){return t.ignoreComment?"":"\x3c!--"+("commentFn"in t?t.c...
method constructor (line 17) | constructor(e){let t=e.nodeAfter,n=e.node(0).resolve(e.pos+t.nodeSize)...
method map (line 17) | map(e,t){let{deleted:n,pos:i}=t.mapResult(this.anchor),r=e.resolve(i);...
method content (line 17) | content(){return new i["Slice"](i["Fragment"].from(this.node),0,0)}
method eq (line 17) | eq(e){return e instanceof u&&e.anchor==this.anchor}
method toJSON (line 17) | toJSON(){return{type:"node",anchor:this.anchor}}
method getBookmark (line 17) | getBookmark(){return new p(this.anchor)}
method fromJSON (line 17) | static fromJSON(e,t){if("number"!=typeof t.anchor)throw new RangeError...
method create (line 17) | static create(e,t){return new u(e.resolve(t))}
method isSelectable (line 17) | static isSelectable(e){return!e.isText&&!1!==e.type.spec.selectable}
function p (line 1) | function p(e,t){return t.ignoreCdata?"":"<![CDATA["+("cdataFn"in t?t.cda...
method constructor (line 17) | constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}
method size (line 17) | get size(){return this.content.size-this.openStart-this.openEnd}
method insertAt (line 17) | insertAt(e,t){let n=m(this.content,e+this.openStart,t);return n&&new p...
method removeBetween (line 17) | removeBetween(e,t){return new p(f(this.content,e+this.openStart,t+this...
method eq (line 17) | eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&...
method toString (line 17) | toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}
method toJSON (line 17) | toJSON(){if(!this.content.size)return null;let e={content:this.content...
method fromJSON (line 17) | static fromJSON(e,t){if(!t)return p.empty;let n=t.openStart||0,i=t.ope...
method maxOpen (line 17) | static maxOpen(e,t=!0){let n=0,i=0;for(let r=e.firstChild;r&&!r.isLeaf...
method constructor (line 17) | constructor(e){this.anchor=e}
method map (line 17) | map(e){let{deleted:t,pos:n}=e.mapResult(this.anchor);return t?new d(n,...
method resolve (line 17) | resolve(e){let t=e.resolve(this.anchor),n=t.nodeAfter;return n&&u.isSe...
method constructor (line 26) | constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}
method deleted (line 26) | get deleted(){return(this.delInfo&u)>0}
method deletedBefore (line 26) | get deletedBefore(){return(this.delInfo&(c|d))>0}
method deletedAfter (line 26) | get deletedAfter(){return(this.delInfo&(h|d))>0}
method deletedAcross (line 26) | get deletedAcross(){return(this.delInfo&d)>0}
method constructor (line 65) | constructor(e,t,n,i){this.map=e,this.step=t,this.selection=n,this.mirr...
method merge (line 65) | merge(e){if(this.step&&e.step&&!e.selection){let t=e.step.merge(this.s...
function f (line 1) | function f(e,t){return t.ignoreDoctype?"":"<!DOCTYPE "+("doctypeFn"in t?...
method constructor (line 17) | constructor(e){super(e.resolve(0),e.resolve(e.content.size))}
method replace (line 17) | replace(e,t=i["Slice"].empty){if(t==i["Slice"].empty){e.delete(0,e.doc...
method toJSON (line 17) | toJSON(){return{type:"all"}}
method fromJSON (line 17) | static fromJSON(e){return new f(e)}
method map (line 17) | map(e){return new f(e)}
method eq (line 17) | eq(e){return e instanceof f}
method getBookmark (line 17) | getBookmark(){return m}
method constructor (line 26) | constructor(e,t=!1){if(this.ranges=e,this.inverted=t,!e.length&&f.empt...
method recover (line 26) | recover(e){let t=0,n=a(e);if(!this.inverted)for(let i=0;i<n;i++)t+=thi...
method mapResult (line 26) | mapResult(e,t=1){return this._map(e,t,!1)}
method map (line 26) | map(e,t=1){return this._map(e,t,!0)}
method _map (line 26) | _map(e,t,n){let i=0,r=this.inverted?2:1,o=this.inverted?1:2;for(let a=...
method touches (line 26) | touches(e,t){let n=0,i=a(t),r=this.inverted?2:1,o=this.inverted?1:2;fo...
method forEach (line 26) | forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let i=0,r=0...
method invert (line 26) | invert(){return new f(this.ranges,!this.inverted)}
method toString (line 26) | toString(){return(this.inverted?"-":"")+JSON.stringify(this.ranges)}
method offset (line 26) | static offset(e){return 0==e?f.empty:new f(e<0?[0,-e,0]:[0,0,e])}
method constructor (line 65) | constructor(e,t,n,i,r){this.done=e,this.undone=t,this.prevRanges=n,thi...
function m (line 1) | function m(e,t){return t.ignoreText?"":(e=""+e,e=e.replace(/&/g,"&")...
method constructor (line 26) | constructor(e=[],t,n=0,i=e.length){this.maps=e,this.mirror=t,this.from...
method slice (line 26) | slice(e=0,t=this.maps.length){return new m(this.maps,this.mirror,e,t)}
method copy (line 26) | copy(){return new m(this.maps.slice(),this.mirror&&this.mirror.slice()...
method appendMap (line 26) | appendMap(e,t){this.to=this.maps.push(e),null!=t&&this.setMirror(this....
method appendMapping (line 26) | appendMapping(e){for(let t=0,n=this.maps.length;t<e.maps.length;t++){l...
method getMirror (line 26) | getMirror(e){if(this.mirror)for(let t=0;t<this.mirror.length;t++)if(th...
method setMirror (line 26) | setMirror(e,t){this.mirror||(this.mirror=[]),this.mirror.push(e,t)}
method appendMappingInverted (line 26) | appendMappingInverted(e){for(let t=e.maps.length-1,n=this.maps.length+...
method invert (line 26) | invert(){let e=new m;return e.appendMappingInverted(this),e}
method map (line 26) | map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from...
method mapResult (line 26) | mapResult(e,t=1){return this._map(e,t,!1)}
method _map (line 26) | _map(e,t,n){let i=0;for(let r=this.from;r<this.to;r++){let n=this.maps...
function g (line 1) | function g(e,t){var n;if(e.elements&&e.elements.length)for(n=0;n<e.eleme...
function v (line 1) | function v(e,t,n){i=e,r=e.name;var o=[],s="elementNameFn"in t?t.elementN...
method constructor (line 17) | constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=v...
method reportNonstrict (line 17) | reportNonstrict(e,t,n){let r=this.strict;if("function"===typeof r&&(r=...
method useStrictBehavior (line 17) | useStrictBehavior(e,t,n){let i=this.strict;if("function"===typeof i)tr...
method isTrusted (line 17) | isTrusted(e){if(e.url&&!e.protocol){const t=f.protocolFromUrl(e.url);i...
method getMap (line 26) | getMap(){return f.empty}
method merge (line 26) | merge(e){return null}
method fromJSON (line 26) | static fromJSON(e,t){if(!t||!t.stepType)throw new RangeError("Invalid ...
method jsonID (line 26) | static jsonID(e,t){if(e in g)throw new RangeError("Duplicate use of st...
function b (line 1) | function b(e,t,n,i){return e.reduce((function(e,r){var o=l(t,n,i&&!e);sw...
method constructor (line 17) | constructor(e,t,n){this.id=void 0,this.size=void 0,this.cramped=void 0...
method sup (line 17) | sup(){return E[M[this.id]]}
method sub (line 17) | sub(){return E[N[this.id]]}
method fracNum (line 17) | fracNum(){return E[O[this.id]]}
method fracDen (line 17) | fracDen(){return E[z[this.id]]}
method cramp (line 17) | cramp(){return E[D[this.id]]}
method text (line 17) | text(){return E[L[this.id]]}
method isTight (line 17) | isTight(){return this.size>=2}
method constructor (line 26) | constructor(e,t){this.doc=e,this.failed=t}
method ok (line 26) | static ok(e){return new b(e,null)}
method fail (line 26) | static fail(e){return new b(null,e)}
method fromReplace (line 26) | static fromReplace(e,t,n,r){try{return b.ok(e.replace(t,n,r))}catch(o)...
function y (line 1) | function y(e,t,n){var i;for(i in e)if(e.hasOwnProperty(i))switch(i){case...
function w (line 1) | function w(e,t,n,o,s){i=e,r=t;var a="elementNameFn"in n?n.elementNameFn(...
method constructor (line 26) | constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}
method apply (line 26) | apply(e){let t=e.slice(this.from,this.to),n=e.resolve(this.from),r=n.n...
method invert (line 26) | invert(){return new x(this.from,this.to,this.mark)}
method map (line 26) | map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return...
method merge (line 26) | merge(e){return e instanceof w&&e.mark.eq(this.mark)&&this.from<=e.to&...
method toJSON (line 26) | toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.f...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to...
function x (line 1) | function x(e,t,n,i){var r,o,a,c=[];for(o in e)if(e.hasOwnProperty(o))for...
method constructor (line 17) | constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this...
method selection (line 17) | get selection(){return this.curSelectionFor<this.steps.length&&(this.c...
method setSelection (line 17) | setSelection(e){if(e.$from.doc!=this.doc)throw new RangeError("Selecti...
method selectionSet (line 17) | get selectionSet(){return(this.updated&b)>0}
method setStoredMarks (line 17) | setStoredMarks(e){return this.storedMarks=e,this.updated|=y,this}
method ensureMarks (line 17) | ensureMarks(e){return i["Mark"].sameSet(this.storedMarks||this.selecti...
method addStoredMark (line 17) | addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||...
method removeStoredMark (line 17) | removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.store...
method storedMarksSet (line 17) | get storedMarksSet(){return(this.updated&y)>0}
method addStep (line 17) | addStep(e,t){super.addStep(e,t),this.updated=this.updated&~y,this.stor...
method setTime (line 17) | setTime(e){return this.time=e,this}
method replaceSelection (line 17) | replaceSelection(e){return this.selection.replace(this,e),this}
method replaceSelectionWith (line 17) | replaceSelectionWith(e,t=!0){let n=this.selection;return t&&(e=e.mark(...
method deleteSelection (line 17) | deleteSelection(){return this.selection.replace(this),this}
method insertText (line 17) | insertText(e,t,n){let i=this.doc.type.schema;if(null==t)return e?this....
method setMeta (line 17) | setMeta(e,t){return this.meta["string"==typeof e?e:e.key]=t,this}
method getMeta (line 17) | getMeta(e){return this.meta["string"==typeof e?e:e.key]}
method isGeneric (line 17) | get isGeneric(){for(let e in this.meta)return!1;return!0}
method scrollIntoView (line 17) | scrollIntoView(){return this.updated|=w,this}
method scrolledIntoView (line 17) | get scrolledIntoView(){return(this.updated&w)>0}
method constructor (line 26) | constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}
method apply (line 26) | apply(e){let t=e.slice(this.from,this.to),n=new i["Slice"](y(t.content...
method invert (line 26) | invert(){return new w(this.from,this.to,this.mark)}
method map (line 26) | map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return...
method merge (line 26) | merge(e){return e instanceof x&&e.mark.eq(this.mark)&&this.from<=e.to&...
method toJSON (line 26) | toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:thi...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to...
function _ (line 1) | function _(e,t){var n=-1,i=null==e?0:e.length,r=0,o=[];while(++n<i){var ...
method constructor (line 17) | constructor(e,t,n){this.name=e,this.schema=t,this.spec=n,this.markSet=...
method isInline (line 17) | get isInline(){return!this.isBlock}
method isTextblock (line 17) | get isTextblock(){return this.isBlock&&this.inlineContent}
method isLeaf (line 17) | get isLeaf(){return this.contentMatch==F.empty}
method isAtom (line 17) | get isAtom(){return this.isLeaf||!!this.spec.atom}
method whitespace (line 17) | get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"n...
method hasRequiredAttrs (line 17) | hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired...
method compatibleContent (line 17) | compatibleContent(e){return this==e||this.contentMatch.compatible(e.co...
method computeAttrs (line 17) | computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:Q(this.a...
method create (line 17) | create(e=null,t,n){if(this.isText)throw new Error("NodeType.create can...
method createChecked (line 17) | createChecked(e=null,t,n){return t=a.from(t),this.checkContent(t),new ...
method createAndFill (line 17) | createAndFill(e=null,t,n){if(e=this.computeAttrs(e),t=a.from(t),t.size...
method validContent (line 17) | validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.val...
method checkContent (line 17) | checkContent(e){if(!this.validContent(e))throw new RangeError(`Invalid...
method allowsMarkType (line 17) | allowsMarkType(e){return null==this.markSet||this.markSet.indexOf(e)>-1}
method allowsMarks (line 17) | allowsMarks(e){if(null==this.markSet)return!0;for(let t=0;t<e.length;t...
method allowedMarks (line 17) | allowedMarks(e){if(null==this.markSet)return e;let t;for(let n=0;n<e.l...
method compile (line 17) | static compile(e,t){let n=Object.create(null);e.forEach((e,i)=>n[e]=ne...
function $ (line 1) | function $(e,t){var n=-1,i=t.length,r=e.length;while(++n<i)e[r+n]=t[n];r...
method constructor (line 17) | constructor(e){this.hasDefault=Object.prototype.hasOwnProperty.call(e,...
method isRequired (line 17) | get isRequired(){return!this.hasDefault}
function ee (line 1) | function ee(e,t){var n=-1,i=null==e?0:e.length;while(++n<i)if(t(e[n],n,e...
method constructor (line 17) | constructor(e,t,n,i){this.name=e,this.rank=t,this.schema=n,this.spec=i...
method create (line 17) | create(e=null){return!e&&this.instance?this.instance:new d(this,Q(this...
method compile (line 17) | static compile(e,t){let n=Object.create(null),i=0;return e.forEach((e,...
method removeFromSet (line 17) | removeFromSet(e){for(var t=0;t<e.length;t++)e[t].type==this&&(e=e.slic...
method isInSet (line 17) | isInSet(e){for(let t=0;t<e.length;t++)if(e[t].type==this)return e[t]}
method excludes (line 17) | excludes(e){return this.excluded.indexOf(e)>-1}
function te (line 1) | function te(e,t){var n=-1,i=Array(e);while(++n<e)i[n]=t(n);return i}
method constructor (line 17) | constructor(e){this.cached=Object.create(null);let t=this.spec={};for(...
method node (line 17) | node(e,t=null,n,i){if("string"==typeof e)e=this.nodeType(e);else{if(!(...
method text (line 17) | text(e,t){let n=this.nodes.text;return new L(n,n.defaultAttrs,e,d.setF...
method mark (line 17) | mark(e,t){return"string"==typeof e&&(e=this.marks[e]),e.create(t)}
method nodeFromJSON (line 17) | nodeFromJSON(e){return D.fromJSON(this,e)}
method markFromJSON (line 17) | markFromJSON(e){return d.fromJSON(this,e)}
method nodeType (line 17) | nodeType(e){let t=this.nodes[e];if(!t)throw new RangeError("Unknown no...
function ne (line 1) | function ne(e){return function(t){return e(t)}}
function ie (line 1) | function ie(e,t){return e.has(t)}
method constructor (line 17) | constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[...
method parse (line 17) | parse(e,t={}){let n=new ue(this,t,!1);return n.addAll(e,t.from,t.to),n...
method parseSlice (line 17) | parseSlice(e,t={}){let n=new ue(this,t,!0);return n.addAll(e,t.from,t....
method matchTag (line 17) | matchTag(e,t,n){for(let i=n?this.tags.indexOf(n)+1:0;i<this.tags.lengt...
method matchStyle (line 17) | matchStyle(e,t,n,i){for(let r=i?this.styles.indexOf(i)+1:0;r<this.styl...
method schemaRules (line 17) | static schemaRules(e){let t=[];function n(e){let n=null==e.priority?50...
method fromSchema (line 17) | static fromSchema(e){return e.cached.domParser||(e.cached.domParser=ne...
function re (line 1) | function re(e,t){return null==e?void 0:e[t]}
function oe (line 1) | function oe(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){...
function se (line 1) | function se(e,t){return function(n){return e(t(n))}}
function ae (line 1) | function ae(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[...
method constructor (line 17) | constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,th...
method extend (line 17) | extend(e){const t={style:this.style,size:this.size,textSize:this.textS...
method havingStyle (line 17) | havingStyle(e){return this.style===e?this:this.extend({style:e,size:se...
method havingCrampedStyle (line 17) | havingCrampedStyle(){return this.havingStyle(this.style.cramp())}
method havingSize (line 17) | havingSize(e){return this.size===e&&this.textSize===e?this:this.extend...
method havingBaseStyle (line 17) | havingBaseStyle(e){e=e||this.style.text();const t=se(ae.BASESIZE,e);re...
method havingBaseSizing (line 17) | havingBaseSizing(){let e;switch(this.style.id){case 4:case 5:e=3;break...
method withColor (line 17) | withColor(e){return this.extend({color:e})}
method withPhantom (line 17) | withPhantom(){return this.extend({phantom:!0})}
method withFont (line 17) | withFont(e){return this.extend({font:e})}
method withTextFontFamily (line 17) | withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}
method withTextFontWeight (line 17) | withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}
method withTextFontShape (line 17) | withTextFontShape(e){return this.extend({fontShape:e,font:""})}
method sizingClasses (line 17) | sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.si...
method baseSizingClasses (line 17) | baseSizingClasses(){return this.size!==ae.BASESIZE?["sizing","reset-si...
method fontMetrics (line 17) | fontMetrics(){return this._fontMetrics||(this._fontMetrics=ie(this.siz...
method getColor (line 17) | getColor(){return this.phantom?"transparent":this.color}
function je (line 1) | function je(e){var t=-1,n=null==e?0:e.length;this.clear();while(++t<n){v...
method constructor (line 17) | constructor(e,t,n){this.lock=t,this.view=n,this.index=0,this.stack=[],...
method destroyBetween (line 17) | destroyBetween(e,t){if(e!=t){for(let n=e;n<t;n++)this.top.children[n]....
method destroyRest (line 17) | destroyRest(){this.destroyBetween(this.index,this.top.children.length)}
method syncToMarks (line 17) | syncToMarks(e,t,n){let i=0,r=this.stack.length>>1,o=Math.min(r,e.lengt...
method findNodeMatch (line 17) | findNodeMatch(e,t,n,i){let r,o=-1;if(i>=this.preMatch.index&&(r=this.p...
method updateNodeAt (line 17) | updateNodeAt(e,t,n,i,r){let o=this.top.children[i];return o.dirty==we&...
method findIndexWithChild (line 17) | findIndexWithChild(e){for(;;){let t=e.parentNode;if(!t)return-1;if(t==...
method updateNextNode (line 17) | updateNextNode(e,t,n,i,r,o){for(let s=this.index;s<this.top.children.l...
method recreateWrapper (line 17) | recreateWrapper(e,t,n,i,r,o){if(e.dirty||t.isAtom||!e.children.length|...
method addNode (line 17) | addNode(e,t,n,i,r){let o=Se.create(this.top,e,t,n,i,r);o.contentDOM&&o...
method placeWidget (line 17) | placeWidget(e,t,n){let i=this.index<this.top.children.length?this.top....
method addTextblockHacks (line 17) | addTextblockHacks(){let e=this.top.children[this.index-1],t=this.top;w...
method addHackNode (line 17) | addHackNode(e,t){if(t==this.top&&this.index<t.children.length&&t.child...
method isLocked (line 17) | isLocked(e){return this.lock&&(e==this.lock||1==e.nodeType&&e.contains...
function He (line 1) | function He(){this.__data__=ze?ze(null):{},this.size=0}
function qe (line 1) | function qe(e){var t=this.has(e)&&delete this.__data__[e];return this.si...
function Ue (line 1) | function Ue(e){var t=this.__data__;if(ze){var n=t[e];return n===r?void 0...
function We (line 1) | function We(e){var t=this.__data__;return ze?void 0!==t[e]:pe.call(t,e)}
function Ge (line 1) | function Ge(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n...
function Ve (line 1) | function Ve(e){var t=-1,n=null==e?0:e.length;this.clear();while(++t<n){v...
function Ke (line 1) | function Ke(){this.__data__=[],this.size=0}
function Ye (line 1) | function Ye(e){var t=this.__data__,n=pt(t,e);if(n<0)return!1;var i=t.len...
function Ze (line 1) | function Ze(e){var t=this.__data__,n=pt(t,e);return n<0?void 0:t[n][1]}
function Xe (line 1) | function Xe(e){return pt(this.__data__,e)>-1}
function Qe (line 1) | function Qe(e,t){var n=this.__data__,i=pt(n,e);return i<0?(++this.size,n...
function Je (line 1) | function Je(e){var t=-1,n=null==e?0:e.length;this.clear();while(++t<n){v...
function _e (line 1) | function _e(){this.size=0,this.__data__={hash:new je,map:new(Ee||Ve),str...
function $e (line 1) | function $e(e){var t=Tt(this,e)["delete"](e);return this.size-=t?1:0,t}
function et (line 1) | function et(e){return Tt(this,e).get(e)}
function tt (line 1) | function tt(e){return Tt(this,e).has(e)}
function nt (line 1) | function nt(e,t){var n=Tt(this,e),i=n.size;return n.set(e,t),this.size+=...
function it (line 1) | function it(e){var t=-1,n=null==e?0:e.length;this.__data__=new Je;while(...
function rt (line 1) | function rt(e){return this.__data__.set(e,r),this}
method constructor (line 17) | constructor(e){this.children=void 0,this.classes=void 0,this.height=vo...
method hasClass (line 17) | hasClass(e){return this.classes.includes(e)}
method toNode (line 17) | toNode(){const e=document.createDocumentFragment();for(let t=0;t<this....
method toMarkup (line 17) | toMarkup(){let e="";for(let t=0;t<this.children.length;t++)e+=this.chi...
method toText (line 17) | toText(){const e=e=>e.toText();return this.children.map(e).join("")}
function ot (line 1) | function ot(e){return this.__data__.has(e)}
function st (line 1) | function st(e){var t=this.__data__=new Ve(e);this.size=t.size}
function at (line 1) | function at(){this.__data__=new Ve,this.size=0}
function lt (line 1) | function lt(e){var t=this.__data__,n=t["delete"](e);return this.size=t.s...
function ct (line 1) | function ct(e){return this.__data__.get(e)}
function ht (line 1) | function ht(e){return this.__data__.has(e)}
function dt (line 1) | function dt(e,t){var n=this.__data__;if(n instanceof Ve){var r=n.__data_...
function ut (line 1) | function ut(e,t){var n=jt(e),i=!n&&Bt(e),r=!n&&!i&&qt(e),o=!n&&!i&&!r&&Y...
function pt (line 1) | function pt(e,t){var n=e.length;while(n--)if(Pt(e[n][0],t))return n;retu...
function ft (line 1) | function ft(e,t,n){var i=t(e);return jt(e)?i:$(i,n(e))}
function mt (line 1) | function mt(e){return null==e?void 0===e?T:b:Ce&&Ce in Object(e)?Mt(e):F...
function gt (line 1) | function gt(e){return Kt(e)&&mt(e)==l}
function vt (line 1) | function vt(e,t,n,i,r){return e===t||(null==e||null==t||!Kt(e)&&!Kt(t)?e...
function bt (line 1) | function bt(e,t,n,i,r,s){var a=jt(e),h=jt(t),d=a?c:Ot(e),u=h?c:Ot(t);d=d...
function yt (line 1) | function yt(e){if(!Vt(e)||Lt(e))return!1;var t=Wt(e)?ge:H;return t.test(...
function wt (line 1) | function wt(e){return Kt(e)&&Gt(e.length)&&!!U[mt(e)]}
function xt (line 1) | function xt(e){if(!It(e))return Se(e);var t=[];for(var n in Object(e))pe...
function Ct (line 1) | function Ct(e,t,n,i,r,a){var l=n&o,c=e.length,h=t.length;if(c!=h&&!(l&&h...
function kt (line 1) | function kt(e,t,n,i,r,a,l){switch(n){case N:if(e.byteLength!=t.byteLengt...
function At (line 1) | function At(e,t,n,i,r,s){var a=n&o,l=St(e),c=l.length,h=St(t),d=h.length...
function St (line 1) | function St(e){return ft(e,Zt,Nt)}
function Tt (line 1) | function Tt(e,t){var n=e.__data__;return Dt(t)?n["string"==typeof t?"str...
function Et (line 1) | function Et(e,t){var n=re(e,t);return yt(n)?n:void 0}
function Mt (line 1) | function Mt(e){var t=pe.call(e,Ce),n=e[Ce];try{e[Ce]=void 0;var i=!0}cat...
function zt (line 1) | function zt(e,t){return t=null==t?a:t,!!t&&("number"==typeof e||q.test(e...
function Dt (line 1) | function Dt(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==...
function Lt (line 1) | function Lt(e){return!!fe&&fe in e}
function It (line 1) | function It(e){var t=e&&e.constructor,n="function"==typeof t&&t.prototyp...
function Ft (line 1) | function Ft(e){return me.call(e)}
function Rt (line 1) | function Rt(e){if(null!=e){try{return ue.call(e)}catch(t){}try{return e+...
function Pt (line 1) | function Pt(e,t){return e===t||e!==e&&t!==t}
function Ht (line 1) | function Ht(e){return null!=e&&Gt(e.length)&&!Wt(e)}
function Ut (line 1) | function Ut(e,t){return vt(e,t)}
function Wt (line 1) | function Wt(e){if(!Vt(e))return!1;var t=mt(e);return t==f||t==m||t==h||t...
function Gt (line 1) | function Gt(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=a}
function Vt (line 1) | function Vt(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}
method constructor (line 17) | constructor(){this.shiftKey=!1,this.mouseDown=null,this.lastKeyCode=nu...
function Kt (line 1) | function Kt(e){return null!=e&&"object"==typeof e}
function Zt (line 1) | function Zt(e){return Ht(e)?ut(e):xt(e)}
function Xt (line 1) | function Xt(){return[]}
function Qt (line 1) | function Qt(){return!1}
function i (line 1) | function i(){return!1}
class r (line 1) | class r{constructor(e){this.ops=e,this.index=0,this.offset=0}hasNext(){r...
method constructor (line 1) | constructor(e){this.ops=e,this.index=0,this.offset=0}
method hasNext (line 1) | hasNext(){return this.peekLength()<1/0}
method next (line 1) | next(e){e||(e=1/0);const t=this.ops[this.index];if(t){const n=this.off...
method peek (line 1) | peek(){return this.ops[this.index]}
method peekLength (line 1) | peekLength(){return this.ops[this.index]?i.default.length(this.ops[thi...
method peekType (line 1) | peekType(){const e=this.ops[this.index];return e?"number"===typeof e.d...
method rest (line 1) | rest(){if(this.hasNext()){if(0===this.offset)return this.ops.slice(thi...
function i (line 1) | function i(e){return Array.isArray?Array.isArray(e):"[object Array]"===v...
function r (line 1) | function r(e){return"boolean"===typeof e}
method constructor (line 1) | constructor(e){this.ops=e,this.index=0,this.offset=0}
method hasNext (line 1) | hasNext(){return this.peekLength()<1/0}
method next (line 1) | next(e){e||(e=1/0);const t=this.ops[this.index];if(t){const n=this.off...
method peek (line 1) | peek(){return this.ops[this.index]}
method peekLength (line 1) | peekLength(){return this.ops[this.index]?i.default.length(this.ops[thi...
method peekType (line 1) | peekType(){const e=this.ops[this.index];return e?"number"===typeof e.d...
method rest (line 1) | rest(){if(this.hasNext()){if(0===this.offset)return this.ops.slice(thi...
function o (line 1) | function o(e){return null===e}
method constructor (line 17) | constructor(e,t,n={}){this.match=e,this.match=e,this.handler="string"=...
function s (line 1) | function s(e){return null==e}
method constructor (line 17) | constructor(e,t,n){this.$anchor=e,this.$head=t,this.ranges=n||[new a(e...
method anchor (line 17) | get anchor(){return this.$anchor.pos}
method head (line 17) | get head(){return this.$head.pos}
method from (line 17) | get from(){return this.$from.pos}
method to (line 17) | get to(){return this.$to.pos}
method $from (line 17) | get $from(){return this.ranges[0].$from}
method $to (line 17) | get $to(){return this.ranges[0].$to}
method empty (line 17) | get empty(){let e=this.ranges;for(let t=0;t<e.length;t++)if(e[t].$from...
method content (line 17) | content(){return this.$from.doc.slice(this.from,this.to,!0)}
method replace (line 17) | replace(e,t=i["Slice"].empty){let n=t.content.lastChild,r=null;for(let...
method replaceWith (line 17) | replaceWith(e,t){let n=e.steps.length,i=this.ranges;for(let r=0;r<i.le...
method findFrom (line 17) | static findFrom(e,t,n=!1){let i=e.parent.inlineContent?new h(e):g(e.no...
method near (line 17) | static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new...
method atStart (line 17) | static atStart(e){return g(e,e,0,0,1)||new f(e)}
method atEnd (line 17) | static atEnd(e){return g(e,e,e.content.size,e.childCount,-1)||new f(e)}
method fromJSON (line 17) | static fromJSON(e,t){if(!t||!t.type)throw new RangeError("Invalid inpu...
method jsonID (line 17) | static jsonID(e,t){if(e in o)throw new RangeError("Duplicate use of se...
method getBookmark (line 17) | getBookmark(){return h.between(this.$anchor,this.$head).getBookmark()}
function a (line 1) | function a(e){return"number"===typeof e}
method constructor (line 17) | constructor(e,t){if(this.content=e,this.size=t||0,null==t)for(let n=0;...
method nodesBetween (line 17) | nodesBetween(e,t,n,i=0,r){for(let o=0,s=0;s<t;o++){let a=this.content[...
method descendants (line 17) | descendants(e){this.nodesBetween(0,this.size,e)}
method textBetween (line 17) | textBetween(e,t,n,i){let r="",o=!0;return this.nodesBetween(e,t,(s,a)=...
method append (line 17) | append(e){if(!e.size)return this;if(!this.size)return e;let t=this.las...
method cut (line 17) | cut(e,t=this.size){if(0==e&&t==this.size)return this;let n=[],i=0;if(t...
method cutByIndex (line 17) | cutByIndex(e,t){return e==t?a.empty:0==e&&t==this.content.length?this:...
method replaceChild (line 17) | replaceChild(e,t){let n=this.content[e];if(n==t)return this;let i=this...
method addToStart (line 17) | addToStart(e){return new a([e].concat(this.content),this.size+e.nodeSi...
method addToEnd (line 17) | addToEnd(e){return new a(this.content.concat(e),this.size+e.nodeSize)}
method eq (line 17) | eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<...
method firstChild (line 17) | get firstChild(){return this.content.length?this.content[0]:null}
method lastChild (line 17) | get lastChild(){return this.content.length?this.content[this.content.l...
method childCount (line 17) | get childCount(){return this.content.length}
method child (line 17) | child(e){let t=this.content[e];if(!t)throw new RangeError("Index "+e+"...
method maybeChild (line 17) | maybeChild(e){return this.content[e]||null}
method forEach (line 17) | forEach(e){for(let t=0,n=0;t<this.content.length;t++){let i=this.conte...
method findDiffStart (line 17) | findDiffStart(e,t=0){return o(this,e,t)}
method findDiffEnd (line 17) | findDiffEnd(e,t=this.size,n=e.size){return s(this,e,t,n)}
method findIndex (line 17) | findIndex(e,t=-1){if(0==e)return c(0,e);if(e==this.size)return c(this....
method toString (line 17) | toString(){return"<"+this.toStringInner()+">"}
method toStringInner (line 17) | toStringInner(){return this.content.join(", ")}
method toJSON (line 17) | toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}
method fromJSON (line 17) | static fromJSON(e,t){if(!t)return a.empty;if(!Array.isArray(t))throw n...
method fromArray (line 17) | static fromArray(e){if(!e.length)return a.empty;let t,n=0;for(let i=0;...
method from (line 17) | static from(e){if(!e)return a.empty;if(e instanceof a)return e;if(Arra...
method constructor (line 17) | constructor(e,t){this.$from=e,this.$to=t}
function l (line 1) | function l(e){return"string"===typeof e}
function c (line 1) | function c(e){return"symbol"===typeof e}
function h (line 1) | function h(e){return void 0===e}
method constructor (line 17) | constructor(e,t=e){c(e),c(t),super(e,t)}
method $cursor (line 17) | get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}
method map (line 17) | map(e,t){let n=e.resolve(t.map(this.head));if(!n.parent.inlineContent)...
method replace (line 17) | replace(e,t=i["Slice"].empty){if(super.replace(e,t),t==i["Slice"].empt...
method eq (line 17) | eq(e){return e instanceof h&&e.anchor==this.anchor&&e.head==this.head}
method getBookmark (line 17) | getBookmark(){return new d(this.anchor,this.head)}
method toJSON (line 17) | toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}
method fromJSON (line 17) | static fromJSON(e,t){if("number"!=typeof t.anchor||"number"!=typeof t....
method create (line 17) | static create(e,t,n=t){let i=e.resolve(t);return new this(i,n==t?i:e.r...
method between (line 17) | static between(e,t,n){let i=e.pos-t.pos;if(n&&!i||(n=i>=0?1:-1),!t.par...
function d (line 1) | function d(e){return"[object RegExp]"===v(e)}
method constructor (line 17) | constructor(e,t){this.type=e,this.attrs=t}
method addToSet (line 17) | addToSet(e){let t,n=!1;for(let i=0;i<e.length;i++){let r=e[i];if(this....
method removeFromSet (line 17) | removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e....
method isInSet (line 17) | isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}
method eq (line 17) | eq(e){return this==e||this.type==e.type&&h(this.attrs,e.attrs)}
method toJSON (line 17) | toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=...
method fromJSON (line 17) | static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Mar...
method sameSet (line 17) | static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;fo...
method setFrom (line 17) | static setFrom(e){if(!e||Array.isArray(e)&&0==e.length)return d.none;i...
method constructor (line 17) | constructor(e,t){this.anchor=e,this.head=t}
method map (line 17) | map(e){return new d(e.map(this.anchor),e.map(this.head))}
method resolve (line 17) | resolve(e){return h.between(e.resolve(this.anchor),e.resolve(this.head))}
method constructor (line 19) | constructor(e){Array.isArray(e)?this.ops=e:null!=e&&Array.isArray(e.op...
method registerEmbed (line 19) | static registerEmbed(e,t){this.handlers[e]=t}
method unregisterEmbed (line 19) | static unregisterEmbed(e){delete this.handlers[e]}
method getHandler (line 19) | static getHandler(e){const t=this.handlers[e];if(!t)throw new Error(`n...
method insert (line 19) | insert(e,t){const n={};return"string"===typeof e&&0===e.length?this:(n...
method delete (line 19) | delete(e){return e<=0?this:this.push({delete:e})}
method retain (line 19) | retain(e,t){if("number"===typeof e&&e<=0)return this;const n={retain:e...
method push (line 19) | push(e){let t=this.ops.length,n=this.ops[t-1];if(e=r(e),"object"===typ...
method chop (line 19) | chop(){const e=this.ops[this.ops.length-1];return e&&"number"===typeof...
method filter (line 19) | filter(e){return this.ops.filter(e)}
method forEach (line 19) | forEach(e){this.ops.forEach(e)}
method map (line 19) | map(e){return this.ops.map(e)}
method partition (line 19) | partition(e){const t=[],n=[];return this.forEach(i=>{const r=e(i)?t:n;...
method reduce (line 19) | reduce(e,t){return this.ops.reduce(e,t)}
method changeLength (line 19) | changeLength(){return this.reduce((e,t)=>t.insert?e+a.default.length(t...
method length (line 19) | length(){return this.reduce((e,t)=>e+a.default.length(t),0)}
method slice (line 19) | slice(e=0,t=1/0){const n=[],i=new l.default(this.ops);let r=0;while(r<...
method compose (line 19) | compose(e){const t=new l.default(this.ops),n=new l.default(e.ops),i=[]...
method concat (line 19) | concat(e){const t=new d(this.ops.slice());return e.ops.length>0&&(t.pu...
method diff (line 19) | diff(e,t){if(this.ops===e.ops)return new d;const n=[this,e].map(t=>t.m...
method eachLine (line 19) | eachLine(e,t="\n"){const n=new l.default(this.ops);let i=new d,r=0;whi...
method invert (line 19) | invert(e){const t=new d;return this.reduce((n,i)=>{if(i.insert)t.delet...
method transform (line 19) | transform(e,t=!1){if(t=!!t,"number"===typeof e)return this.transformPo...
method transformPosition (line 19) | transformPosition(e,t=!1){t=!!t;const n=new l.default(this.ops);let i=...
method constructor (line 65) | constructor(e,t){this.items=e,this.eventCount=t}
method popEvent (line 65) | popEvent(e,t){if(0==this.eventCount)return null;let n,i,r=this.items.l...
method addTransform (line 65) | addTransform(e,t,n,i){let r=[],o=this.eventCount,s=this.items,a=!i&&s....
method remapping (line 65) | remapping(e,t){let n=new l["a"];return this.items.forEach((t,i)=>{let ...
method addMaps (line 65) | addMaps(e){return 0==this.eventCount?this:new d(this.items.append(e.ma...
method rebased (line 65) | rebased(e,t){if(!this.eventCount)return this;let n=[],i=Math.max(0,thi...
method emptyItemCount (line 65) | emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}
method compress (line 65) | compress(e=this.items.length){let t=this.remapping(0,e),n=t.maps.lengt...
function u (line 1) | function u(e){return"object"===typeof e&&null!==e}
method constructor (line 17) | constructor(e){let t=e.nodeAfter,n=e.node(0).resolve(e.pos+t.nodeSize)...
method map (line 17) | map(e,t){let{deleted:n,pos:i}=t.mapResult(this.anchor),r=e.resolve(i);...
method content (line 17) | content(){return new i["Slice"](i["Fragment"].from(this.node),0,0)}
method eq (line 17) | eq(e){return e instanceof u&&e.anchor==this.anchor}
method toJSON (line 17) | toJSON(){return{type:"node",anchor:this.anchor}}
method getBookmark (line 17) | getBookmark(){return new p(this.anchor)}
method fromJSON (line 17) | static fromJSON(e,t){if("number"!=typeof t.anchor)throw new RangeError...
method create (line 17) | static create(e,t){return new u(e.resolve(t))}
method isSelectable (line 17) | static isSelectable(e){return!e.isText&&!1!==e.type.spec.selectable}
function p (line 1) | function p(e){return"[object Date]"===v(e)}
method constructor (line 17) | constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}
method size (line 17) | get size(){return this.content.size-this.openStart-this.openEnd}
method insertAt (line 17) | insertAt(e,t){let n=m(this.content,e+this.openStart,t);return n&&new p...
method removeBetween (line 17) | removeBetween(e,t){return new p(f(this.content,e+this.openStart,t+this...
method eq (line 17) | eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&...
method toString (line 17) | toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}
method toJSON (line 17) | toJSON(){if(!this.content.size)return null;let e={content:this.content...
method fromJSON (line 17) | static fromJSON(e,t){if(!t)return p.empty;let n=t.openStart||0,i=t.ope...
method maxOpen (line 17) | static maxOpen(e,t=!0){let n=0,i=0;for(let r=e.firstChild;r&&!r.isLeaf...
method constructor (line 17) | constructor(e){this.anchor=e}
method map (line 17) | map(e){let{deleted:t,pos:n}=e.mapResult(this.anchor);return t?new d(n,...
method resolve (line 17) | resolve(e){let t=e.resolve(this.anchor),n=t.nodeAfter;return n&&u.isSe...
method constructor (line 26) | constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}
method deleted (line 26) | get deleted(){return(this.delInfo&u)>0}
method deletedBefore (line 26) | get deletedBefore(){return(this.delInfo&(c|d))>0}
method deletedAfter (line 26) | get deletedAfter(){return(this.delInfo&(h|d))>0}
method deletedAcross (line 26) | get deletedAcross(){return(this.delInfo&d)>0}
method constructor (line 65) | constructor(e,t,n,i){this.map=e,this.step=t,this.selection=n,this.mirr...
method merge (line 65) | merge(e){if(this.step&&e.step&&!e.selection){let t=e.step.merge(this.s...
function f (line 1) | function f(e){return"[object Error]"===v(e)||e instanceof Error}
method constructor (line 17) | constructor(e){super(e.resolve(0),e.resolve(e.content.size))}
method replace (line 17) | replace(e,t=i["Slice"].empty){if(t==i["Slice"].empty){e.delete(0,e.doc...
method toJSON (line 17) | toJSON(){return{type:"all"}}
method fromJSON (line 17) | static fromJSON(e){return new f(e)}
method map (line 17) | map(e){return new f(e)}
method eq (line 17) | eq(e){return e instanceof f}
method getBookmark (line 17) | getBookmark(){return m}
method constructor (line 26) | constructor(e,t=!1){if(this.ranges=e,this.inverted=t,!e.length&&f.empt...
method recover (line 26) | recover(e){let t=0,n=a(e);if(!this.inverted)for(let i=0;i<n;i++)t+=thi...
method mapResult (line 26) | mapResult(e,t=1){return this._map(e,t,!1)}
method map (line 26) | map(e,t=1){return this._map(e,t,!0)}
method _map (line 26) | _map(e,t,n){let i=0,r=this.inverted?2:1,o=this.inverted?1:2;for(let a=...
method touches (line 26) | touches(e,t){let n=0,i=a(t),r=this.inverted?2:1,o=this.inverted?1:2;fo...
method forEach (line 26) | forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let i=0,r=0...
method invert (line 26) | invert(){return new f(this.ranges,!this.inverted)}
method toString (line 26) | toString(){return(this.inverted?"-":"")+JSON.stringify(this.ranges)}
method offset (line 26) | static offset(e){return 0==e?f.empty:new f(e<0?[0,-e,0]:[0,0,e])}
method constructor (line 65) | constructor(e,t,n,i,r){this.done=e,this.undone=t,this.prevRanges=n,thi...
function m (line 1) | function m(e){return"function"===typeof e}
method constructor (line 26) | constructor(e=[],t,n=0,i=e.length){this.maps=e,this.mirror=t,this.from...
method slice (line 26) | slice(e=0,t=this.maps.length){return new m(this.maps,this.mirror,e,t)}
method copy (line 26) | copy(){return new m(this.maps.slice(),this.mirror&&this.mirror.slice()...
method appendMap (line 26) | appendMap(e,t){this.to=this.maps.push(e),null!=t&&this.setMirror(this....
method appendMapping (line 26) | appendMapping(e){for(let t=0,n=this.maps.length;t<e.maps.length;t++){l...
method getMirror (line 26) | getMirror(e){if(this.mirror)for(let t=0;t<this.mirror.length;t++)if(th...
method setMirror (line 26) | setMirror(e,t){this.mirror||(this.mirror=[]),this.mirror.push(e,t)}
method appendMappingInverted (line 26) | appendMappingInverted(e){for(let t=e.maps.length-1,n=this.maps.length+...
method invert (line 26) | invert(){let e=new m;return e.appendMappingInverted(this),e}
method map (line 26) | map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from...
method mapResult (line 26) | mapResult(e,t=1){return this._map(e,t,!1)}
method _map (line 26) | _map(e,t,n){let i=0;for(let r=this.from;r<this.to;r++){let n=this.maps...
function g (line 1) | function g(e){return null===e||"boolean"===typeof e||"number"===typeof e...
function v (line 1) | function v(e){return Object.prototype.toString.call(e)}
method constructor (line 17) | constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=v...
method reportNonstrict (line 17) | reportNonstrict(e,t,n){let r=this.strict;if("function"===typeof r&&(r=...
method useStrictBehavior (line 17) | useStrictBehavior(e,t,n){let i=this.strict;if("function"===typeof i)tr...
method isTrusted (line 17) | isTrusted(e){if(e.url&&!e.protocol){const t=f.protocolFromUrl(e.url);i...
method getMap (line 26) | getMap(){return f.empty}
method merge (line 26) | merge(e){return null}
method fromJSON (line 26) | static fromJSON(e,t){if(!t||!t.stepType)throw new RangeError("Invalid ...
method jsonID (line 26) | static jsonID(e,t){if(e in g)throw new RangeError("Duplicate use of st...
function c (line 1) | function c(e,t){if(t)return e.slice();var n=e.length,i=l?l(n):new e.cons...
function a (line 1) | function a(e,t){let{$cursor:n}=e.selection;return!n||(t?!t.endOfTextbloc...
method constructor (line 17) | constructor(e,t){if(this.content=e,this.size=t||0,null==t)for(let n=0;...
method nodesBetween (line 17) | nodesBetween(e,t,n,i=0,r){for(let o=0,s=0;s<t;o++){let a=this.content[...
method descendants (line 17) | descendants(e){this.nodesBetween(0,this.size,e)}
method textBetween (line 17) | textBetween(e,t,n,i){let r="",o=!0;return this.nodesBetween(e,t,(s,a)=...
method append (line 17) | append(e){if(!e.size)return this;if(!this.size)return e;let t=this.las...
method cut (line 17) | cut(e,t=this.size){if(0==e&&t==this.size)return this;let n=[],i=0;if(t...
method cutByIndex (line 17) | cutByIndex(e,t){return e==t?a.empty:0==e&&t==this.content.length?this:...
method replaceChild (line 17) | replaceChild(e,t){let n=this.content[e];if(n==t)return this;let i=this...
method addToStart (line 17) | addToStart(e){return new a([e].concat(this.content),this.size+e.nodeSi...
method addToEnd (line 17) | addToEnd(e){return new a(this.content.concat(e),this.size+e.nodeSize)}
method eq (line 17) | eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<...
method firstChild (line 17) | get firstChild(){return this.content.length?this.content[0]:null}
method lastChild (line 17) | get lastChild(){return this.content.length?this.content[this.content.l...
method childCount (line 17) | get childCount(){return this.content.length}
method child (line 17) | child(e){let t=this.content[e];if(!t)throw new RangeError("Index "+e+"...
method maybeChild (line 17) | maybeChild(e){return this.content[e]||null}
method forEach (line 17) | forEach(e){for(let t=0,n=0;t<this.content.length;t++){let i=this.conte...
method findDiffStart (line 17) | findDiffStart(e,t=0){return o(this,e,t)}
method findDiffEnd (line 17) | findDiffEnd(e,t=this.size,n=e.size){return s(this,e,t,n)}
method findIndex (line 17) | findIndex(e,t=-1){if(0==e)return c(0,e);if(e==this.size)return c(this....
method toString (line 17) | toString(){return"<"+this.toStringInner()+">"}
method toStringInner (line 17) | toStringInner(){return this.content.join(", ")}
method toJSON (line 17) | toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}
method fromJSON (line 17) | static fromJSON(e,t){if(!t)return a.empty;if(!Array.isArray(t))throw n...
method fromArray (line 17) | static fromArray(e){if(!e.length)return a.empty;let t,n=0;for(let i=0;...
method from (line 17) | static from(e){if(!e)return a.empty;if(e instanceof a)return e;if(Arra...
method constructor (line 17) | constructor(e,t){this.$from=e,this.$to=t}
function c (line 1) | function c(e,t,n=!1){for(let i=e;i;i="start"==t?i.firstChild:i.lastChild...
function d (line 1) | function d(e){if(!e.parent.type.spec.isolating)for(let t=e.depth-1;t>=0;...
method constructor (line 17) | constructor(e,t){this.type=e,this.attrs=t}
method addToSet (line 17) | addToSet(e){let t,n=!1;for(let i=0;i<e.length;i++){let r=e[i];if(this....
method removeFromSet (line 17) | removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e....
method isInSet (line 17) | isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}
method eq (line 17) | eq(e){return this==e||this.type==e.type&&h(this.attrs,e.attrs)}
method toJSON (line 17) | toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=...
method fromJSON (line 17) | static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Mar...
method sameSet (line 17) | static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;fo...
method setFrom (line 17) | static setFrom(e){if(!e||Array.isArray(e)&&0==e.length)return d.none;i...
method constructor (line 17) | constructor(e,t){this.anchor=e,this.head=t}
method map (line 17) | map(e){return new d(e.map(this.anchor),e.map(this.head))}
method resolve (line 17) | resolve(e){return h.between(e.resolve(this.anchor),e.resolve(this.head))}
method constructor (line 19) | constructor(e){Array.isArray(e)?this.ops=e:null!=e&&Array.isArray(e.op...
method registerEmbed (line 19) | static registerEmbed(e,t){this.handlers[e]=t}
method unregisterEmbed (line 19) | static unregisterEmbed(e){delete this.handlers[e]}
method getHandler (line 19) | static getHandler(e){const t=this.handlers[e];if(!t)throw new Error(`n...
method insert (line 19) | insert(e,t){const n={};return"string"===typeof e&&0===e.length?this:(n...
method delete (line 19) | delete(e){return e<=0?this:this.push({delete:e})}
method retain (line 19) | retain(e,t){if("number"===typeof e&&e<=0)return this;const n={retain:e...
method push (line 19) | push(e){let t=this.ops.length,n=this.ops[t-1];if(e=r(e),"object"===typ...
method chop (line 19) | chop(){const e=this.ops[this.ops.length-1];return e&&"number"===typeof...
method filter (line 19) | filter(e){return this.ops.filter(e)}
method forEach (line 19) | forEach(e){this.ops.forEach(e)}
method map (line 19) | map(e){return this.ops.map(e)}
method partition (line 19) | partition(e){const t=[],n=[];return this.forEach(i=>{const r=e(i)?t:n;...
method reduce (line 19) | reduce(e,t){return this.ops.reduce(e,t)}
method changeLength (line 19) | changeLength(){return this.reduce((e,t)=>t.insert?e+a.default.length(t...
method length (line 19) | length(){return this.reduce((e,t)=>e+a.default.length(t),0)}
method slice (line 19) | slice(e=0,t=1/0){const n=[],i=new l.default(this.ops);let r=0;while(r<...
method compose (line 19) | compose(e){const t=new l.default(this.ops),n=new l.default(e.ops),i=[]...
method concat (line 19) | concat(e){const t=new d(this.ops.slice());return e.ops.length>0&&(t.pu...
method diff (line 19) | diff(e,t){if(this.ops===e.ops)return new d;const n=[this,e].map(t=>t.m...
method eachLine (line 19) | eachLine(e,t="\n"){const n=new l.default(this.ops);let i=new d,r=0;whi...
method invert (line 19) | invert(e){const t=new d;return this.reduce((n,i)=>{if(i.insert)t.delet...
method transform (line 19) | transform(e,t=!1){if(t=!!t,"number"===typeof e)return this.transformPo...
method transformPosition (line 19) | transformPosition(e,t=!1){t=!!t;const n=new l.default(this.ops);let i=...
method constructor (line 65) | constructor(e,t){this.items=e,this.eventCount=t}
method popEvent (line 65) | popEvent(e,t){if(0==this.eventCount)return null;let n,i,r=this.items.l...
method addTransform (line 65) | addTransform(e,t,n,i){let r=[],o=this.eventCount,s=this.items,a=!i&&s....
method remapping (line 65) | remapping(e,t){let n=new l["a"];return this.items.forEach((t,i)=>{let ...
method addMaps (line 65) | addMaps(e){return 0==this.eventCount?this:new d(this.items.append(e.ma...
method rebased (line 65) | rebased(e,t){if(!this.eventCount)return this;let n=[],i=Math.max(0,thi...
method emptyItemCount (line 65) | emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}
method compress (line 65) | compress(e=this.items.length){let t=this.remapping(0,e),n=t.maps.lengt...
function u (line 1) | function u(e,t){let{$cursor:n}=e.selection;return!n||(t?!t.endOfTextbloc...
method constructor (line 17) | constructor(e){let t=e.nodeAfter,n=e.node(0).resolve(e.pos+t.nodeSize)...
method map (line 17) | map(e,t){let{deleted:n,pos:i}=t.mapResult(this.anchor),r=e.resolve(i);...
method content (line 17) | content(){return new i["Slice"](i["Fragment"].from(this.node),0,0)}
method eq (line 17) | eq(e){return e instanceof u&&e.anchor==this.anchor}
method toJSON (line 17) | toJSON(){return{type:"node",anchor:this.anchor}}
method getBookmark (line 17) | getBookmark(){return new p(this.anchor)}
method fromJSON (line 17) | static fromJSON(e,t){if("number"!=typeof t.anchor)throw new RangeError...
method create (line 17) | static create(e,t){return new u(e.resolve(t))}
method isSelectable (line 17) | static isSelectable(e){return!e.isText&&!1!==e.type.spec.selectable}
function m (line 1) | function m(e){if(!e.parent.type.spec.isolating)for(let t=e.depth-1;t>=0;...
method constructor (line 26) | constructor(e=[],t,n=0,i=e.length){this.maps=e,this.mirror=t,this.from...
method slice (line 26) | slice(e=0,t=this.maps.length){return new m(this.maps,this.mirror,e,t)}
method copy (line 26) | copy(){return new m(this.maps.slice(),this.mirror&&this.mirror.slice()...
method appendMap (line 26) | appendMap(e,t){this.to=this.maps.push(e),null!=t&&this.setMirror(this....
method appendMapping (line 26) | appendMapping(e){for(let t=0,n=this.maps.length;t<e.maps.length;t++){l...
method getMirror (line 26) | getMirror(e){if(this.mirror)for(let t=0;t<this.mirror.length;t++)if(th...
method setMirror (line 26) | setMirror(e,t){this.mirror||(this.mirror=[]),this.mirror.push(e,t)}
method appendMappingInverted (line 26) | appendMappingInverted(e){for(let t=e.maps.length-1,n=this.maps.length+...
method invert (line 26) | invert(){let e=new m;return e.appendMappingInverted(this),e}
method map (line 26) | map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from...
method mapResult (line 26) | mapResult(e,t=1){return this._map(e,t,!1)}
method _map (line 26) | _map(e,t,n){let i=0;for(let r=this.from;r<this.to;r++){let n=this.maps...
function v (line 1) | function v(e){for(let t=0;t<e.edgeCount;t++){let{type:n}=e.edge(t);if(n....
method constructor (line 17) | constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=v...
method reportNonstrict (line 17) | reportNonstrict(e,t,n){let r=this.strict;if("function"===typeof r&&(r=...
method useStrictBehavior (line 17) | useStrictBehavior(e,t,n){let i=this.strict;if("function"===typeof i)tr...
method isTrusted (line 17) | isTrusted(e){if(e.url&&!e.protocol){const t=f.protocolFromUrl(e.url);i...
method getMap (line 26) | getMap(){return f.empty}
method merge (line 26) | merge(e){return null}
method fromJSON (line 26) | static fromJSON(e,t){if(!t||!t.stepType)throw new RangeError("Invalid ...
method jsonID (line 26) | static jsonID(e,t){if(e in g)throw new RangeError("Duplicate use of st...
function x (line 1) | function x(e){return(t,n)=>{let{$from:r,$to:s}=t.selection;if(t.selectio...
method constructor (line 17) | constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this...
method selection (line 17) | get selection(){return this.curSelectionFor<this.steps.length&&(this.c...
method setSelection (line 17) | setSelection(e){if(e.$from.doc!=this.doc)throw new RangeError("Selecti...
method selectionSet (line 17) | get selectionSet(){return(this.updated&b)>0}
method setStoredMarks (line 17) | setStoredMarks(e){return this.storedMarks=e,this.updated|=y,this}
method ensureMarks (line 17) | ensureMarks(e){return i["Mark"].sameSet(this.storedMarks||this.selecti...
method addStoredMark (line 17) | addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||...
method removeStoredMark (line 17) | removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.store...
method storedMarksSet (line 17) | get storedMarksSet(){return(this.updated&y)>0}
method addStep (line 17) | addStep(e,t){super.addStep(e,t),this.updated=this.updated&~y,this.stor...
method setTime (line 17) | setTime(e){return this.time=e,this}
method replaceSelection (line 17) | replaceSelection(e){return this.selection.replace(this,e),this}
method replaceSelectionWith (line 17) | replaceSelectionWith(e,t=!0){let n=this.selection;return t&&(e=e.mark(...
method deleteSelection (line 17) | deleteSelection(){return this.selection.replace(this),this}
method insertText (line 17) | insertText(e,t,n){let i=this.doc.type.schema;if(null==t)return e?this....
method setMeta (line 17) | setMeta(e,t){return this.meta["string"==typeof e?e:e.key]=t,this}
method getMeta (line 17) | getMeta(e){return this.meta["string"==typeof e?e:e.key]}
method isGeneric (line 17) | get isGeneric(){for(let e in this.meta)return!1;return!0}
method scrollIntoView (line 17) | scrollIntoView(){return this.updated|=w,this}
method scrolledIntoView (line 17) | get scrolledIntoView(){return(this.updated&w)>0}
method constructor (line 26) | constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}
method apply (line 26) | apply(e){let t=e.slice(this.from,this.to),n=new i["Slice"](y(t.content...
method invert (line 26) | invert(){return new w(this.from,this.to,this.mark)}
method map (line 26) | map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return...
method merge (line 26) | merge(e){return e instanceof x&&e.mark.eq(this.mark)&&this.from<=e.to&...
method toJSON (line 26) | toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:thi...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to...
function A (line 1) | function A(e,t,n){let r=t.nodeBefore,o=t.nodeAfter,s=t.index();return!!(...
method constructor (line 26) | constructor(e,t,n,i=!1){super(),this.from=e,this.to=t,this.slice=n,thi...
method apply (line 26) | apply(e){return this.structure&&T(e,this.from,this.to)?b.fail("Structu...
method getMap (line 26) | getMap(){return new f([this.from,this.to-this.from,this.slice.size])}
method invert (line 26) | invert(e){return new A(this.from,this.from+this.slice.size,e.slice(thi...
method map (line 26) | map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return...
method merge (line 26) | merge(e){if(!(e instanceof A)||e.structure||this.structure)return null...
method toJSON (line 26) | toJSON(){let e={stepType:"replace",from:this.from,to:this.to};return t...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to...
function S (line 1) | function S(e,t,n){let s,a,l=t.nodeBefore,h=t.nodeAfter;if(l.type.spec.is...
method constructor (line 17) | constructor(e,t){this.schema=e,this.plugins=[],this.pluginsByKey=Objec...
method constructor (line 26) | constructor(e,t,n,i,r,o,s=!1){super(),this.from=e,this.to=t,this.gapFr...
method apply (line 26) | apply(e){if(this.structure&&(T(e,this.from,this.gapFrom)||T(e,this.gap...
method getMap (line 26) | getMap(){return new f([this.from,this.gapFrom-this.from,this.insert,th...
method invert (line 26) | invert(e){let t=this.gapTo-this.gapFrom;return new S(this.from,this.fr...
method map (line 26) | map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1),i=e.ma...
method toJSON (line 26) | toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gap...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to...
function T (line 1) | function T(e){return function(t,n){let i=t.selection,r=e<0?i.$from:i.$to...
method constructor (line 17) | constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.dep...
method resolveDepth (line 17) | resolveDepth(e){return null==e?this.depth:e<0?this.depth+e:e}
method parent (line 17) | get parent(){return this.node(this.depth)}
method doc (line 17) | get doc(){return this.node(0)}
method node (line 17) | node(e){return this.path[3*this.resolveDepth(e)]}
method index (line 17) | index(e){return this.path[3*this.resolveDepth(e)+1]}
method indexAfter (line 17) | indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e!=this.dep...
method start (line 17) | start(e){return e=this.resolveDepth(e),0==e?0:this.path[3*e-1]+1}
method end (line 17) | end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).conten...
method before (line 17) | before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is ...
method after (line 17) | after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is n...
method textOffset (line 17) | get textOffset(){return this.pos-this.path[this.path.length-1]}
method nodeAfter (line 17) | get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.chi...
method nodeBefore (line 17) | get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[thi...
method posAtIndex (line 17) | posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[3*t],i=0==t?0:t...
method marks (line 17) | marks(){let e=this.parent,t=this.index();if(0==e.content.size)return d...
method marksAcross (line 17) | marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.is...
method sharedDepth (line 17) | sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this....
method blockRange (line 17) | blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(l...
method sameParent (line 17) | sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}
method max (line 17) | max(e){return e.pos>this.pos?e:this}
method min (line 17) | min(e){return e.pos<this.pos?e:this}
method toString (line 17) | toString(){let e="";for(let t=1;t<=this.depth;t++)e+=(e?"/":"")+this.n...
method resolve (line 17) | static resolve(e,t){if(!(t>=0&&t<=e.content.size))throw new RangeError...
method resolveCached (line 17) | static resolveCached(e,t){for(let i=0;i<E.length;i++){let n=E[i];if(n....
method constructor (line 17) | constructor(e){this.config=e}
method schema (line 17) | get schema(){return this.config.schema}
method plugins (line 17) | get plugins(){return this.config.plugins}
method apply (line 17) | apply(e){return this.applyTransaction(e).state}
method filterTransaction (line 17) | filterTransaction(e,t=-1){for(let n=0;n<this.config.plugins.length;n++...
method applyTransaction (line 17) | applyTransaction(e){if(!this.filterTransaction(e))return{state:this,tr...
method applyInner (line 17) | applyInner(e){if(!e.before.eq(this.doc))throw new RangeError("Applying...
method tr (line 17) | get tr(){return new x(this)}
method create (line 17) | static create(e){let t=new S(e.doc?e.doc.type.schema:e.schema,e.plugin...
method reconfigure (line 17) | reconfigure(e){let t=new S(this.schema,e.plugins),n=t.fields,i=new T(t...
method toJSON (line 17) | toJSON(e){let t={doc:this.doc.toJSON(),selection:this.selection.toJSON...
method fromJSON (line 17) | static fromJSON(e,t,n){if(!t)throw new RangeError("Invalid input for E...
function N (line 1) | function N(e,t=null){return function(n,r){let{$from:o,$to:s}=n.selection...
function O (line 1) | function O(e,t=null){return function(n,i){let r=!1;for(let o=0;o<n.selec...
method constructor (line 17) | constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}
method start (line 17) | get start(){return this.$from.before(this.depth+1)}
method end (line 17) | get end(){return this.$to.after(this.depth+1)}
method parent (line 17) | get parent(){return this.$from.node(this.depth)}
method startIndex (line 17) | get startIndex(){return this.$from.index(this.depth)}
method endIndex (line 17) | get endIndex(){return this.$to.indexAfter(this.depth)}
function z (line 1) | function z(e,t,n){for(let i=0;i<t.length;i++){let{$from:r,$to:o}=t[i],s=...
method constructor (line 17) | constructor(e="key"){this.key=O(e)}
method get (line 17) | get(e){return e.config.pluginsByKey[this.key]}
method getState (line 17) | getState(e){return e[this.key]}
function D (line 1) | function D(e,t=null){return function(n,i){let{empty:r,$cursor:o,ranges:s...
method constructor (line 17) | constructor(e,t,n,i=d.none){this.type=e,this.attrs=t,this.marks=i,this...
method nodeSize (line 17) | get nodeSize(){return this.isLeaf?1:2+this.content.size}
method childCount (line 17) | get childCount(){return this.content.childCount}
method child (line 17) | child(e){return this.content.child(e)}
method maybeChild (line 17) | maybeChild(e){return this.content.maybeChild(e)}
method forEach (line 17) | forEach(e){this.content.forEach(e)}
method nodesBetween (line 17) | nodesBetween(e,t,n,i=0){this.content.nodesBetween(e,t,n,i,this)}
method descendants (line 17) | descendants(e){this.nodesBetween(0,this.content.size,e)}
method textContent (line 17) | get textContent(){return this.isLeaf&&this.type.spec.leafText?this.typ...
method textBetween (line 17) | textBetween(e,t,n,i){return this.content.textBetween(e,t,n,i)}
method firstChild (line 17) | get firstChild(){return this.content.firstChild}
method lastChild (line 17) | get lastChild(){return this.content.lastChild}
method eq (line 17) | eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}
method sameMarkup (line 17) | sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}
method hasMarkup (line 17) | hasMarkup(e,t,n){return this.type==e&&h(this.attrs,t||e.defaultAttrs||...
method copy (line 17) | copy(e=null){return e==this.content?this:new D(this.type,this.attrs,e,...
method mark (line 17) | mark(e){return e==this.marks?this:new D(this.type,this.attrs,this.cont...
method cut (line 17) | cut(e,t=this.content.size){return 0==e&&t==this.content.size?this:this...
method slice (line 17) | slice(e,t=this.content.size,n=!1){if(e==t)return p.empty;let i=this.re...
method replace (line 17) | replace(e,t,n){return g(this.resolve(e),this.resolve(t),n)}
method nodeAt (line 17) | nodeAt(e){for(let t=this;;){let{index:n,offset:i}=t.content.findIndex(...
method childAfter (line 17) | childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{n...
method childBefore (line 17) | childBefore(e){if(0==e)return{node:null,index:0,offset:0};let{index:t,...
method resolve (line 17) | resolve(e){return T.resolveCached(this,e)}
method resolveNoCache (line 17) | resolveNoCache(e){return T.resolve(this,e)}
method rangeHasMark (line 17) | rangeHasMark(e,t,n){let i=!1;return t>e&&this.nodesBetween(e,t,e=>(n.i...
method isBlock (line 17) | get isBlock(){return this.type.isBlock}
method isTextblock (line 17) | get isTextblock(){return this.type.isTextblock}
method inlineContent (line 17) | get inlineContent(){return this.type.inlineContent}
method isInline (line 17) | get isInline(){return this.type.isInline}
method isText (line 17) | get isText(){return this.type.isText}
method isLeaf (line 17) | get isLeaf(){return this.type.isLeaf}
method isAtom (line 17) | get isAtom(){return this.type.isAtom}
method toString (line 17) | toString(){if(this.type.spec.toDebugString)return this.type.spec.toDeb...
method contentMatchAt (line 17) | contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.cont...
method canReplace (line 17) | canReplace(e,t,n=a.empty,i=0,r=n.childCount){let o=this.contentMatchAt...
method canReplaceWith (line 17) | canReplaceWith(e,t,n,i){if(i&&!this.type.allowsMarks(i))return!1;let r...
method canAppend (line 17) | canAppend(e){return e.content.size?this.canReplace(this.childCount,thi...
method check (line 17) | check(){this.type.checkContent(this.content);let e=d.none;for(let t=0;...
method toJSON (line 17) | toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=...
method fromJSON (line 17) | static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Nod...
function L (line 1) | function L(...e){return function(t,n,i){for(let r=0;r<e.length;r++)if(e[...
method constructor (line 17) | constructor(e,t,n,i){if(super(e,t,null,i),!n)throw new RangeError("Emp...
method toString (line 17) | toString(){return this.type.spec.toDebugString?this.type.spec.toDebugS...
method textContent (line 17) | get textContent(){return this.text}
method textBetween (line 17) | textBetween(e,t){return this.text.slice(e,t)}
method nodeSize (line 17) | get nodeSize(){return this.text.length}
method mark (line 17) | mark(e){return e==this.marks?this:new L(this.type,this.attrs,this.text...
method withText (line 17) | withText(e){return e==this.text?this:new L(this.type,this.attrs,e,this...
method cut (line 17) | cut(e=0,t=this.text.length){return 0==e&&t==this.text.length?this:this...
method eq (line 17) | eq(e){return this.sameMarkup(e)&&this.text==e.text}
method toJSON (line 17) | toJSON(){let e=super.toJSON();return e.text=this.text,e}
function r (line 1) | function r(e,t){var n=this,r=this._readableState&&this._readableState.de...
method constructor (line 1) | constructor(e){this.ops=e,this.index=0,this.offset=0}
method hasNext (line 1) | hasNext(){return this.peekLength()<1/0}
method next (line 1) | next(e){e||(e=1/0);const t=this.ops[this.index];if(t){const n=this.off...
method peek (line 1) | peek(){return this.ops[this.index]}
method peekLength (line 1) | peekLength(){return this.ops[this.index]?i.default.length(this.ops[thi...
method peekType (line 1) | peekType(){const e=this.ops[this.index];return e?"number"===typeof e.d...
method rest (line 1) | rest(){if(this.hasNext()){if(0===this.offset)return this.ops.slice(thi...
function o (line 1) | function o(){this._readableState&&(this._readableState.destroyed=!1,this...
method constructor (line 17) | constructor(e,t,n={}){this.match=e,this.match=e,this.handler="string"=...
function s (line 1) | function s(e,t){e.emit("error",t)}
method constructor (line 17) | constructor(e,t,n){this.$anchor=e,this.$head=t,this.ranges=n||[new a(e...
method anchor (line 17) | get anchor(){return this.$anchor.pos}
method head (line 17) | get head(){return this.$head.pos}
method from (line 17) | get from(){return this.$from.pos}
method to (line 17) | get to(){return this.$to.pos}
method $from (line 17) | get $from(){return this.ranges[0].$from}
method $to (line 17) | get $to(){return this.ranges[0].$to}
method empty (line 17) | get empty(){let e=this.ranges;for(let t=0;t<e.length;t++)if(e[t].$from...
method content (line 17) | content(){return this.$from.doc.slice(this.from,this.to,!0)}
method replace (line 17) | replace(e,t=i["Slice"].empty){let n=t.content.lastChild,r=null;for(let...
method replaceWith (line 17) | replaceWith(e,t){let n=e.steps.length,i=this.ranges;for(let r=0;r<i.le...
method findFrom (line 17) | static findFrom(e,t,n=!1){let i=e.parent.inlineContent?new h(e):g(e.no...
method near (line 17) | static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new...
method atStart (line 17) | static atStart(e){return g(e,e,0,0,1)||new f(e)}
method atEnd (line 17) | static atEnd(e){return g(e,e,e.content.size,e.childCount,-1)||new f(e)}
method fromJSON (line 17) | static fromJSON(e,t){if(!t||!t.type)throw new RangeError("Invalid inpu...
method jsonID (line 17) | static jsonID(e,t){if(e in o)throw new RangeError("Duplicate use of se...
method getBookmark (line 17) | getBookmark(){return h.between(this.$anchor,this.$head).getBookmark()}
function i (line 1) | function i(){this.__rules__=[],this.__cache__=null}
function r (line 1) | function r(e,t){var n,r,o,s;return r=e.bMarks[t]+e.tShift[t],o=e.eMarks[...
method constructor (line 1) | constructor(e){this.ops=e,this.index=0,this.offset=0}
method hasNext (line 1) | hasNext(){return this.peekLength()<1/0}
method next (line 1) | next(e){e||(e=1/0);const t=this.ops[this.index];if(t){const n=this.off...
method peek (line 1) | peek(){return this.ops[this.index]}
method peekLength (line 1) | peekLength(){return this.ops[this.index]?i.default.length(this.ops[thi...
method peekType (line 1) | peekType(){const e=this.ops[this.index];return e?"number"===typeof e.d...
method rest (line 1) | rest(){if(this.hasNext()){if(0===this.offset)return this.ops.slice(thi...
function o (line 1) | function o(e,t){var n,r=e.bMarks[t]+e.tShift[t],o=r,s=e.eMarks[t];if(o+1...
method constructor (line 17) | constructor(e,t,n={}){this.match=e,this.match=e,this.handler="string"=...
function s (line 1) | function s(e,t){var n,i,r=e.level+2;for(n=t+2,i=e.tokens.length-2;n<i;n+...
method constructor (line 17) | constructor(e,t,n){this.$anchor=e,this.$head=t,this.ranges=n||[new a(e...
method anchor (line 17) | get anchor(){return this.$anchor.pos}
method head (line 17) | get head(){return this.$head.pos}
method from (line 17) | get from(){return this.$from.pos}
method to (line 17) | get to(){return this.$to.pos}
method $from (line 17) | get $from(){return this.ranges[0].$from}
method $to (line 17) | get $to(){return this.ranges[0].$to}
method empty (line 17) | get empty(){let e=this.ranges;for(let t=0;t<e.length;t++)if(e[t].$from...
method content (line 17) | content(){return this.$from.doc.slice(this.from,this.to,!0)}
method replace (line 17) | replace(e,t=i["Slice"].empty){let n=t.content.lastChild,r=null;for(let...
method replaceWith (line 17) | replaceWith(e,t){let n=e.steps.length,i=this.ranges;for(let r=0;r<i.le...
method findFrom (line 17) | static findFrom(e,t,n=!1){let i=e.parent.inlineContent?new h(e):g(e.no...
method near (line 17) | static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new...
method atStart (line 17) | static atStart(e){return g(e,e,0,0,1)||new f(e)}
method atEnd (line 17) | static atEnd(e){return g(e,e,e.content.size,e.childCount,-1)||new f(e)}
method fromJSON (line 17) | static fromJSON(e,t){if(!t||!t.type)throw new RangeError("Invalid inpu...
method jsonID (line 17) | static jsonID(e,t){if(e in o)throw new RangeError("Duplicate use of se...
method getBookmark (line 17) | getBookmark(){return h.between(this.$anchor,this.$head).getBookmark()}
function s (line 1) | function s(){var e;for(this.ruler=new i,e=0;e<r.length;e++)this.ruler.pu...
method constructor (line 17) | constructor(e,t,n){this.$anchor=e,this.$head=t,this.ranges=n||[new a(e...
method anchor (line 17) | get anchor(){return this.$anchor.pos}
method head (line 17) | get head(){return this.$head.pos}
method from (line 17) | get from(){return this.$from.pos}
method to (line 17) | get to(){return this.$to.pos}
method $from (line 17) | get $from(){return this.ranges[0].$from}
method $to (line 17) | get $to(){return this.ranges[0].$to}
method empty (line 17) | get empty(){let e=this.ranges;for(let t=0;t<e.length;t++)if(e[t].$from...
method content (line 17) | content(){return this.$from.doc.slice(this.from,this.to,!0)}
method replace (line 17) | replace(e,t=i["Slice"].empty){let n=t.content.lastChild,r=null;for(let...
method replaceWith (line 17) | replaceWith(e,t){let n=e.steps.length,i=this.ranges;for(let r=0;r<i.le...
method findFrom (line 17) | static findFrom(e,t,n=!1){let i=e.parent.inlineContent?new h(e):g(e.no...
method near (line 17) | static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new...
method atStart (line 17) | static atStart(e){return g(e,e,0,0,1)||new f(e)}
method atEnd (line 17) | static atEnd(e){return g(e,e,e.content.size,e.childCount,-1)||new f(e)}
method fromJSON (line 17) | static fromJSON(e,t){if(!t||!t.type)throw new RangeError("Invalid inpu...
method jsonID (line 17) | static jsonID(e,t){if(e in o)throw new RangeError("Duplicate use of se...
method getBookmark (line 17) | getBookmark(){return h.between(this.$anchor,this.$head).getBookmark()}
function o (line 1) | function o(e,n){if(!(this instanceof o))return new o(e,n);var i=this;a(i...
method constructor (line 17) | constructor(e,t,n={}){this.match=e,this.match=e,this.handler="string"=...
function s (line 1) | function s(e){for(var n=Math.max(t.MAX_BUFFER_LENGTH,10),i=0,o=0,s=r.len...
method constructor (line 17) | constructor(e,t,n){this.$anchor=e,this.$head=t,this.ranges=n||[new a(e...
method anchor (line 17) | get anchor(){return this.$anchor.pos}
method head (line 17) | get head(){return this.$head.pos}
method from (line 17) | get from(){return this.$from.pos}
method to (line 17) | get to(){return this.$to.pos}
method $from (line 17) | get $from(){return this.ranges[0].$from}
method $to (line 17) | get $to(){return this.ranges[0].$to}
method empty (line 17) | get empty(){let e=this.ranges;for(let t=0;t<e.length;t++)if(e[t].$from...
method content (line 17) | content(){return this.$from.doc.slice(this.from,this.to,!0)}
method replace (line 17) | replace(e,t=i["Slice"].empty){let n=t.content.lastChild,r=null;for(let...
method replaceWith (line 17) | replaceWith(e,t){let n=e.steps.length,i=this.ranges;for(let r=0;r<i.le...
method findFrom (line 17) | static findFrom(e,t,n=!1){let i=e.parent.inlineContent?new h(e):g(e.no...
method near (line 17) | static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new...
method atStart (line 17) | static atStart(e){return g(e,e,0,0,1)||new f(e)}
method atEnd (line 17) | static atEnd(e){return g(e,e,e.content.size,e.childCount,-1)||new f(e)}
method fromJSON (line 17) | static fromJSON(e,t){if(!t||!t.type)throw new RangeError("Invalid inpu...
method jsonID (line 17) | static jsonID(e,t){if(e in o)throw new RangeError("Duplicate use of se...
method getBookmark (line 17) | getBookmark(){return h.between(this.$anchor,this.$head).getBookmark()}
function a (line 1) | function a(e){for(var t=0,n=r.length;t<n;t++)e[r[t]]=""}
method constructor (line 17) | constructor(e,t){if(this.content=e,this.size=t||0,null==t)for(let n=0;...
method nodesBetween (line 17) | nodesBetween(e,t,n,i=0,r){for(let o=0,s=0;s<t;o++){let a=this.content[...
method descendants (line 17) | descendants(e){this.nodesBetween(0,this.size,e)}
method textBetween (line 17) | textBetween(e,t,n,i){let r="",o=!0;return this.nodesBetween(e,t,(s,a)=...
method append (line 17) | append(e){if(!e.size)return this;if(!this.size)return e;let t=this.las...
method cut (line 17) | cut(e,t=this.size){if(0==e&&t==this.size)return this;let n=[],i=0;if(t...
method cutByIndex (line 17) | cutByIndex(e,t){return e==t?a.empty:0==e&&t==this.content.length?this:...
method replaceChild (line 17) | replaceChild(e,t){let n=this.content[e];if(n==t)return this;let i=this...
method addToStart (line 17) | addToStart(e){return new a([e].concat(this.content),this.size+e.nodeSi...
method addToEnd (line 17) | addToEnd(e){return new a(this.content.concat(e),this.size+e.nodeSize)}
method eq (line 17) | eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<...
method firstChild (line 17) | get firstChild(){return this.content.length?this.content[0]:null}
method lastChild (line 17) | get lastChild(){return this.content.length?this.content[this.content.l...
method childCount (line 17) | get childCount(){return this.content.length}
method child (line 17) | child(e){let t=this.content[e];if(!t)throw new RangeError("Index "+e+"...
method maybeChild (line 17) | maybeChild(e){return this.content[e]||null}
method forEach (line 17) | forEach(e){for(let t=0,n=0;t<this.content.length;t++){let i=this.conte...
method findDiffStart (line 17) | findDiffStart(e,t=0){return o(this,e,t)}
method findDiffEnd (line 17) | findDiffEnd(e,t=this.size,n=e.size){return s(this,e,t,n)}
method findIndex (line 17) | findIndex(e,t=-1){if(0==e)return c(0,e);if(e==this.size)return c(this....
method toString (line 17) | toString(){return"<"+this.toStringInner()+">"}
method toStringInner (line 17) | toStringInner(){return this.content.join(", ")}
method toJSON (line 17) | toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}
method fromJSON (line 17) | static fromJSON(e,t){if(!t)return a.empty;if(!Array.isArray(t))throw n...
method fromArray (line 17) | static fromArray(e){if(!e.length)return a.empty;let t,n=0;for(let i=0;...
method from (line 17) | static from(e){if(!e)return a.empty;if(e instanceof a)return e;if(Arra...
method constructor (line 17) | constructor(e,t){this.$from=e,this.$to=t}
function l (line 1) | function l(e){O(e),""!==e.cdata&&(N(e,"oncdata",e.cdata),e.cdata=""),""!...
function t (line 1) | function t(){}
function h (line 1) | function h(e,t){return new d(e,t)}
method constructor (line 17) | constructor(e,t=e){c(e),c(t),super(e,t)}
method $cursor (line 17) | get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}
method map (line 17) | map(e,t){let n=e.resolve(t.map(this.head));if(!n.parent.inlineContent)...
method replace (line 17) | replace(e,t=i["Slice"].empty){if(super.replace(e,t),t==i["Slice"].empt...
method eq (line 17) | eq(e){return e instanceof h&&e.anchor==this.anchor&&e.head==this.head}
method getBookmark (line 17) | getBookmark(){return new d(this.anchor,this.head)}
method toJSON (line 17) | toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}
method fromJSON (line 17) | static fromJSON(e,t){if("number"!=typeof t.anchor||"number"!=typeof t....
method create (line 17) | static create(e,t,n=t){let i=e.resolve(t);return new this(i,n==t?i:e.r...
method between (line 17) | static between(e,t,n){let i=e.pos-t.pos;if(n&&!i||(n=i>=0?1:-1),!t.par...
function d (line 1) | function d(e,t){if(!(this instanceof d))return new d(e,t);i.apply(this),...
method constructor (line 17) | constructor(e,t){this.type=e,this.attrs=t}
method addToSet (line 17) | addToSet(e){let t,n=!1;for(let i=0;i<e.length;i++){let r=e[i];if(this....
method removeFromSet (line 17) | removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e....
method isInSet (line 17) | isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}
method eq (line 17) | eq(e){return this==e||this.type==e.type&&h(this.attrs,e.attrs)}
method toJSON (line 17) | toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=...
method fromJSON (line 17) | static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Mar...
method sameSet (line 17) | static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;fo...
method setFrom (line 17) | static setFrom(e){if(!e||Array.isArray(e)&&0==e.length)return d.none;i...
method constructor (line 17) | constructor(e,t){this.anchor=e,this.head=t}
method map (line 17) | map(e){return new d(e.map(this.anchor),e.map(this.head))}
method resolve (line 17) | resolve(e){return h.between(e.resolve(this.anchor),e.resolve(this.head))}
method constructor (line 19) | constructor(e){Array.isArray(e)?this.ops=e:null!=e&&Array.isArray(e.op...
method registerEmbed (line 19) | static registerEmbed(e,t){this.handlers[e]=t}
method unregisterEmbed (line 19) | static unregisterEmbed(e){delete this.handlers[e]}
method getHandler (line 19) | static getHandler(e){const t=this.handlers[e];if(!t)throw new Error(`n...
method insert (line 19) | insert(e,t){const n={};return"string"===typeof e&&0===e.length?this:(n...
method delete (line 19) | delete(e){return e<=0?this:this.push({delete:e})}
method retain (line 19) | retain(e,t){if("number"===typeof e&&e<=0)return this;const n={retain:e...
method push (line 19) | push(e){let t=this.ops.length,n=this.ops[t-1];if(e=r(e),"object"===typ...
method chop (line 19) | chop(){const e=this.ops[this.ops.length-1];return e&&"number"===typeof...
method filter (line 19) | filter(e){return this.ops.filter(e)}
method forEach (line 19) | forEach(e){this.ops.forEach(e)}
method map (line 19) | map(e){return this.ops.map(e)}
method partition (line 19) | partition(e){const t=[],n=[];return this.forEach(i=>{const r=e(i)?t:n;...
method reduce (line 19) | reduce(e,t){return this.ops.reduce(e,t)}
method changeLength (line 19) | changeLength(){return this.reduce((e,t)=>t.insert?e+a.default.length(t...
method length (line 19) | length(){return this.reduce((e,t)=>e+a.default.length(t),0)}
method slice (line 19) | slice(e=0,t=1/0){const n=[],i=new l.default(this.ops);let r=0;while(r<...
method compose (line 19) | compose(e){const t=new l.default(this.ops),n=new l.default(e.ops),i=[]...
method concat (line 19) | concat(e){const t=new d(this.ops.slice());return e.ops.length>0&&(t.pu...
method diff (line 19) | diff(e,t){if(this.ops===e.ops)return new d;const n=[this,e].map(t=>t.m...
method eachLine (line 19) | eachLine(e,t="\n"){const n=new l.default(this.ops);let i=new d,r=0;whi...
method invert (line 19) | invert(e){const t=new d;return this.reduce((n,i)=>{if(i.insert)t.delet...
method transform (line 19) | transform(e,t=!1){if(t=!!t,"number"===typeof e)return this.transformPo...
method transformPosition (line 19) | transformPosition(e,t=!1){t=!!t;const n=new l.default(this.ops);let i=...
method constructor (line 65) | constructor(e,t){this.items=e,this.eventCount=t}
method popEvent (line 65) | popEvent(e,t){if(0==this.eventCount)return null;let n,i,r=this.items.l...
method addTransform (line 65) | addTransform(e,t,n,i){let r=[],o=this.eventCount,s=this.items,a=!i&&s....
method remapping (line 65) | remapping(e,t){let n=new l["a"];return this.items.forEach((t,i)=>{let ...
method addMaps (line 65) | addMaps(e){return 0==this.eventCount?this:new d(this.items.append(e.ma...
method rebased (line 65) | rebased(e,t){if(!this.eventCount)return this;let n=[],i=Math.max(0,thi...
method emptyItemCount (line 65) | emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}
method compress (line 65) | compress(e=this.items.length){let t=this.remapping(0,e),n=t.maps.lengt...
function x (line 1) | function x(e){return" "===e||"\n"===e||"\r"===e||"\t"===e}
method constructor (line 17) | constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this...
method selection (line 17) | get selection(){return this.curSelectionFor<this.steps.length&&(this.c...
method setSelection (line 17) | setSelection(e){if(e.$from.doc!=this.doc)throw new RangeError("Selecti...
method selectionSet (line 17) | get selectionSet(){return(this.updated&b)>0}
method setStoredMarks (line 17) | setStoredMarks(e){return this.storedMarks=e,this.updated|=y,this}
method ensureMarks (line 17) | ensureMarks(e){return i["Mark"].sameSet(this.storedMarks||this.selecti...
method addStoredMark (line 17) | addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||...
method removeStoredMark (line 17) | removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.store...
method storedMarksSet (line 17) | get storedMarksSet(){return(this.updated&y)>0}
method addStep (line 17) | addStep(e,t){super.addStep(e,t),this.updated=this.updated&~y,this.stor...
method setTime (line 17) | setTime(e){return this.time=e,this}
method replaceSelection (line 17) | replaceSelection(e){return this.selection.replace(this,e),this}
method replaceSelectionWith (line 17) | replaceSelectionWith(e,t=!0){let n=this.selection;return t&&(e=e.mark(...
method deleteSelection (line 17) | deleteSelection(){return this.selection.replace(this),this}
method insertText (line 17) | insertText(e,t,n){let i=this.doc.type.schema;if(null==t)return e?this....
method setMeta (line 17) | setMeta(e,t){return this.meta["string"==typeof e?e:e.key]=t,this}
method getMeta (line 17) | getMeta(e){return this.meta["string"==typeof e?e:e.key]}
method isGeneric (line 17) | get isGeneric(){for(let e in this.meta)return!1;return!0}
method scrollIntoView (line 17) | scrollIntoView(){return this.updated|=w,this}
method scrolledIntoView (line 17) | get scrolledIntoView(){return(this.updated&w)>0}
method constructor (line 26) | constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}
method apply (line 26) | apply(e){let t=e.slice(this.from,this.to),n=new i["Slice"](y(t.content...
method invert (line 26) | invert(){return new w(this.from,this.to,this.mark)}
method map (line 26) | map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return...
method merge (line 26) | merge(e){return e instanceof x&&e.mark.eq(this.mark)&&this.from<=e.to&...
method toJSON (line 26) | toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:thi...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to...
function C (line 1) | function C(e){return'"'===e||"'"===e}
method constructor (line 26) | constructor(e,t){super(),this.pos=e,this.mark=t}
method apply (line 26) | apply(e){let t=e.nodeAt(this.pos);if(!t)return b.fail("No node at mark...
method invert (line 26) | invert(e){let t=e.nodeAt(this.pos);if(t){let e=this.mark.addToSet(t.ma...
method map (line 26) | map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new C(...
method toJSON (line 26) | toJSON(){return{stepType:"addNodeMark",pos:this.pos,mark:this.mark.toJ...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.pos)throw new RangeError("I...
function k (line 1) | function k(e){return">"===e||x(e)}
method constructor (line 17) | constructor(e,t,n){this.name=e,this.init=C(t.init,n),this.apply=C(t.ap...
method constructor (line 26) | constructor(e,t){super(),this.pos=e,this.mark=t}
method apply (line 26) | apply(e){let t=e.nodeAt(this.pos);if(!t)return b.fail("No node at mark...
method invert (line 26) | invert(e){let t=e.nodeAt(this.pos);return t&&this.mark.isInSet(t.marks...
method map (line 26) | map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new k(...
method toJSON (line 26) | toJSON(){return{stepType:"removeNodeMark",pos:this.pos,mark:this.mark....
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.pos)throw new RangeError("I...
function A (line 1) | function A(e,t){return e.test(t)}
method constructor (line 26) | constructor(e,t,n,i=!1){super(),this.from=e,this.to=t,this.slice=n,thi...
method apply (line 26) | apply(e){return this.structure&&T(e,this.from,this.to)?b.fail("Structu...
method getMap (line 26) | getMap(){return new f([this.from,this.to-this.from,this.slice.size])}
method invert (line 26) | invert(e){return new A(this.from,this.from+this.slice.size,e.slice(thi...
method map (line 26) | map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return...
method merge (line 26) | merge(e){if(!(e instanceof A)||e.structure||this.structure)return null...
method toJSON (line 26) | toJSON(){let e={stepType:"replace",from:this.from,to:this.to};return t...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to...
function S (line 1) | function S(e,t){return!A(e,t)}
method constructor (line 17) | constructor(e,t){this.schema=e,this.plugins=[],this.pluginsByKey=Objec...
method constructor (line 26) | constructor(e,t,n,i,r,o,s=!1){super(),this.from=e,this.to=t,this.gapFr...
method apply (line 26) | apply(e){if(this.structure&&(T(e,this.from,this.gapFrom)||T(e,this.gap...
method getMap (line 26) | getMap(){return new f([this.from,this.gapFrom-this.from,this.insert,th...
method invert (line 26) | invert(e){let t=this.gapTo-this.gapFrom;return new S(this.from,this.fr...
method map (line 26) | map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1),i=e.ma...
method toJSON (line 26) | toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gap...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to...
function M (line 1) | function M(e,t,n){e[t]&&e[t](n)}
method constructor (line 17) | constructor(e){this.spec=e,this.props={},e.props&&E(e.props,this,this....
method getState (line 17) | getState(e){return e[this.key]}
function N (line 1) | function N(e,t,n){e.textNode&&O(e),M(e,t,n)}
function O (line 1) | function O(e){e.textNode=z(e.opt,e.textNode),e.textNode&&M(e,"ontext",e....
method constructor (line 17) | constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}
method start (line 17) | get start(){return this.$from.before(this.depth+1)}
method end (line 17) | get end(){return this.$to.after(this.depth+1)}
method parent (line 17) | get parent(){return this.$from.node(this.depth)}
method startIndex (line 17) | get startIndex(){return this.$from.index(this.depth)}
method endIndex (line 17) | get endIndex(){return this.$to.indexAfter(this.depth)}
function z (line 1) | function z(e,t){return e.trim&&(t=t.trim()),e.normalize&&(t=t.replace(/\...
method constructor (line 17) | constructor(e="key"){this.key=O(e)}
method get (line 17) | get(e){return e.config.pluginsByKey[this.key]}
method getState (line 17) | getState(e){return e[this.key]}
function D (line 1) | function D(e,t){return O(e),e.trackPosition&&(t+="\nLine: "+e.line+"\nCo...
method constructor (line 17) | constructor(e,t,n,i=d.none){this.type=e,this.attrs=t,this.marks=i,this...
method nodeSize (line 17) | get nodeSize(){return this.isLeaf?1:2+this.content.size}
method childCount (line 17) | get childCount(){return this.content.childCount}
method child (line 17) | child(e){return this.content.child(e)}
method maybeChild (line 17) | maybeChild(e){return this.content.maybeChild(e)}
method forEach (line 17) | forEach(e){this.content.forEach(e)}
method nodesBetween (line 17) | nodesBetween(e,t,n,i=0){this.content.nodesBetween(e,t,n,i,this)}
method descendants (line 17) | descendants(e){this.nodesBetween(0,this.content.size,e)}
method textContent (line 17) | get textContent(){return this.isLeaf&&this.type.spec.leafText?this.typ...
method textBetween (line 17) | textBetween(e,t,n,i){return this.content.textBetween(e,t,n,i)}
method firstChild (line 17) | get firstChild(){return this.content.firstChild}
method lastChild (line 17) | get lastChild(){return this.content.lastChild}
method eq (line 17) | eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}
method sameMarkup (line 17) | sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}
method hasMarkup (line 17) | hasMarkup(e,t,n){return this.type==e&&h(this.attrs,t||e.defaultAttrs||...
method copy (line 17) | copy(e=null){return e==this.content?this:new D(this.type,this.attrs,e,...
method mark (line 17) | mark(e){return e==this.marks?this:new D(this.type,this.attrs,this.cont...
method cut (line 17) | cut(e,t=this.content.size){return 0==e&&t==this.content.size?this:this...
method slice (line 17) | slice(e,t=this.content.size,n=!1){if(e==t)return p.empty;let i=this.re...
method replace (line 17) | replace(e,t,n){return g(this.resolve(e),this.resolve(t),n)}
method nodeAt (line 17) | nodeAt(e){for(let t=this;;){let{index:n,offset:i}=t.content.findIndex(...
method childAfter (line 17) | childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{n...
method childBefore (line 17) | childBefore(e){if(0==e)return{node:null,index:0,offset:0};let{index:t,...
method resolve (line 17) | resolve(e){return T.resolveCached(this,e)}
method resolveNoCache (line 17) | resolveNoCache(e){return T.resolve(this,e)}
method rangeHasMark (line 17) | rangeHasMark(e,t,n){let i=!1;return t>e&&this.nodesBetween(e,t,e=>(n.i...
method isBlock (line 17) | get isBlock(){return this.type.isBlock}
method isTextblock (line 17) | get isTextblock(){return this.type.isTextblock}
method inlineContent (line 17) | get inlineContent(){return this.type.inlineContent}
method isInline (line 17) | get isInline(){return this.type.isInline}
method isText (line 17) | get isText(){return this.type.isText}
method isLeaf (line 17) | get isLeaf(){return this.type.isLeaf}
method isAtom (line 17) | get isAtom(){return this.type.isAtom}
method toString (line 17) | toString(){if(this.type.spec.toDebugString)return this.type.spec.toDeb...
method contentMatchAt (line 17) | contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.cont...
method canReplace (line 17) | canReplace(e,t,n=a.empty,i=0,r=n.childCount){let o=this.contentMatchAt...
method canReplaceWith (line 17) | canReplaceWith(e,t,n,i){if(i&&!this.type.allowsMarks(i))return!1;let r...
method canAppend (line 17) | canAppend(e){return e.content.size?this.canReplace(this.childCount,thi...
method check (line 17) | check(){this.type.checkContent(this.content);let e=d.none;for(let t=0;...
method toJSON (line 17) | toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=...
method fromJSON (line 17) | static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Nod...
function L (line 1) | function L(e){return e.sawRoot&&!e.closedRoot&&I(e,"Unclosed root tag"),...
method constructor (line 17) | constructor(e,t,n,i){if(super(e,t,null,i),!n)throw new RangeError("Emp...
method toString (line 17) | toString(){return this.type.spec.toDebugString?this.type.spec.toDebugS...
method textContent (line 17) | get textContent(){return this.text}
method textBetween (line 17) | textBetween(e,t){return this.text.slice(e,t)}
method nodeSize (line 17) | get nodeSize(){return this.text.length}
method mark (line 17) | mark(e){return e==this.marks?this:new L(this.type,this.attrs,this.text...
method withText (line 17) | withText(e){return e==this.text?this:new L(this.type,this.attrs,e,this...
method cut (line 17) | cut(e=0,t=this.text.length){return 0==e&&t==this.text.length?this:this...
method eq (line 17) | eq(e){return this.sameMarkup(e)&&this.text==e.text}
method toJSON (line 17) | toJSON(){let e=super.toJSON();return e.text=this.text,e}
function I (line 1) | function I(e,t){if("object"!==typeof e||!(e instanceof o))throw new Erro...
function F (line 1) | function F(e){e.strict||(e.tagName=e.tagName[e.looseCase]());var t=e.tag...
method constructor (line 17) | constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}
method parse (line 17) | static parse(e,t){let n=new R(e,t);if(null==n.next)return F.empty;let ...
method matchType (line 17) | matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==...
method matchFragment (line 17) | matchFragment(e,t=0,n=e.childCount){let i=this;for(let r=t;i&&r<n;r++)...
method inlineContent (line 17) | get inlineContent(){return 0!=this.next.length&&this.next[0].type.isIn...
method defaultType (line 17) | get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this...
method compatible (line 17) | compatible(e){for(let t=0;t<this.next.length;t++)for(let n=0;n<e.next....
method fillBefore (line 17) | fillBefore(e,t=!1,n=0){let i=[this];function r(o,s){let l=o.matchFragm...
method findWrapping (line 17) | findWrapping(e){for(let n=0;n<this.wrapCache.length;n+=2)if(this.wrapC...
method computeWrapping (line 17) | computeWrapping(e){let t=Object.create(null),n=[{match:this,type:null,...
method edgeCount (line 17) | get edgeCount(){return this.next.length}
method edge (line 17) | edge(e){if(e>=this.next.length)throw new RangeError(`There's no ${e}th...
method toString (line 17) | toString(){let e=[];function t(n){e.push(n);for(let i=0;i<n.next.lengt...
function R (line 1) | function R(e,t){var n=e.indexOf(":"),i=n<0?["",e]:e.split(":"),r=i[0],o=...
method constructor (line 17) | constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this....
method next (line 17) | get next(){return this.tokens[this.pos]}
method eat (line 17) | eat(e){return this.next==e&&(this.pos++||!0)}
method err (line 17) | err(e){throw new SyntaxError(e+" (in content expression '"+this.string...
function P (line 1) | function P(e){if(e.strict||(e.attribName=e.attribName[e.looseCase]()),-1...
function B (line 1) | function B(e,t){if(e.opt.xmlns){var n=e.tag,i=R(e.tagName);n.prefix=i.pr...
function j (line 1) | function j(e){if(!e.tagName)return I(e,"Weird empty close tag."),e.textN...
function H (line 1) | function H(e){var t,n=e.entity,i=n.toLowerCase(),r="";return e.ENTITIES[...
function q (line 1) | function q(e,t){"<"===t?(e.state=T.OPEN_WAKA,e.startTagPosition=e.positi...
function U (line 1) | function U(e,t){var n="";return t<e.length&&(n=e.charAt(t)),n}
function W (line 1) | function W(e){var t=this;if(this.error)throw this.error;if(t.closed)retu...
function u (line 2) | function u(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("...
method constructor (line 17) | constructor(e){let t=e.nodeAfter,n=e.node(0).resolve(e.pos+t.nodeSize)...
method map (line 17) | map(e,t){let{deleted:n,pos:i}=t.mapResult(this.anchor),r=e.resolve(i);...
method content (line 17) | content(){return new i["Slice"](i["Fragment"].from(this.node),0,0)}
method eq (line 17) | eq(e){return e instanceof u&&e.anchor==this.anchor}
method toJSON (line 17) | toJSON(){return{type:"node",anchor:this.anchor}}
method getBookmark (line 17) | getBookmark(){return new p(this.anchor)}
method fromJSON (line 17) | static fromJSON(e,t){if("number"!=typeof t.anchor)throw new RangeError...
method create (line 17) | static create(e,t){return new u(e.resolve(t))}
method isSelectable (line 17) | static isSelectable(e){return!e.isText&&!1!==e.type.spec.selectable}
function f (line 2) | function f(e,t,n){if(n||2===arguments.length)for(var i,r=0,o=t.length;r<...
method constructor (line 17) | constructor(e){super(e.resolve(0),e.resolve(e.content.size))}
method replace (line 17) | replace(e,t=i["Slice"].empty){if(t==i["Slice"].empty){e.delete(0,e.doc...
method toJSON (line 17) | toJSON(){return{type:"all"}}
method fromJSON (line 17) | static fromJSON(e){return new f(e)}
method map (line 17) | map(e){return new f(e)}
method eq (line 17) | eq(e){return e instanceof f}
method getBookmark (line 17) | getBookmark(){return m}
method constructor (line 26) | constructor(e,t=!1){if(this.ranges=e,this.inverted=t,!e.length&&f.empt...
method recover (line 26) | recover(e){let t=0,n=a(e);if(!this.inverted)for(let i=0;i<n;i++)t+=thi...
method mapResult (line 26) | mapResult(e,t=1){return this._map(e,t,!1)}
method map (line 26) | map(e,t=1){return this._map(e,t,!0)}
method _map (line 26) | _map(e,t,n){let i=0,r=this.inverted?2:1,o=this.inverted?1:2;for(let a=...
method touches (line 26) | touches(e,t){let n=0,i=a(t),r=this.inverted?2:1,o=this.inverted?1:2;fo...
method forEach (line 26) | forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let i=0,r=0...
method invert (line 26) | invert(){return new f(this.ranges,!this.inverted)}
method toString (line 26) | toString(){return(this.inverted?"-":"")+JSON.stringify(this.ranges)}
method offset (line 26) | static offset(e){return 0==e?f.empty:new f(e<0?[0,-e,0]:[0,0,e])}
method constructor (line 65) | constructor(e,t,n,i,r){this.done=e,this.undone=t,this.prevRanges=n,thi...
function m (line 2) | function m(e,t){return Object.defineProperty?Object.defineProperty(e,"ra...
method constructor (line 26) | constructor(e=[],t,n=0,i=e.length){this.maps=e,this.mirror=t,this.from...
method slice (line 26) | slice(e=0,t=this.maps.length){return new m(this.maps,this.mirror,e,t)}
method copy (line 26) | copy(){return new m(this.maps.slice(),this.mirror&&this.mirror.slice()...
method appendMap (line 26) | appendMap(e,t){this.to=this.maps.push(e),null!=t&&this.setMirror(this....
method appendMapping (line 26) | appendMapping(e){for(let t=0,n=this.maps.length;t<e.maps.length;t++){l...
method getMirror (line 26) | getMirror(e){if(this.mirror)for(let t=0;t<this.mirror.length;t++)if(th...
method setMirror (line 26) | setMirror(e,t){this.mirror||(this.mirror=[]),this.mirror.push(e,t)}
method appendMappingInverted (line 26) | appendMappingInverted(e){for(let t=e.maps.length-1,n=this.maps.length+...
method invert (line 26) | invert(){let e=new m;return e.appendMappingInverted(this),e}
method map (line 26) | map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from...
method mapResult (line 26) | mapResult(e,t=1){return this._map(e,t,!1)}
method _map (line 26) | _map(e,t,n){let i=0;for(let r=this.from;r<this.to;r++){let n=this.maps...
function g (line 2) | function g(e,t,n){var i;for(i in n=n||null,e)if(e.hasOwnProperty(i)&&!1=...
function b (line 2) | function b(e,t){var n,i,r,o,s=Object.prototype.hasOwnProperty;for(r=1,o=...
method constructor (line 17) | constructor(e,t,n){this.id=void 0,this.size=void 0,this.cramped=void 0...
method sup (line 17) | sup(){return E[M[this.id]]}
method sub (line 17) | sub(){return E[N[this.id]]}
method fracNum (line 17) | fracNum(){return E[O[this.id]]}
method fracDen (line 17) | fracDen(){return E[z[this.id]]}
method cramp (line 17) | cramp(){return E[D[this.id]]}
method text (line 17) | text(){return E[L[this.id]]}
method isTight (line 17) | isTight(){return this.size>=2}
method constructor (line 26) | constructor(e,t){this.doc=e,this.failed=t}
method ok (line 26) | static ok(e){return new b(e,null)}
method fail (line 26) | static fail(e){return new b(null,e)}
method fromReplace (line 26) | static fromReplace(e,t,n,r){try{return b.ok(e.replace(t,n,r))}catch(o)...
function w (line 2) | function w(e){return"string"===typeof e||e instanceof String}
method constructor (line 26) | constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}
method apply (line 26) | apply(e){let t=e.slice(this.from,this.to),n=e.resolve(this.from),r=n.n...
method invert (line 26) | invert(){return new x(this.from,this.to,this.mark)}
method map (line 26) | map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return...
method merge (line 26) | merge(e){return e instanceof w&&e.mark.eq(this.mark)&&this.from<=e.to&...
method toJSON (line 26) | toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.f...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to...
function C (line 2) | function C(e){return e instanceof Array}
method constructor (line 26) | constructor(e,t){super(),this.pos=e,this.mark=t}
method apply (line 26) | apply(e){let t=e.nodeAt(this.pos);if(!t)return b.fail("No node at mark...
method invert (line 26) | invert(e){let t=e.nodeAt(this.pos);if(t){let e=this.mark.addToSet(t.ma...
method map (line 26) | map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new C(...
method toJSON (line 26) | toJSON(){return{stepType:"addNodeMark",pos:this.pos,mark:this.mark.toJ...
method fromJSON (line 26) | static fromJSON(e,t){if("number"!=typeof t.pos)throw new RangeError("I...
function A (line 2) | function
Condensed preview — 195 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,347K chars).
[
{
"path": ".gitignore",
"chars": 91,
"preview": "node_modules\n.DS_Store\ndist_electron\nsimple-mind-map/dist\nsimple-mind-map/types\nutools/dist"
},
{
"path": "Dockerfile",
"chars": 110,
"preview": "FROM nginx\nRUN mkdir /app\nCOPY ./index.html /app/\nCOPY ./dist /app/dist/\nCOPY nginx.conf /etc/nginx/nginx.conf"
},
{
"path": "LICENSE",
"chars": 1088,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2021-2023 The MindMap Team\n\nPermission is hereby granted, free of charge, to any pe"
},
{
"path": "README.md",
"chars": 2849,
"preview": "<h1 align=\"center\">Simple mind map</h1>\n\n[](https://www.npmj"
},
{
"path": "README_EN.md",
"chars": 4704,
"preview": "<h1 align=\"center\">Simple mind map</h1>\n\n[](https://www.npmj"
},
{
"path": "README_MORE_EN.md",
"chars": 4646,
"preview": "# Features\n\n- [x] Plugin-based architecture. Apart from core functionalities, other features are provided as plugins, al"
},
{
"path": "README_MORE_ZH.md",
"chars": 50799,
"preview": "# 特性\n\n- [x] 插件化架构,除核心功能外,其他功能作为插件提供,按需使用,减小打包体积\n- [x] 支持逻辑结构图(向左、向右逻辑结构图)、思维导图、组织结构图、目录组织图、时间轴(横向、竖向)、鱼骨图等结构\n- [x] 内置多种主"
},
{
"path": "copy.js",
"chars": 338,
"preview": "const fs = require('fs')\nconst path = require('path')\n\nconst src = path.resolve(__dirname, './dist/index.html') \nconst d"
},
{
"path": "dist/css/app.css",
"chars": 4801,
"preview": "*{margin:0;padding:0;box-sizing:border-box}#app{font-family:Avenir,Helvetica,Arial,sans-serif;color:#2c3e50}.customScrol"
},
{
"path": "dist/css/chunk-2f9a41ed.css",
"chars": 283968,
"preview": ".imgUploadContainer[data-v-6399710d]{width:100%;height:100%;display:flex;justify-content:center;align-items:center;backg"
},
{
"path": "dist/css/chunk-3222d6ee.css",
"chars": 197,
"preview": ".doc[data-v-d024f2fc]{position:fixed;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content"
},
{
"path": "dist/css/chunk-vendors.css",
"chars": 218752,
"preview": "@font-face{font-family:element-icons;src:url(../fonts/element-icons.woff) format(\"woff\"),url(../fonts/element-icons.ttf)"
},
{
"path": "dist/js/app.js",
"chars": 87693,
"preview": "(function(e){function t(t){for(var o,i,l=t[0],c=t[1],d=t[2],s=0,h=[];s<l.length;s++)i=l[s],Object.prototype.hasOwnProper"
},
{
"path": "dist/js/chunk-2f9a41ed.js",
"chars": 3374472,
"preview": "(window[\"webpackJsonp\"]=window[\"webpackJsonp\"]||[]).push([[\"chunk-2f9a41ed\"],{\"000f\":function(e,t,n){e.exports=n.p+\"img/"
},
{
"path": "dist/js/chunk-3222d6ee.js",
"chars": 523,
"preview": "(window[\"webpackJsonp\"]=window[\"webpackJsonp\"]||[]).push([[\"chunk-3222d6ee\"],{\"33af\":function(t,n,s){},9372:function(t,n"
},
{
"path": "dist/js/chunk-vendors.js",
"chars": 1145966,
"preview": "(window[\"webpackJsonp\"]=window[\"webpackJsonp\"]||[]).push([[\"chunk-vendors\"],{\"03d6\":function(e,t,n){var i=n(\"9c0e\"),r=n("
},
{
"path": "index.html",
"chars": 3355,
"preview": "<!DOCTYPE html><html lang=\"\"><head><meta charset=\"utf-8\"><meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"><meta name"
},
{
"path": "nginx.conf",
"chars": 820,
"preview": "user nginx;\nworker_processes 1;\nerror_log /var/log/nginx/error.log warn;\npid /var/run/nginx.pid;\nevents {\n wo"
},
{
"path": "simple-mind-map/.eslintrc.js",
"chars": 340,
"preview": "module.exports = {\n \"env\": {\n \"browser\": true,\n \"es2021\": true\n },\n \"extends\": \"eslint:recommende"
},
{
"path": "simple-mind-map/.prettierignore",
"chars": 101,
"preview": "src/assets\n*/.DS_Store\ndist\nexample\nnode_modules\n*.json\n*.md\n.eslintrc.js\n.prettierignore\n.prettierrc"
},
{
"path": "simple-mind-map/.prettierrc",
"chars": 88,
"preview": "semi: false\nsingleQuote: true\nprintWidth: 80\ntrailingComma: 'none'\narrowParens: 'avoid'\n"
},
{
"path": "simple-mind-map/README.md",
"chars": 100,
"preview": "# 一个web思维导图的简单实现\n\n详细文档见:[https://github.com/wanglin2/mind-map](https://github.com/wanglin2/mind-map)"
},
{
"path": "simple-mind-map/bin/createPluginsTypeFiles.js",
"chars": 461,
"preview": "const { exec } = require('child_process')\nconst fs = require('fs')\n\nconst base = './src/plugins/'\nconst list = fs.readdi"
},
{
"path": "simple-mind-map/bin/wsServer.mjs",
"chars": 3718,
"preview": "#!/usr/bin/env node\n\nimport ws from 'ws'\nimport http from 'http'\nimport * as map from 'lib0/map'\n\nconst wsReadyStateConn"
},
{
"path": "simple-mind-map/example/exampleData.js",
"chars": 32399,
"preview": "const createFullData = () => {\n return {\n \"image\": \"/enJFNMHnedQTYTESGfDkctCp2.jpeg\",\n \"imageTitle\": \"图"
},
{
"path": "simple-mind-map/example/exportFullData.json",
"chars": 1763,
"preview": "{\n \"layout\": \"logicalStructure\",\n \"root\": {\n \"data\": {\n \"text\": \"根节点\",\n \"expand\": tru"
},
{
"path": "simple-mind-map/full.js",
"chars": 2137,
"preview": "import MindMap from './index'\nimport MiniMap from './src/plugins/MiniMap.js'\nimport Watermark from './src/plugins/Waterm"
},
{
"path": "simple-mind-map/index.js",
"chars": 19873,
"preview": "import View from './src/core/view/View'\nimport Event from './src/core/event/Event'\nimport Render from './src/core/render"
},
{
"path": "simple-mind-map/package.json",
"chars": 1375,
"preview": "{\n \"name\": \"simple-mind-map\",\n \"version\": \"0.14.0-fix.2\",\n \"description\": \"一个简单的web在线思维导图\",\n \"authors\": [\n {\n "
},
{
"path": "simple-mind-map/scripts/walkJsFiles.js",
"chars": 1047,
"preview": "// 遍历所有js文件\nconst path = require('path')\nconst fs = require('fs')\n\nconst entryPath = path.resolve(__dirname, '../src')\n\n"
},
{
"path": "simple-mind-map/src/constants/constant.js",
"chars": 5733,
"preview": "// 常量\nexport const CONSTANTS = {\n CHANGE_THEME: 'changeTheme',\n CHANGE_LAYOUT: 'changeLayout',\n MODE: {\n READONLY:"
},
{
"path": "simple-mind-map/src/constants/defaultOptions.js",
"chars": 15651,
"preview": "import { CONSTANTS } from './constant'\n\n// 默认选项配置\nexport const defaultOpt = {\n // 【基本】\n // 容器元素,必传,必须为DOM元素\n el: null"
},
{
"path": "simple-mind-map/src/core/command/Command.js",
"chars": 6614,
"preview": "import {\n copyRenderTree,\n simpleDeepClone,\n throttle,\n isSameObject,\n transformTreeDataToObject\n} from '../../util"
},
{
"path": "simple-mind-map/src/core/command/KeyCommand.js",
"chars": 5511,
"preview": "import { keyMap } from './keyMap'\n\n// 快捷按键、命令处理类\nexport default class KeyCommand {\n // 构造函数\n constructor(opt) {\n "
},
{
"path": "simple-mind-map/src/core/command/keyMap.js",
"chars": 804,
"preview": "const map = {\n Backspace: 8,\n Tab: 9,\n Enter: 13,\n\n Shift: 16,\n Control: 17,\n Alt: 18,\n CapsLock: 20,\n\n Esc: 27,"
},
{
"path": "simple-mind-map/src/core/event/Event.js",
"chars": 5387,
"preview": "import EventEmitter from 'eventemitter3'\nimport { CONSTANTS } from '../../constants/constant'\n\n// 事件类\nclass Event exten"
},
{
"path": "simple-mind-map/src/core/render/Render.js",
"chars": 61541,
"preview": "import merge from 'deepmerge'\nimport LogicalStructure from '../../layouts/LogicalStructure'\nimport MindMap from '../../l"
},
{
"path": "simple-mind-map/src/core/render/TextEdit.js",
"chars": 14843,
"preview": "import {\n getStrWithBrFromHtml,\n checkNodeOuter,\n focusInput,\n selectAllInput,\n htmlEscape,\n handleInputPasteText,"
},
{
"path": "simple-mind-map/src/core/render/node/MindMapNode.js",
"chars": 28968,
"preview": "import Style from './Style'\nimport Shape from './Shape'\nimport { G, Rect, Text, SVG } from '@svgdotjs/svg.js'\nimport nod"
},
{
"path": "simple-mind-map/src/core/render/node/Shape.js",
"chars": 8502,
"preview": "import { Polygon, Path, SVG } from '@svgdotjs/svg.js'\nimport { CONSTANTS } from '../../../constants/constant'\n\n// 节点形状类"
},
{
"path": "simple-mind-map/src/core/render/node/Style.js",
"chars": 9137,
"preview": "import { checkIsNodeStyleDataKey } from '../../../utils/index'\n\nconst backgroundStyleProps = [\n 'backgroundColor',\n 'b"
},
{
"path": "simple-mind-map/src/core/render/node/nodeCommandWraps.js",
"chars": 1315,
"preview": "// 设置数据\nfunction setData(data = {}) {\n this.mindMap.execCommand('SET_NODE_DATA', this, data)\n}\n\n// 设置文本\nfunction setT"
},
{
"path": "simple-mind-map/src/core/render/node/nodeCooperate.js",
"chars": 2873,
"preview": "import { Circle, G, Text, Image } from '@svgdotjs/svg.js'\nimport { generateColorByContent } from '../../../utils/index'\n"
},
{
"path": "simple-mind-map/src/core/render/node/nodeCreateContents.js",
"chars": 16406,
"preview": "import {\n resizeImgSize,\n removeRichTextStyes,\n checkIsRichText,\n isUndef,\n createForeignObjectNode,\n addXmlns,\n "
},
{
"path": "simple-mind-map/src/core/render/node/nodeExpandBtn.js",
"chars": 4560,
"preview": "import btnsSvg from '../../../svg/btns'\nimport { SVG, Circle, G, Text } from '@svgdotjs/svg.js'\nimport { isUndef } from "
},
{
"path": "simple-mind-map/src/core/render/node/nodeExpandBtnPlaceholderRect.js",
"chars": 1614,
"preview": "import { Rect } from '@svgdotjs/svg.js'\n\n// 渲染展开收起按钮的隐藏占位元素\nfunction renderExpandBtnPlaceholderRect() {\n // 根节点或没有子节点不需"
},
{
"path": "simple-mind-map/src/core/render/node/nodeGeneralization.js",
"chars": 6268,
"preview": "import MindMapNode from './MindMapNode'\nimport { createUid } from '../../../utils/index'\n\n// 获取节点概要数据\nfunction formatGet"
},
{
"path": "simple-mind-map/src/core/render/node/nodeLayout.js",
"chars": 16489,
"preview": "import { CONSTANTS } from '../../../constants/constant'\nimport { G, Rect } from '@svgdotjs/svg.js'\nimport { createForeig"
},
{
"path": "simple-mind-map/src/core/render/node/nodeModifyWidth.js",
"chars": 4263,
"preview": "import { Rect } from '@svgdotjs/svg.js'\n\n// 初始化拖拽\nfunction initDragHandle() {\n if (!this.checkEnableDragModifyNodeWidth"
},
{
"path": "simple-mind-map/src/core/render/node/quickCreateChildBtn.js",
"chars": 2556,
"preview": "import btnsSvg from '../../../svg/btns'\nimport { SVG, Circle, G } from '@svgdotjs/svg.js'\n\nfunction initQuickCreateChild"
},
{
"path": "simple-mind-map/src/core/view/View.js",
"chars": 11948,
"preview": "import { CONSTANTS } from '../../constants/constant'\n\n// 视图操作类\nclass View {\n // 构造函数\n constructor(opt = {}) {\n th"
},
{
"path": "simple-mind-map/src/layouts/Base.js",
"chars": 18803,
"preview": "import MindMapNode from '../core/render/node/MindMapNode'\nimport { CONSTANTS, initRootNodePositionMap } from '../constan"
},
{
"path": "simple-mind-map/src/layouts/CatalogOrganization.js",
"chars": 10674,
"preview": "import Base from './Base'\nimport { walk, asyncRun, getNodeIndexInNodeList } from '../utils'\n\n// 目录组织图\nclass CatalogOrga"
},
{
"path": "simple-mind-map/src/layouts/Fishbone.js",
"chars": 15976,
"preview": "import Base from './Base'\nimport { walk, asyncRun, degToRad, getNodeIndexInNodeList } from '../utils'\nimport { CONSTANTS"
},
{
"path": "simple-mind-map/src/layouts/LogicalStructure.js",
"chars": 10776,
"preview": "import Base from './Base'\nimport { walk, asyncRun, getNodeIndexInNodeList } from '../utils'\nimport { CONSTANTS } from '."
},
{
"path": "simple-mind-map/src/layouts/MindMap.js",
"chars": 12879,
"preview": "import Base from './Base'\nimport { walk, asyncRun, getNodeIndexInNodeList } from '../utils'\nimport { CONSTANTS } from '."
},
{
"path": "simple-mind-map/src/layouts/OrganizationStructure.js",
"chars": 9157,
"preview": "import Base from './Base'\nimport { walk, asyncRun, getNodeIndexInNodeList } from '../utils'\n\n// 组织结构图\n// 和逻辑结构图基本一样,只是方"
},
{
"path": "simple-mind-map/src/layouts/Timeline.js",
"chars": 10073,
"preview": "import Base from './Base'\nimport { walk, asyncRun, getNodeIndexInNodeList } from '../utils'\nimport { CONSTANTS } from '."
},
{
"path": "simple-mind-map/src/layouts/VerticalTimeline.js",
"chars": 13152,
"preview": "import Base from './Base'\nimport { walk, asyncRun, getNodeIndexInNodeList } from '../utils'\nimport { CONSTANTS } from '."
},
{
"path": "simple-mind-map/src/layouts/fishboneUtils.js",
"chars": 7371,
"preview": "import { degToRad } from '../utils/'\n\nexport default {\n top: {\n renderExpandBtn({\n node,\n btn,\n expan"
},
{
"path": "simple-mind-map/src/parse/markdown.js",
"chars": 167,
"preview": "import { transformToMarkdown } from './toMarkdown'\nimport { transformMarkdownTo } from './markdownTo'\n\nexport default {\n"
},
{
"path": "simple-mind-map/src/parse/markdownTo.js",
"chars": 3071,
"preview": "import { fromMarkdown } from 'mdast-util-from-markdown'\n\nconst getNodeText = node => {\n if (node.type === 'list') retur"
},
{
"path": "simple-mind-map/src/parse/toMarkdown.js",
"chars": 1256,
"preview": "import { walk, nodeRichTextToTextWithWrap } from '../utils'\n\nconst getNodeText = data => {\n return data.richText ? node"
},
{
"path": "simple-mind-map/src/parse/toTxt.js",
"chars": 885,
"preview": "import { walk, nodeRichTextToTextWithWrap } from '../utils'\n\nconst getNodeText = data => {\n return data.richText ? node"
},
{
"path": "simple-mind-map/src/parse/xmind.js",
"chars": 9149,
"preview": "import JSZip from 'jszip'\nimport xmlConvert from 'xml-js'\nimport { getTextFromHtml, isUndef } from '../utils/index'\nimpo"
},
{
"path": "simple-mind-map/src/plugins/AssociativeLine.js",
"chars": 21487,
"preview": "import { walk, bfsWalk, throttle } from '../utils'\nimport { v4 as uuid } from 'uuid'\nimport {\n getAssociativeLineTarget"
},
{
"path": "simple-mind-map/src/plugins/Cooperate.js",
"chars": 6927,
"preview": "import * as Y from 'yjs'\nimport { WebrtcProvider } from 'y-webrtc'\nimport {\n isSameObject,\n simpleDeepClone,\n getType"
},
{
"path": "simple-mind-map/src/plugins/Demonstrate.js",
"chars": 10996,
"preview": "import {\n walk,\n getNodeTreeBoundingRect,\n fullscrrenEvent,\n fullScreen,\n exitFullScreen,\n formatGetNodeGeneraliza"
},
{
"path": "simple-mind-map/src/plugins/Drag.js",
"chars": 36794,
"preview": "import {\n bfsWalk,\n throttle,\n getTopAncestorsFomNodeList,\n getNodeIndexInNodeList,\n sortNodeList\n} from '../utils'"
},
{
"path": "simple-mind-map/src/plugins/Export.js",
"chars": 12781,
"preview": "import {\n imgToDataUrl,\n downloadFile,\n readBlob,\n removeHTMLEntities,\n resizeImgSize,\n handleSelfCloseTags,\n add"
},
{
"path": "simple-mind-map/src/plugins/ExportPDF.js",
"chars": 1904,
"preview": "// import JsPDF from '../utils/jspdf'\nimport { PDFDocument } from 'pdf-lib'\nimport { readBlob } from '../utils/index'\n\n/"
},
{
"path": "simple-mind-map/src/plugins/ExportXMind.js",
"chars": 400,
"preview": "import xmind from '../parse/xmind'\n\n// 导出XMind插件,需要通过Export插件使用\nclass ExportXMind {\n // 构造函数\n constructor(opt) {\n "
},
{
"path": "simple-mind-map/src/plugins/Formula.js",
"chars": 5733,
"preview": "import katex from 'katex'\nimport Quill from 'quill'\nimport { getChromeVersion, htmlEscape } from '../utils/index'\nimport"
},
{
"path": "simple-mind-map/src/plugins/FormulaStyle.js",
"chars": 27430,
"preview": "export const getFontStyleText = fontPath => {\n return `\n@font-face {\n font-family: 'KaTeX_AMS';\n src: url(${fontPath}"
},
{
"path": "simple-mind-map/src/plugins/KeyboardNavigation.js",
"chars": 7528,
"preview": "import { bfsWalk } from '../utils'\nimport { CONSTANTS } from '../constants/constant'\n\n// 键盘导航插件\nclass KeyboardNavigatio"
},
{
"path": "simple-mind-map/src/plugins/MindMapLayoutPro.js",
"chars": 2723,
"preview": "import { CONSTANTS } from '../constants/constant'\n\n// 该插件会向节点数据的data中添加dir字段\n/*\n 需要更新数据的情况:\n\n 1.实例化时的数据\n 2.调用setDat"
},
{
"path": "simple-mind-map/src/plugins/MiniMap.js",
"chars": 5908,
"preview": "import {\n isWhite,\n isTransparent,\n getVisibleColorFromTheme\n} from '../utils/index'\n\n// 小地图插件\nclass MiniMap {\n // "
},
{
"path": "simple-mind-map/src/plugins/NodeBase64ImageStorage.js",
"chars": 2268,
"preview": "import { walk, createUid } from '../utils/index'\n\n// 修改base64格式的节点图片在数据中的存储方式\n// 将base64格式的图片以key-map的形式存储在根节点的imgMap字段里"
},
{
"path": "simple-mind-map/src/plugins/NodeImgAdjust.js",
"chars": 10270,
"preview": "// 节点图片大小调整插件\nimport { resizeImgSizeByOriginRatio } from '../utils/index'\nimport btnsSvg from '../svg/btns'\n\nclass NodeI"
},
{
"path": "simple-mind-map/src/plugins/OuterFrame.js",
"chars": 10949,
"preview": "import {\n formatDataToArray,\n walk,\n getNodeListBoundingRect,\n createUid\n} from '../utils'\nimport {\n parseAddNodeLi"
},
{
"path": "simple-mind-map/src/plugins/Painter.js",
"chars": 1970,
"preview": "import { checkIsNodeStyleDataKey } from '../utils/index'\n\n// 格式刷插件\nclass Painter {\n constructor({ mindMap }) {\n this"
},
{
"path": "simple-mind-map/src/plugins/RainbowLines.js",
"chars": 2175,
"preview": "import { walk, getNodeDataIndex } from '../utils/index'\n\nconst defaultColorsList = [\n 'rgb(255, 213, 73)',\n 'rgb(255, "
},
{
"path": "simple-mind-map/src/plugins/RichText.js",
"chars": 24980,
"preview": "import Quill from 'quill'\nimport Delta from 'quill-delta'\nimport 'quill/dist/quill.snow.css'\nimport {\n walk,\n getTextF"
},
{
"path": "simple-mind-map/src/plugins/Scrollbar.js",
"chars": 7510,
"preview": "import { throttle } from '../utils/index'\nimport { CONSTANTS } from '../constants/constant'\n\n// 滚动条插件\nclass Scrollbar {\n"
},
{
"path": "simple-mind-map/src/plugins/Search.js",
"chars": 8185,
"preview": "import {\n bfsWalk,\n getTextFromHtml,\n isUndef,\n replaceHtmlText,\n formatGetNodeGeneralization\n} from '../utils/inde"
},
{
"path": "simple-mind-map/src/plugins/Select.js",
"chars": 6050,
"preview": "import { bfsWalk, throttle, checkTwoRectIsOverlap } from '../utils'\nimport AutoMove from '../utils/AutoMove'\n\n// 节点选择插件\n"
},
{
"path": "simple-mind-map/src/plugins/TouchEvent.js",
"chars": 5450,
"preview": "import { getTwoPointDistance } from '../utils'\n\n// 手势事件支持插件\nclass TouchEvent {\n // 构造函数\n constructor({ mindMap }) {\n "
},
{
"path": "simple-mind-map/src/plugins/Watermark.js",
"chars": 4519,
"preview": "import { Text, G } from '@svgdotjs/svg.js'\nimport { degToRad, camelCaseToHyphen } from '../utils'\nimport merge from 'dee"
},
{
"path": "simple-mind-map/src/plugins/associativeLine/associativeLineControls.js",
"chars": 7697,
"preview": "import {\n getAssociativeLineTargetIndex,\n joinCubicBezierPath,\n getNodePoint,\n getDefaultControlPointOffsets\n} from "
},
{
"path": "simple-mind-map/src/plugins/associativeLine/associativeLineText.js",
"chars": 5935,
"preview": "import { Text } from '@svgdotjs/svg.js'\nimport {\n getStrWithBrFromHtml,\n focusInput,\n selectAllInput\n} from '../../ut"
},
{
"path": "simple-mind-map/src/plugins/associativeLine/associativeLineUtils.js",
"chars": 7537,
"preview": "import { getRectRelativePosition } from '../../utils/index'\n\n// 获取目标节点在起始节点的目标数组中的索引\nexport const getAssociativeLineTarg"
},
{
"path": "simple-mind-map/src/plugins/outerFrame/outerFrameText.js",
"chars": 6211,
"preview": "import { Text, Rect, G } from '@svgdotjs/svg.js'\nimport {\n getStrWithBrFromHtml,\n focusInput,\n selectAllInput\n} from "
},
{
"path": "simple-mind-map/src/plugins/outerFrame/outerFrameUtils.js",
"chars": 2838,
"preview": "import { getTopAncestorsFomNodeList } from '../../utils'\n\n// 解析要添加外框的节点实例列表\nexport const parseAddNodeList = list => {\n "
},
{
"path": "simple-mind-map/src/svg/btns.js",
"chars": 3006,
"preview": "// 展开按钮\nconst open = `<svg viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height="
},
{
"path": "simple-mind-map/src/svg/icons.js",
"chars": 72528,
"preview": "import { mergerIconList } from '../utils'\n\n// 超链接图标\nconst hyperlink =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" version"
},
{
"path": "simple-mind-map/src/theme/default.js",
"chars": 6262,
"preview": "// 默认主题\nexport default {\n // 节点内边距\n paddingX: 15,\n paddingY: 5,\n // 图片显示的最大宽度\n imgMaxWidth: 200,\n // 图片显示的最大高度\n "
},
{
"path": "simple-mind-map/src/theme/index.js",
"chars": 81,
"preview": "import defaultTheme from './default'\n\nexport default {\n default: defaultTheme\n}\n"
},
{
"path": "simple-mind-map/src/utils/AutoMove.js",
"chars": 1282,
"preview": "// 画布自动移动类\nclass AutoMove {\n constructor(mindMap) {\n this.mindMap = mindMap\n this.autoMoveTimer = null\n }\n\n // "
},
{
"path": "simple-mind-map/src/utils/BatchExecution.js",
"chars": 808,
"preview": "import { nextTick } from '.'\n\n// 批量执行\nclass BatchExecution {\n // 构造函数\n constructor() {\n this.has = {}\n this.qu"
},
{
"path": "simple-mind-map/src/utils/Lru.js",
"chars": 960,
"preview": "// LRU缓存类\nexport default class Lru {\n constructor(max) {\n this.max = max || 1000\n this.size = 0\n this.pool = n"
},
{
"path": "simple-mind-map/src/utils/index.js",
"chars": 40594,
"preview": "import { v4 as uuidv4 } from 'uuid'\nimport {\n nodeDataNoStylePropList,\n selfCloseTagList,\n richTextSupportStyleList\n}"
},
{
"path": "simple-mind-map/src/utils/mersenneTwister.js",
"chars": 1692,
"preview": "/**\n * @description 为了保证相同的内容每次生成的随机数都是一样的,我们可以使用一个伪随机数生成器(PRNG),并使用内容的哈希值作为种子。以下是一个使用Mersenne Twister算法的PRNG的实现:\n *\n * "
},
{
"path": "simple-mind-map/src/utils/simulateCSSBackgroundInCanvas.js",
"chars": 8637,
"preview": "// 将以空格分隔的字符串值转换成成数字/单位/值数组\nconst getNumberValueFromStr = value => {\n let arr = String(value).split(/\\s+/)\n return arr"
},
{
"path": "simple-mind-map/src/utils/xmind.js",
"chars": 11952,
"preview": "import {\n getImageSize,\n imgToDataUrl,\n parseDataUrl,\n getTextFromHtml,\n createUid\n} from './index'\nimport { format"
},
{
"path": "web/.prettierignore",
"chars": 126,
"preview": "src/assets\n*/.DS_Store\nnode_modules\npublic\n*.json\n*.md\n.eslintrc.js\n.prettierignore\n.prettierrc\npackage-lock.json\npackag"
},
{
"path": "web/.prettierrc",
"chars": 88,
"preview": "semi: false\nsingleQuote: true\nprintWidth: 80\ntrailingComma: 'none'\narrowParens: 'avoid'\n"
},
{
"path": "web/babel.config.js",
"chars": 73,
"preview": "module.exports = {\n presets: [\n '@vue/cli-plugin-babel/preset'\n ]\n}\n"
},
{
"path": "web/package.json",
"chars": 2184,
"preview": "{\n \"name\": \"thoughts\",\n \"version\": \"0.1.0\",\n \"private\": true,\n \"scripts\": {\n \"serve\": \"vue-cli-service serve\",\n "
},
{
"path": "web/public/index.html",
"chars": 3361,
"preview": "<!DOCTYPE html>\n<html lang=\"\">\n <head>\n <meta charset=\"utf-8\" />\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE="
},
{
"path": "web/scripts/ai.js",
"chars": 1781,
"preview": "const express = require('express')\nconst axios = require('axios')\nconst net = require('net')\n\nconst port = 3456\n\nconst i"
},
{
"path": "web/scripts/createNodeImageList.js",
"chars": 1260,
"preview": "const path = require('path')\nconst fs = require('fs')\n\nconst fileDest = path.join(__dirname, '../src/assets/svg')\nconst "
},
{
"path": "web/scripts/updateVersion.js",
"chars": 339,
"preview": "const path = require('path')\nconst fs = require('fs')\nconst pkg = require('../../simple-mind-map/package.json')\n\nconst f"
},
{
"path": "web/src/App.vue",
"chars": 654,
"preview": "<template>\n <div id=\"app\">\n <router-view></router-view>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'App"
},
{
"path": "web/src/api/index.js",
"chars": 3232,
"preview": "import exampleData from 'simple-mind-map/example/exampleData'\nimport { simpleDeepClone } from 'simple-mind-map/src/utils"
},
{
"path": "web/src/assets/icon-font/iconfont.css",
"chars": 5515,
"preview": "@font-face {\n font-family: \"iconfont\"; /* Project id 2479351 */\n src: url('iconfont.woff2?t=1739843331607') format('wo"
},
{
"path": "web/src/assets/svg/business/商务",
"chars": 0,
"preview": ""
},
{
"path": "web/src/assets/svg/education/教育",
"chars": 0,
"preview": ""
},
{
"path": "web/src/assets/svg/festival/节日",
"chars": 0,
"preview": ""
},
{
"path": "web/src/assets/svg/food/食物",
"chars": 0,
"preview": ""
},
{
"path": "web/src/assets/svg/medicine/医疗",
"chars": 0,
"preview": ""
},
{
"path": "web/src/assets/svg/tools/工具",
"chars": 0,
"preview": ""
},
{
"path": "web/src/assets/svg/travel/旅行",
"chars": 0,
"preview": ""
},
{
"path": "web/src/components/ImgUpload/index.vue",
"chars": 2029,
"preview": "<template>\n <div class=\"imgUploadContainer\">\n <div class=\"imgUploadPanel\">\n <div class=\"upBtn\" v-if=\"!value\">\n "
},
{
"path": "web/src/components/ImgUpload/style.less",
"chars": 1582,
"preview": ".imgUploadContainer {\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n"
},
{
"path": "web/src/config/constant.js",
"chars": 3920,
"preview": "// 布局结构图片映射\nexport const layoutImgMap = {\n logicalStructure: require('../assets/img/structures/logicalStructure.jpg'),"
},
{
"path": "web/src/config/en.js",
"chars": 11180,
"preview": "// 字体列表\nexport const fontFamilyList = [\n {\n name: 'Song Ti',\n value: '宋体, SimSun, Songti SC'\n },\n {\n name: '"
},
{
"path": "web/src/config/icon.js",
"chars": 561557,
"preview": "const iconList = [\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC"
},
{
"path": "web/src/config/image.js",
"chars": 35165,
"preview": "\n// 该文件请运行npm run createNodeImageList命令自动生成\nimport business_ from '../assets/svg/business/-.svg'\nimport business__1 from"
},
{
"path": "web/src/config/index.js",
"chars": 5715,
"preview": "import {\n fontSizeList,\n colorList,\n borderWidthList,\n borderRadiusList,\n lineWidthList,\n lineHeightList,\n store,"
},
{
"path": "web/src/config/vi.js",
"chars": 11923,
"preview": "// Danh sách phông chữ\nexport const fontFamilyList = [\n {\n name: 'Song Thân',\n value: '宋体, SimSun, Songti SC'\n }"
},
{
"path": "web/src/config/zh.js",
"chars": 12703,
"preview": "// 字体列表\nexport const fontFamilyList = [\n {\n name: '宋体',\n value: '宋体, SimSun, Songti SC'\n },\n {\n name: '微软雅黑'"
},
{
"path": "web/src/config/zhtw.js",
"chars": 10028,
"preview": "// 字型列表\nexport const fontFamilyList = [\n {\n name: '宋體',\n value: '宋体, SimSun, Songti SC'\n },\n {\n name: '微軟雅黑'"
},
{
"path": "web/src/i18n.js",
"chars": 188,
"preview": "import Vue from 'vue'\nimport VueI18n from 'vue-i18n'\nimport messages from './lang'\n\nVue.use(VueI18n)\n\nconst i18n = new V"
},
{
"path": "web/src/lang/en_us.js",
"chars": 18775,
"preview": "export default {\n baseStyle: {\n title: 'BaseStyle',\n background: 'Background',\n color: 'Color',\n image: 'Im"
},
{
"path": "web/src/lang/index.js",
"chars": 147,
"preview": "import en from './en_us'\nimport zh from './zh_cn'\nimport zhtw from './zh_tw'\nimport vi from './vi_vn'\n\nexport default {\n"
},
{
"path": "web/src/lang/vi_vn.js",
"chars": 18773,
"preview": "export default {\n baseStyle: {\n title: 'Kiểu cơ bản',\n background: 'Nền',\n color: 'Màu sắc',\n image: 'Hình "
},
{
"path": "web/src/lang/zh_cn.js",
"chars": 12701,
"preview": "export default {\n baseStyle: {\n title: '基础样式',\n background: '背景',\n color: '颜色',\n image: '图片',\n imageRepe"
},
{
"path": "web/src/lang/zh_tw.js",
"chars": 12693,
"preview": "export default {\n baseStyle: {\n title: '基本樣式',\n background: '背景',\n color: '顏色',\n image: '圖片',\n imageRepe"
},
{
"path": "web/src/main.js",
"chars": 797,
"preview": "import Vue from 'vue'\nimport App from './App.vue'\nimport router from './router'\nimport store from './store'\nimport Eleme"
},
{
"path": "web/src/pages/Doc.vue",
"chars": 379,
"preview": "T<template>\n <div class=\"doc\">\n 文档已迁移至:<a href=\"https://wanglin2.github.io/mind-map-docs/\">新地址</a>\n </div>\n</templa"
},
{
"path": "web/src/pages/Edit/Index.vue",
"chars": 4483,
"preview": "<template>\n <div\n class=\"container\"\n :class=\"{ isDark: isDark, activeSidebar: activeSidebar }\"\n >\n <template "
},
{
"path": "web/src/pages/Edit/components/AiChat.vue",
"chars": 7325,
"preview": "<template>\n <Sidebar ref=\"sidebar\" :title=\"$t('ai.chatTitle')\">\n <div class=\"aiChatBox\" :class=\"{ isDark: isDark }\">"
},
{
"path": "web/src/pages/Edit/components/AiConfigDialog.vue",
"chars": 4266,
"preview": "<template>\n <el-dialog\n class=\"aiConfigDialog\"\n :title=\"$t('ai.AIConfiguration')\"\n :visible.sync=\"aiConfigDial"
},
{
"path": "web/src/pages/Edit/components/AiCreate.vue",
"chars": 16997,
"preview": "<template>\n <div>\n <!-- 客户端连接失败提示弹窗 -->\n <el-dialog\n class=\"clientTipDialog\"\n :title=\"$t('ai.connectFai"
},
{
"path": "web/src/pages/Edit/components/AssociativeLineStyle.vue",
"chars": 10589,
"preview": "<template>\n <Sidebar ref=\"sidebar\" :title=\"$t('baseStyle.associativeLineStyle')\">\n <div class=\"sidebarContent\" :clas"
},
{
"path": "web/src/pages/Edit/components/BaseStyle.vue",
"chars": 35755,
"preview": "<template>\n <Sidebar ref=\"sidebar\" :title=\"$t('baseStyle.title')\">\n <div\n class=\"sidebarContent customScrollbar"
},
{
"path": "web/src/pages/Edit/components/Color.vue",
"chars": 1775,
"preview": "<template>\n <div class=\"colorContainer\" :class=\"{ isDark: isDark }\">\n <div class=\"colorList\">\n <span\n cl"
},
{
"path": "web/src/pages/Edit/components/Contextmenu.vue",
"chars": 16847,
"preview": "<template>\n <div\n class=\"contextmenuContainer listBox\"\n v-if=\"isShow\"\n ref=\"contextmenuRef\"\n :style=\"{ left"
},
{
"path": "web/src/pages/Edit/components/Count.vue",
"chars": 2055,
"preview": "<template>\n <div class=\"countContainer\" :class=\"{ isDark: isDark }\">\n <div class=\"item\">\n <span class=\"name\">{{"
},
{
"path": "web/src/pages/Edit/components/Demonstrate.vue",
"chars": 3769,
"preview": "<template>\n <div class=\"demonstrateContainer\" :class=\"{ isDark: isDark }\">\n <el-tooltip\n class=\"item\"\n eff"
},
{
"path": "web/src/pages/Edit/components/Edit.vue",
"chars": 21351,
"preview": "<template>\n <div\n class=\"editContainer\"\n @dragenter.stop.prevent=\"onDragenter\"\n @dragleave.stop.prevent\n @d"
},
{
"path": "web/src/pages/Edit/components/Export.vue",
"chars": 17467,
"preview": "<template>\n <el-dialog\n class=\"nodeExportDialog\"\n :class=\"{ isMobile: isMobile, isDark: isDark }\"\n :title=\"$t("
},
{
"path": "web/src/pages/Edit/components/FormulaSidebar.vue",
"chars": 4315,
"preview": "<template>\n <Sidebar ref=\"sidebar\" :title=\"$t('formulaSidebar.title')\">\n <div class=\"box\" :class=\"{ isDark: isDark }"
},
{
"path": "web/src/pages/Edit/components/Fullscreen.vue",
"chars": 1381,
"preview": "<template>\n <div class=\"fullscreenContainer\" :class=\"{ isDark: isDark }\">\n <el-tooltip\n class=\"item\"\n effe"
},
{
"path": "web/src/pages/Edit/components/Import.vue",
"chars": 7141,
"preview": "<template>\n <div>\n <el-dialog\n class=\"nodeImportDialog\"\n :title=\"$t('import.title')\"\n :visible.sync=\""
},
{
"path": "web/src/pages/Edit/components/MouseAction.vue",
"chars": 1497,
"preview": "<template>\n <div class=\"mouseActionContainer\" :class=\"{ isDark: isDark }\">\n <el-tooltip\n class=\"item\"\n eff"
},
{
"path": "web/src/pages/Edit/components/Navigator.vue",
"chars": 5158,
"preview": "<template>\n <div\n v-if=\"showMiniMap\"\n class=\"navigatorBox\"\n :class=\"{ isDark: isDark }\"\n ref=\"navigatorBox\""
},
{
"path": "web/src/pages/Edit/components/NavigatorToolbar.vue",
"chars": 7623,
"preview": "<template>\n <div class=\"navigatorContainer customScrollbar\" :class=\"{ isDark: isDark }\">\n <div class=\"item\">\n <"
},
{
"path": "web/src/pages/Edit/components/NodeHyperlink.vue",
"chars": 3254,
"preview": "<template>\n <el-dialog\n class=\"nodeHyperlinkDialog\"\n :title=\"$t('nodeHyperlink.title')\"\n :visible.sync=\"dialog"
},
{
"path": "web/src/pages/Edit/components/NodeIcon.vue",
"chars": 3254,
"preview": "<template>\n <el-dialog\n class=\"nodeIconDialog\"\n :title=\"$t('nodeIcon.title')\"\n :visible.sync=\"dialogVisible\"\n "
},
{
"path": "web/src/pages/Edit/components/NodeIconSidebar.vue",
"chars": 6612,
"preview": "<template>\n <Sidebar ref=\"sidebar\" :title=\"$t('nodeIconSidebar.title')\">\n <div class=\"box\" :class=\"{ isDark: isDark "
},
{
"path": "web/src/pages/Edit/components/NodeIconToolbar.vue",
"chars": 6085,
"preview": "<template>\n <div class=\"nodeIconToolbar\" ref=\"nodeIconToolbar\" :style=\"style\" @click.stop.passive v-show=\"showNodeIco"
},
{
"path": "web/src/pages/Edit/components/NodeImage.vue",
"chars": 3516,
"preview": "<template>\n <el-dialog\n class=\"nodeImageDialog\"\n :title=\"$t('nodeImage.title')\"\n :visible.sync=\"dialogVisible\""
},
{
"path": "web/src/pages/Edit/components/NodeImgPlacementToolbar.vue",
"chars": 3810,
"preview": "<template>\n <div\n class=\"nodeImgPlacementToolbar\"\n ref=\"nodeImgPlacementToolbar\"\n :style=\"style\"\n @click.st"
},
{
"path": "web/src/pages/Edit/components/NodeImgPreview.vue",
"chars": 714,
"preview": "<template>\n <viewer :images=\"images\">\n <img v-for=\"src in images\" :key=\"src\" :src=\"src\" />\n </viewer>\n</template>\n\n"
},
{
"path": "web/src/pages/Edit/components/NodeNote.vue",
"chars": 3007,
"preview": "<template>\n <el-dialog\n class=\"nodeNoteDialog\"\n :title=\"$t('nodeNote.title')\"\n :visible.sync=\"dialogVisible\"\n "
},
{
"path": "web/src/pages/Edit/components/NodeNoteContentShow.vue",
"chars": 3618,
"preview": "<template>\n <div\n class=\"noteContentViewer customScrollbar\"\n ref=\"noteContentViewer\"\n :style=\"{\n left: th"
},
{
"path": "web/src/pages/Edit/components/NodeNoteSidebar.vue",
"chars": 1967,
"preview": "<template>\n <Sidebar ref=\"sidebar\" :title=\"$t('note.title')\">\n <div class=\"noteContentWrap\" ref=\"noteContentWrap\"></"
},
{
"path": "web/src/pages/Edit/components/NodeOuterFrame.vue",
"chars": 18390,
"preview": "<template>\n <Sidebar ref=\"sidebar\" :title=\"$t('nodeOuterFrame.nodeOuterFrameStyle')\">\n <div class=\"sidebarContent\" :"
},
{
"path": "web/src/pages/Edit/components/NodeTag.vue",
"chars": 3292,
"preview": "<template>\n <el-dialog\n class=\"nodeTagDialog\"\n :title=\"$t('nodeTag.title')\"\n :visible.sync=\"dialogVisible\"\n "
},
{
"path": "web/src/pages/Edit/components/NodeTagStyle.vue",
"chars": 5305,
"preview": "<template>\n <div\n class=\"nodeTagStyleContainer\"\n ref=\"elRef\"\n :style=\"position\"\n v-show=\"show\"\n :class=\""
},
{
"path": "web/src/pages/Edit/components/Outline.vue",
"chars": 9054,
"preview": "<template>\n <el-tree\n ref=\"tree\"\n class=\"outlineTree\"\n node-key=\"uid\"\n draggable\n default-expand-all\n "
},
{
"path": "web/src/pages/Edit/components/OutlineEdit.vue",
"chars": 8045,
"preview": "<template>\n <div\n class=\"outlineEditContainer\"\n :class=\"{ isDark: isDark }\"\n ref=\"outlineEditContainer\"\n v-"
},
{
"path": "web/src/pages/Edit/components/OutlineSidebar.vue",
"chars": 2274,
"preview": "<template>\n <Sidebar ref=\"sidebar\" :title=\"$t('outline.title')\">\n <div class=\"btnList\">\n <el-tooltip\n cl"
},
{
"path": "web/src/pages/Edit/components/RichTextToolbar.vue",
"chars": 8521,
"preview": "<template>\n <div\n class=\"richTextToolbar\"\n ref=\"richTextToolbar\"\n :style=\"style\"\n :class=\"{ isDark: isDark "
},
{
"path": "web/src/pages/Edit/components/Scale.vue",
"chars": 2861,
"preview": "<template>\n <div class=\"scaleContainer\" :class=\"{ isDark: isDark }\">\n <el-tooltip\n class=\"item\"\n effect=\"d"
},
{
"path": "web/src/pages/Edit/components/Scrollbar.vue",
"chars": 3575,
"preview": "<template>\n <div class=\"scrollbarContainer\" :class=\"{ isDark: isDark }\">\n <!-- 竖向 -->\n <div\n class=\"scrollba"
},
{
"path": "web/src/pages/Edit/components/Search.vue",
"chars": 8918,
"preview": "<template>\n <div class=\"searchContainer\" :class=\"{ isDark: isDark, show: show }\">\n <div class=\"closeBtnBox\">\n <"
},
{
"path": "web/src/pages/Edit/components/Setting.vue",
"chars": 17757,
"preview": "<template>\n <Sidebar ref=\"sidebar\" :title=\"$t('setting.title')\">\n <div\n class=\"sidebarContent customScrollbar\"\n"
},
{
"path": "web/src/pages/Edit/components/ShortcutKey.vue",
"chars": 2323,
"preview": "<template>\n <Sidebar ref=\"sidebar\" :title=\"$t('shortcutKey.title')\">\n <div class=\"box\" :class=\"{ isDark: isDark }\">\n"
},
{
"path": "web/src/pages/Edit/components/Sidebar.vue",
"chars": 2245,
"preview": "<template>\n <div\n class=\"sidebarContainer\"\n @click.stop\n :class=\"{ show: show, isDark: isDark }\"\n :style=\"{"
},
{
"path": "web/src/pages/Edit/components/SidebarTrigger.vue",
"chars": 4096,
"preview": "<template>\n <div\n class=\"sidebarTriggerContainer \"\n @click.stop\n :class=\"{ hasActive: show && activeSidebar, s"
},
{
"path": "web/src/pages/Edit/components/Structure.vue",
"chars": 3065,
"preview": "<template>\n <Sidebar ref=\"sidebar\" :title=\"$t('strusture.title')\">\n <div class=\"layoutGroupList\" :class=\"{ isDark: i"
},
{
"path": "web/src/pages/Edit/components/Style.vue",
"chars": 25575,
"preview": "<template>\n <Sidebar ref=\"sidebar\" :title=\"$t('style.title')\">\n <div\n class=\"styleBox\"\n :class=\"{ isDark: "
},
{
"path": "web/src/pages/Edit/components/Theme.vue",
"chars": 6378,
"preview": "<template>\n <Sidebar ref=\"sidebar\" :title=\"$t('theme.title')\">\n <div class=\"themeGroupList\" :class=\"{ isDark: isDark"
},
{
"path": "web/src/pages/Edit/components/Toolbar.vue",
"chars": 19992,
"preview": "<template>\n <div class=\"toolbarContainer\" :class=\"{ isDark: isDark }\">\n <div class=\"toolbar\" ref=\"toolbarRef\">\n "
},
{
"path": "web/src/pages/Edit/components/ToolbarNodeBtnList.vue",
"chars": 10398,
"preview": "<template>\n <div class=\"toolbarNodeBtnList\" :class=\"[dir, { isDark: isDark }]\">\n <template v-for=\"item in list\">\n "
},
{
"path": "web/src/router.js",
"chars": 383,
"preview": "import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n na"
},
{
"path": "web/src/store.js",
"chars": 2316,
"preview": "import Vue from 'vue'\nimport Vuex from 'vuex'\nimport { storeLocalConfig } from '@/api'\n\nVue.use(Vuex)\n\nconst store = new"
},
{
"path": "web/src/style/outlineTree.less",
"chars": 1211,
"preview": ".outlineTree {\n &.isDark {\n background-color: #262a2e;\n\n .customNode {\n color: #fff;\n }\n\n &.el-tree--h"
},
{
"path": "web/src/utils/ai.js",
"chars": 2834,
"preview": "class Ai {\n constructor(options = {}) {\n this.options = options\n\n this.baseData = {}\n this.controller = null\n "
},
{
"path": "web/src/utils/handleClipboardText.js",
"chars": 2293,
"preview": "import { imgToDataUrl } from 'simple-mind-map/src/utils/index'\n\n// 处理知犀\nconst handleZHIXI = async data => {\n try {\n "
},
{
"path": "web/src/utils/index.js",
"chars": 2633,
"preview": "// 全屏事件检测\nconst getOnfullscreEnevt = () => {\n if (document.documentElement.requestFullScreen) {\n return 'onfullscree"
},
{
"path": "web/src/utils/loading.js",
"chars": 299,
"preview": "import { Loading } from 'element-ui'\n\nlet loadingInstance = null\n\nexport const showLoading = () => {\n loadingInstance ="
},
{
"path": "web/vue.config.js",
"chars": 1226,
"preview": "const path = require('path')\nconst isDev = process.env.NODE_ENV === 'development'\nconst isLibrary = process.env.NODE_ENV"
}
]
About this extraction
This page contains the full source code of the wanglin2/mind-map GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 195 files (6.8 MB), approximately 1.8M tokens, and a symbol index with 8415 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.