@textbus/xnote 0.0.1-alpha.18 → 0.0.1-alpha.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/bundles/components/dropdown/dropdown-menu.d.ts +1 -0
- package/bundles/components/dropdown/dropdown.d.ts +1 -0
- package/bundles/index.css +2 -2
- package/bundles/index.esm.css +2 -2
- package/bundles/index.esm.js +208 -41
- package/bundles/index.js +207 -37
- package/bundles/textbus/components/_api.d.ts +1 -0
- package/bundles/textbus/components/katex/katex-editor.d.ts +7 -0
- package/bundles/textbus/components/katex/katex.component.d.ts +15 -0
- package/package.json +10 -10
package/README.md
CHANGED
|
@@ -11,12 +11,13 @@ Xnote 底层依赖于开源富文本框架 [Textbus](https://textbus.io) 和前
|
|
|
11
11
|
## 安装
|
|
12
12
|
|
|
13
13
|
```
|
|
14
|
-
npm install @textbus/xnote
|
|
14
|
+
npm install @textbus/xnote katex
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
## 使用
|
|
18
18
|
|
|
19
19
|
```ts
|
|
20
|
+
import 'katex/dist/katex.min.css'
|
|
20
21
|
import { Editor } from '@textbus/xnote'
|
|
21
22
|
|
|
22
23
|
const editor = new Editor()
|
|
@@ -13,6 +13,7 @@ export interface DropdownProps extends Props {
|
|
|
13
13
|
class?: HTMLAttributes<HTMLElement>['class'];
|
|
14
14
|
style?: HTMLAttributes<HTMLElement>['style'];
|
|
15
15
|
abreast?: boolean;
|
|
16
|
+
padding?: string;
|
|
16
17
|
onCheck?(value: any): void;
|
|
17
18
|
onExpendStateChange?(is: boolean): void;
|
|
18
19
|
}
|
package/bundles/index.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.btn[vf-3d0183]{align-items:center;background:none;background:#fff;border:none;border-radius:4px;box-sizing:border-box;cursor:pointer;display:inline-flex;font-size:inherit;height:28px;outline:none;padding:6px 5px;transition:all .2s}.btn>span[vf-3d0183]{white-space:nowrap}.btn[vf-3d0183]:hover{background:rgba(0,0,0,.1)}.btn-arrow[vf-3d0183]{position:relative;transform:rotate(0);transform-origin:50%;width:1em}.btn.active[vf-3d0183]{background:rgba(0,0,0,.1)}.btn.active .btn-arrow[vf-3d0183]{transform:rotate(180deg)}.btn.highlight[vf-3d0183]{background-color:rgba(41,110,255,.063);color:#296eff}.component-toolbar[vf-ac7e8d]{position:relative;z-index:3}.toolbar[vf-ac7e8d]{background:#fff;border:1px solid #dee0e3;border-radius:5px;bottom:10px;box-shadow:0 4px 8px rgba(0,0,0,.08);box-sizing:border-box;display:flex;font-size:14px;height:36px;opacity:0;padding:0 6px;pointer-events:none;position:absolute;text-align:left;transform:translateY(10px)}.toolbar.active[vf-ac7e8d]{opacity:1;pointer-events:auto;transform:translateY(0);transition-duration:.2s;transition-property:all;transition-timing-function:ease}.divider[vf-ede279]{border-top:1px solid #eee;margin:6px 0}.drag-resize[vf-4c1803]{position:relative;width:100%}.drag-resize .resize-tool[vf-4c1803]{align-items:center;border:1px dashed #296eff;display:none;height:100%;justify-content:center;left:0;pointer-events:none;position:absolute;top:0;width:100%}.drag-resize .resize-tool.active[vf-4c1803]{display:flex}.drag-resize .mask[vf-4c1803]{background-color:rgba(0,0,0,.8);border-radius:3px;color:#fff;font-size:14px;padding:3px 8px;position:relative;text-shadow:1px 2px 3px rgba(0,0,0,.7);white-space:nowrap;z-index:10}.drag-resize .btn-group[vf-4c1803]{height:100%;left:0;position:absolute;top:0;width:100%}.drag-resize button[vf-4c1803]{background:#fff;border:2px solid #296eff;border-radius:50%;box-sizing:border-box;cursor:pointer;font-size:0;height:14px;outline:none;padding:0;pointer-events:auto;position:absolute;width:14px}.drag-resize button[vf-4c1803]:hover{background-color:#fff;box-shadow:0 0 0 3px rgba(18,150,219,.3)}.drag-resize button[vf-4c1803]:first-child,.drag-resize button[vf-4c1803]:nth-child(2),.drag-resize button[vf-4c1803]:nth-child(3){margin-top:-5px;top:0}.drag-resize button[vf-4c1803]:nth-child(3),.drag-resize button[vf-4c1803]:nth-child(4),.drag-resize button[vf-4c1803]:nth-child(5){margin-right:-5px;right:0}.drag-resize button[vf-4c1803]:nth-child(5),.drag-resize button[vf-4c1803]:nth-child(6),.drag-resize button[vf-4c1803]:nth-child(7){bottom:0;margin-bottom:-5px}.drag-resize button[vf-4c1803]:first-child,.drag-resize button[vf-4c1803]:nth-child(7),.drag-resize button[vf-4c1803]:nth-child(8){left:0;margin-left:-5px}.drag-resize button[vf-4c1803]:nth-child(2),.drag-resize button[vf-4c1803]:nth-child(6){left:50%;margin-left:-5px}.drag-resize button[vf-4c1803]:nth-child(4),.drag-resize button[vf-4c1803]:nth-child(8){margin-top:-5px;top:50%}.drag-resize button[vf-4c1803]:first-child{cursor:nw-resize}.drag-resize button[vf-4c1803]:nth-child(2){cursor:n-resize}.drag-resize button[vf-4c1803]:nth-child(3){cursor:ne-resize}.drag-resize button[vf-4c1803]:nth-child(4){cursor:e-resize}.drag-resize button[vf-4c1803]:nth-child(5){cursor:se-resize}.drag-resize button[vf-4c1803]:nth-child(6){cursor:s-resize}.drag-resize button[vf-4c1803]:nth-child(7){cursor:sw-resize}.drag-resize button[vf-4c1803]:nth-child(8){cursor:w-resize}.dropdown[vf-a99c5e]{display:inline-block;position:relative}.dropdown[vf-a99c5e]:hover{z-index:1}.dropdown-btn[vf-a99c5e]{display:flex;width:100%}.dropdown-btn-inner[vf-a99c5e]{flex:1}.dropdown-menu[vf-
|
|
1
|
+
.btn[vf-3d0183]{align-items:center;background:none;background:#fff;border:none;border-radius:4px;box-sizing:border-box;cursor:pointer;display:inline-flex;font-size:inherit;height:28px;outline:none;padding:6px 5px;transition:all .2s}.btn>span[vf-3d0183]{white-space:nowrap}.btn[vf-3d0183]:hover{background:rgba(0,0,0,.1)}.btn-arrow[vf-3d0183]{position:relative;transform:rotate(0);transform-origin:50%;width:1em}.btn.active[vf-3d0183]{background:rgba(0,0,0,.1)}.btn.active .btn-arrow[vf-3d0183]{transform:rotate(180deg)}.btn.highlight[vf-3d0183]{background-color:rgba(41,110,255,.063);color:#296eff}.component-toolbar[vf-ac7e8d]{position:relative;z-index:3}.toolbar[vf-ac7e8d]{background:#fff;border:1px solid #dee0e3;border-radius:5px;bottom:10px;box-shadow:0 4px 8px rgba(0,0,0,.08);box-sizing:border-box;display:flex;font-size:14px;height:36px;opacity:0;padding:0 6px;pointer-events:none;position:absolute;text-align:left;transform:translateY(10px)}.toolbar.active[vf-ac7e8d]{opacity:1;pointer-events:auto;transform:translateY(0);transition-duration:.2s;transition-property:all;transition-timing-function:ease}.divider[vf-ede279]{border-top:1px solid #eee;margin:6px 0}.drag-resize[vf-4c1803]{position:relative;width:100%}.drag-resize .resize-tool[vf-4c1803]{align-items:center;border:1px dashed #296eff;display:none;height:100%;justify-content:center;left:0;pointer-events:none;position:absolute;top:0;width:100%}.drag-resize .resize-tool.active[vf-4c1803]{display:flex}.drag-resize .mask[vf-4c1803]{background-color:rgba(0,0,0,.8);border-radius:3px;color:#fff;font-size:14px;padding:3px 8px;position:relative;text-shadow:1px 2px 3px rgba(0,0,0,.7);white-space:nowrap;z-index:10}.drag-resize .btn-group[vf-4c1803]{height:100%;left:0;position:absolute;top:0;width:100%}.drag-resize button[vf-4c1803]{background:#fff;border:2px solid #296eff;border-radius:50%;box-sizing:border-box;cursor:pointer;font-size:0;height:14px;outline:none;padding:0;pointer-events:auto;position:absolute;width:14px}.drag-resize button[vf-4c1803]:hover{background-color:#fff;box-shadow:0 0 0 3px rgba(18,150,219,.3)}.drag-resize button[vf-4c1803]:first-child,.drag-resize button[vf-4c1803]:nth-child(2),.drag-resize button[vf-4c1803]:nth-child(3){margin-top:-5px;top:0}.drag-resize button[vf-4c1803]:nth-child(3),.drag-resize button[vf-4c1803]:nth-child(4),.drag-resize button[vf-4c1803]:nth-child(5){margin-right:-5px;right:0}.drag-resize button[vf-4c1803]:nth-child(5),.drag-resize button[vf-4c1803]:nth-child(6),.drag-resize button[vf-4c1803]:nth-child(7){bottom:0;margin-bottom:-5px}.drag-resize button[vf-4c1803]:first-child,.drag-resize button[vf-4c1803]:nth-child(7),.drag-resize button[vf-4c1803]:nth-child(8){left:0;margin-left:-5px}.drag-resize button[vf-4c1803]:nth-child(2),.drag-resize button[vf-4c1803]:nth-child(6){left:50%;margin-left:-5px}.drag-resize button[vf-4c1803]:nth-child(4),.drag-resize button[vf-4c1803]:nth-child(8){margin-top:-5px;top:50%}.drag-resize button[vf-4c1803]:first-child{cursor:nw-resize}.drag-resize button[vf-4c1803]:nth-child(2){cursor:n-resize}.drag-resize button[vf-4c1803]:nth-child(3){cursor:ne-resize}.drag-resize button[vf-4c1803]:nth-child(4){cursor:e-resize}.drag-resize button[vf-4c1803]:nth-child(5){cursor:se-resize}.drag-resize button[vf-4c1803]:nth-child(6){cursor:s-resize}.drag-resize button[vf-4c1803]:nth-child(7){cursor:sw-resize}.drag-resize button[vf-4c1803]:nth-child(8){cursor:w-resize}.dropdown[vf-a99c5e]{display:inline-block;position:relative}.dropdown[vf-a99c5e]:hover{z-index:1}.dropdown-btn[vf-a99c5e]{display:flex;width:100%}.dropdown-btn-inner[vf-a99c5e]{flex:1}.dropdown-menu[vf-d1e8a0]{background:#fff;border:1px solid #ddd;border-radius:5px;box-shadow:2px 3px 5px rgba(0,0,0,.1);box-sizing:content-box;height:0;left:-10px;max-height:400px;opacity:0;overflow-y:auto;position:fixed;top:100%;transition-duration:0s;transition:transform .3s,opacity .3s;user-select:none;width:200px;z-index:10}.dropdown-menu[vf-d1e8a0]:hover::-webkit-scrollbar-thumb{background-color:#80848f}.dropdown-menu[vf-d1e8a0]::-webkit-scrollbar-thumb{border:0;border-radius:4px;height:50px;outline:0;outline-offset:0}.dropdown-menu[vf-d1e8a0]::-webkit-scrollbar-thumb:hover{background-color:#495060;height:50px}.dropdown-menu[vf-d1e8a0]::-webkit-scrollbar{border-radius:3px;height:6px;width:6px}.dropdown-menu-content[vf-d1e8a0]{box-sizing:content-box;padding:6px}.keymap[vf-c32a7b]{align-items:center;display:inline-flex;font-family:Microsoft YaHei Mono,Menlo,Monaco,Consolas,Courier New,monospace;font-size:.9em;margin-left:1em;opacity:.6}.keymap[vf-c32a7b] span{margin:0 2px}.menu-heading[vf-acaa5f]{font-size:14px;opacity:.5;padding:10px}.menu-item[vf-c3b9dc]{border-radius:4px;box-sizing:content-box;cursor:pointer;display:flex;font-size:14px;height:26px;justify-content:space-between;line-height:26px;padding:2px 10px;transition:background-color .2s}.menu-item-content[vf-c3b9dc]{display:flex;flex:1;justify-content:space-between}.menu-item.disabled[vf-c3b9dc]{cursor:not-allowed;opacity:.5}.menu-item[vf-c3b9dc]:hover{background:#eee}.menu-item.active[vf-c3b9dc]{background:rgba(0,0,0,.1)}.menu-icon[vf-c3b9dc]{display:inline-block;width:1.8em}.menu-check[vf-c3b9dc]{display:none}.menu-check.checked[vf-c3b9dc]{color:#296eff;display:block}.popup[vf-a23c47]{background:#fff;border:1px solid #ddd;border-radius:5px;box-shadow:2px 3px 5px rgba(0,0,0,.1);overflow:hidden;position:absolute}.toolbar-item[vf-216815]{padding:3px}.heading-icon[vf-2a8a65]{font-size:1.2em;font-weight:700}.heading-icon sub[vf-2a8a65]{font-weight:400}.xnote-source-code.atom-one-dark pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.atom-one-dark code.hljs{padding:3px 5px}.xnote-source-code.atom-one-dark .hljs{background:#282c34;color:#abb2bf}.xnote-source-code.atom-one-dark .hljs-comment,.xnote-source-code.atom-one-dark .hljs-quote{color:#5c6370;font-style:italic}.xnote-source-code.atom-one-dark .hljs-doctag,.xnote-source-code.atom-one-dark .hljs-formula,.xnote-source-code.atom-one-dark .hljs-keyword{color:#c678dd}.xnote-source-code.atom-one-dark .hljs-deletion,.xnote-source-code.atom-one-dark .hljs-name,.xnote-source-code.atom-one-dark .hljs-section,.xnote-source-code.atom-one-dark .hljs-selector-tag,.xnote-source-code.atom-one-dark .hljs-subst{color:#e06c75}.xnote-source-code.atom-one-dark .hljs-literal{color:#56b6c2}.xnote-source-code.atom-one-dark .hljs-addition,.xnote-source-code.atom-one-dark .hljs-attribute,.xnote-source-code.atom-one-dark .hljs-meta .hljs-string,.xnote-source-code.atom-one-dark .hljs-regexp,.xnote-source-code.atom-one-dark .hljs-string{color:#98c379}.xnote-source-code.atom-one-dark .hljs-attr,.xnote-source-code.atom-one-dark .hljs-number,.xnote-source-code.atom-one-dark .hljs-selector-attr,.xnote-source-code.atom-one-dark .hljs-selector-class,.xnote-source-code.atom-one-dark .hljs-selector-pseudo,.xnote-source-code.atom-one-dark .hljs-template-variable,.xnote-source-code.atom-one-dark .hljs-type,.xnote-source-code.atom-one-dark .hljs-variable{color:#d19a66}.xnote-source-code.atom-one-dark .hljs-bullet,.xnote-source-code.atom-one-dark .hljs-link,.xnote-source-code.atom-one-dark .hljs-meta,.xnote-source-code.atom-one-dark .hljs-selector-id,.xnote-source-code.atom-one-dark .hljs-symbol,.xnote-source-code.atom-one-dark .hljs-title{color:#61aeee}.xnote-source-code.atom-one-dark .hljs-built_in,.xnote-source-code.atom-one-dark .hljs-class .hljs-title,.xnote-source-code.atom-one-dark .hljs-title.class_{color:#e6c07b}.xnote-source-code.atom-one-dark .hljs-emphasis{font-style:italic}.xnote-source-code.atom-one-dark .hljs-strong{font-weight:700}.xnote-source-code.atom-one-dark .hljs-link{text-decoration:underline}.xnote-source-code.foundation pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.foundation code.hljs{padding:3px 5px}.xnote-source-code.foundation .hljs{background:#eee;color:#000}.xnote-source-code.foundation .hljs-addition,.xnote-source-code.foundation .hljs-attribute,.xnote-source-code.foundation .hljs-emphasis,.xnote-source-code.foundation .hljs-link{color:#070}.xnote-source-code.foundation .hljs-emphasis{font-style:italic}.xnote-source-code.foundation .hljs-deletion,.xnote-source-code.foundation .hljs-string,.xnote-source-code.foundation .hljs-strong{color:#d14}.xnote-source-code.foundation .hljs-strong{font-weight:700}.xnote-source-code.foundation .hljs-comment,.xnote-source-code.foundation .hljs-quote{color:#998;font-style:italic}.xnote-source-code.foundation .hljs-section,.xnote-source-code.foundation .hljs-title{color:#900}.xnote-source-code.foundation .hljs-class .hljs-title,.xnote-source-code.foundation .hljs-title.class_,.xnote-source-code.foundation .hljs-type{color:#458}.xnote-source-code.foundation .hljs-template-variable,.xnote-source-code.foundation .hljs-variable{color:#369}.xnote-source-code.foundation .hljs-bullet{color:#970}.xnote-source-code.foundation .hljs-meta{color:#34b}.xnote-source-code.foundation .hljs-code,.xnote-source-code.foundation .hljs-keyword,.xnote-source-code.foundation .hljs-literal,.xnote-source-code.foundation .hljs-number,.xnote-source-code.foundation .hljs-selector-tag{color:#099}.xnote-source-code.foundation .hljs-regexp{background-color:#fff0ff;color:#808}.xnote-source-code.foundation .hljs-symbol{color:#990073}.xnote-source-code.foundation .hljs-name,.xnote-source-code.foundation .hljs-selector-class,.xnote-source-code.foundation .hljs-selector-id,.xnote-source-code.foundation .hljs-tag{color:#070}.xnote-source-code.github{
|
|
2
2
|
/*!
|
|
3
3
|
Theme: GitHub
|
|
4
4
|
Description: Light theme as seen on github.com
|
|
@@ -21,4 +21,4 @@
|
|
|
21
21
|
Updated for @stackoverflow/stacks v0.64.0
|
|
22
22
|
Code Blocks: /blob/v0.64.0/lib/css/components/_stacks-code-blocks.less
|
|
23
23
|
Colors: /blob/v0.64.0/lib/css/exports/_stacks-constants-colors.less
|
|
24
|
-
*/}.xnote-source-code.stackoverflow-light pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.stackoverflow-light code.hljs{padding:3px 5px}.xnote-source-code.stackoverflow-light .hljs{background:#f6f6f6;color:#2f3337}.xnote-source-code.stackoverflow-light .hljs-subst{color:#2f3337}.xnote-source-code.stackoverflow-light .hljs-comment{color:#656e77}.xnote-source-code.stackoverflow-light .hljs-attr,.xnote-source-code.stackoverflow-light .hljs-doctag,.xnote-source-code.stackoverflow-light .hljs-keyword,.xnote-source-code.stackoverflow-light .hljs-meta .hljs-keyword,.xnote-source-code.stackoverflow-light .hljs-section,.xnote-source-code.stackoverflow-light .hljs-selector-tag{color:#015692}.xnote-source-code.stackoverflow-light .hljs-attribute{color:#803378}.xnote-source-code.stackoverflow-light .hljs-name,.xnote-source-code.stackoverflow-light .hljs-number,.xnote-source-code.stackoverflow-light .hljs-quote,.xnote-source-code.stackoverflow-light .hljs-selector-id,.xnote-source-code.stackoverflow-light .hljs-template-tag,.xnote-source-code.stackoverflow-light .hljs-type{color:#b75501}.xnote-source-code.stackoverflow-light .hljs-selector-class{color:#015692}.xnote-source-code.stackoverflow-light .hljs-link,.xnote-source-code.stackoverflow-light .hljs-regexp,.xnote-source-code.stackoverflow-light .hljs-selector-attr,.xnote-source-code.stackoverflow-light .hljs-string,.xnote-source-code.stackoverflow-light .hljs-symbol,.xnote-source-code.stackoverflow-light .hljs-template-variable,.xnote-source-code.stackoverflow-light .hljs-variable{color:#54790d}.xnote-source-code.stackoverflow-light .hljs-meta,.xnote-source-code.stackoverflow-light .hljs-selector-pseudo{color:#015692}.xnote-source-code.stackoverflow-light .hljs-built_in,.xnote-source-code.stackoverflow-light .hljs-literal,.xnote-source-code.stackoverflow-light .hljs-title{color:#b75501}.xnote-source-code.stackoverflow-light .hljs-bullet,.xnote-source-code.stackoverflow-light .hljs-code{color:#535a60}.xnote-source-code.stackoverflow-light .hljs-meta .hljs-string{color:#54790d}.xnote-source-code.stackoverflow-light .hljs-deletion{color:#c02d2e}.xnote-source-code.stackoverflow-light .hljs-addition{color:#2f6f44}.xnote-source-code.stackoverflow-light .hljs-emphasis{font-style:italic}.xnote-source-code.stackoverflow-light .hljs-strong{font-weight:700}.xnote-source-code.vs2015 pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.vs2015 code.hljs{padding:3px 5px}.xnote-source-code.vs2015 .hljs{background:#1e1e1e;color:#dcdcdc}.xnote-source-code.vs2015 .hljs-keyword,.xnote-source-code.vs2015 .hljs-literal,.xnote-source-code.vs2015 .hljs-name,.xnote-source-code.vs2015 .hljs-symbol{color:#569cd6}.xnote-source-code.vs2015 .hljs-link{color:#569cd6;text-decoration:underline}.xnote-source-code.vs2015 .hljs-built_in,.xnote-source-code.vs2015 .hljs-type{color:#4ec9b0}.xnote-source-code.vs2015 .hljs-class,.xnote-source-code.vs2015 .hljs-number{color:#b8d7a3}.xnote-source-code.vs2015 .hljs-meta .hljs-string,.xnote-source-code.vs2015 .hljs-string{color:#d69d85}.xnote-source-code.vs2015 .hljs-regexp,.xnote-source-code.vs2015 .hljs-template-tag{color:#9a5334}.xnote-source-code.vs2015 .hljs-formula,.xnote-source-code.vs2015 .hljs-function,.xnote-source-code.vs2015 .hljs-params,.xnote-source-code.vs2015 .hljs-subst,.xnote-source-code.vs2015 .hljs-title{color:#dcdcdc}.xnote-source-code.vs2015 .hljs-comment,.xnote-source-code.vs2015 .hljs-quote{color:#57a64a;font-style:italic}.xnote-source-code.vs2015 .hljs-doctag{color:#608b4e}.xnote-source-code.vs2015 .hljs-meta,.xnote-source-code.vs2015 .hljs-meta .hljs-keyword,.xnote-source-code.vs2015 .hljs-tag{color:#9b9b9b}.xnote-source-code.vs2015 .hljs-template-variable,.xnote-source-code.vs2015 .hljs-variable{color:#bd63c5}.xnote-source-code.vs2015 .hljs-attr,.xnote-source-code.vs2015 .hljs-attribute{color:#9cdcfe}.xnote-source-code.vs2015 .hljs-section{color:gold}.xnote-source-code.vs2015 .hljs-emphasis{font-style:italic}.xnote-source-code.vs2015 .hljs-strong{font-weight:700}.xnote-source-code.vs2015 .hljs-bullet,.xnote-source-code.vs2015 .hljs-selector-attr,.xnote-source-code.vs2015 .hljs-selector-class,.xnote-source-code.vs2015 .hljs-selector-id,.xnote-source-code.vs2015 .hljs-selector-pseudo,.xnote-source-code.vs2015 .hljs-selector-tag{color:#d7ba7d}.xnote-source-code.vs2015 .hljs-addition{background-color:#144212;display:inline-block;width:100%}.xnote-source-code.vs2015 .hljs-deletion{background-color:#600;display:inline-block;width:100%}.xnote-source-code.xcode .xnote-source-code-container{border:1px solid #eee}.xnote-source-code.xcode .xnote-source-code-line-number-bg{background-color:#fafafa}.xnote-source-code.xcode pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.xcode code.hljs{padding:3px 5px}.xnote-source-code.xcode .hljs{background:#fff;color:#000}.xnote-source-code.xcode .xml .hljs-meta{color:silver}.xnote-source-code.xcode .hljs-comment,.xnote-source-code.xcode .hljs-quote{color:#007400}.xnote-source-code.xcode .hljs-attribute,.xnote-source-code.xcode .hljs-keyword,.xnote-source-code.xcode .hljs-literal,.xnote-source-code.xcode .hljs-name,.xnote-source-code.xcode .hljs-selector-tag,.xnote-source-code.xcode .hljs-tag{color:#aa0d91}.xnote-source-code.xcode .hljs-template-variable,.xnote-source-code.xcode .hljs-variable{color:#3f6e74}.xnote-source-code.xcode .hljs-code,.xnote-source-code.xcode .hljs-meta .hljs-string,.xnote-source-code.xcode .hljs-string{color:#c41a16}.xnote-source-code.xcode .hljs-link,.xnote-source-code.xcode .hljs-regexp{color:#0e0eff}.xnote-source-code.xcode .hljs-bullet,.xnote-source-code.xcode .hljs-number,.xnote-source-code.xcode .hljs-symbol,.xnote-source-code.xcode .hljs-title{color:#1c00cf}.xnote-source-code.xcode .hljs-meta,.xnote-source-code.xcode .hljs-section{color:#643820}.xnote-source-code.xcode .hljs-built_in,.xnote-source-code.xcode .hljs-class .hljs-title,.xnote-source-code.xcode .hljs-params,.xnote-source-code.xcode .hljs-title.class_,.xnote-source-code.xcode .hljs-type{color:#5c2699}.xnote-source-code.xcode .hljs-attr{color:#836c28}.xnote-source-code.xcode .hljs-subst{color:#000}.xnote-source-code.xcode .hljs-formula{background-color:#eee;font-style:italic}.xnote-source-code.xcode .hljs-addition{background-color:#baeeba}.xnote-source-code.xcode .hljs-deletion{background-color:#ffc8bd}.xnote-source-code.xcode .hljs-selector-class,.xnote-source-code.xcode .hljs-selector-id{color:#9b703f}.xnote-source-code.xcode .hljs-doctag,.xnote-source-code.xcode .hljs-strong{font-weight:700}.xnote-source-code.xcode .hljs-emphasis{font-style:italic}.xnote-source-code.xnote-dark pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.xnote-dark code.hljs{padding:3px 5px}.xnote-source-code.xnote-dark .hljs{background:#182324;color:#a9aeb2}.xnote-source-code.xnote-dark .hljs-comment,.xnote-source-code.xnote-dark .hljs-quote{color:#5c6d6e;font-style:italic}.xnote-source-code.xnote-dark .hljs-doctag,.xnote-source-code.xnote-dark .hljs-formula,.xnote-source-code.xnote-dark .hljs-keyword{color:#71b155;font-weight:700}.xnote-source-code.xnote-dark .hljs-deletion,.xnote-source-code.xnote-dark .hljs-section,.xnote-source-code.xnote-dark .hljs-selector-tag{color:#e06c75}.xnote-source-code.xnote-dark .hljs-literal{color:#388138}.xnote-source-code.xnote-dark .hljs-addition,.xnote-source-code.xnote-dark .hljs-attribute,.xnote-source-code.xnote-dark .hljs-meta .hljs-string,.xnote-source-code.xnote-dark .hljs-regexp,.xnote-source-code.xnote-dark .hljs-string{color:#dd7600}.xnote-source-code.xnote-dark .hljs-number,.xnote-source-code.xnote-dark .hljs-selector-attr,.xnote-source-code.xnote-dark .hljs-selector-class,.xnote-source-code.xnote-dark .hljs-selector-pseudo,.xnote-source-code.xnote-dark .hljs-template-variable,.xnote-source-code.xnote-dark .hljs-type,.xnote-source-code.xnote-dark .hljs-variable{color:#388138}.xnote-source-code.xnote-dark .hljs-bullet,.xnote-source-code.xnote-dark .hljs-link,.xnote-source-code.xnote-dark .hljs-meta,.xnote-source-code.xnote-dark .hljs-name,.xnote-source-code.xnote-dark .hljs-selector-id,.xnote-source-code.xnote-dark .hljs-subst,.xnote-source-code.xnote-dark .hljs-symbol,.xnote-source-code.xnote-dark .hljs-title{color:#2e89c1}.xnote-source-code.xnote-dark .hljs-built_in,.xnote-source-code.xnote-dark .hljs-class .hljs-title,.xnote-source-code.xnote-dark .hljs-title.class_{color:#e6c07b}.xnote-source-code.xnote-dark .hljs-emphasis{font-style:italic}.xnote-source-code.xnote-dark .hljs-strong{font-weight:700}.xnote-source-code.xnote-dark .hljs-link{text-decoration:underline}.xnote-source-code.xnote-dark-blue pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.xnote-dark-blue code.hljs{padding:3px 5px}.xnote-source-code.xnote-dark-blue .hljs{background:#1c222a;color:#a9aeb2}.xnote-source-code.xnote-dark-blue .hljs-comment,.xnote-source-code.xnote-dark-blue .hljs-quote{color:#5c6d6e;font-style:italic}.xnote-source-code.xnote-dark-blue .hljs-doctag,.xnote-source-code.xnote-dark-blue .hljs-formula,.xnote-source-code.xnote-dark-blue .hljs-keyword{color:#0086b3;font-weight:700}.xnote-source-code.xnote-dark-blue .hljs-deletion,.xnote-source-code.xnote-dark-blue .hljs-section,.xnote-source-code.xnote-dark-blue .hljs-selector-tag{color:#e06c75}.xnote-source-code.xnote-dark-blue .hljs-literal{color:#388138}.xnote-source-code.xnote-dark-blue .hljs-addition,.xnote-source-code.xnote-dark-blue .hljs-attribute,.xnote-source-code.xnote-dark-blue .hljs-meta .hljs-string,.xnote-source-code.xnote-dark-blue .hljs-regexp,.xnote-source-code.xnote-dark-blue .hljs-string{color:#ce5a70}.xnote-source-code.xnote-dark-blue .hljs-number,.xnote-source-code.xnote-dark-blue .hljs-selector-attr,.xnote-source-code.xnote-dark-blue .hljs-selector-class,.xnote-source-code.xnote-dark-blue .hljs-selector-pseudo,.xnote-source-code.xnote-dark-blue .hljs-template-variable,.xnote-source-code.xnote-dark-blue .hljs-type,.xnote-source-code.xnote-dark-blue .hljs-variable{color:#388138}.xnote-source-code.xnote-dark-blue .hljs-bullet,.xnote-source-code.xnote-dark-blue .hljs-link,.xnote-source-code.xnote-dark-blue .hljs-meta,.xnote-source-code.xnote-dark-blue .hljs-name,.xnote-source-code.xnote-dark-blue .hljs-selector-id,.xnote-source-code.xnote-dark-blue .hljs-subst,.xnote-source-code.xnote-dark-blue .hljs-symbol,.xnote-source-code.xnote-dark-blue .hljs-title{color:#2e89c1}.xnote-source-code.xnote-dark-blue .hljs-built_in,.xnote-source-code.xnote-dark-blue .hljs-class .hljs-title,.xnote-source-code.xnote-dark-blue .hljs-title.class_{color:#399fcf}.xnote-source-code.xnote-dark-blue .hljs-emphasis{font-style:italic}.xnote-source-code.xnote-dark-blue .hljs-strong{font-weight:700}.xnote-source-code.xnote-dark-blue .hljs-link{text-decoration:underline}.xnote-source-code code{background:none;border:none;border-radius:0;padding:0;vertical-align:inherit}.xnote-source-code{margin-bottom:16px;margin-top:16px;position:relative}.xnote-source-code-container{border-radius:5px;display:flex;line-height:1.418em;overflow:hidden;position:relative}.xnote-source-code-container.xnote-source-code-auto-break .xnote-source-code-line{word-wrap:break-word;white-space:pre-wrap;word-break:break-all}code,kbd,pre,samp{font-family:Microsoft YaHei Mono,Menlo,Monaco,Consolas,Courier New,monospace}.xnote-source-code-line-number-bg{background-color:inherit;display:none;position:relative;width:3em;z-index:2}.xnote-source-code.xnote-source-code-line-number .xnote-source-code-line-number-bg{display:block}.xnote-source-code.xnote-source-code-line-number .xnote-source-code-line{margin-left:-4em}.xnote-source-code-content{counter-reset:codeNum;flex:1;font-size:15px;margin:0;max-height:450px;overflow:auto;padding:15px 0;position:relative}.xnote-source-code-content:hover::-webkit-scrollbar-thumb{background-color:#80848f}.xnote-source-code-content::-webkit-scrollbar-thumb{border:0;border-radius:4px;height:50px;outline:0;outline-offset:0}.xnote-source-code-content::-webkit-scrollbar-thumb:hover{background-color:#495060;height:50px}.xnote-source-code-content::-webkit-scrollbar{border-radius:3px;height:6px;width:6px}.xnote-source-code-content-highlight .xnote-source-code-line{opacity:.36}.xnote-source-code-line{display:flex;margin:2px 0}.xnote-source-code-line-content{display:block;padding:0 20px}.xnote-source-code-line-number .xnote-source-code-line-content{padding:0 20px 0 10px}.xnote-source-code-line-number .xnote-source-code-line:before{box-sizing:border-box;content:counter(codeNum);counter-increment:codeNum;left:0;min-width:4em;opacity:.5;overflow:hidden;padding-right:10px;position:sticky;text-align:right;transform:translateX(-4em);white-space:nowrap;z-index:2}.xnote-source-code-content-highlight .xnote-source-code-line-emphasize{opacity:1}.xnote-source-code-lang{font-size:13px;opacity:.5;padding:4px 10px;pointer-events:none;position:absolute;right:0;top:0}.xnote-paragraph p{margin:8px 0}.xnote-blockquote{border-left:2px solid #296eff;margin:1em 0;padding:0 15px}.xnote-blockquote>:first-child{margin-top:0}.xnote-blockquote>:last-child{margin-bottom:0}.xnote-highlight-box{background:#fcf5ce;border:1px solid #f5c774;border-radius:4px;display:flex;margin:16px 0}.xnote-highlight-box-left{padding-top:.65em;text-align:center;width:40px}.xnote-highlight-box-content{flex:1}.xnote-highlight-box-icon button{background:none;border:none;border-radius:4px;cursor:pointer;font-size:1.2em;height:30px;padding:0;width:30px}.xnote-highlight-box-icon button:hover{background:rgba(0,0,0,.1)}.xnote-highlight-box-icons{text-align:left}.xnote-highlight-box-icons button{background:none;border:none;border-radius:4px;cursor:pointer;font-size:22px;height:30px;padding:0;width:30px}.xnote-highlight-box-icons button:hover{background:rgba(0,0,0,.1)}.xnote-highlight-box-content{padding:5px}.xnote-highlight-box-heading{font-size:14px;opacity:.8;padding:10px 0 10px 3px}.xnote-todolist{align-items:center;display:flex;margin:8px 0}.xnote-todolist-icon{color:#296eff;cursor:pointer;margin-right:6px}.xnote-todolist-content{min-width:2em}.xnote-todolist-content[style*=text-indent]{text-indent:0!important}.xnote-todolist-content[style*=text-align]{text-align:left!important}.xnote-list{margin:8px 0;padding:0}.xnote-list>li{display:flex}.xnote-list-content{min-width:2em}ul.xnote-list .xnote-list-type{font-family:initial;font-size:16px}.xnote-list-type{box-sizing:border-box;color:#296eff;flex-shrink:0;text-align:left;text-indent:0;white-space:nowrap;width:24px}.xnote-order-btn{padding-left:5px}.xnote-list-content[style*=text-indent]{text-indent:0!important}.xnote-list-content[style*=text-align]{text-align:left!important}.color-type[vf-1fbbdf]{font-size:13px;padding:5px 0}.text-colors[vf-1fbbdf]{font-size:14px;overflow:hidden}.text-colors div[vf-1fbbdf]{border:1px solid #eee;border-radius:4px;box-sizing:border-box;cursor:pointer;float:left;height:22px;line-height:20px;margin:4px 3px;text-align:center;width:22px}.text-colors div.active[vf-1fbbdf]{box-shadow:0 0 0 2px #296eff}.text-colors div[vf-1fbbdf]:hover{box-shadow:0 0 0 2px rgba(41,110,255,.188)}.background-colors[vf-1fbbdf]{font-size:14px;overflow:hidden}.background-colors div[vf-1fbbdf]{border-radius:4px;color:#fff;cursor:pointer;float:left;height:22px;line-height:22px;margin:4px 3px;text-align:center;width:22px}.background-colors div.active[vf-1fbbdf]{box-shadow:0 0 0 2px #296eff}.background-colors div[vf-1fbbdf]:hover{box-shadow:0 0 0 2px rgba(41,110,255,.188)}.background-colors .no-background[vf-1fbbdf]{border:1px solid #eee;box-sizing:border-box;overflow:hidden;position:relative}.background-colors .no-background[vf-1fbbdf]:before{background:#aaa;content:"";height:1px;left:-28px;position:absolute;top:0;transform:rotate(-45deg);width:100px}.background[vf-1fbbdf]{display:inline-block;height:1em;margin-right:6px;position:relative;text-align:center;width:1em}.background>span[vf-1fbbdf]{border-radius:4px;height:20px;left:-2px;line-height:20px;position:absolute;top:-2px;width:20px}.input-group[vf-269a0b]{display:flex;padding:5px 10px}.input-group input[vf-269a0b]{border:1px solid #ddd;border-radius:4px;margin-right:5px;padding:2px 6px}.input-group input[vf-269a0b]:focus{border-color:#296eff}.input-group button[vf-269a0b]{border:1px solid #ddd;border-radius:4px;font-size:14px}.btn-group[vf-cf8e1c]{font-size:15px;padding:5px 0;text-align:center}.btn-group button[vf-cf8e1c]{margin:2px 5px}.xnote-image{display:inline-block}.xnote-image,.xnote-image img,.xnote-video{max-width:100%}.xnote-video{display:inline-block}.xnote-video video{max-width:100%}.left-toolbar[vf-b05292]{font-size:15px;left:-10px;position:absolute;top:0;z-index:10}.left-toolbar-btn-wrap[vf-b05292]{position:absolute;transition:all .2s}.left-toolbar-btn[vf-b05292]{background:#fff;border:1px solid #ddd;border-radius:5px;cursor:pointer;height:26px}.left-toolbar-btn span[vf-b05292]{align-items:center;display:inline-flex}.btn-group[vf-b05292]{font-size:15px;padding:5px 0;text-align:center}.btn-group button[vf-b05292]{margin:2px 5px}.toolbar[vf-fee98b]{background:#fff;border:1px solid #dee0e3;border-radius:5px;box-shadow:0 4px 8px rgba(0,0,0,.08);box-sizing:border-box;display:flex;font-size:13px;height:36px;opacity:0;padding:0 6px;pointer-events:none;position:absolute;text-align:left;transform:translateX(-50%);transition-duration:.4s;transition-property:all;transition-timing-function:ease;z-index:3}.xnote-at{color:#296eff}.xnote-at-complete{background-color:#296eff;border-radius:1em;color:#fff;font-size:.9em;margin-left:2px;margin-right:2px;padding:2px 6px}.xnote-at-input{display:inline-block;min-width:2em}.xnote-at-member{border-radius:4px;cursor:pointer;display:flex;height:50px;margin:4px 0;overflow:hidden;padding:5px;transition:background-color .2s;width:100%}.xnote-at-member.selected,.xnote-at-member:hover{background:#eee}.xnote-at-member-avatar{align-items:center;display:flex;font-size:12px;text-align:center;width:40px}.xnote-at-member-avatar img,.xnote-at-member-avatar-bg{background:#eee;border-radius:50%;display:inline-block;font-size:.9em;height:36px;line-height:36px;overflow:hidden;width:36px}.xnote-at-member-info{flex:1;font-size:14px;padding-left:10px;width:156px}.xnote-at-member-desc,.xnote-at-member-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xnote-at-member-desc{font-size:12px;opacity:.7}.xnote-root{color:#1f2329}.xnote-root * ::selection{background:rgba(20,99,252,.34)}.xnote-content{font-size:16px;line-height:1.65}.xnote-content:before{content:attr(data-placeholder);opacity:.5;position:absolute}.xnote-table{display:inline-block;margin-bottom:16px;margin-top:16px;max-width:100%;position:relative}.xnote-table-content{border-collapse:collapse;border-spacing:0;table-layout:fixed;width:0}.xnote-table-content.hide-selection * ::selection{background:none}.xnote-table-content td{border:1px solid #ddd;box-sizing:content-box;padding:0 10px}.xnote-table-container,.xnote-table-wrapper{position:relative}.xnote-table-delete-btn{background:#eee;border:none;border-radius:4px;color:#5c6370;cursor:pointer;height:30px;line-height:30px;width:24px}.xnote-table-delete-btn:hover{color:#333}.drag-line[vf-681de2]{border-color:transparent;border-style:solid;border-width:0 5px;bottom:0;box-sizing:content-box;cursor:col-resize;display:none;margin-left:-5px;position:absolute;top:0;width:2px}.drag-line[vf-681de2]:before{background:#296eff;content:"";inset:0;position:absolute}.top-bar[vf-39cb2c]{display:none;left:0;position:absolute;right:0;top:0}.top-bar.active[vf-39cb2c]{display:block}.top-delete-toolbar[vf-39cb2c]{height:0;position:relative;top:-10px}.toolbar-wrapper[vf-39cb2c]{height:60px;left:0;pointer-events:none;position:absolute;right:0;top:-60px}.insert-bar[vf-39cb2c]{box-sizing:content-box;height:30px;margin-left:-10px;margin-right:-10px;overflow:hidden;padding-left:10px;padding-right:10px;padding-top:30px}.insert-bar table[vf-39cb2c]{border-collapse:collapse;border-spacing:0;position:relative;table-layout:fixed;z-index:1}.insert-bar table td[vf-39cb2c]{border:1px solid transparent;box-sizing:border-box;height:18px;position:relative}.insert-bar table .tool-container[vf-39cb2c]{height:18px}.insert-bar table .tool-container>div[vf-39cb2c],.insert-bar table .tool-container>span[vf-39cb2c]{pointer-events:auto}.insert-bar table .insert-btn-wrap[vf-39cb2c]{cursor:pointer;height:21px;position:absolute;right:-11px;top:-2px;width:21px;z-index:1}.insert-bar table .insert-btn-wrap .insert-btn[vf-39cb2c]{background:#ccc;border:none;border-radius:50%;box-shadow:none;color:#fff;cursor:inherit;font-size:16px;height:100%;line-height:20px;padding:0;position:relative;text-align:center;transform:scale(.2);transition:transform .15s;width:100%}.insert-bar table .insert-btn-wrap .insert-btn[vf-39cb2c]:after{background:inherit;content:"";height:10px;left:5.5px;position:absolute;top:12px;transform:rotate(45deg);width:10px;z-index:-1}.insert-bar table .insert-btn-wrap:hover .insert-btn[vf-39cb2c]{background:#296eff;transform:scale(1)}.action-bar[vf-39cb2c]{margin-top:-12px;overflow:hidden;pointer-events:auto;position:relative;z-index:0}.action-bar.active[vf-39cb2c]{display:block}.action-bar table[vf-39cb2c]{border-collapse:collapse;border-radius:4px 4px 0 0;border-spacing:0;overflow:hidden;table-layout:fixed}.action-bar table td[vf-39cb2c]{background:#eee;border:1px solid #eee;box-sizing:border-box;cursor:pointer;height:12px;position:relative}.action-bar table td[vf-39cb2c]:hover{background:#dedede}.action-bar table td.active[vf-39cb2c]{background:#296eff;border-color:#2358c9}.action-bar table td.active[vf-39cb2c]:before{border-color:inherit;border-style:solid;border-width:0 0 0 1px;bottom:0;content:"";left:-1px;position:absolute;top:-1px}.scroll-container[vf-c3d159]{overflow-y:auto}.scroll-container[vf-c3d159]:hover::-webkit-scrollbar-thumb{background-color:#80848f}.scroll-container[vf-c3d159]::-webkit-scrollbar-thumb{border:0;border-radius:4px;height:50px;outline:0;outline-offset:0}.scroll-container[vf-c3d159]::-webkit-scrollbar-thumb:hover{background-color:#495060;height:50px}.scroll-container[vf-c3d159]::-webkit-scrollbar{border-radius:3px;height:6px;width:6px}.scroll-container[vf-c3d159]:before{background-image:linear-gradient(90deg,rgba(0,0,0,.1),transparent);border-left:1px solid #ddd;left:0}.scroll-container[vf-c3d159]:after,.scroll-container[vf-c3d159]:before{bottom:6px;content:"";pointer-events:none;position:absolute;top:0;width:12px}.scroll-container[vf-c3d159]:after{background:linear-gradient(90deg,transparent,rgba(0,0,0,.1));border-right:1px solid #ddd;right:0}.scroll-container.left-end[vf-c3d159]:before,.scroll-container.right-end[vf-c3d159]:after{display:none}.left-bar[vf-aaece0]{display:none;left:0;margin-left:-30px;position:absolute;top:0;width:30px}.left-bar.active[vf-aaece0]{display:flex}.toolbar-item[vf-aaece0]{align-items:center;display:flex;inset:0;position:absolute}.insert-bar[vf-aaece0]{width:18px}.insert-bar table[vf-aaece0]{border-collapse:collapse;border-spacing:0;table-layout:fixed}.insert-bar table td[vf-aaece0]{border:1px solid transparent;position:relative}.insert-bar table .insert-btn-wrap[vf-aaece0]{bottom:-8px;cursor:pointer;height:21px;left:0;position:absolute;width:21px;z-index:1}.insert-bar table .insert-btn-wrap .insert-btn[vf-aaece0]{background:#ccc;border:none;border-radius:50%;box-shadow:none;color:#fff;cursor:inherit;font-size:16px;height:100%;line-height:20px;padding:0;position:relative;text-align:center;transform:scale(.2);transition:transform .15s;width:100%}.insert-bar table .insert-btn-wrap .insert-btn[vf-aaece0]:after{background:inherit;content:"";height:10px;left:11px;position:absolute;top:5.5px;transform:rotate(45deg);width:10px;z-index:-1}.insert-bar table .insert-btn-wrap:hover .insert-btn[vf-aaece0]{background:#296eff;transform:scale(1)}.action-bar[vf-aaece0]{width:12px}.action-bar table[vf-aaece0]{border-collapse:collapse;border-radius:4px 0 0 4px;border-spacing:0;overflow:hidden;table-layout:fixed;width:13px}.action-bar table td[vf-aaece0]{background:#eee;border:1px solid #eee;box-sizing:border-box;cursor:pointer;height:12px;position:relative}.action-bar table td[vf-aaece0]:hover{background:#dedede}.action-bar table td.active[vf-aaece0]{background:#296eff;border-color:#2358c9}.action-bar table td.active[vf-aaece0]:before{border-color:inherit;border-style:solid;border-width:1px 0 0;content:"";left:-1px;position:absolute;right:-1px;top:-1px}.drag-line[vf-d4c4a9]{background:#296eff;contain:layout size style;height:2px;left:0;max-width:100%;position:absolute;right:0;z-index:1}.mask[vf-4a5ad1]{background:rgba(41,110,255,.063);border:1px solid #296eff;box-sizing:content-box;display:none;pointer-events:none;position:absolute}.mask.active[vf-4a5ad1]{display:block}@font-face{font-display:block;font-family:textbus;font-style:normal;font-weight:400;src:url(fonts/textbus.ttf?fw0xu0) format("truetype"),url(fonts/textbus.woff?fw0xu0) format("woff"),url(fonts/textbus.svg?fw0xu0#textbus) format("svg")}[class*=" xnote-icon-"],[class^=xnote-icon-]{speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:textbus!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.xnote-icon-heading-h1:before{content:"\e925"}.xnote-icon-heading-h2:before{content:"\e926"}.xnote-icon-heading-h3:before{content:"\e927"}.xnote-icon-heading-h4:before{content:"\e928"}.xnote-icon-heading-h5:before{content:"\e929"}.xnote-icon-heading-h6:before{content:"\e92a"}.xnote-icon-heading:before{content:"\e92b"}.xnote-icon-more:before{content:"\e921"}.xnote-icon-text-wrap:before{content:"\e924"}.xnote-icon-checkmark:before{content:"\e922"}.xnote-icon-arrow-left:before{content:"\e900"}.xnote-icon-arrow-right:before{content:"\e901"}.xnote-icon-arrow-top:before{content:"\e902"}.xnote-icon-arrow-bottom:before{content:"\e903"}.xnote-icon-source-code:before{content:"\e904"}.xnote-icon-insert-paragraph-after:before{content:"\e905"}.xnote-icon-insert-paragraph-before:before{content:"\e906"}.xnote-icon-components:before{content:"\e907"}.xnote-icon-table-border:before{content:"\e908"}.xnote-icon-table-remove:before{content:"\e909"}.xnote-icon-device:before{content:"\e90a"}.xnote-icon-paint-bucket:before{content:"\e90b"}.xnote-icon-background-color:before{content:"\e90c"}.xnote-icon-color:before{content:"\e90d"}.xnote-icon-brush:before{content:"\e90e"}.xnote-icon-table-edit:before{content:"\e90f"}.xnote-icon-table-split-columns:before{content:"\e910"}.xnote-icon-table-delete-row-top:before{content:"\e911"}.xnote-icon-table-delete-row-bottom:before{content:"\e912"}.xnote-icon-table-delete-column-right:before{content:"\e913"}.xnote-icon-table-delete-column-left:before{content:"\e914"}.xnote-icon-table-add-row-top:before{content:"\e915"}.xnote-icon-table-add-row-bottom:before{content:"\e916"}.xnote-icon-table-add-column-right:before{content:"\e917"}.xnote-icon-table-add-column-left:before{content:"\e918"}.xnote-icon-image:before{content:"\e919"}.xnote-icon-text-indent:before{content:"\e91a"}.xnote-icon-music:before{content:"\e91b"}.xnote-icon-video:before{content:"\e91c"}.xnote-icon-unlink:before{content:"\e91d"}.xnote-icon-select:before{content:"\e91e"}.xnote-icon-tree:before{content:"\e91f"}.xnote-icon-setting:before{content:"\e920"}.xnote-icon-copy:before{content:"\e92c"}.xnote-icon-paste:before{content:"\e92d"}.xnote-icon-pushpin:before{content:"\e946"}.xnote-icon-upload:before{content:"\e961"}.xnote-icon-history-back:before{content:"\e967"}.xnote-icon-history-forward:before{content:"\e968"}.xnote-icon-quotes-right:before{content:"\e978"}.xnote-icon-loading:before{content:"\e97f"}.xnote-icon-search:before{content:"\e986"}.xnote-icon-enlarge:before{content:"\e989"}.xnote-icon-shrink:before{content:"\e98a"}.xnote-icon-bin:before{content:"\e9ac"}.xnote-icon-list-numbered:before{content:"\e9b9"}.xnote-icon-list:before{content:"\e9bb"}.xnote-icon-link:before{content:"\e9cb"}.xnote-icon-emoji:before{content:"\e9e2"}.xnote-icon-plus:before{content:"\ea0a"}.xnote-icon-command:before{content:"\ea4e"}.xnote-icon-shift:before{content:"\ea4f"}.xnote-icon-ctrl:before{content:"\ea50"}.xnote-icon-opt:before{content:"\ea51"}.xnote-icon-cut:before{content:"\ea5a"}.xnote-icon-line-height:before{content:"\ea5f"}.xnote-icon-letter-spacing:before{content:"\ea60"}.xnote-icon-font-size:before{content:"\ea61"}.xnote-icon-bold:before{content:"\ea62"}.xnote-icon-underline:before{content:"\ea63"}.xnote-icon-italic:before{content:"\ea64"}.xnote-icon-strikethrough:before{content:"\ea65"}.xnote-icon-superscript:before{content:"\ea69"}.xnote-icon-subscript:before{content:"\ea6a"}.xnote-icon-clear-formatting:before{content:"\ea6f"}.xnote-icon-table:before{content:"\ea71"}.xnote-icon-ltr:before{content:"\ea74"}.xnote-icon-rtl:before{content:"\ea75"}.xnote-icon-code:before{content:"\ea80"}.xnote-icon-terminal:before{content:"\ea81"}.xnote-icon-bullhorn:before{content:"\e923"}.xnote-icon-price-tag:before{content:"\e935"}.xnote-icon-pushpin1:before{content:"\e947"}.xnote-icon-warning:before{content:"\ea07"}.xnote-icon-notification:before{content:"\ea08"}.xnote-icon-question:before{content:"\ea09"}.xnote-icon-info:before{content:"\ea0c"}.xnote-icon-cancel-circle:before{content:"\ea0d"}.xnote-icon-blocked:before{content:"\ea0e"}.xnote-icon-checkbox-checked:before{content:"\ea52"}.xnote-icon-checkbox-unchecked:before{content:"\ea53"}.xnote-icon-pilcrow:before{content:"\ea73"}.xnote-icon-paragraph-left:before{content:"\ea77"}.xnote-icon-paragraph-center:before{content:"\ea78"}.xnote-icon-paragraph-right:before{content:"\ea79"}.xnote-icon-paragraph-justify:before{content:"\ea7a"}.xnote-icon-indent-increase:before{content:"\ea7b"}.xnote-icon-indent-decrease:before{content:"\ea7c"}.xnote-h1{font-size:2.2em;font-weight:600}.xnote-h2{font-size:1.8em;font-weight:600}.xnote-h3{font-size:1.4em;font-weight:600}.xnote-h4{font-size:1em;font-weight:600}.xnote-h5{font-size:.9em;font-weight:600}.xnote-h6{font-size:.8em;font-weight:600}.xnote-code{border:1px solid rgba(0,0,0,.2);border-radius:4px;font-family:Microsoft YaHei Mono,Menlo,Monaco,Consolas,Courier New,monospace;margin:0 3px;padding:2px 3px}
|
|
24
|
+
*/}.xnote-source-code.stackoverflow-light pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.stackoverflow-light code.hljs{padding:3px 5px}.xnote-source-code.stackoverflow-light .hljs{background:#f6f6f6;color:#2f3337}.xnote-source-code.stackoverflow-light .hljs-subst{color:#2f3337}.xnote-source-code.stackoverflow-light .hljs-comment{color:#656e77}.xnote-source-code.stackoverflow-light .hljs-attr,.xnote-source-code.stackoverflow-light .hljs-doctag,.xnote-source-code.stackoverflow-light .hljs-keyword,.xnote-source-code.stackoverflow-light .hljs-meta .hljs-keyword,.xnote-source-code.stackoverflow-light .hljs-section,.xnote-source-code.stackoverflow-light .hljs-selector-tag{color:#015692}.xnote-source-code.stackoverflow-light .hljs-attribute{color:#803378}.xnote-source-code.stackoverflow-light .hljs-name,.xnote-source-code.stackoverflow-light .hljs-number,.xnote-source-code.stackoverflow-light .hljs-quote,.xnote-source-code.stackoverflow-light .hljs-selector-id,.xnote-source-code.stackoverflow-light .hljs-template-tag,.xnote-source-code.stackoverflow-light .hljs-type{color:#b75501}.xnote-source-code.stackoverflow-light .hljs-selector-class{color:#015692}.xnote-source-code.stackoverflow-light .hljs-link,.xnote-source-code.stackoverflow-light .hljs-regexp,.xnote-source-code.stackoverflow-light .hljs-selector-attr,.xnote-source-code.stackoverflow-light .hljs-string,.xnote-source-code.stackoverflow-light .hljs-symbol,.xnote-source-code.stackoverflow-light .hljs-template-variable,.xnote-source-code.stackoverflow-light .hljs-variable{color:#54790d}.xnote-source-code.stackoverflow-light .hljs-meta,.xnote-source-code.stackoverflow-light .hljs-selector-pseudo{color:#015692}.xnote-source-code.stackoverflow-light .hljs-built_in,.xnote-source-code.stackoverflow-light .hljs-literal,.xnote-source-code.stackoverflow-light .hljs-title{color:#b75501}.xnote-source-code.stackoverflow-light .hljs-bullet,.xnote-source-code.stackoverflow-light .hljs-code{color:#535a60}.xnote-source-code.stackoverflow-light .hljs-meta .hljs-string{color:#54790d}.xnote-source-code.stackoverflow-light .hljs-deletion{color:#c02d2e}.xnote-source-code.stackoverflow-light .hljs-addition{color:#2f6f44}.xnote-source-code.stackoverflow-light .hljs-emphasis{font-style:italic}.xnote-source-code.stackoverflow-light .hljs-strong{font-weight:700}.xnote-source-code.vs2015 pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.vs2015 code.hljs{padding:3px 5px}.xnote-source-code.vs2015 .hljs{background:#1e1e1e;color:#dcdcdc}.xnote-source-code.vs2015 .hljs-keyword,.xnote-source-code.vs2015 .hljs-literal,.xnote-source-code.vs2015 .hljs-name,.xnote-source-code.vs2015 .hljs-symbol{color:#569cd6}.xnote-source-code.vs2015 .hljs-link{color:#569cd6;text-decoration:underline}.xnote-source-code.vs2015 .hljs-built_in,.xnote-source-code.vs2015 .hljs-type{color:#4ec9b0}.xnote-source-code.vs2015 .hljs-class,.xnote-source-code.vs2015 .hljs-number{color:#b8d7a3}.xnote-source-code.vs2015 .hljs-meta .hljs-string,.xnote-source-code.vs2015 .hljs-string{color:#d69d85}.xnote-source-code.vs2015 .hljs-regexp,.xnote-source-code.vs2015 .hljs-template-tag{color:#9a5334}.xnote-source-code.vs2015 .hljs-formula,.xnote-source-code.vs2015 .hljs-function,.xnote-source-code.vs2015 .hljs-params,.xnote-source-code.vs2015 .hljs-subst,.xnote-source-code.vs2015 .hljs-title{color:#dcdcdc}.xnote-source-code.vs2015 .hljs-comment,.xnote-source-code.vs2015 .hljs-quote{color:#57a64a;font-style:italic}.xnote-source-code.vs2015 .hljs-doctag{color:#608b4e}.xnote-source-code.vs2015 .hljs-meta,.xnote-source-code.vs2015 .hljs-meta .hljs-keyword,.xnote-source-code.vs2015 .hljs-tag{color:#9b9b9b}.xnote-source-code.vs2015 .hljs-template-variable,.xnote-source-code.vs2015 .hljs-variable{color:#bd63c5}.xnote-source-code.vs2015 .hljs-attr,.xnote-source-code.vs2015 .hljs-attribute{color:#9cdcfe}.xnote-source-code.vs2015 .hljs-section{color:gold}.xnote-source-code.vs2015 .hljs-emphasis{font-style:italic}.xnote-source-code.vs2015 .hljs-strong{font-weight:700}.xnote-source-code.vs2015 .hljs-bullet,.xnote-source-code.vs2015 .hljs-selector-attr,.xnote-source-code.vs2015 .hljs-selector-class,.xnote-source-code.vs2015 .hljs-selector-id,.xnote-source-code.vs2015 .hljs-selector-pseudo,.xnote-source-code.vs2015 .hljs-selector-tag{color:#d7ba7d}.xnote-source-code.vs2015 .hljs-addition{background-color:#144212;display:inline-block;width:100%}.xnote-source-code.vs2015 .hljs-deletion{background-color:#600;display:inline-block;width:100%}.xnote-source-code.xcode .xnote-source-code-container{border:1px solid #eee}.xnote-source-code.xcode .xnote-source-code-line-number-bg{background-color:#fafafa}.xnote-source-code.xcode pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.xcode code.hljs{padding:3px 5px}.xnote-source-code.xcode .hljs{background:#fff;color:#000}.xnote-source-code.xcode .xml .hljs-meta{color:silver}.xnote-source-code.xcode .hljs-comment,.xnote-source-code.xcode .hljs-quote{color:#007400}.xnote-source-code.xcode .hljs-attribute,.xnote-source-code.xcode .hljs-keyword,.xnote-source-code.xcode .hljs-literal,.xnote-source-code.xcode .hljs-name,.xnote-source-code.xcode .hljs-selector-tag,.xnote-source-code.xcode .hljs-tag{color:#aa0d91}.xnote-source-code.xcode .hljs-template-variable,.xnote-source-code.xcode .hljs-variable{color:#3f6e74}.xnote-source-code.xcode .hljs-code,.xnote-source-code.xcode .hljs-meta .hljs-string,.xnote-source-code.xcode .hljs-string{color:#c41a16}.xnote-source-code.xcode .hljs-link,.xnote-source-code.xcode .hljs-regexp{color:#0e0eff}.xnote-source-code.xcode .hljs-bullet,.xnote-source-code.xcode .hljs-number,.xnote-source-code.xcode .hljs-symbol,.xnote-source-code.xcode .hljs-title{color:#1c00cf}.xnote-source-code.xcode .hljs-meta,.xnote-source-code.xcode .hljs-section{color:#643820}.xnote-source-code.xcode .hljs-built_in,.xnote-source-code.xcode .hljs-class .hljs-title,.xnote-source-code.xcode .hljs-params,.xnote-source-code.xcode .hljs-title.class_,.xnote-source-code.xcode .hljs-type{color:#5c2699}.xnote-source-code.xcode .hljs-attr{color:#836c28}.xnote-source-code.xcode .hljs-subst{color:#000}.xnote-source-code.xcode .hljs-formula{background-color:#eee;font-style:italic}.xnote-source-code.xcode .hljs-addition{background-color:#baeeba}.xnote-source-code.xcode .hljs-deletion{background-color:#ffc8bd}.xnote-source-code.xcode .hljs-selector-class,.xnote-source-code.xcode .hljs-selector-id{color:#9b703f}.xnote-source-code.xcode .hljs-doctag,.xnote-source-code.xcode .hljs-strong{font-weight:700}.xnote-source-code.xcode .hljs-emphasis{font-style:italic}.xnote-source-code.xnote-dark pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.xnote-dark code.hljs{padding:3px 5px}.xnote-source-code.xnote-dark .hljs{background:#182324;color:#a9aeb2}.xnote-source-code.xnote-dark .hljs-comment,.xnote-source-code.xnote-dark .hljs-quote{color:#5c6d6e;font-style:italic}.xnote-source-code.xnote-dark .hljs-doctag,.xnote-source-code.xnote-dark .hljs-formula,.xnote-source-code.xnote-dark .hljs-keyword{color:#71b155;font-weight:700}.xnote-source-code.xnote-dark .hljs-deletion,.xnote-source-code.xnote-dark .hljs-section,.xnote-source-code.xnote-dark .hljs-selector-tag{color:#e06c75}.xnote-source-code.xnote-dark .hljs-literal{color:#388138}.xnote-source-code.xnote-dark .hljs-addition,.xnote-source-code.xnote-dark .hljs-attribute,.xnote-source-code.xnote-dark .hljs-meta .hljs-string,.xnote-source-code.xnote-dark .hljs-regexp,.xnote-source-code.xnote-dark .hljs-string{color:#dd7600}.xnote-source-code.xnote-dark .hljs-number,.xnote-source-code.xnote-dark .hljs-selector-attr,.xnote-source-code.xnote-dark .hljs-selector-class,.xnote-source-code.xnote-dark .hljs-selector-pseudo,.xnote-source-code.xnote-dark .hljs-template-variable,.xnote-source-code.xnote-dark .hljs-type,.xnote-source-code.xnote-dark .hljs-variable{color:#388138}.xnote-source-code.xnote-dark .hljs-bullet,.xnote-source-code.xnote-dark .hljs-link,.xnote-source-code.xnote-dark .hljs-meta,.xnote-source-code.xnote-dark .hljs-name,.xnote-source-code.xnote-dark .hljs-selector-id,.xnote-source-code.xnote-dark .hljs-subst,.xnote-source-code.xnote-dark .hljs-symbol,.xnote-source-code.xnote-dark .hljs-title{color:#2e89c1}.xnote-source-code.xnote-dark .hljs-built_in,.xnote-source-code.xnote-dark .hljs-class .hljs-title,.xnote-source-code.xnote-dark .hljs-title.class_{color:#e6c07b}.xnote-source-code.xnote-dark .hljs-emphasis{font-style:italic}.xnote-source-code.xnote-dark .hljs-strong{font-weight:700}.xnote-source-code.xnote-dark .hljs-link{text-decoration:underline}.xnote-source-code.xnote-dark-blue pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.xnote-dark-blue code.hljs{padding:3px 5px}.xnote-source-code.xnote-dark-blue .hljs{background:#1c222a;color:#a9aeb2}.xnote-source-code.xnote-dark-blue .hljs-comment,.xnote-source-code.xnote-dark-blue .hljs-quote{color:#5c6d6e;font-style:italic}.xnote-source-code.xnote-dark-blue .hljs-doctag,.xnote-source-code.xnote-dark-blue .hljs-formula,.xnote-source-code.xnote-dark-blue .hljs-keyword{color:#0086b3;font-weight:700}.xnote-source-code.xnote-dark-blue .hljs-deletion,.xnote-source-code.xnote-dark-blue .hljs-section,.xnote-source-code.xnote-dark-blue .hljs-selector-tag{color:#e06c75}.xnote-source-code.xnote-dark-blue .hljs-literal{color:#388138}.xnote-source-code.xnote-dark-blue .hljs-addition,.xnote-source-code.xnote-dark-blue .hljs-attribute,.xnote-source-code.xnote-dark-blue .hljs-meta .hljs-string,.xnote-source-code.xnote-dark-blue .hljs-regexp,.xnote-source-code.xnote-dark-blue .hljs-string{color:#ce5a70}.xnote-source-code.xnote-dark-blue .hljs-number,.xnote-source-code.xnote-dark-blue .hljs-selector-attr,.xnote-source-code.xnote-dark-blue .hljs-selector-class,.xnote-source-code.xnote-dark-blue .hljs-selector-pseudo,.xnote-source-code.xnote-dark-blue .hljs-template-variable,.xnote-source-code.xnote-dark-blue .hljs-type,.xnote-source-code.xnote-dark-blue .hljs-variable{color:#388138}.xnote-source-code.xnote-dark-blue .hljs-bullet,.xnote-source-code.xnote-dark-blue .hljs-link,.xnote-source-code.xnote-dark-blue .hljs-meta,.xnote-source-code.xnote-dark-blue .hljs-name,.xnote-source-code.xnote-dark-blue .hljs-selector-id,.xnote-source-code.xnote-dark-blue .hljs-subst,.xnote-source-code.xnote-dark-blue .hljs-symbol,.xnote-source-code.xnote-dark-blue .hljs-title{color:#2e89c1}.xnote-source-code.xnote-dark-blue .hljs-built_in,.xnote-source-code.xnote-dark-blue .hljs-class .hljs-title,.xnote-source-code.xnote-dark-blue .hljs-title.class_{color:#399fcf}.xnote-source-code.xnote-dark-blue .hljs-emphasis{font-style:italic}.xnote-source-code.xnote-dark-blue .hljs-strong{font-weight:700}.xnote-source-code.xnote-dark-blue .hljs-link{text-decoration:underline}.xnote-source-code code{background:none;border:none;border-radius:0;padding:0;vertical-align:inherit}.xnote-source-code{margin-bottom:16px;margin-top:16px;position:relative}.xnote-source-code-container{border-radius:5px;display:flex;line-height:1.418em;overflow:hidden;position:relative}.xnote-source-code-container.xnote-source-code-auto-break .xnote-source-code-line{word-wrap:break-word;white-space:pre-wrap;word-break:break-all}code,kbd,pre,samp{font-family:Microsoft YaHei Mono,Menlo,Monaco,Consolas,Courier New,monospace}.xnote-source-code-line-number-bg{background-color:inherit;display:none;position:relative;width:3em;z-index:2}.xnote-source-code.xnote-source-code-line-number .xnote-source-code-line-number-bg{display:block}.xnote-source-code.xnote-source-code-line-number .xnote-source-code-line{margin-left:-4em}.xnote-source-code-content{counter-reset:codeNum;flex:1;font-size:15px;margin:0;max-height:450px;overflow:auto;padding:15px 0;position:relative}.xnote-source-code-content:hover::-webkit-scrollbar-thumb{background-color:#80848f}.xnote-source-code-content::-webkit-scrollbar-thumb{border:0;border-radius:4px;height:50px;outline:0;outline-offset:0}.xnote-source-code-content::-webkit-scrollbar-thumb:hover{background-color:#495060;height:50px}.xnote-source-code-content::-webkit-scrollbar{border-radius:3px;height:6px;width:6px}.xnote-source-code-content-highlight .xnote-source-code-line{opacity:.36}.xnote-source-code-line{display:flex;margin:2px 0}.xnote-source-code-line-content{display:block;padding:0 20px}.xnote-source-code-line-number .xnote-source-code-line-content{padding:0 20px 0 10px}.xnote-source-code-line-number .xnote-source-code-line:before{box-sizing:border-box;content:counter(codeNum);counter-increment:codeNum;left:0;min-width:4em;opacity:.5;overflow:hidden;padding-right:10px;position:sticky;text-align:right;transform:translateX(-4em);white-space:nowrap;z-index:2}.xnote-source-code-content-highlight .xnote-source-code-line-emphasize{opacity:1}.xnote-source-code-lang{font-size:13px;opacity:.5;padding:4px 10px;pointer-events:none;position:absolute;right:0;top:0}.xnote-paragraph p{margin:8px 0}.xnote-blockquote{border-left:2px solid #296eff;margin:1em 0;padding:0 15px}.xnote-blockquote>:first-child{margin-top:0}.xnote-blockquote>:last-child{margin-bottom:0}.xnote-highlight-box{background:#fcf5ce;border:1px solid #f5c774;border-radius:4px;display:flex;margin:16px 0}.xnote-highlight-box-left{padding-top:.65em;text-align:center;width:40px}.xnote-highlight-box-content{flex:1}.xnote-highlight-box-icon button{background:none;border:none;border-radius:4px;cursor:pointer;font-size:1.2em;height:30px;padding:0;width:30px}.xnote-highlight-box-icon button:hover{background:rgba(0,0,0,.1)}.xnote-highlight-box-icons{text-align:left}.xnote-highlight-box-icons button{background:none;border:none;border-radius:4px;cursor:pointer;font-size:22px;height:30px;padding:0;width:30px}.xnote-highlight-box-icons button:hover{background:rgba(0,0,0,.1)}.xnote-highlight-box-content{padding:5px}.xnote-highlight-box-heading{font-size:14px;opacity:.8;padding:10px 0 10px 3px}.xnote-todolist{align-items:center;display:flex;margin:8px 0}.xnote-todolist-icon{color:#296eff;cursor:pointer;margin-right:6px}.xnote-todolist-content{min-width:2em}.xnote-todolist-content[style*=text-indent]{text-indent:0!important}.xnote-todolist-content[style*=text-align]{text-align:left!important}.xnote-list{margin:8px 0;padding:0}.xnote-list>li{display:flex}.xnote-list-content{min-width:2em}ul.xnote-list .xnote-list-type{font-family:initial;font-size:16px}.xnote-list-type{box-sizing:border-box;color:#296eff;flex-shrink:0;text-align:left;text-indent:0;white-space:nowrap;width:24px}.xnote-order-btn{padding-left:5px}.xnote-list-content[style*=text-indent]{text-indent:0!important}.xnote-list-content[style*=text-align]{text-align:left!important}.color-type[vf-1fbbdf]{font-size:13px;padding:5px 0}.text-colors[vf-1fbbdf]{font-size:14px;overflow:hidden}.text-colors div[vf-1fbbdf]{border:1px solid #eee;border-radius:4px;box-sizing:border-box;cursor:pointer;float:left;height:22px;line-height:20px;margin:4px 3px;text-align:center;width:22px}.text-colors div.active[vf-1fbbdf]{box-shadow:0 0 0 2px #296eff}.text-colors div[vf-1fbbdf]:hover{box-shadow:0 0 0 2px rgba(41,110,255,.188)}.background-colors[vf-1fbbdf]{font-size:14px;overflow:hidden}.background-colors div[vf-1fbbdf]{border-radius:4px;color:#fff;cursor:pointer;float:left;height:22px;line-height:22px;margin:4px 3px;text-align:center;width:22px}.background-colors div.active[vf-1fbbdf]{box-shadow:0 0 0 2px #296eff}.background-colors div[vf-1fbbdf]:hover{box-shadow:0 0 0 2px rgba(41,110,255,.188)}.background-colors .no-background[vf-1fbbdf]{border:1px solid #eee;box-sizing:border-box;overflow:hidden;position:relative}.background-colors .no-background[vf-1fbbdf]:before{background:#aaa;content:"";height:1px;left:-28px;position:absolute;top:0;transform:rotate(-45deg);width:100px}.background[vf-1fbbdf]{display:inline-block;height:1em;margin-right:6px;position:relative;text-align:center;width:1em}.background>span[vf-1fbbdf]{border-radius:4px;height:20px;left:-2px;line-height:20px;position:absolute;top:-2px;width:20px}.input-group[vf-269a0b]{display:flex;padding:5px 10px}.input-group input[vf-269a0b]{border:1px solid #ddd;border-radius:4px;margin-right:5px;padding:2px 6px}.input-group input[vf-269a0b]:focus{border-color:#296eff}.input-group button[vf-269a0b]{border:1px solid #ddd;border-radius:4px;font-size:14px}.btn-group[vf-cf8e1c]{font-size:15px;padding:5px 0;text-align:center}.btn-group button[vf-cf8e1c]{margin:2px 5px}.xnote-image{display:inline-block}.xnote-image,.xnote-image img,.xnote-video{max-width:100%}.xnote-video{display:inline-block}.xnote-video video{max-width:100%}@import "~katex/dist/katex.min.css";.katex,.katex-display,.katex-html,.xnote-katex{display:inline-block}.xnote-katex{margin-left:.5em;margin-right:.5em}.xnote-katex-input{inset:0;min-height:300px;position:absolute;width:590px}.xnote-katex-input .xnote-source-code{margin:0;overflow:hidden;user-select:text}.xnote-katex-input .xnote-source-code-container{border:0!important;height:100%}.xnote-katex-input .xnote-source-code-content{box-sizing:border-box;max-height:none;overflow:hidden}.left-toolbar[vf-b05292]{font-size:15px;left:-10px;position:absolute;top:0;z-index:10}.left-toolbar-btn-wrap[vf-b05292]{position:absolute;transition:all .2s}.left-toolbar-btn[vf-b05292]{background:#fff;border:1px solid #ddd;border-radius:5px;cursor:pointer;height:26px}.left-toolbar-btn span[vf-b05292]{align-items:center;display:inline-flex}.btn-group[vf-b05292]{font-size:15px;padding:5px 0;text-align:center}.btn-group button[vf-b05292]{margin:2px 5px}.toolbar[vf-fee98b]{background:#fff;border:1px solid #dee0e3;border-radius:5px;box-shadow:0 4px 8px rgba(0,0,0,.08);box-sizing:border-box;display:flex;font-size:13px;height:36px;opacity:0;padding:0 6px;pointer-events:none;position:absolute;text-align:left;transform:translateX(-50%);transition-duration:.4s;transition-property:all;transition-timing-function:ease;z-index:3}.xnote-at{color:#296eff}.xnote-at-complete{background-color:#296eff;border-radius:1em;color:#fff;font-size:.9em;margin-left:2px;margin-right:2px;padding:2px 6px}.xnote-at-input{display:inline-block;min-width:2em}.xnote-at-member{border-radius:4px;cursor:pointer;display:flex;height:50px;margin:4px 0;overflow:hidden;padding:5px;transition:background-color .2s;width:100%}.xnote-at-member.selected,.xnote-at-member:hover{background:#eee}.xnote-at-member-avatar{align-items:center;display:flex;font-size:12px;text-align:center;width:40px}.xnote-at-member-avatar img,.xnote-at-member-avatar-bg{background:#eee;border-radius:50%;display:inline-block;font-size:.9em;height:36px;line-height:36px;overflow:hidden;width:36px}.xnote-at-member-info{flex:1;font-size:14px;padding-left:10px;width:156px}.xnote-at-member-desc,.xnote-at-member-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xnote-at-member-desc{font-size:12px;opacity:.7}.xnote-root{color:#1f2329}.xnote-root * ::selection{background:rgba(20,99,252,.34)}.xnote-content{font-size:16px;line-height:1.65}.xnote-content:before{content:attr(data-placeholder);opacity:.5;position:absolute}.xnote-table{display:inline-block;margin-bottom:16px;margin-top:16px;max-width:100%;position:relative}.xnote-table-content{border-collapse:collapse;border-spacing:0;table-layout:fixed;width:0}.xnote-table-content.hide-selection * ::selection{background:none}.xnote-table-content td{border:1px solid #ddd;box-sizing:content-box;padding:0 10px}.xnote-table-container,.xnote-table-wrapper{position:relative}.xnote-table-delete-btn{background:#eee;border:none;border-radius:4px;color:#5c6370;cursor:pointer;height:30px;line-height:30px;width:24px}.xnote-table-delete-btn:hover{color:#333}.drag-line[vf-681de2]{border-color:transparent;border-style:solid;border-width:0 5px;bottom:0;box-sizing:content-box;cursor:col-resize;display:none;margin-left:-5px;position:absolute;top:0;width:2px}.drag-line[vf-681de2]:before{background:#296eff;content:"";inset:0;position:absolute}.top-bar[vf-39cb2c]{display:none;left:0;position:absolute;right:0;top:0}.top-bar.active[vf-39cb2c]{display:block}.top-delete-toolbar[vf-39cb2c]{height:0;position:relative;top:-10px}.toolbar-wrapper[vf-39cb2c]{height:60px;left:0;pointer-events:none;position:absolute;right:0;top:-60px}.insert-bar[vf-39cb2c]{box-sizing:content-box;height:30px;margin-left:-10px;margin-right:-10px;overflow:hidden;padding-left:10px;padding-right:10px;padding-top:30px}.insert-bar table[vf-39cb2c]{border-collapse:collapse;border-spacing:0;position:relative;table-layout:fixed;z-index:1}.insert-bar table td[vf-39cb2c]{border:1px solid transparent;box-sizing:border-box;height:18px;position:relative}.insert-bar table .tool-container[vf-39cb2c]{height:18px}.insert-bar table .tool-container>div[vf-39cb2c],.insert-bar table .tool-container>span[vf-39cb2c]{pointer-events:auto}.insert-bar table .insert-btn-wrap[vf-39cb2c]{cursor:pointer;height:21px;position:absolute;right:-11px;top:-2px;width:21px;z-index:1}.insert-bar table .insert-btn-wrap .insert-btn[vf-39cb2c]{background:#ccc;border:none;border-radius:50%;box-shadow:none;color:#fff;cursor:inherit;font-size:16px;height:100%;line-height:20px;padding:0;position:relative;text-align:center;transform:scale(.2);transition:transform .15s;width:100%}.insert-bar table .insert-btn-wrap .insert-btn[vf-39cb2c]:after{background:inherit;content:"";height:10px;left:5.5px;position:absolute;top:12px;transform:rotate(45deg);width:10px;z-index:-1}.insert-bar table .insert-btn-wrap:hover .insert-btn[vf-39cb2c]{background:#296eff;transform:scale(1)}.action-bar[vf-39cb2c]{margin-top:-12px;overflow:hidden;pointer-events:auto;position:relative;z-index:0}.action-bar.active[vf-39cb2c]{display:block}.action-bar table[vf-39cb2c]{border-collapse:collapse;border-radius:4px 4px 0 0;border-spacing:0;overflow:hidden;table-layout:fixed}.action-bar table td[vf-39cb2c]{background:#eee;border:1px solid #eee;box-sizing:border-box;cursor:pointer;height:12px;position:relative}.action-bar table td[vf-39cb2c]:hover{background:#dedede}.action-bar table td.active[vf-39cb2c]{background:#296eff;border-color:#2358c9}.action-bar table td.active[vf-39cb2c]:before{border-color:inherit;border-style:solid;border-width:0 0 0 1px;bottom:0;content:"";left:-1px;position:absolute;top:-1px}.scroll-container[vf-c3d159]{overflow-y:auto}.scroll-container[vf-c3d159]:hover::-webkit-scrollbar-thumb{background-color:#80848f}.scroll-container[vf-c3d159]::-webkit-scrollbar-thumb{border:0;border-radius:4px;height:50px;outline:0;outline-offset:0}.scroll-container[vf-c3d159]::-webkit-scrollbar-thumb:hover{background-color:#495060;height:50px}.scroll-container[vf-c3d159]::-webkit-scrollbar{border-radius:3px;height:6px;width:6px}.scroll-container[vf-c3d159]:before{background-image:linear-gradient(90deg,rgba(0,0,0,.1),transparent);border-left:1px solid #ddd;left:0}.scroll-container[vf-c3d159]:after,.scroll-container[vf-c3d159]:before{bottom:6px;content:"";pointer-events:none;position:absolute;top:0;width:12px}.scroll-container[vf-c3d159]:after{background:linear-gradient(90deg,transparent,rgba(0,0,0,.1));border-right:1px solid #ddd;right:0}.scroll-container.left-end[vf-c3d159]:before,.scroll-container.right-end[vf-c3d159]:after{display:none}.left-bar[vf-aaece0]{display:none;left:0;margin-left:-30px;position:absolute;top:0;width:30px}.left-bar.active[vf-aaece0]{display:flex}.toolbar-item[vf-aaece0]{align-items:center;display:flex;inset:0;position:absolute}.insert-bar[vf-aaece0]{width:18px}.insert-bar table[vf-aaece0]{border-collapse:collapse;border-spacing:0;table-layout:fixed}.insert-bar table td[vf-aaece0]{border:1px solid transparent;position:relative}.insert-bar table .insert-btn-wrap[vf-aaece0]{bottom:-8px;cursor:pointer;height:21px;left:0;position:absolute;width:21px;z-index:1}.insert-bar table .insert-btn-wrap .insert-btn[vf-aaece0]{background:#ccc;border:none;border-radius:50%;box-shadow:none;color:#fff;cursor:inherit;font-size:16px;height:100%;line-height:20px;padding:0;position:relative;text-align:center;transform:scale(.2);transition:transform .15s;width:100%}.insert-bar table .insert-btn-wrap .insert-btn[vf-aaece0]:after{background:inherit;content:"";height:10px;left:11px;position:absolute;top:5.5px;transform:rotate(45deg);width:10px;z-index:-1}.insert-bar table .insert-btn-wrap:hover .insert-btn[vf-aaece0]{background:#296eff;transform:scale(1)}.action-bar[vf-aaece0]{width:12px}.action-bar table[vf-aaece0]{border-collapse:collapse;border-radius:4px 0 0 4px;border-spacing:0;overflow:hidden;table-layout:fixed;width:13px}.action-bar table td[vf-aaece0]{background:#eee;border:1px solid #eee;box-sizing:border-box;cursor:pointer;height:12px;position:relative}.action-bar table td[vf-aaece0]:hover{background:#dedede}.action-bar table td.active[vf-aaece0]{background:#296eff;border-color:#2358c9}.action-bar table td.active[vf-aaece0]:before{border-color:inherit;border-style:solid;border-width:1px 0 0;content:"";left:-1px;position:absolute;right:-1px;top:-1px}.drag-line[vf-d4c4a9]{background:#296eff;contain:layout size style;height:2px;left:0;max-width:100%;position:absolute;right:0;z-index:1}.mask[vf-4a5ad1]{background:rgba(41,110,255,.063);border:1px solid #296eff;box-sizing:content-box;display:none;pointer-events:none;position:absolute}.mask.active[vf-4a5ad1]{display:block}@font-face{font-display:block;font-family:textbus;font-style:normal;font-weight:400;src:url(fonts/textbus.ttf?fw0xu0) format("truetype"),url(fonts/textbus.woff?fw0xu0) format("woff"),url(fonts/textbus.svg?fw0xu0#textbus) format("svg")}[class*=" xnote-icon-"],[class^=xnote-icon-]{speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:textbus!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.xnote-icon-heading-h1:before{content:"\e925"}.xnote-icon-heading-h2:before{content:"\e926"}.xnote-icon-heading-h3:before{content:"\e927"}.xnote-icon-heading-h4:before{content:"\e928"}.xnote-icon-heading-h5:before{content:"\e929"}.xnote-icon-heading-h6:before{content:"\e92a"}.xnote-icon-heading:before{content:"\e92b"}.xnote-icon-more:before{content:"\e921"}.xnote-icon-text-wrap:before{content:"\e924"}.xnote-icon-checkmark:before{content:"\e922"}.xnote-icon-arrow-left:before{content:"\e900"}.xnote-icon-arrow-right:before{content:"\e901"}.xnote-icon-arrow-top:before{content:"\e902"}.xnote-icon-arrow-bottom:before{content:"\e903"}.xnote-icon-source-code:before{content:"\e904"}.xnote-icon-insert-paragraph-after:before{content:"\e905"}.xnote-icon-insert-paragraph-before:before{content:"\e906"}.xnote-icon-components:before{content:"\e907"}.xnote-icon-table-border:before{content:"\e908"}.xnote-icon-table-remove:before{content:"\e909"}.xnote-icon-device:before{content:"\e90a"}.xnote-icon-paint-bucket:before{content:"\e90b"}.xnote-icon-background-color:before{content:"\e90c"}.xnote-icon-color:before{content:"\e90d"}.xnote-icon-brush:before{content:"\e90e"}.xnote-icon-table-edit:before{content:"\e90f"}.xnote-icon-table-split-columns:before{content:"\e910"}.xnote-icon-table-delete-row-top:before{content:"\e911"}.xnote-icon-table-delete-row-bottom:before{content:"\e912"}.xnote-icon-table-delete-column-right:before{content:"\e913"}.xnote-icon-table-delete-column-left:before{content:"\e914"}.xnote-icon-table-add-row-top:before{content:"\e915"}.xnote-icon-table-add-row-bottom:before{content:"\e916"}.xnote-icon-table-add-column-right:before{content:"\e917"}.xnote-icon-table-add-column-left:before{content:"\e918"}.xnote-icon-image:before{content:"\e919"}.xnote-icon-text-indent:before{content:"\e91a"}.xnote-icon-music:before{content:"\e91b"}.xnote-icon-video:before{content:"\e91c"}.xnote-icon-unlink:before{content:"\e91d"}.xnote-icon-select:before{content:"\e91e"}.xnote-icon-tree:before{content:"\e91f"}.xnote-icon-setting:before{content:"\e920"}.xnote-icon-copy:before{content:"\e92c"}.xnote-icon-paste:before{content:"\e92d"}.xnote-icon-pushpin:before{content:"\e946"}.xnote-icon-upload:before{content:"\e961"}.xnote-icon-history-back:before{content:"\e967"}.xnote-icon-history-forward:before{content:"\e968"}.xnote-icon-quotes-right:before{content:"\e978"}.xnote-icon-loading:before{content:"\e97f"}.xnote-icon-search:before{content:"\e986"}.xnote-icon-enlarge:before{content:"\e989"}.xnote-icon-shrink:before{content:"\e98a"}.xnote-icon-bin:before{content:"\e9ac"}.xnote-icon-list-numbered:before{content:"\e9b9"}.xnote-icon-list:before{content:"\e9bb"}.xnote-icon-link:before{content:"\e9cb"}.xnote-icon-emoji:before{content:"\e9e2"}.xnote-icon-plus:before{content:"\ea0a"}.xnote-icon-command:before{content:"\ea4e"}.xnote-icon-shift:before{content:"\ea4f"}.xnote-icon-ctrl:before{content:"\ea50"}.xnote-icon-opt:before{content:"\ea51"}.xnote-icon-cut:before{content:"\ea5a"}.xnote-icon-line-height:before{content:"\ea5f"}.xnote-icon-letter-spacing:before{content:"\ea60"}.xnote-icon-font-size:before{content:"\ea61"}.xnote-icon-bold:before{content:"\ea62"}.xnote-icon-underline:before{content:"\ea63"}.xnote-icon-italic:before{content:"\ea64"}.xnote-icon-strikethrough:before{content:"\ea65"}.xnote-icon-superscript:before{content:"\ea69"}.xnote-icon-subscript:before{content:"\ea6a"}.xnote-icon-clear-formatting:before{content:"\ea6f"}.xnote-icon-table:before{content:"\ea71"}.xnote-icon-ltr:before{content:"\ea74"}.xnote-icon-rtl:before{content:"\ea75"}.xnote-icon-code:before{content:"\ea80"}.xnote-icon-terminal:before{content:"\ea81"}.xnote-icon-bullhorn:before{content:"\e923"}.xnote-icon-price-tag:before{content:"\e935"}.xnote-icon-pushpin1:before{content:"\e947"}.xnote-icon-warning:before{content:"\ea07"}.xnote-icon-notification:before{content:"\ea08"}.xnote-icon-question:before{content:"\ea09"}.xnote-icon-info:before{content:"\ea0c"}.xnote-icon-cancel-circle:before{content:"\ea0d"}.xnote-icon-blocked:before{content:"\ea0e"}.xnote-icon-checkbox-checked:before{content:"\ea52"}.xnote-icon-checkbox-unchecked:before{content:"\ea53"}.xnote-icon-pilcrow:before{content:"\ea73"}.xnote-icon-paragraph-left:before{content:"\ea77"}.xnote-icon-paragraph-center:before{content:"\ea78"}.xnote-icon-paragraph-right:before{content:"\ea79"}.xnote-icon-paragraph-justify:before{content:"\ea7a"}.xnote-icon-indent-increase:before{content:"\ea7b"}.xnote-icon-indent-decrease:before{content:"\ea7c"}.xnote-h1{font-size:2.2em;font-weight:600}.xnote-h2{font-size:1.8em;font-weight:600}.xnote-h3{font-size:1.4em;font-weight:600}.xnote-h4{font-size:1em;font-weight:600}.xnote-h5{font-size:.9em;font-weight:600}.xnote-h6{font-size:.8em;font-weight:600}.xnote-code{border:1px solid rgba(0,0,0,.2);border-radius:4px;font-family:Microsoft YaHei Mono,Menlo,Monaco,Consolas,Courier New,monospace;margin:0 3px;padding:2px 3px}
|
package/bundles/index.esm.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.btn[vf-3d0183]{align-items:center;background:none;background:#fff;border:none;border-radius:4px;box-sizing:border-box;cursor:pointer;display:inline-flex;font-size:inherit;height:28px;outline:none;padding:6px 5px;transition:all .2s}.btn>span[vf-3d0183]{white-space:nowrap}.btn[vf-3d0183]:hover{background:rgba(0,0,0,.1)}.btn-arrow[vf-3d0183]{position:relative;transform:rotate(0);transform-origin:50%;width:1em}.btn.active[vf-3d0183]{background:rgba(0,0,0,.1)}.btn.active .btn-arrow[vf-3d0183]{transform:rotate(180deg)}.btn.highlight[vf-3d0183]{background-color:rgba(41,110,255,.063);color:#296eff}.component-toolbar[vf-ac7e8d]{position:relative;z-index:3}.toolbar[vf-ac7e8d]{background:#fff;border:1px solid #dee0e3;border-radius:5px;bottom:10px;box-shadow:0 4px 8px rgba(0,0,0,.08);box-sizing:border-box;display:flex;font-size:14px;height:36px;opacity:0;padding:0 6px;pointer-events:none;position:absolute;text-align:left;transform:translateY(10px)}.toolbar.active[vf-ac7e8d]{opacity:1;pointer-events:auto;transform:translateY(0);transition-duration:.2s;transition-property:all;transition-timing-function:ease}.divider[vf-ede279]{border-top:1px solid #eee;margin:6px 0}.drag-resize[vf-4c1803]{position:relative;width:100%}.drag-resize .resize-tool[vf-4c1803]{align-items:center;border:1px dashed #296eff;display:none;height:100%;justify-content:center;left:0;pointer-events:none;position:absolute;top:0;width:100%}.drag-resize .resize-tool.active[vf-4c1803]{display:flex}.drag-resize .mask[vf-4c1803]{background-color:rgba(0,0,0,.8);border-radius:3px;color:#fff;font-size:14px;padding:3px 8px;position:relative;text-shadow:1px 2px 3px rgba(0,0,0,.7);white-space:nowrap;z-index:10}.drag-resize .btn-group[vf-4c1803]{height:100%;left:0;position:absolute;top:0;width:100%}.drag-resize button[vf-4c1803]{background:#fff;border:2px solid #296eff;border-radius:50%;box-sizing:border-box;cursor:pointer;font-size:0;height:14px;outline:none;padding:0;pointer-events:auto;position:absolute;width:14px}.drag-resize button[vf-4c1803]:hover{background-color:#fff;box-shadow:0 0 0 3px rgba(18,150,219,.3)}.drag-resize button[vf-4c1803]:first-child,.drag-resize button[vf-4c1803]:nth-child(2),.drag-resize button[vf-4c1803]:nth-child(3){margin-top:-5px;top:0}.drag-resize button[vf-4c1803]:nth-child(3),.drag-resize button[vf-4c1803]:nth-child(4),.drag-resize button[vf-4c1803]:nth-child(5){margin-right:-5px;right:0}.drag-resize button[vf-4c1803]:nth-child(5),.drag-resize button[vf-4c1803]:nth-child(6),.drag-resize button[vf-4c1803]:nth-child(7){bottom:0;margin-bottom:-5px}.drag-resize button[vf-4c1803]:first-child,.drag-resize button[vf-4c1803]:nth-child(7),.drag-resize button[vf-4c1803]:nth-child(8){left:0;margin-left:-5px}.drag-resize button[vf-4c1803]:nth-child(2),.drag-resize button[vf-4c1803]:nth-child(6){left:50%;margin-left:-5px}.drag-resize button[vf-4c1803]:nth-child(4),.drag-resize button[vf-4c1803]:nth-child(8){margin-top:-5px;top:50%}.drag-resize button[vf-4c1803]:first-child{cursor:nw-resize}.drag-resize button[vf-4c1803]:nth-child(2){cursor:n-resize}.drag-resize button[vf-4c1803]:nth-child(3){cursor:ne-resize}.drag-resize button[vf-4c1803]:nth-child(4){cursor:e-resize}.drag-resize button[vf-4c1803]:nth-child(5){cursor:se-resize}.drag-resize button[vf-4c1803]:nth-child(6){cursor:s-resize}.drag-resize button[vf-4c1803]:nth-child(7){cursor:sw-resize}.drag-resize button[vf-4c1803]:nth-child(8){cursor:w-resize}.dropdown[vf-a99c5e]{display:inline-block;position:relative}.dropdown[vf-a99c5e]:hover{z-index:1}.dropdown-btn[vf-a99c5e]{display:flex;width:100%}.dropdown-btn-inner[vf-a99c5e]{flex:1}.dropdown-menu[vf-
|
|
1
|
+
.btn[vf-3d0183]{align-items:center;background:none;background:#fff;border:none;border-radius:4px;box-sizing:border-box;cursor:pointer;display:inline-flex;font-size:inherit;height:28px;outline:none;padding:6px 5px;transition:all .2s}.btn>span[vf-3d0183]{white-space:nowrap}.btn[vf-3d0183]:hover{background:rgba(0,0,0,.1)}.btn-arrow[vf-3d0183]{position:relative;transform:rotate(0);transform-origin:50%;width:1em}.btn.active[vf-3d0183]{background:rgba(0,0,0,.1)}.btn.active .btn-arrow[vf-3d0183]{transform:rotate(180deg)}.btn.highlight[vf-3d0183]{background-color:rgba(41,110,255,.063);color:#296eff}.component-toolbar[vf-ac7e8d]{position:relative;z-index:3}.toolbar[vf-ac7e8d]{background:#fff;border:1px solid #dee0e3;border-radius:5px;bottom:10px;box-shadow:0 4px 8px rgba(0,0,0,.08);box-sizing:border-box;display:flex;font-size:14px;height:36px;opacity:0;padding:0 6px;pointer-events:none;position:absolute;text-align:left;transform:translateY(10px)}.toolbar.active[vf-ac7e8d]{opacity:1;pointer-events:auto;transform:translateY(0);transition-duration:.2s;transition-property:all;transition-timing-function:ease}.divider[vf-ede279]{border-top:1px solid #eee;margin:6px 0}.drag-resize[vf-4c1803]{position:relative;width:100%}.drag-resize .resize-tool[vf-4c1803]{align-items:center;border:1px dashed #296eff;display:none;height:100%;justify-content:center;left:0;pointer-events:none;position:absolute;top:0;width:100%}.drag-resize .resize-tool.active[vf-4c1803]{display:flex}.drag-resize .mask[vf-4c1803]{background-color:rgba(0,0,0,.8);border-radius:3px;color:#fff;font-size:14px;padding:3px 8px;position:relative;text-shadow:1px 2px 3px rgba(0,0,0,.7);white-space:nowrap;z-index:10}.drag-resize .btn-group[vf-4c1803]{height:100%;left:0;position:absolute;top:0;width:100%}.drag-resize button[vf-4c1803]{background:#fff;border:2px solid #296eff;border-radius:50%;box-sizing:border-box;cursor:pointer;font-size:0;height:14px;outline:none;padding:0;pointer-events:auto;position:absolute;width:14px}.drag-resize button[vf-4c1803]:hover{background-color:#fff;box-shadow:0 0 0 3px rgba(18,150,219,.3)}.drag-resize button[vf-4c1803]:first-child,.drag-resize button[vf-4c1803]:nth-child(2),.drag-resize button[vf-4c1803]:nth-child(3){margin-top:-5px;top:0}.drag-resize button[vf-4c1803]:nth-child(3),.drag-resize button[vf-4c1803]:nth-child(4),.drag-resize button[vf-4c1803]:nth-child(5){margin-right:-5px;right:0}.drag-resize button[vf-4c1803]:nth-child(5),.drag-resize button[vf-4c1803]:nth-child(6),.drag-resize button[vf-4c1803]:nth-child(7){bottom:0;margin-bottom:-5px}.drag-resize button[vf-4c1803]:first-child,.drag-resize button[vf-4c1803]:nth-child(7),.drag-resize button[vf-4c1803]:nth-child(8){left:0;margin-left:-5px}.drag-resize button[vf-4c1803]:nth-child(2),.drag-resize button[vf-4c1803]:nth-child(6){left:50%;margin-left:-5px}.drag-resize button[vf-4c1803]:nth-child(4),.drag-resize button[vf-4c1803]:nth-child(8){margin-top:-5px;top:50%}.drag-resize button[vf-4c1803]:first-child{cursor:nw-resize}.drag-resize button[vf-4c1803]:nth-child(2){cursor:n-resize}.drag-resize button[vf-4c1803]:nth-child(3){cursor:ne-resize}.drag-resize button[vf-4c1803]:nth-child(4){cursor:e-resize}.drag-resize button[vf-4c1803]:nth-child(5){cursor:se-resize}.drag-resize button[vf-4c1803]:nth-child(6){cursor:s-resize}.drag-resize button[vf-4c1803]:nth-child(7){cursor:sw-resize}.drag-resize button[vf-4c1803]:nth-child(8){cursor:w-resize}.dropdown[vf-a99c5e]{display:inline-block;position:relative}.dropdown[vf-a99c5e]:hover{z-index:1}.dropdown-btn[vf-a99c5e]{display:flex;width:100%}.dropdown-btn-inner[vf-a99c5e]{flex:1}.dropdown-menu[vf-d1e8a0]{background:#fff;border:1px solid #ddd;border-radius:5px;box-shadow:2px 3px 5px rgba(0,0,0,.1);box-sizing:content-box;height:0;left:-10px;max-height:400px;opacity:0;overflow-y:auto;position:fixed;top:100%;transition-duration:0s;transition:transform .3s,opacity .3s;user-select:none;width:200px;z-index:10}.dropdown-menu[vf-d1e8a0]:hover::-webkit-scrollbar-thumb{background-color:#80848f}.dropdown-menu[vf-d1e8a0]::-webkit-scrollbar-thumb{border:0;border-radius:4px;height:50px;outline:0;outline-offset:0}.dropdown-menu[vf-d1e8a0]::-webkit-scrollbar-thumb:hover{background-color:#495060;height:50px}.dropdown-menu[vf-d1e8a0]::-webkit-scrollbar{border-radius:3px;height:6px;width:6px}.dropdown-menu-content[vf-d1e8a0]{box-sizing:content-box;padding:6px}.keymap[vf-c32a7b]{align-items:center;display:inline-flex;font-family:Microsoft YaHei Mono,Menlo,Monaco,Consolas,Courier New,monospace;font-size:.9em;margin-left:1em;opacity:.6}.keymap[vf-c32a7b] span{margin:0 2px}.menu-heading[vf-acaa5f]{font-size:14px;opacity:.5;padding:10px}.menu-item[vf-c3b9dc]{border-radius:4px;box-sizing:content-box;cursor:pointer;display:flex;font-size:14px;height:26px;justify-content:space-between;line-height:26px;padding:2px 10px;transition:background-color .2s}.menu-item-content[vf-c3b9dc]{display:flex;flex:1;justify-content:space-between}.menu-item.disabled[vf-c3b9dc]{cursor:not-allowed;opacity:.5}.menu-item[vf-c3b9dc]:hover{background:#eee}.menu-item.active[vf-c3b9dc]{background:rgba(0,0,0,.1)}.menu-icon[vf-c3b9dc]{display:inline-block;width:1.8em}.menu-check[vf-c3b9dc]{display:none}.menu-check.checked[vf-c3b9dc]{color:#296eff;display:block}.popup[vf-a23c47]{background:#fff;border:1px solid #ddd;border-radius:5px;box-shadow:2px 3px 5px rgba(0,0,0,.1);overflow:hidden;position:absolute}.toolbar-item[vf-216815]{padding:3px}.heading-icon[vf-2a8a65]{font-size:1.2em;font-weight:700}.heading-icon sub[vf-2a8a65]{font-weight:400}.xnote-source-code.atom-one-dark pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.atom-one-dark code.hljs{padding:3px 5px}.xnote-source-code.atom-one-dark .hljs{background:#282c34;color:#abb2bf}.xnote-source-code.atom-one-dark .hljs-comment,.xnote-source-code.atom-one-dark .hljs-quote{color:#5c6370;font-style:italic}.xnote-source-code.atom-one-dark .hljs-doctag,.xnote-source-code.atom-one-dark .hljs-formula,.xnote-source-code.atom-one-dark .hljs-keyword{color:#c678dd}.xnote-source-code.atom-one-dark .hljs-deletion,.xnote-source-code.atom-one-dark .hljs-name,.xnote-source-code.atom-one-dark .hljs-section,.xnote-source-code.atom-one-dark .hljs-selector-tag,.xnote-source-code.atom-one-dark .hljs-subst{color:#e06c75}.xnote-source-code.atom-one-dark .hljs-literal{color:#56b6c2}.xnote-source-code.atom-one-dark .hljs-addition,.xnote-source-code.atom-one-dark .hljs-attribute,.xnote-source-code.atom-one-dark .hljs-meta .hljs-string,.xnote-source-code.atom-one-dark .hljs-regexp,.xnote-source-code.atom-one-dark .hljs-string{color:#98c379}.xnote-source-code.atom-one-dark .hljs-attr,.xnote-source-code.atom-one-dark .hljs-number,.xnote-source-code.atom-one-dark .hljs-selector-attr,.xnote-source-code.atom-one-dark .hljs-selector-class,.xnote-source-code.atom-one-dark .hljs-selector-pseudo,.xnote-source-code.atom-one-dark .hljs-template-variable,.xnote-source-code.atom-one-dark .hljs-type,.xnote-source-code.atom-one-dark .hljs-variable{color:#d19a66}.xnote-source-code.atom-one-dark .hljs-bullet,.xnote-source-code.atom-one-dark .hljs-link,.xnote-source-code.atom-one-dark .hljs-meta,.xnote-source-code.atom-one-dark .hljs-selector-id,.xnote-source-code.atom-one-dark .hljs-symbol,.xnote-source-code.atom-one-dark .hljs-title{color:#61aeee}.xnote-source-code.atom-one-dark .hljs-built_in,.xnote-source-code.atom-one-dark .hljs-class .hljs-title,.xnote-source-code.atom-one-dark .hljs-title.class_{color:#e6c07b}.xnote-source-code.atom-one-dark .hljs-emphasis{font-style:italic}.xnote-source-code.atom-one-dark .hljs-strong{font-weight:700}.xnote-source-code.atom-one-dark .hljs-link{text-decoration:underline}.xnote-source-code.foundation pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.foundation code.hljs{padding:3px 5px}.xnote-source-code.foundation .hljs{background:#eee;color:#000}.xnote-source-code.foundation .hljs-addition,.xnote-source-code.foundation .hljs-attribute,.xnote-source-code.foundation .hljs-emphasis,.xnote-source-code.foundation .hljs-link{color:#070}.xnote-source-code.foundation .hljs-emphasis{font-style:italic}.xnote-source-code.foundation .hljs-deletion,.xnote-source-code.foundation .hljs-string,.xnote-source-code.foundation .hljs-strong{color:#d14}.xnote-source-code.foundation .hljs-strong{font-weight:700}.xnote-source-code.foundation .hljs-comment,.xnote-source-code.foundation .hljs-quote{color:#998;font-style:italic}.xnote-source-code.foundation .hljs-section,.xnote-source-code.foundation .hljs-title{color:#900}.xnote-source-code.foundation .hljs-class .hljs-title,.xnote-source-code.foundation .hljs-title.class_,.xnote-source-code.foundation .hljs-type{color:#458}.xnote-source-code.foundation .hljs-template-variable,.xnote-source-code.foundation .hljs-variable{color:#369}.xnote-source-code.foundation .hljs-bullet{color:#970}.xnote-source-code.foundation .hljs-meta{color:#34b}.xnote-source-code.foundation .hljs-code,.xnote-source-code.foundation .hljs-keyword,.xnote-source-code.foundation .hljs-literal,.xnote-source-code.foundation .hljs-number,.xnote-source-code.foundation .hljs-selector-tag{color:#099}.xnote-source-code.foundation .hljs-regexp{background-color:#fff0ff;color:#808}.xnote-source-code.foundation .hljs-symbol{color:#990073}.xnote-source-code.foundation .hljs-name,.xnote-source-code.foundation .hljs-selector-class,.xnote-source-code.foundation .hljs-selector-id,.xnote-source-code.foundation .hljs-tag{color:#070}.xnote-source-code.github{
|
|
2
2
|
/*!
|
|
3
3
|
Theme: GitHub
|
|
4
4
|
Description: Light theme as seen on github.com
|
|
@@ -21,4 +21,4 @@
|
|
|
21
21
|
Updated for @stackoverflow/stacks v0.64.0
|
|
22
22
|
Code Blocks: /blob/v0.64.0/lib/css/components/_stacks-code-blocks.less
|
|
23
23
|
Colors: /blob/v0.64.0/lib/css/exports/_stacks-constants-colors.less
|
|
24
|
-
*/}.xnote-source-code.stackoverflow-light pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.stackoverflow-light code.hljs{padding:3px 5px}.xnote-source-code.stackoverflow-light .hljs{background:#f6f6f6;color:#2f3337}.xnote-source-code.stackoverflow-light .hljs-subst{color:#2f3337}.xnote-source-code.stackoverflow-light .hljs-comment{color:#656e77}.xnote-source-code.stackoverflow-light .hljs-attr,.xnote-source-code.stackoverflow-light .hljs-doctag,.xnote-source-code.stackoverflow-light .hljs-keyword,.xnote-source-code.stackoverflow-light .hljs-meta .hljs-keyword,.xnote-source-code.stackoverflow-light .hljs-section,.xnote-source-code.stackoverflow-light .hljs-selector-tag{color:#015692}.xnote-source-code.stackoverflow-light .hljs-attribute{color:#803378}.xnote-source-code.stackoverflow-light .hljs-name,.xnote-source-code.stackoverflow-light .hljs-number,.xnote-source-code.stackoverflow-light .hljs-quote,.xnote-source-code.stackoverflow-light .hljs-selector-id,.xnote-source-code.stackoverflow-light .hljs-template-tag,.xnote-source-code.stackoverflow-light .hljs-type{color:#b75501}.xnote-source-code.stackoverflow-light .hljs-selector-class{color:#015692}.xnote-source-code.stackoverflow-light .hljs-link,.xnote-source-code.stackoverflow-light .hljs-regexp,.xnote-source-code.stackoverflow-light .hljs-selector-attr,.xnote-source-code.stackoverflow-light .hljs-string,.xnote-source-code.stackoverflow-light .hljs-symbol,.xnote-source-code.stackoverflow-light .hljs-template-variable,.xnote-source-code.stackoverflow-light .hljs-variable{color:#54790d}.xnote-source-code.stackoverflow-light .hljs-meta,.xnote-source-code.stackoverflow-light .hljs-selector-pseudo{color:#015692}.xnote-source-code.stackoverflow-light .hljs-built_in,.xnote-source-code.stackoverflow-light .hljs-literal,.xnote-source-code.stackoverflow-light .hljs-title{color:#b75501}.xnote-source-code.stackoverflow-light .hljs-bullet,.xnote-source-code.stackoverflow-light .hljs-code{color:#535a60}.xnote-source-code.stackoverflow-light .hljs-meta .hljs-string{color:#54790d}.xnote-source-code.stackoverflow-light .hljs-deletion{color:#c02d2e}.xnote-source-code.stackoverflow-light .hljs-addition{color:#2f6f44}.xnote-source-code.stackoverflow-light .hljs-emphasis{font-style:italic}.xnote-source-code.stackoverflow-light .hljs-strong{font-weight:700}.xnote-source-code.vs2015 pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.vs2015 code.hljs{padding:3px 5px}.xnote-source-code.vs2015 .hljs{background:#1e1e1e;color:#dcdcdc}.xnote-source-code.vs2015 .hljs-keyword,.xnote-source-code.vs2015 .hljs-literal,.xnote-source-code.vs2015 .hljs-name,.xnote-source-code.vs2015 .hljs-symbol{color:#569cd6}.xnote-source-code.vs2015 .hljs-link{color:#569cd6;text-decoration:underline}.xnote-source-code.vs2015 .hljs-built_in,.xnote-source-code.vs2015 .hljs-type{color:#4ec9b0}.xnote-source-code.vs2015 .hljs-class,.xnote-source-code.vs2015 .hljs-number{color:#b8d7a3}.xnote-source-code.vs2015 .hljs-meta .hljs-string,.xnote-source-code.vs2015 .hljs-string{color:#d69d85}.xnote-source-code.vs2015 .hljs-regexp,.xnote-source-code.vs2015 .hljs-template-tag{color:#9a5334}.xnote-source-code.vs2015 .hljs-formula,.xnote-source-code.vs2015 .hljs-function,.xnote-source-code.vs2015 .hljs-params,.xnote-source-code.vs2015 .hljs-subst,.xnote-source-code.vs2015 .hljs-title{color:#dcdcdc}.xnote-source-code.vs2015 .hljs-comment,.xnote-source-code.vs2015 .hljs-quote{color:#57a64a;font-style:italic}.xnote-source-code.vs2015 .hljs-doctag{color:#608b4e}.xnote-source-code.vs2015 .hljs-meta,.xnote-source-code.vs2015 .hljs-meta .hljs-keyword,.xnote-source-code.vs2015 .hljs-tag{color:#9b9b9b}.xnote-source-code.vs2015 .hljs-template-variable,.xnote-source-code.vs2015 .hljs-variable{color:#bd63c5}.xnote-source-code.vs2015 .hljs-attr,.xnote-source-code.vs2015 .hljs-attribute{color:#9cdcfe}.xnote-source-code.vs2015 .hljs-section{color:gold}.xnote-source-code.vs2015 .hljs-emphasis{font-style:italic}.xnote-source-code.vs2015 .hljs-strong{font-weight:700}.xnote-source-code.vs2015 .hljs-bullet,.xnote-source-code.vs2015 .hljs-selector-attr,.xnote-source-code.vs2015 .hljs-selector-class,.xnote-source-code.vs2015 .hljs-selector-id,.xnote-source-code.vs2015 .hljs-selector-pseudo,.xnote-source-code.vs2015 .hljs-selector-tag{color:#d7ba7d}.xnote-source-code.vs2015 .hljs-addition{background-color:#144212;display:inline-block;width:100%}.xnote-source-code.vs2015 .hljs-deletion{background-color:#600;display:inline-block;width:100%}.xnote-source-code.xcode .xnote-source-code-container{border:1px solid #eee}.xnote-source-code.xcode .xnote-source-code-line-number-bg{background-color:#fafafa}.xnote-source-code.xcode pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.xcode code.hljs{padding:3px 5px}.xnote-source-code.xcode .hljs{background:#fff;color:#000}.xnote-source-code.xcode .xml .hljs-meta{color:silver}.xnote-source-code.xcode .hljs-comment,.xnote-source-code.xcode .hljs-quote{color:#007400}.xnote-source-code.xcode .hljs-attribute,.xnote-source-code.xcode .hljs-keyword,.xnote-source-code.xcode .hljs-literal,.xnote-source-code.xcode .hljs-name,.xnote-source-code.xcode .hljs-selector-tag,.xnote-source-code.xcode .hljs-tag{color:#aa0d91}.xnote-source-code.xcode .hljs-template-variable,.xnote-source-code.xcode .hljs-variable{color:#3f6e74}.xnote-source-code.xcode .hljs-code,.xnote-source-code.xcode .hljs-meta .hljs-string,.xnote-source-code.xcode .hljs-string{color:#c41a16}.xnote-source-code.xcode .hljs-link,.xnote-source-code.xcode .hljs-regexp{color:#0e0eff}.xnote-source-code.xcode .hljs-bullet,.xnote-source-code.xcode .hljs-number,.xnote-source-code.xcode .hljs-symbol,.xnote-source-code.xcode .hljs-title{color:#1c00cf}.xnote-source-code.xcode .hljs-meta,.xnote-source-code.xcode .hljs-section{color:#643820}.xnote-source-code.xcode .hljs-built_in,.xnote-source-code.xcode .hljs-class .hljs-title,.xnote-source-code.xcode .hljs-params,.xnote-source-code.xcode .hljs-title.class_,.xnote-source-code.xcode .hljs-type{color:#5c2699}.xnote-source-code.xcode .hljs-attr{color:#836c28}.xnote-source-code.xcode .hljs-subst{color:#000}.xnote-source-code.xcode .hljs-formula{background-color:#eee;font-style:italic}.xnote-source-code.xcode .hljs-addition{background-color:#baeeba}.xnote-source-code.xcode .hljs-deletion{background-color:#ffc8bd}.xnote-source-code.xcode .hljs-selector-class,.xnote-source-code.xcode .hljs-selector-id{color:#9b703f}.xnote-source-code.xcode .hljs-doctag,.xnote-source-code.xcode .hljs-strong{font-weight:700}.xnote-source-code.xcode .hljs-emphasis{font-style:italic}.xnote-source-code.xnote-dark pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.xnote-dark code.hljs{padding:3px 5px}.xnote-source-code.xnote-dark .hljs{background:#182324;color:#a9aeb2}.xnote-source-code.xnote-dark .hljs-comment,.xnote-source-code.xnote-dark .hljs-quote{color:#5c6d6e;font-style:italic}.xnote-source-code.xnote-dark .hljs-doctag,.xnote-source-code.xnote-dark .hljs-formula,.xnote-source-code.xnote-dark .hljs-keyword{color:#71b155;font-weight:700}.xnote-source-code.xnote-dark .hljs-deletion,.xnote-source-code.xnote-dark .hljs-section,.xnote-source-code.xnote-dark .hljs-selector-tag{color:#e06c75}.xnote-source-code.xnote-dark .hljs-literal{color:#388138}.xnote-source-code.xnote-dark .hljs-addition,.xnote-source-code.xnote-dark .hljs-attribute,.xnote-source-code.xnote-dark .hljs-meta .hljs-string,.xnote-source-code.xnote-dark .hljs-regexp,.xnote-source-code.xnote-dark .hljs-string{color:#dd7600}.xnote-source-code.xnote-dark .hljs-number,.xnote-source-code.xnote-dark .hljs-selector-attr,.xnote-source-code.xnote-dark .hljs-selector-class,.xnote-source-code.xnote-dark .hljs-selector-pseudo,.xnote-source-code.xnote-dark .hljs-template-variable,.xnote-source-code.xnote-dark .hljs-type,.xnote-source-code.xnote-dark .hljs-variable{color:#388138}.xnote-source-code.xnote-dark .hljs-bullet,.xnote-source-code.xnote-dark .hljs-link,.xnote-source-code.xnote-dark .hljs-meta,.xnote-source-code.xnote-dark .hljs-name,.xnote-source-code.xnote-dark .hljs-selector-id,.xnote-source-code.xnote-dark .hljs-subst,.xnote-source-code.xnote-dark .hljs-symbol,.xnote-source-code.xnote-dark .hljs-title{color:#2e89c1}.xnote-source-code.xnote-dark .hljs-built_in,.xnote-source-code.xnote-dark .hljs-class .hljs-title,.xnote-source-code.xnote-dark .hljs-title.class_{color:#e6c07b}.xnote-source-code.xnote-dark .hljs-emphasis{font-style:italic}.xnote-source-code.xnote-dark .hljs-strong{font-weight:700}.xnote-source-code.xnote-dark .hljs-link{text-decoration:underline}.xnote-source-code.xnote-dark-blue pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.xnote-dark-blue code.hljs{padding:3px 5px}.xnote-source-code.xnote-dark-blue .hljs{background:#1c222a;color:#a9aeb2}.xnote-source-code.xnote-dark-blue .hljs-comment,.xnote-source-code.xnote-dark-blue .hljs-quote{color:#5c6d6e;font-style:italic}.xnote-source-code.xnote-dark-blue .hljs-doctag,.xnote-source-code.xnote-dark-blue .hljs-formula,.xnote-source-code.xnote-dark-blue .hljs-keyword{color:#0086b3;font-weight:700}.xnote-source-code.xnote-dark-blue .hljs-deletion,.xnote-source-code.xnote-dark-blue .hljs-section,.xnote-source-code.xnote-dark-blue .hljs-selector-tag{color:#e06c75}.xnote-source-code.xnote-dark-blue .hljs-literal{color:#388138}.xnote-source-code.xnote-dark-blue .hljs-addition,.xnote-source-code.xnote-dark-blue .hljs-attribute,.xnote-source-code.xnote-dark-blue .hljs-meta .hljs-string,.xnote-source-code.xnote-dark-blue .hljs-regexp,.xnote-source-code.xnote-dark-blue .hljs-string{color:#ce5a70}.xnote-source-code.xnote-dark-blue .hljs-number,.xnote-source-code.xnote-dark-blue .hljs-selector-attr,.xnote-source-code.xnote-dark-blue .hljs-selector-class,.xnote-source-code.xnote-dark-blue .hljs-selector-pseudo,.xnote-source-code.xnote-dark-blue .hljs-template-variable,.xnote-source-code.xnote-dark-blue .hljs-type,.xnote-source-code.xnote-dark-blue .hljs-variable{color:#388138}.xnote-source-code.xnote-dark-blue .hljs-bullet,.xnote-source-code.xnote-dark-blue .hljs-link,.xnote-source-code.xnote-dark-blue .hljs-meta,.xnote-source-code.xnote-dark-blue .hljs-name,.xnote-source-code.xnote-dark-blue .hljs-selector-id,.xnote-source-code.xnote-dark-blue .hljs-subst,.xnote-source-code.xnote-dark-blue .hljs-symbol,.xnote-source-code.xnote-dark-blue .hljs-title{color:#2e89c1}.xnote-source-code.xnote-dark-blue .hljs-built_in,.xnote-source-code.xnote-dark-blue .hljs-class .hljs-title,.xnote-source-code.xnote-dark-blue .hljs-title.class_{color:#399fcf}.xnote-source-code.xnote-dark-blue .hljs-emphasis{font-style:italic}.xnote-source-code.xnote-dark-blue .hljs-strong{font-weight:700}.xnote-source-code.xnote-dark-blue .hljs-link{text-decoration:underline}.xnote-source-code code{background:none;border:none;border-radius:0;padding:0;vertical-align:inherit}.xnote-source-code{margin-bottom:16px;margin-top:16px;position:relative}.xnote-source-code-container{border-radius:5px;display:flex;line-height:1.418em;overflow:hidden;position:relative}.xnote-source-code-container.xnote-source-code-auto-break .xnote-source-code-line{word-wrap:break-word;white-space:pre-wrap;word-break:break-all}code,kbd,pre,samp{font-family:Microsoft YaHei Mono,Menlo,Monaco,Consolas,Courier New,monospace}.xnote-source-code-line-number-bg{background-color:inherit;display:none;position:relative;width:3em;z-index:2}.xnote-source-code.xnote-source-code-line-number .xnote-source-code-line-number-bg{display:block}.xnote-source-code.xnote-source-code-line-number .xnote-source-code-line{margin-left:-4em}.xnote-source-code-content{counter-reset:codeNum;flex:1;font-size:15px;margin:0;max-height:450px;overflow:auto;padding:15px 0;position:relative}.xnote-source-code-content:hover::-webkit-scrollbar-thumb{background-color:#80848f}.xnote-source-code-content::-webkit-scrollbar-thumb{border:0;border-radius:4px;height:50px;outline:0;outline-offset:0}.xnote-source-code-content::-webkit-scrollbar-thumb:hover{background-color:#495060;height:50px}.xnote-source-code-content::-webkit-scrollbar{border-radius:3px;height:6px;width:6px}.xnote-source-code-content-highlight .xnote-source-code-line{opacity:.36}.xnote-source-code-line{display:flex;margin:2px 0}.xnote-source-code-line-content{display:block;padding:0 20px}.xnote-source-code-line-number .xnote-source-code-line-content{padding:0 20px 0 10px}.xnote-source-code-line-number .xnote-source-code-line:before{box-sizing:border-box;content:counter(codeNum);counter-increment:codeNum;left:0;min-width:4em;opacity:.5;overflow:hidden;padding-right:10px;position:sticky;text-align:right;transform:translateX(-4em);white-space:nowrap;z-index:2}.xnote-source-code-content-highlight .xnote-source-code-line-emphasize{opacity:1}.xnote-source-code-lang{font-size:13px;opacity:.5;padding:4px 10px;pointer-events:none;position:absolute;right:0;top:0}.xnote-paragraph p{margin:8px 0}.xnote-blockquote{border-left:2px solid #296eff;margin:1em 0;padding:0 15px}.xnote-blockquote>:first-child{margin-top:0}.xnote-blockquote>:last-child{margin-bottom:0}.xnote-highlight-box{background:#fcf5ce;border:1px solid #f5c774;border-radius:4px;display:flex;margin:16px 0}.xnote-highlight-box-left{padding-top:.65em;text-align:center;width:40px}.xnote-highlight-box-content{flex:1}.xnote-highlight-box-icon button{background:none;border:none;border-radius:4px;cursor:pointer;font-size:1.2em;height:30px;padding:0;width:30px}.xnote-highlight-box-icon button:hover{background:rgba(0,0,0,.1)}.xnote-highlight-box-icons{text-align:left}.xnote-highlight-box-icons button{background:none;border:none;border-radius:4px;cursor:pointer;font-size:22px;height:30px;padding:0;width:30px}.xnote-highlight-box-icons button:hover{background:rgba(0,0,0,.1)}.xnote-highlight-box-content{padding:5px}.xnote-highlight-box-heading{font-size:14px;opacity:.8;padding:10px 0 10px 3px}.xnote-todolist{align-items:center;display:flex;margin:8px 0}.xnote-todolist-icon{color:#296eff;cursor:pointer;margin-right:6px}.xnote-todolist-content{min-width:2em}.xnote-todolist-content[style*=text-indent]{text-indent:0!important}.xnote-todolist-content[style*=text-align]{text-align:left!important}.xnote-list{margin:8px 0;padding:0}.xnote-list>li{display:flex}.xnote-list-content{min-width:2em}ul.xnote-list .xnote-list-type{font-family:initial;font-size:16px}.xnote-list-type{box-sizing:border-box;color:#296eff;flex-shrink:0;text-align:left;text-indent:0;white-space:nowrap;width:24px}.xnote-order-btn{padding-left:5px}.xnote-list-content[style*=text-indent]{text-indent:0!important}.xnote-list-content[style*=text-align]{text-align:left!important}.color-type[vf-1fbbdf]{font-size:13px;padding:5px 0}.text-colors[vf-1fbbdf]{font-size:14px;overflow:hidden}.text-colors div[vf-1fbbdf]{border:1px solid #eee;border-radius:4px;box-sizing:border-box;cursor:pointer;float:left;height:22px;line-height:20px;margin:4px 3px;text-align:center;width:22px}.text-colors div.active[vf-1fbbdf]{box-shadow:0 0 0 2px #296eff}.text-colors div[vf-1fbbdf]:hover{box-shadow:0 0 0 2px rgba(41,110,255,.188)}.background-colors[vf-1fbbdf]{font-size:14px;overflow:hidden}.background-colors div[vf-1fbbdf]{border-radius:4px;color:#fff;cursor:pointer;float:left;height:22px;line-height:22px;margin:4px 3px;text-align:center;width:22px}.background-colors div.active[vf-1fbbdf]{box-shadow:0 0 0 2px #296eff}.background-colors div[vf-1fbbdf]:hover{box-shadow:0 0 0 2px rgba(41,110,255,.188)}.background-colors .no-background[vf-1fbbdf]{border:1px solid #eee;box-sizing:border-box;overflow:hidden;position:relative}.background-colors .no-background[vf-1fbbdf]:before{background:#aaa;content:"";height:1px;left:-28px;position:absolute;top:0;transform:rotate(-45deg);width:100px}.background[vf-1fbbdf]{display:inline-block;height:1em;margin-right:6px;position:relative;text-align:center;width:1em}.background>span[vf-1fbbdf]{border-radius:4px;height:20px;left:-2px;line-height:20px;position:absolute;top:-2px;width:20px}.input-group[vf-269a0b]{display:flex;padding:5px 10px}.input-group input[vf-269a0b]{border:1px solid #ddd;border-radius:4px;margin-right:5px;padding:2px 6px}.input-group input[vf-269a0b]:focus{border-color:#296eff}.input-group button[vf-269a0b]{border:1px solid #ddd;border-radius:4px;font-size:14px}.btn-group[vf-cf8e1c]{font-size:15px;padding:5px 0;text-align:center}.btn-group button[vf-cf8e1c]{margin:2px 5px}.xnote-image{display:inline-block}.xnote-image,.xnote-image img,.xnote-video{max-width:100%}.xnote-video{display:inline-block}.xnote-video video{max-width:100%}.left-toolbar[vf-b05292]{font-size:15px;left:-10px;position:absolute;top:0;z-index:10}.left-toolbar-btn-wrap[vf-b05292]{position:absolute;transition:all .2s}.left-toolbar-btn[vf-b05292]{background:#fff;border:1px solid #ddd;border-radius:5px;cursor:pointer;height:26px}.left-toolbar-btn span[vf-b05292]{align-items:center;display:inline-flex}.btn-group[vf-b05292]{font-size:15px;padding:5px 0;text-align:center}.btn-group button[vf-b05292]{margin:2px 5px}.toolbar[vf-fee98b]{background:#fff;border:1px solid #dee0e3;border-radius:5px;box-shadow:0 4px 8px rgba(0,0,0,.08);box-sizing:border-box;display:flex;font-size:13px;height:36px;opacity:0;padding:0 6px;pointer-events:none;position:absolute;text-align:left;transform:translateX(-50%);transition-duration:.4s;transition-property:all;transition-timing-function:ease;z-index:3}.xnote-at{color:#296eff}.xnote-at-complete{background-color:#296eff;border-radius:1em;color:#fff;font-size:.9em;margin-left:2px;margin-right:2px;padding:2px 6px}.xnote-at-input{display:inline-block;min-width:2em}.xnote-at-member{border-radius:4px;cursor:pointer;display:flex;height:50px;margin:4px 0;overflow:hidden;padding:5px;transition:background-color .2s;width:100%}.xnote-at-member.selected,.xnote-at-member:hover{background:#eee}.xnote-at-member-avatar{align-items:center;display:flex;font-size:12px;text-align:center;width:40px}.xnote-at-member-avatar img,.xnote-at-member-avatar-bg{background:#eee;border-radius:50%;display:inline-block;font-size:.9em;height:36px;line-height:36px;overflow:hidden;width:36px}.xnote-at-member-info{flex:1;font-size:14px;padding-left:10px;width:156px}.xnote-at-member-desc,.xnote-at-member-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xnote-at-member-desc{font-size:12px;opacity:.7}.xnote-root{color:#1f2329}.xnote-root * ::selection{background:rgba(20,99,252,.34)}.xnote-content{font-size:16px;line-height:1.65}.xnote-content:before{content:attr(data-placeholder);opacity:.5;position:absolute}.xnote-table{display:inline-block;margin-bottom:16px;margin-top:16px;max-width:100%;position:relative}.xnote-table-content{border-collapse:collapse;border-spacing:0;table-layout:fixed;width:0}.xnote-table-content.hide-selection * ::selection{background:none}.xnote-table-content td{border:1px solid #ddd;box-sizing:content-box;padding:0 10px}.xnote-table-container,.xnote-table-wrapper{position:relative}.xnote-table-delete-btn{background:#eee;border:none;border-radius:4px;color:#5c6370;cursor:pointer;height:30px;line-height:30px;width:24px}.xnote-table-delete-btn:hover{color:#333}.drag-line[vf-681de2]{border-color:transparent;border-style:solid;border-width:0 5px;bottom:0;box-sizing:content-box;cursor:col-resize;display:none;margin-left:-5px;position:absolute;top:0;width:2px}.drag-line[vf-681de2]:before{background:#296eff;content:"";inset:0;position:absolute}.top-bar[vf-39cb2c]{display:none;left:0;position:absolute;right:0;top:0}.top-bar.active[vf-39cb2c]{display:block}.top-delete-toolbar[vf-39cb2c]{height:0;position:relative;top:-10px}.toolbar-wrapper[vf-39cb2c]{height:60px;left:0;pointer-events:none;position:absolute;right:0;top:-60px}.insert-bar[vf-39cb2c]{box-sizing:content-box;height:30px;margin-left:-10px;margin-right:-10px;overflow:hidden;padding-left:10px;padding-right:10px;padding-top:30px}.insert-bar table[vf-39cb2c]{border-collapse:collapse;border-spacing:0;position:relative;table-layout:fixed;z-index:1}.insert-bar table td[vf-39cb2c]{border:1px solid transparent;box-sizing:border-box;height:18px;position:relative}.insert-bar table .tool-container[vf-39cb2c]{height:18px}.insert-bar table .tool-container>div[vf-39cb2c],.insert-bar table .tool-container>span[vf-39cb2c]{pointer-events:auto}.insert-bar table .insert-btn-wrap[vf-39cb2c]{cursor:pointer;height:21px;position:absolute;right:-11px;top:-2px;width:21px;z-index:1}.insert-bar table .insert-btn-wrap .insert-btn[vf-39cb2c]{background:#ccc;border:none;border-radius:50%;box-shadow:none;color:#fff;cursor:inherit;font-size:16px;height:100%;line-height:20px;padding:0;position:relative;text-align:center;transform:scale(.2);transition:transform .15s;width:100%}.insert-bar table .insert-btn-wrap .insert-btn[vf-39cb2c]:after{background:inherit;content:"";height:10px;left:5.5px;position:absolute;top:12px;transform:rotate(45deg);width:10px;z-index:-1}.insert-bar table .insert-btn-wrap:hover .insert-btn[vf-39cb2c]{background:#296eff;transform:scale(1)}.action-bar[vf-39cb2c]{margin-top:-12px;overflow:hidden;pointer-events:auto;position:relative;z-index:0}.action-bar.active[vf-39cb2c]{display:block}.action-bar table[vf-39cb2c]{border-collapse:collapse;border-radius:4px 4px 0 0;border-spacing:0;overflow:hidden;table-layout:fixed}.action-bar table td[vf-39cb2c]{background:#eee;border:1px solid #eee;box-sizing:border-box;cursor:pointer;height:12px;position:relative}.action-bar table td[vf-39cb2c]:hover{background:#dedede}.action-bar table td.active[vf-39cb2c]{background:#296eff;border-color:#2358c9}.action-bar table td.active[vf-39cb2c]:before{border-color:inherit;border-style:solid;border-width:0 0 0 1px;bottom:0;content:"";left:-1px;position:absolute;top:-1px}.scroll-container[vf-c3d159]{overflow-y:auto}.scroll-container[vf-c3d159]:hover::-webkit-scrollbar-thumb{background-color:#80848f}.scroll-container[vf-c3d159]::-webkit-scrollbar-thumb{border:0;border-radius:4px;height:50px;outline:0;outline-offset:0}.scroll-container[vf-c3d159]::-webkit-scrollbar-thumb:hover{background-color:#495060;height:50px}.scroll-container[vf-c3d159]::-webkit-scrollbar{border-radius:3px;height:6px;width:6px}.scroll-container[vf-c3d159]:before{background-image:linear-gradient(90deg,rgba(0,0,0,.1),transparent);border-left:1px solid #ddd;left:0}.scroll-container[vf-c3d159]:after,.scroll-container[vf-c3d159]:before{bottom:6px;content:"";pointer-events:none;position:absolute;top:0;width:12px}.scroll-container[vf-c3d159]:after{background:linear-gradient(90deg,transparent,rgba(0,0,0,.1));border-right:1px solid #ddd;right:0}.scroll-container.left-end[vf-c3d159]:before,.scroll-container.right-end[vf-c3d159]:after{display:none}.left-bar[vf-aaece0]{display:none;left:0;margin-left:-30px;position:absolute;top:0;width:30px}.left-bar.active[vf-aaece0]{display:flex}.toolbar-item[vf-aaece0]{align-items:center;display:flex;inset:0;position:absolute}.insert-bar[vf-aaece0]{width:18px}.insert-bar table[vf-aaece0]{border-collapse:collapse;border-spacing:0;table-layout:fixed}.insert-bar table td[vf-aaece0]{border:1px solid transparent;position:relative}.insert-bar table .insert-btn-wrap[vf-aaece0]{bottom:-8px;cursor:pointer;height:21px;left:0;position:absolute;width:21px;z-index:1}.insert-bar table .insert-btn-wrap .insert-btn[vf-aaece0]{background:#ccc;border:none;border-radius:50%;box-shadow:none;color:#fff;cursor:inherit;font-size:16px;height:100%;line-height:20px;padding:0;position:relative;text-align:center;transform:scale(.2);transition:transform .15s;width:100%}.insert-bar table .insert-btn-wrap .insert-btn[vf-aaece0]:after{background:inherit;content:"";height:10px;left:11px;position:absolute;top:5.5px;transform:rotate(45deg);width:10px;z-index:-1}.insert-bar table .insert-btn-wrap:hover .insert-btn[vf-aaece0]{background:#296eff;transform:scale(1)}.action-bar[vf-aaece0]{width:12px}.action-bar table[vf-aaece0]{border-collapse:collapse;border-radius:4px 0 0 4px;border-spacing:0;overflow:hidden;table-layout:fixed;width:13px}.action-bar table td[vf-aaece0]{background:#eee;border:1px solid #eee;box-sizing:border-box;cursor:pointer;height:12px;position:relative}.action-bar table td[vf-aaece0]:hover{background:#dedede}.action-bar table td.active[vf-aaece0]{background:#296eff;border-color:#2358c9}.action-bar table td.active[vf-aaece0]:before{border-color:inherit;border-style:solid;border-width:1px 0 0;content:"";left:-1px;position:absolute;right:-1px;top:-1px}.drag-line[vf-d4c4a9]{background:#296eff;contain:layout size style;height:2px;left:0;max-width:100%;position:absolute;right:0;z-index:1}.mask[vf-4a5ad1]{background:rgba(41,110,255,.063);border:1px solid #296eff;box-sizing:content-box;display:none;pointer-events:none;position:absolute}.mask.active[vf-4a5ad1]{display:block}@font-face{font-display:block;font-family:textbus;font-style:normal;font-weight:400;src:url(fonts/textbus.ttf?fw0xu0) format("truetype"),url(fonts/textbus.woff?fw0xu0) format("woff"),url(fonts/textbus.svg?fw0xu0#textbus) format("svg")}[class*=" xnote-icon-"],[class^=xnote-icon-]{speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:textbus!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.xnote-icon-heading-h1:before{content:"\e925"}.xnote-icon-heading-h2:before{content:"\e926"}.xnote-icon-heading-h3:before{content:"\e927"}.xnote-icon-heading-h4:before{content:"\e928"}.xnote-icon-heading-h5:before{content:"\e929"}.xnote-icon-heading-h6:before{content:"\e92a"}.xnote-icon-heading:before{content:"\e92b"}.xnote-icon-more:before{content:"\e921"}.xnote-icon-text-wrap:before{content:"\e924"}.xnote-icon-checkmark:before{content:"\e922"}.xnote-icon-arrow-left:before{content:"\e900"}.xnote-icon-arrow-right:before{content:"\e901"}.xnote-icon-arrow-top:before{content:"\e902"}.xnote-icon-arrow-bottom:before{content:"\e903"}.xnote-icon-source-code:before{content:"\e904"}.xnote-icon-insert-paragraph-after:before{content:"\e905"}.xnote-icon-insert-paragraph-before:before{content:"\e906"}.xnote-icon-components:before{content:"\e907"}.xnote-icon-table-border:before{content:"\e908"}.xnote-icon-table-remove:before{content:"\e909"}.xnote-icon-device:before{content:"\e90a"}.xnote-icon-paint-bucket:before{content:"\e90b"}.xnote-icon-background-color:before{content:"\e90c"}.xnote-icon-color:before{content:"\e90d"}.xnote-icon-brush:before{content:"\e90e"}.xnote-icon-table-edit:before{content:"\e90f"}.xnote-icon-table-split-columns:before{content:"\e910"}.xnote-icon-table-delete-row-top:before{content:"\e911"}.xnote-icon-table-delete-row-bottom:before{content:"\e912"}.xnote-icon-table-delete-column-right:before{content:"\e913"}.xnote-icon-table-delete-column-left:before{content:"\e914"}.xnote-icon-table-add-row-top:before{content:"\e915"}.xnote-icon-table-add-row-bottom:before{content:"\e916"}.xnote-icon-table-add-column-right:before{content:"\e917"}.xnote-icon-table-add-column-left:before{content:"\e918"}.xnote-icon-image:before{content:"\e919"}.xnote-icon-text-indent:before{content:"\e91a"}.xnote-icon-music:before{content:"\e91b"}.xnote-icon-video:before{content:"\e91c"}.xnote-icon-unlink:before{content:"\e91d"}.xnote-icon-select:before{content:"\e91e"}.xnote-icon-tree:before{content:"\e91f"}.xnote-icon-setting:before{content:"\e920"}.xnote-icon-copy:before{content:"\e92c"}.xnote-icon-paste:before{content:"\e92d"}.xnote-icon-pushpin:before{content:"\e946"}.xnote-icon-upload:before{content:"\e961"}.xnote-icon-history-back:before{content:"\e967"}.xnote-icon-history-forward:before{content:"\e968"}.xnote-icon-quotes-right:before{content:"\e978"}.xnote-icon-loading:before{content:"\e97f"}.xnote-icon-search:before{content:"\e986"}.xnote-icon-enlarge:before{content:"\e989"}.xnote-icon-shrink:before{content:"\e98a"}.xnote-icon-bin:before{content:"\e9ac"}.xnote-icon-list-numbered:before{content:"\e9b9"}.xnote-icon-list:before{content:"\e9bb"}.xnote-icon-link:before{content:"\e9cb"}.xnote-icon-emoji:before{content:"\e9e2"}.xnote-icon-plus:before{content:"\ea0a"}.xnote-icon-command:before{content:"\ea4e"}.xnote-icon-shift:before{content:"\ea4f"}.xnote-icon-ctrl:before{content:"\ea50"}.xnote-icon-opt:before{content:"\ea51"}.xnote-icon-cut:before{content:"\ea5a"}.xnote-icon-line-height:before{content:"\ea5f"}.xnote-icon-letter-spacing:before{content:"\ea60"}.xnote-icon-font-size:before{content:"\ea61"}.xnote-icon-bold:before{content:"\ea62"}.xnote-icon-underline:before{content:"\ea63"}.xnote-icon-italic:before{content:"\ea64"}.xnote-icon-strikethrough:before{content:"\ea65"}.xnote-icon-superscript:before{content:"\ea69"}.xnote-icon-subscript:before{content:"\ea6a"}.xnote-icon-clear-formatting:before{content:"\ea6f"}.xnote-icon-table:before{content:"\ea71"}.xnote-icon-ltr:before{content:"\ea74"}.xnote-icon-rtl:before{content:"\ea75"}.xnote-icon-code:before{content:"\ea80"}.xnote-icon-terminal:before{content:"\ea81"}.xnote-icon-bullhorn:before{content:"\e923"}.xnote-icon-price-tag:before{content:"\e935"}.xnote-icon-pushpin1:before{content:"\e947"}.xnote-icon-warning:before{content:"\ea07"}.xnote-icon-notification:before{content:"\ea08"}.xnote-icon-question:before{content:"\ea09"}.xnote-icon-info:before{content:"\ea0c"}.xnote-icon-cancel-circle:before{content:"\ea0d"}.xnote-icon-blocked:before{content:"\ea0e"}.xnote-icon-checkbox-checked:before{content:"\ea52"}.xnote-icon-checkbox-unchecked:before{content:"\ea53"}.xnote-icon-pilcrow:before{content:"\ea73"}.xnote-icon-paragraph-left:before{content:"\ea77"}.xnote-icon-paragraph-center:before{content:"\ea78"}.xnote-icon-paragraph-right:before{content:"\ea79"}.xnote-icon-paragraph-justify:before{content:"\ea7a"}.xnote-icon-indent-increase:before{content:"\ea7b"}.xnote-icon-indent-decrease:before{content:"\ea7c"}.xnote-h1{font-size:2.2em;font-weight:600}.xnote-h2{font-size:1.8em;font-weight:600}.xnote-h3{font-size:1.4em;font-weight:600}.xnote-h4{font-size:1em;font-weight:600}.xnote-h5{font-size:.9em;font-weight:600}.xnote-h6{font-size:.8em;font-weight:600}.xnote-code{border:1px solid rgba(0,0,0,.2);border-radius:4px;font-family:Microsoft YaHei Mono,Menlo,Monaco,Consolas,Courier New,monospace;margin:0 3px;padding:2px 3px}
|
|
24
|
+
*/}.xnote-source-code.stackoverflow-light pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.stackoverflow-light code.hljs{padding:3px 5px}.xnote-source-code.stackoverflow-light .hljs{background:#f6f6f6;color:#2f3337}.xnote-source-code.stackoverflow-light .hljs-subst{color:#2f3337}.xnote-source-code.stackoverflow-light .hljs-comment{color:#656e77}.xnote-source-code.stackoverflow-light .hljs-attr,.xnote-source-code.stackoverflow-light .hljs-doctag,.xnote-source-code.stackoverflow-light .hljs-keyword,.xnote-source-code.stackoverflow-light .hljs-meta .hljs-keyword,.xnote-source-code.stackoverflow-light .hljs-section,.xnote-source-code.stackoverflow-light .hljs-selector-tag{color:#015692}.xnote-source-code.stackoverflow-light .hljs-attribute{color:#803378}.xnote-source-code.stackoverflow-light .hljs-name,.xnote-source-code.stackoverflow-light .hljs-number,.xnote-source-code.stackoverflow-light .hljs-quote,.xnote-source-code.stackoverflow-light .hljs-selector-id,.xnote-source-code.stackoverflow-light .hljs-template-tag,.xnote-source-code.stackoverflow-light .hljs-type{color:#b75501}.xnote-source-code.stackoverflow-light .hljs-selector-class{color:#015692}.xnote-source-code.stackoverflow-light .hljs-link,.xnote-source-code.stackoverflow-light .hljs-regexp,.xnote-source-code.stackoverflow-light .hljs-selector-attr,.xnote-source-code.stackoverflow-light .hljs-string,.xnote-source-code.stackoverflow-light .hljs-symbol,.xnote-source-code.stackoverflow-light .hljs-template-variable,.xnote-source-code.stackoverflow-light .hljs-variable{color:#54790d}.xnote-source-code.stackoverflow-light .hljs-meta,.xnote-source-code.stackoverflow-light .hljs-selector-pseudo{color:#015692}.xnote-source-code.stackoverflow-light .hljs-built_in,.xnote-source-code.stackoverflow-light .hljs-literal,.xnote-source-code.stackoverflow-light .hljs-title{color:#b75501}.xnote-source-code.stackoverflow-light .hljs-bullet,.xnote-source-code.stackoverflow-light .hljs-code{color:#535a60}.xnote-source-code.stackoverflow-light .hljs-meta .hljs-string{color:#54790d}.xnote-source-code.stackoverflow-light .hljs-deletion{color:#c02d2e}.xnote-source-code.stackoverflow-light .hljs-addition{color:#2f6f44}.xnote-source-code.stackoverflow-light .hljs-emphasis{font-style:italic}.xnote-source-code.stackoverflow-light .hljs-strong{font-weight:700}.xnote-source-code.vs2015 pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.vs2015 code.hljs{padding:3px 5px}.xnote-source-code.vs2015 .hljs{background:#1e1e1e;color:#dcdcdc}.xnote-source-code.vs2015 .hljs-keyword,.xnote-source-code.vs2015 .hljs-literal,.xnote-source-code.vs2015 .hljs-name,.xnote-source-code.vs2015 .hljs-symbol{color:#569cd6}.xnote-source-code.vs2015 .hljs-link{color:#569cd6;text-decoration:underline}.xnote-source-code.vs2015 .hljs-built_in,.xnote-source-code.vs2015 .hljs-type{color:#4ec9b0}.xnote-source-code.vs2015 .hljs-class,.xnote-source-code.vs2015 .hljs-number{color:#b8d7a3}.xnote-source-code.vs2015 .hljs-meta .hljs-string,.xnote-source-code.vs2015 .hljs-string{color:#d69d85}.xnote-source-code.vs2015 .hljs-regexp,.xnote-source-code.vs2015 .hljs-template-tag{color:#9a5334}.xnote-source-code.vs2015 .hljs-formula,.xnote-source-code.vs2015 .hljs-function,.xnote-source-code.vs2015 .hljs-params,.xnote-source-code.vs2015 .hljs-subst,.xnote-source-code.vs2015 .hljs-title{color:#dcdcdc}.xnote-source-code.vs2015 .hljs-comment,.xnote-source-code.vs2015 .hljs-quote{color:#57a64a;font-style:italic}.xnote-source-code.vs2015 .hljs-doctag{color:#608b4e}.xnote-source-code.vs2015 .hljs-meta,.xnote-source-code.vs2015 .hljs-meta .hljs-keyword,.xnote-source-code.vs2015 .hljs-tag{color:#9b9b9b}.xnote-source-code.vs2015 .hljs-template-variable,.xnote-source-code.vs2015 .hljs-variable{color:#bd63c5}.xnote-source-code.vs2015 .hljs-attr,.xnote-source-code.vs2015 .hljs-attribute{color:#9cdcfe}.xnote-source-code.vs2015 .hljs-section{color:gold}.xnote-source-code.vs2015 .hljs-emphasis{font-style:italic}.xnote-source-code.vs2015 .hljs-strong{font-weight:700}.xnote-source-code.vs2015 .hljs-bullet,.xnote-source-code.vs2015 .hljs-selector-attr,.xnote-source-code.vs2015 .hljs-selector-class,.xnote-source-code.vs2015 .hljs-selector-id,.xnote-source-code.vs2015 .hljs-selector-pseudo,.xnote-source-code.vs2015 .hljs-selector-tag{color:#d7ba7d}.xnote-source-code.vs2015 .hljs-addition{background-color:#144212;display:inline-block;width:100%}.xnote-source-code.vs2015 .hljs-deletion{background-color:#600;display:inline-block;width:100%}.xnote-source-code.xcode .xnote-source-code-container{border:1px solid #eee}.xnote-source-code.xcode .xnote-source-code-line-number-bg{background-color:#fafafa}.xnote-source-code.xcode pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.xcode code.hljs{padding:3px 5px}.xnote-source-code.xcode .hljs{background:#fff;color:#000}.xnote-source-code.xcode .xml .hljs-meta{color:silver}.xnote-source-code.xcode .hljs-comment,.xnote-source-code.xcode .hljs-quote{color:#007400}.xnote-source-code.xcode .hljs-attribute,.xnote-source-code.xcode .hljs-keyword,.xnote-source-code.xcode .hljs-literal,.xnote-source-code.xcode .hljs-name,.xnote-source-code.xcode .hljs-selector-tag,.xnote-source-code.xcode .hljs-tag{color:#aa0d91}.xnote-source-code.xcode .hljs-template-variable,.xnote-source-code.xcode .hljs-variable{color:#3f6e74}.xnote-source-code.xcode .hljs-code,.xnote-source-code.xcode .hljs-meta .hljs-string,.xnote-source-code.xcode .hljs-string{color:#c41a16}.xnote-source-code.xcode .hljs-link,.xnote-source-code.xcode .hljs-regexp{color:#0e0eff}.xnote-source-code.xcode .hljs-bullet,.xnote-source-code.xcode .hljs-number,.xnote-source-code.xcode .hljs-symbol,.xnote-source-code.xcode .hljs-title{color:#1c00cf}.xnote-source-code.xcode .hljs-meta,.xnote-source-code.xcode .hljs-section{color:#643820}.xnote-source-code.xcode .hljs-built_in,.xnote-source-code.xcode .hljs-class .hljs-title,.xnote-source-code.xcode .hljs-params,.xnote-source-code.xcode .hljs-title.class_,.xnote-source-code.xcode .hljs-type{color:#5c2699}.xnote-source-code.xcode .hljs-attr{color:#836c28}.xnote-source-code.xcode .hljs-subst{color:#000}.xnote-source-code.xcode .hljs-formula{background-color:#eee;font-style:italic}.xnote-source-code.xcode .hljs-addition{background-color:#baeeba}.xnote-source-code.xcode .hljs-deletion{background-color:#ffc8bd}.xnote-source-code.xcode .hljs-selector-class,.xnote-source-code.xcode .hljs-selector-id{color:#9b703f}.xnote-source-code.xcode .hljs-doctag,.xnote-source-code.xcode .hljs-strong{font-weight:700}.xnote-source-code.xcode .hljs-emphasis{font-style:italic}.xnote-source-code.xnote-dark pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.xnote-dark code.hljs{padding:3px 5px}.xnote-source-code.xnote-dark .hljs{background:#182324;color:#a9aeb2}.xnote-source-code.xnote-dark .hljs-comment,.xnote-source-code.xnote-dark .hljs-quote{color:#5c6d6e;font-style:italic}.xnote-source-code.xnote-dark .hljs-doctag,.xnote-source-code.xnote-dark .hljs-formula,.xnote-source-code.xnote-dark .hljs-keyword{color:#71b155;font-weight:700}.xnote-source-code.xnote-dark .hljs-deletion,.xnote-source-code.xnote-dark .hljs-section,.xnote-source-code.xnote-dark .hljs-selector-tag{color:#e06c75}.xnote-source-code.xnote-dark .hljs-literal{color:#388138}.xnote-source-code.xnote-dark .hljs-addition,.xnote-source-code.xnote-dark .hljs-attribute,.xnote-source-code.xnote-dark .hljs-meta .hljs-string,.xnote-source-code.xnote-dark .hljs-regexp,.xnote-source-code.xnote-dark .hljs-string{color:#dd7600}.xnote-source-code.xnote-dark .hljs-number,.xnote-source-code.xnote-dark .hljs-selector-attr,.xnote-source-code.xnote-dark .hljs-selector-class,.xnote-source-code.xnote-dark .hljs-selector-pseudo,.xnote-source-code.xnote-dark .hljs-template-variable,.xnote-source-code.xnote-dark .hljs-type,.xnote-source-code.xnote-dark .hljs-variable{color:#388138}.xnote-source-code.xnote-dark .hljs-bullet,.xnote-source-code.xnote-dark .hljs-link,.xnote-source-code.xnote-dark .hljs-meta,.xnote-source-code.xnote-dark .hljs-name,.xnote-source-code.xnote-dark .hljs-selector-id,.xnote-source-code.xnote-dark .hljs-subst,.xnote-source-code.xnote-dark .hljs-symbol,.xnote-source-code.xnote-dark .hljs-title{color:#2e89c1}.xnote-source-code.xnote-dark .hljs-built_in,.xnote-source-code.xnote-dark .hljs-class .hljs-title,.xnote-source-code.xnote-dark .hljs-title.class_{color:#e6c07b}.xnote-source-code.xnote-dark .hljs-emphasis{font-style:italic}.xnote-source-code.xnote-dark .hljs-strong{font-weight:700}.xnote-source-code.xnote-dark .hljs-link{text-decoration:underline}.xnote-source-code.xnote-dark-blue pre code.hljs{display:block;overflow-x:auto;padding:1em}.xnote-source-code.xnote-dark-blue code.hljs{padding:3px 5px}.xnote-source-code.xnote-dark-blue .hljs{background:#1c222a;color:#a9aeb2}.xnote-source-code.xnote-dark-blue .hljs-comment,.xnote-source-code.xnote-dark-blue .hljs-quote{color:#5c6d6e;font-style:italic}.xnote-source-code.xnote-dark-blue .hljs-doctag,.xnote-source-code.xnote-dark-blue .hljs-formula,.xnote-source-code.xnote-dark-blue .hljs-keyword{color:#0086b3;font-weight:700}.xnote-source-code.xnote-dark-blue .hljs-deletion,.xnote-source-code.xnote-dark-blue .hljs-section,.xnote-source-code.xnote-dark-blue .hljs-selector-tag{color:#e06c75}.xnote-source-code.xnote-dark-blue .hljs-literal{color:#388138}.xnote-source-code.xnote-dark-blue .hljs-addition,.xnote-source-code.xnote-dark-blue .hljs-attribute,.xnote-source-code.xnote-dark-blue .hljs-meta .hljs-string,.xnote-source-code.xnote-dark-blue .hljs-regexp,.xnote-source-code.xnote-dark-blue .hljs-string{color:#ce5a70}.xnote-source-code.xnote-dark-blue .hljs-number,.xnote-source-code.xnote-dark-blue .hljs-selector-attr,.xnote-source-code.xnote-dark-blue .hljs-selector-class,.xnote-source-code.xnote-dark-blue .hljs-selector-pseudo,.xnote-source-code.xnote-dark-blue .hljs-template-variable,.xnote-source-code.xnote-dark-blue .hljs-type,.xnote-source-code.xnote-dark-blue .hljs-variable{color:#388138}.xnote-source-code.xnote-dark-blue .hljs-bullet,.xnote-source-code.xnote-dark-blue .hljs-link,.xnote-source-code.xnote-dark-blue .hljs-meta,.xnote-source-code.xnote-dark-blue .hljs-name,.xnote-source-code.xnote-dark-blue .hljs-selector-id,.xnote-source-code.xnote-dark-blue .hljs-subst,.xnote-source-code.xnote-dark-blue .hljs-symbol,.xnote-source-code.xnote-dark-blue .hljs-title{color:#2e89c1}.xnote-source-code.xnote-dark-blue .hljs-built_in,.xnote-source-code.xnote-dark-blue .hljs-class .hljs-title,.xnote-source-code.xnote-dark-blue .hljs-title.class_{color:#399fcf}.xnote-source-code.xnote-dark-blue .hljs-emphasis{font-style:italic}.xnote-source-code.xnote-dark-blue .hljs-strong{font-weight:700}.xnote-source-code.xnote-dark-blue .hljs-link{text-decoration:underline}.xnote-source-code code{background:none;border:none;border-radius:0;padding:0;vertical-align:inherit}.xnote-source-code{margin-bottom:16px;margin-top:16px;position:relative}.xnote-source-code-container{border-radius:5px;display:flex;line-height:1.418em;overflow:hidden;position:relative}.xnote-source-code-container.xnote-source-code-auto-break .xnote-source-code-line{word-wrap:break-word;white-space:pre-wrap;word-break:break-all}code,kbd,pre,samp{font-family:Microsoft YaHei Mono,Menlo,Monaco,Consolas,Courier New,monospace}.xnote-source-code-line-number-bg{background-color:inherit;display:none;position:relative;width:3em;z-index:2}.xnote-source-code.xnote-source-code-line-number .xnote-source-code-line-number-bg{display:block}.xnote-source-code.xnote-source-code-line-number .xnote-source-code-line{margin-left:-4em}.xnote-source-code-content{counter-reset:codeNum;flex:1;font-size:15px;margin:0;max-height:450px;overflow:auto;padding:15px 0;position:relative}.xnote-source-code-content:hover::-webkit-scrollbar-thumb{background-color:#80848f}.xnote-source-code-content::-webkit-scrollbar-thumb{border:0;border-radius:4px;height:50px;outline:0;outline-offset:0}.xnote-source-code-content::-webkit-scrollbar-thumb:hover{background-color:#495060;height:50px}.xnote-source-code-content::-webkit-scrollbar{border-radius:3px;height:6px;width:6px}.xnote-source-code-content-highlight .xnote-source-code-line{opacity:.36}.xnote-source-code-line{display:flex;margin:2px 0}.xnote-source-code-line-content{display:block;padding:0 20px}.xnote-source-code-line-number .xnote-source-code-line-content{padding:0 20px 0 10px}.xnote-source-code-line-number .xnote-source-code-line:before{box-sizing:border-box;content:counter(codeNum);counter-increment:codeNum;left:0;min-width:4em;opacity:.5;overflow:hidden;padding-right:10px;position:sticky;text-align:right;transform:translateX(-4em);white-space:nowrap;z-index:2}.xnote-source-code-content-highlight .xnote-source-code-line-emphasize{opacity:1}.xnote-source-code-lang{font-size:13px;opacity:.5;padding:4px 10px;pointer-events:none;position:absolute;right:0;top:0}.xnote-paragraph p{margin:8px 0}.xnote-blockquote{border-left:2px solid #296eff;margin:1em 0;padding:0 15px}.xnote-blockquote>:first-child{margin-top:0}.xnote-blockquote>:last-child{margin-bottom:0}.xnote-highlight-box{background:#fcf5ce;border:1px solid #f5c774;border-radius:4px;display:flex;margin:16px 0}.xnote-highlight-box-left{padding-top:.65em;text-align:center;width:40px}.xnote-highlight-box-content{flex:1}.xnote-highlight-box-icon button{background:none;border:none;border-radius:4px;cursor:pointer;font-size:1.2em;height:30px;padding:0;width:30px}.xnote-highlight-box-icon button:hover{background:rgba(0,0,0,.1)}.xnote-highlight-box-icons{text-align:left}.xnote-highlight-box-icons button{background:none;border:none;border-radius:4px;cursor:pointer;font-size:22px;height:30px;padding:0;width:30px}.xnote-highlight-box-icons button:hover{background:rgba(0,0,0,.1)}.xnote-highlight-box-content{padding:5px}.xnote-highlight-box-heading{font-size:14px;opacity:.8;padding:10px 0 10px 3px}.xnote-todolist{align-items:center;display:flex;margin:8px 0}.xnote-todolist-icon{color:#296eff;cursor:pointer;margin-right:6px}.xnote-todolist-content{min-width:2em}.xnote-todolist-content[style*=text-indent]{text-indent:0!important}.xnote-todolist-content[style*=text-align]{text-align:left!important}.xnote-list{margin:8px 0;padding:0}.xnote-list>li{display:flex}.xnote-list-content{min-width:2em}ul.xnote-list .xnote-list-type{font-family:initial;font-size:16px}.xnote-list-type{box-sizing:border-box;color:#296eff;flex-shrink:0;text-align:left;text-indent:0;white-space:nowrap;width:24px}.xnote-order-btn{padding-left:5px}.xnote-list-content[style*=text-indent]{text-indent:0!important}.xnote-list-content[style*=text-align]{text-align:left!important}.color-type[vf-1fbbdf]{font-size:13px;padding:5px 0}.text-colors[vf-1fbbdf]{font-size:14px;overflow:hidden}.text-colors div[vf-1fbbdf]{border:1px solid #eee;border-radius:4px;box-sizing:border-box;cursor:pointer;float:left;height:22px;line-height:20px;margin:4px 3px;text-align:center;width:22px}.text-colors div.active[vf-1fbbdf]{box-shadow:0 0 0 2px #296eff}.text-colors div[vf-1fbbdf]:hover{box-shadow:0 0 0 2px rgba(41,110,255,.188)}.background-colors[vf-1fbbdf]{font-size:14px;overflow:hidden}.background-colors div[vf-1fbbdf]{border-radius:4px;color:#fff;cursor:pointer;float:left;height:22px;line-height:22px;margin:4px 3px;text-align:center;width:22px}.background-colors div.active[vf-1fbbdf]{box-shadow:0 0 0 2px #296eff}.background-colors div[vf-1fbbdf]:hover{box-shadow:0 0 0 2px rgba(41,110,255,.188)}.background-colors .no-background[vf-1fbbdf]{border:1px solid #eee;box-sizing:border-box;overflow:hidden;position:relative}.background-colors .no-background[vf-1fbbdf]:before{background:#aaa;content:"";height:1px;left:-28px;position:absolute;top:0;transform:rotate(-45deg);width:100px}.background[vf-1fbbdf]{display:inline-block;height:1em;margin-right:6px;position:relative;text-align:center;width:1em}.background>span[vf-1fbbdf]{border-radius:4px;height:20px;left:-2px;line-height:20px;position:absolute;top:-2px;width:20px}.input-group[vf-269a0b]{display:flex;padding:5px 10px}.input-group input[vf-269a0b]{border:1px solid #ddd;border-radius:4px;margin-right:5px;padding:2px 6px}.input-group input[vf-269a0b]:focus{border-color:#296eff}.input-group button[vf-269a0b]{border:1px solid #ddd;border-radius:4px;font-size:14px}.btn-group[vf-cf8e1c]{font-size:15px;padding:5px 0;text-align:center}.btn-group button[vf-cf8e1c]{margin:2px 5px}.xnote-image{display:inline-block}.xnote-image,.xnote-image img,.xnote-video{max-width:100%}.xnote-video{display:inline-block}.xnote-video video{max-width:100%}@import "~katex/dist/katex.min.css";.katex,.katex-display,.katex-html,.xnote-katex{display:inline-block}.xnote-katex{margin-left:.5em;margin-right:.5em}.xnote-katex-input{inset:0;min-height:300px;position:absolute;width:590px}.xnote-katex-input .xnote-source-code{margin:0;overflow:hidden;user-select:text}.xnote-katex-input .xnote-source-code-container{border:0!important;height:100%}.xnote-katex-input .xnote-source-code-content{box-sizing:border-box;max-height:none;overflow:hidden}.left-toolbar[vf-b05292]{font-size:15px;left:-10px;position:absolute;top:0;z-index:10}.left-toolbar-btn-wrap[vf-b05292]{position:absolute;transition:all .2s}.left-toolbar-btn[vf-b05292]{background:#fff;border:1px solid #ddd;border-radius:5px;cursor:pointer;height:26px}.left-toolbar-btn span[vf-b05292]{align-items:center;display:inline-flex}.btn-group[vf-b05292]{font-size:15px;padding:5px 0;text-align:center}.btn-group button[vf-b05292]{margin:2px 5px}.toolbar[vf-fee98b]{background:#fff;border:1px solid #dee0e3;border-radius:5px;box-shadow:0 4px 8px rgba(0,0,0,.08);box-sizing:border-box;display:flex;font-size:13px;height:36px;opacity:0;padding:0 6px;pointer-events:none;position:absolute;text-align:left;transform:translateX(-50%);transition-duration:.4s;transition-property:all;transition-timing-function:ease;z-index:3}.xnote-at{color:#296eff}.xnote-at-complete{background-color:#296eff;border-radius:1em;color:#fff;font-size:.9em;margin-left:2px;margin-right:2px;padding:2px 6px}.xnote-at-input{display:inline-block;min-width:2em}.xnote-at-member{border-radius:4px;cursor:pointer;display:flex;height:50px;margin:4px 0;overflow:hidden;padding:5px;transition:background-color .2s;width:100%}.xnote-at-member.selected,.xnote-at-member:hover{background:#eee}.xnote-at-member-avatar{align-items:center;display:flex;font-size:12px;text-align:center;width:40px}.xnote-at-member-avatar img,.xnote-at-member-avatar-bg{background:#eee;border-radius:50%;display:inline-block;font-size:.9em;height:36px;line-height:36px;overflow:hidden;width:36px}.xnote-at-member-info{flex:1;font-size:14px;padding-left:10px;width:156px}.xnote-at-member-desc,.xnote-at-member-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xnote-at-member-desc{font-size:12px;opacity:.7}.xnote-root{color:#1f2329}.xnote-root * ::selection{background:rgba(20,99,252,.34)}.xnote-content{font-size:16px;line-height:1.65}.xnote-content:before{content:attr(data-placeholder);opacity:.5;position:absolute}.xnote-table{display:inline-block;margin-bottom:16px;margin-top:16px;max-width:100%;position:relative}.xnote-table-content{border-collapse:collapse;border-spacing:0;table-layout:fixed;width:0}.xnote-table-content.hide-selection * ::selection{background:none}.xnote-table-content td{border:1px solid #ddd;box-sizing:content-box;padding:0 10px}.xnote-table-container,.xnote-table-wrapper{position:relative}.xnote-table-delete-btn{background:#eee;border:none;border-radius:4px;color:#5c6370;cursor:pointer;height:30px;line-height:30px;width:24px}.xnote-table-delete-btn:hover{color:#333}.drag-line[vf-681de2]{border-color:transparent;border-style:solid;border-width:0 5px;bottom:0;box-sizing:content-box;cursor:col-resize;display:none;margin-left:-5px;position:absolute;top:0;width:2px}.drag-line[vf-681de2]:before{background:#296eff;content:"";inset:0;position:absolute}.top-bar[vf-39cb2c]{display:none;left:0;position:absolute;right:0;top:0}.top-bar.active[vf-39cb2c]{display:block}.top-delete-toolbar[vf-39cb2c]{height:0;position:relative;top:-10px}.toolbar-wrapper[vf-39cb2c]{height:60px;left:0;pointer-events:none;position:absolute;right:0;top:-60px}.insert-bar[vf-39cb2c]{box-sizing:content-box;height:30px;margin-left:-10px;margin-right:-10px;overflow:hidden;padding-left:10px;padding-right:10px;padding-top:30px}.insert-bar table[vf-39cb2c]{border-collapse:collapse;border-spacing:0;position:relative;table-layout:fixed;z-index:1}.insert-bar table td[vf-39cb2c]{border:1px solid transparent;box-sizing:border-box;height:18px;position:relative}.insert-bar table .tool-container[vf-39cb2c]{height:18px}.insert-bar table .tool-container>div[vf-39cb2c],.insert-bar table .tool-container>span[vf-39cb2c]{pointer-events:auto}.insert-bar table .insert-btn-wrap[vf-39cb2c]{cursor:pointer;height:21px;position:absolute;right:-11px;top:-2px;width:21px;z-index:1}.insert-bar table .insert-btn-wrap .insert-btn[vf-39cb2c]{background:#ccc;border:none;border-radius:50%;box-shadow:none;color:#fff;cursor:inherit;font-size:16px;height:100%;line-height:20px;padding:0;position:relative;text-align:center;transform:scale(.2);transition:transform .15s;width:100%}.insert-bar table .insert-btn-wrap .insert-btn[vf-39cb2c]:after{background:inherit;content:"";height:10px;left:5.5px;position:absolute;top:12px;transform:rotate(45deg);width:10px;z-index:-1}.insert-bar table .insert-btn-wrap:hover .insert-btn[vf-39cb2c]{background:#296eff;transform:scale(1)}.action-bar[vf-39cb2c]{margin-top:-12px;overflow:hidden;pointer-events:auto;position:relative;z-index:0}.action-bar.active[vf-39cb2c]{display:block}.action-bar table[vf-39cb2c]{border-collapse:collapse;border-radius:4px 4px 0 0;border-spacing:0;overflow:hidden;table-layout:fixed}.action-bar table td[vf-39cb2c]{background:#eee;border:1px solid #eee;box-sizing:border-box;cursor:pointer;height:12px;position:relative}.action-bar table td[vf-39cb2c]:hover{background:#dedede}.action-bar table td.active[vf-39cb2c]{background:#296eff;border-color:#2358c9}.action-bar table td.active[vf-39cb2c]:before{border-color:inherit;border-style:solid;border-width:0 0 0 1px;bottom:0;content:"";left:-1px;position:absolute;top:-1px}.scroll-container[vf-c3d159]{overflow-y:auto}.scroll-container[vf-c3d159]:hover::-webkit-scrollbar-thumb{background-color:#80848f}.scroll-container[vf-c3d159]::-webkit-scrollbar-thumb{border:0;border-radius:4px;height:50px;outline:0;outline-offset:0}.scroll-container[vf-c3d159]::-webkit-scrollbar-thumb:hover{background-color:#495060;height:50px}.scroll-container[vf-c3d159]::-webkit-scrollbar{border-radius:3px;height:6px;width:6px}.scroll-container[vf-c3d159]:before{background-image:linear-gradient(90deg,rgba(0,0,0,.1),transparent);border-left:1px solid #ddd;left:0}.scroll-container[vf-c3d159]:after,.scroll-container[vf-c3d159]:before{bottom:6px;content:"";pointer-events:none;position:absolute;top:0;width:12px}.scroll-container[vf-c3d159]:after{background:linear-gradient(90deg,transparent,rgba(0,0,0,.1));border-right:1px solid #ddd;right:0}.scroll-container.left-end[vf-c3d159]:before,.scroll-container.right-end[vf-c3d159]:after{display:none}.left-bar[vf-aaece0]{display:none;left:0;margin-left:-30px;position:absolute;top:0;width:30px}.left-bar.active[vf-aaece0]{display:flex}.toolbar-item[vf-aaece0]{align-items:center;display:flex;inset:0;position:absolute}.insert-bar[vf-aaece0]{width:18px}.insert-bar table[vf-aaece0]{border-collapse:collapse;border-spacing:0;table-layout:fixed}.insert-bar table td[vf-aaece0]{border:1px solid transparent;position:relative}.insert-bar table .insert-btn-wrap[vf-aaece0]{bottom:-8px;cursor:pointer;height:21px;left:0;position:absolute;width:21px;z-index:1}.insert-bar table .insert-btn-wrap .insert-btn[vf-aaece0]{background:#ccc;border:none;border-radius:50%;box-shadow:none;color:#fff;cursor:inherit;font-size:16px;height:100%;line-height:20px;padding:0;position:relative;text-align:center;transform:scale(.2);transition:transform .15s;width:100%}.insert-bar table .insert-btn-wrap .insert-btn[vf-aaece0]:after{background:inherit;content:"";height:10px;left:11px;position:absolute;top:5.5px;transform:rotate(45deg);width:10px;z-index:-1}.insert-bar table .insert-btn-wrap:hover .insert-btn[vf-aaece0]{background:#296eff;transform:scale(1)}.action-bar[vf-aaece0]{width:12px}.action-bar table[vf-aaece0]{border-collapse:collapse;border-radius:4px 0 0 4px;border-spacing:0;overflow:hidden;table-layout:fixed;width:13px}.action-bar table td[vf-aaece0]{background:#eee;border:1px solid #eee;box-sizing:border-box;cursor:pointer;height:12px;position:relative}.action-bar table td[vf-aaece0]:hover{background:#dedede}.action-bar table td.active[vf-aaece0]{background:#296eff;border-color:#2358c9}.action-bar table td.active[vf-aaece0]:before{border-color:inherit;border-style:solid;border-width:1px 0 0;content:"";left:-1px;position:absolute;right:-1px;top:-1px}.drag-line[vf-d4c4a9]{background:#296eff;contain:layout size style;height:2px;left:0;max-width:100%;position:absolute;right:0;z-index:1}.mask[vf-4a5ad1]{background:rgba(41,110,255,.063);border:1px solid #296eff;box-sizing:content-box;display:none;pointer-events:none;position:absolute}.mask.active[vf-4a5ad1]{display:block}@font-face{font-display:block;font-family:textbus;font-style:normal;font-weight:400;src:url(fonts/textbus.ttf?fw0xu0) format("truetype"),url(fonts/textbus.woff?fw0xu0) format("woff"),url(fonts/textbus.svg?fw0xu0#textbus) format("svg")}[class*=" xnote-icon-"],[class^=xnote-icon-]{speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:textbus!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.xnote-icon-heading-h1:before{content:"\e925"}.xnote-icon-heading-h2:before{content:"\e926"}.xnote-icon-heading-h3:before{content:"\e927"}.xnote-icon-heading-h4:before{content:"\e928"}.xnote-icon-heading-h5:before{content:"\e929"}.xnote-icon-heading-h6:before{content:"\e92a"}.xnote-icon-heading:before{content:"\e92b"}.xnote-icon-more:before{content:"\e921"}.xnote-icon-text-wrap:before{content:"\e924"}.xnote-icon-checkmark:before{content:"\e922"}.xnote-icon-arrow-left:before{content:"\e900"}.xnote-icon-arrow-right:before{content:"\e901"}.xnote-icon-arrow-top:before{content:"\e902"}.xnote-icon-arrow-bottom:before{content:"\e903"}.xnote-icon-source-code:before{content:"\e904"}.xnote-icon-insert-paragraph-after:before{content:"\e905"}.xnote-icon-insert-paragraph-before:before{content:"\e906"}.xnote-icon-components:before{content:"\e907"}.xnote-icon-table-border:before{content:"\e908"}.xnote-icon-table-remove:before{content:"\e909"}.xnote-icon-device:before{content:"\e90a"}.xnote-icon-paint-bucket:before{content:"\e90b"}.xnote-icon-background-color:before{content:"\e90c"}.xnote-icon-color:before{content:"\e90d"}.xnote-icon-brush:before{content:"\e90e"}.xnote-icon-table-edit:before{content:"\e90f"}.xnote-icon-table-split-columns:before{content:"\e910"}.xnote-icon-table-delete-row-top:before{content:"\e911"}.xnote-icon-table-delete-row-bottom:before{content:"\e912"}.xnote-icon-table-delete-column-right:before{content:"\e913"}.xnote-icon-table-delete-column-left:before{content:"\e914"}.xnote-icon-table-add-row-top:before{content:"\e915"}.xnote-icon-table-add-row-bottom:before{content:"\e916"}.xnote-icon-table-add-column-right:before{content:"\e917"}.xnote-icon-table-add-column-left:before{content:"\e918"}.xnote-icon-image:before{content:"\e919"}.xnote-icon-text-indent:before{content:"\e91a"}.xnote-icon-music:before{content:"\e91b"}.xnote-icon-video:before{content:"\e91c"}.xnote-icon-unlink:before{content:"\e91d"}.xnote-icon-select:before{content:"\e91e"}.xnote-icon-tree:before{content:"\e91f"}.xnote-icon-setting:before{content:"\e920"}.xnote-icon-copy:before{content:"\e92c"}.xnote-icon-paste:before{content:"\e92d"}.xnote-icon-pushpin:before{content:"\e946"}.xnote-icon-upload:before{content:"\e961"}.xnote-icon-history-back:before{content:"\e967"}.xnote-icon-history-forward:before{content:"\e968"}.xnote-icon-quotes-right:before{content:"\e978"}.xnote-icon-loading:before{content:"\e97f"}.xnote-icon-search:before{content:"\e986"}.xnote-icon-enlarge:before{content:"\e989"}.xnote-icon-shrink:before{content:"\e98a"}.xnote-icon-bin:before{content:"\e9ac"}.xnote-icon-list-numbered:before{content:"\e9b9"}.xnote-icon-list:before{content:"\e9bb"}.xnote-icon-link:before{content:"\e9cb"}.xnote-icon-emoji:before{content:"\e9e2"}.xnote-icon-plus:before{content:"\ea0a"}.xnote-icon-command:before{content:"\ea4e"}.xnote-icon-shift:before{content:"\ea4f"}.xnote-icon-ctrl:before{content:"\ea50"}.xnote-icon-opt:before{content:"\ea51"}.xnote-icon-cut:before{content:"\ea5a"}.xnote-icon-line-height:before{content:"\ea5f"}.xnote-icon-letter-spacing:before{content:"\ea60"}.xnote-icon-font-size:before{content:"\ea61"}.xnote-icon-bold:before{content:"\ea62"}.xnote-icon-underline:before{content:"\ea63"}.xnote-icon-italic:before{content:"\ea64"}.xnote-icon-strikethrough:before{content:"\ea65"}.xnote-icon-superscript:before{content:"\ea69"}.xnote-icon-subscript:before{content:"\ea6a"}.xnote-icon-clear-formatting:before{content:"\ea6f"}.xnote-icon-table:before{content:"\ea71"}.xnote-icon-ltr:before{content:"\ea74"}.xnote-icon-rtl:before{content:"\ea75"}.xnote-icon-code:before{content:"\ea80"}.xnote-icon-terminal:before{content:"\ea81"}.xnote-icon-bullhorn:before{content:"\e923"}.xnote-icon-price-tag:before{content:"\e935"}.xnote-icon-pushpin1:before{content:"\e947"}.xnote-icon-warning:before{content:"\ea07"}.xnote-icon-notification:before{content:"\ea08"}.xnote-icon-question:before{content:"\ea09"}.xnote-icon-info:before{content:"\ea0c"}.xnote-icon-cancel-circle:before{content:"\ea0d"}.xnote-icon-blocked:before{content:"\ea0e"}.xnote-icon-checkbox-checked:before{content:"\ea52"}.xnote-icon-checkbox-unchecked:before{content:"\ea53"}.xnote-icon-pilcrow:before{content:"\ea73"}.xnote-icon-paragraph-left:before{content:"\ea77"}.xnote-icon-paragraph-center:before{content:"\ea78"}.xnote-icon-paragraph-right:before{content:"\ea79"}.xnote-icon-paragraph-justify:before{content:"\ea7a"}.xnote-icon-indent-increase:before{content:"\ea7b"}.xnote-icon-indent-decrease:before{content:"\ea7c"}.xnote-h1{font-size:2.2em;font-weight:600}.xnote-h2{font-size:1.8em;font-weight:600}.xnote-h3{font-size:1.4em;font-weight:600}.xnote-h4{font-size:1em;font-weight:600}.xnote-h5{font-size:.9em;font-weight:600}.xnote-h6{font-size:.8em;font-weight:600}.xnote-code{border:1px solid rgba(0,0,0,.2);border-radius:4px;font-family:Microsoft YaHei Mono,Menlo,Monaco,Consolas,Courier New,monospace;margin:0 3px;padding:2px 3px}
|
package/bundles/index.esm.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from '@viewfly/core/jsx-runtime';
|
|
2
2
|
import { withScopedCSS } from '@viewfly/scoped-css';
|
|
3
|
-
import { Injectable, InjectFlags, Injector, inject, createSignal, onUnmounted, createRef, withAnnotation, onUpdated, onMounted, InjectionToken,
|
|
3
|
+
import { Injectable, InjectFlags, Injector, inject, createSignal, onUnmounted, createRef, withAnnotation, onUpdated, onMounted, InjectionToken, ReflectiveInjector, createDynamicRef, jsx as jsx$1, viewfly, getCurrentInstance, watch } from '@viewfly/core';
|
|
4
4
|
import { Subject, Selection, fromEvent, Subscription, Attribute, Keyboard, Commander, Controller, useContext, onBreak, onContentInsert, ContentType, Slot, Component, Registry, Query, QueryStateType, createVNode, BehaviorSubject, onPaste, onFocus, onBlur, useDynamicShortcut, VTextNode, onFocusIn, onFocusOut, onDestroy, onGetRanges, Formatter, onParentSlotUpdated, Textbus, RootComponentRef, filter, map, distinctUntilChanged, sampleTime, merge, debounceTime, throttleTime, delay, onContentInserted, onContentDeleted, switchMap, fromPromise, onCompositionStart } from '@textbus/core';
|
|
5
|
-
import { VIEW_CONTAINER, isMac, DomAdapter, Input, SelectionBridge,
|
|
6
|
-
import { createPortal,
|
|
5
|
+
import { VIEW_CONTAINER, isMac, DomAdapter, Input, SelectionBridge, BrowserModule, VIEW_DOCUMENT, Parser } from '@textbus/platform-browser';
|
|
6
|
+
import { createPortal, createApp, DomRenderer, HTMLRenderer, OutputTranslator } from '@viewfly/platform-browser';
|
|
7
7
|
import { useProduce } from '@viewfly/hooks';
|
|
8
8
|
import highlightjs from 'highlight.js';
|
|
9
|
-
import
|
|
9
|
+
import Katex from 'katex';
|
|
10
10
|
import { ViewflyAdapter, ViewflyVDomAdapter } from '@textbus/adapter-viewfly';
|
|
11
|
+
import { any2Hsl, hsl2Rgb } from '@tanbo/color';
|
|
11
12
|
import { CollaborateModule } from '@textbus/collaborate';
|
|
12
13
|
|
|
13
14
|
var scopedId$m = "vf-3d0183";
|
|
@@ -281,7 +282,7 @@ function DragResize(props) {
|
|
|
281
282
|
|
|
282
283
|
var scopedId$i = "vf-a99c5e";
|
|
283
284
|
|
|
284
|
-
var scopedId$h = "vf-
|
|
285
|
+
var scopedId$h = "vf-d1e8a0";
|
|
285
286
|
|
|
286
287
|
const DropdownMenuPortal = withAnnotation({
|
|
287
288
|
providers: [
|
|
@@ -355,7 +356,6 @@ const DropdownMenuPortal = withAnnotation({
|
|
|
355
356
|
}
|
|
356
357
|
}
|
|
357
358
|
onUpdated(() => {
|
|
358
|
-
console.log(22);
|
|
359
359
|
update();
|
|
360
360
|
});
|
|
361
361
|
onUnmounted(() => {
|
|
@@ -378,7 +378,9 @@ const DropdownMenuPortal = withAnnotation({
|
|
|
378
378
|
return createPortal(withScopedCSS(scopedId$h, () => {
|
|
379
379
|
return (jsx("div", { onMouseenter: onEnter, onMouseleave: onLeave, ref: menuRef, style: {
|
|
380
380
|
width: props.width
|
|
381
|
-
}, class: "dropdown-menu", children: jsx("div", { class: "dropdown-menu-content",
|
|
381
|
+
}, class: "dropdown-menu", children: jsx("div", { class: "dropdown-menu-content", style: {
|
|
382
|
+
padding: props.padding
|
|
383
|
+
}, children: props.children }) }));
|
|
382
384
|
}), document.body);
|
|
383
385
|
});
|
|
384
386
|
|
|
@@ -442,7 +444,7 @@ const Dropdown = withAnnotation({
|
|
|
442
444
|
}
|
|
443
445
|
},
|
|
444
446
|
$render: withScopedCSS(scopedId$i, () => {
|
|
445
|
-
return (jsxs("div", { class: ['dropdown', props.class], style: props.style, ref: dropdownRef, children: [jsxs("div", { class: "dropdown-btn", ref: triggerRef, children: [jsx("div", { class: "dropdown-btn-inner", children: props.children }), jsx("div", { class: "dropdown-btn-arrow" })] }), isShow() && jsx(DropdownMenuPortal, { noTrigger: props.trigger === 'none', width: props.width, abreast: props.abreast, triggerRef: triggerRef, children: Array.isArray(props.menu) ?
|
|
447
|
+
return (jsxs("div", { class: ['dropdown', props.class], style: props.style, ref: dropdownRef, children: [jsxs("div", { class: "dropdown-btn", ref: triggerRef, children: [jsx("div", { class: "dropdown-btn-inner", children: props.children }), jsx("div", { class: "dropdown-btn-arrow" })] }), isShow() && jsx(DropdownMenuPortal, { padding: props.padding, noTrigger: props.trigger === 'none', width: props.width, abreast: props.abreast, triggerRef: triggerRef, children: Array.isArray(props.menu) ?
|
|
446
448
|
props.menu.map(menu => {
|
|
447
449
|
return (jsx("div", { class: "dropdown-menu-item", onClick: () => {
|
|
448
450
|
var _a;
|
|
@@ -1158,7 +1160,9 @@ class SourceCodeComponent extends Component {
|
|
|
1158
1160
|
const selection = useContext(Selection);
|
|
1159
1161
|
onBreak(ev => {
|
|
1160
1162
|
const slots = this.state.slots;
|
|
1161
|
-
|
|
1163
|
+
const parentComponent = selection.commonAncestorComponent;
|
|
1164
|
+
const parentSlot = parentComponent.parent;
|
|
1165
|
+
if (parentSlot && ev.target.isEmpty && ev.target === slots[slots.length - 1].slot) {
|
|
1162
1166
|
const prevSlot = slots[slots.length - 2];
|
|
1163
1167
|
if (prevSlot === null || prevSlot === void 0 ? void 0 : prevSlot.slot.isEmpty) {
|
|
1164
1168
|
const slot = new Slot([
|
|
@@ -1168,8 +1172,6 @@ class SourceCodeComponent extends Component {
|
|
|
1168
1172
|
const paragraph = new ParagraphComponent(textbus, {
|
|
1169
1173
|
slot
|
|
1170
1174
|
});
|
|
1171
|
-
const parentComponent = selection.commonAncestorComponent;
|
|
1172
|
-
const parentSlot = parentComponent.parent;
|
|
1173
1175
|
const index = parentSlot.indexOf(parentComponent);
|
|
1174
1176
|
parentSlot.retain(index + 1);
|
|
1175
1177
|
slots.pop();
|
|
@@ -1432,28 +1434,6 @@ function SourceCodeView(props) {
|
|
|
1432
1434
|
}
|
|
1433
1435
|
}
|
|
1434
1436
|
}
|
|
1435
|
-
function nodesToVNodes(slot, nodes, index) {
|
|
1436
|
-
return nodes.map(i => {
|
|
1437
|
-
const location = {
|
|
1438
|
-
slot,
|
|
1439
|
-
startIndex: index,
|
|
1440
|
-
endIndex: index + i.textContent.length
|
|
1441
|
-
};
|
|
1442
|
-
if (i.nodeType === Node.ELEMENT_NODE) {
|
|
1443
|
-
const childNodes = Array.from(i.childNodes);
|
|
1444
|
-
const vEle = createVNode('span', {
|
|
1445
|
-
class: i.className
|
|
1446
|
-
}, nodesToVNodes(slot, childNodes, index));
|
|
1447
|
-
index = location.endIndex;
|
|
1448
|
-
vEle.location = Object.assign({}, location);
|
|
1449
|
-
return vEle;
|
|
1450
|
-
}
|
|
1451
|
-
index = location.endIndex;
|
|
1452
|
-
const textNode = new VTextNode(i.textContent);
|
|
1453
|
-
textNode.location = location;
|
|
1454
|
-
return textNode;
|
|
1455
|
-
});
|
|
1456
|
-
}
|
|
1457
1437
|
return (jsxs("div", { ref: props.rootRef, class: {
|
|
1458
1438
|
'xnote-source-code': true,
|
|
1459
1439
|
'xnote-source-code-line-number': state.lineNumber,
|
|
@@ -1514,6 +1494,28 @@ function SourceCodeView(props) {
|
|
|
1514
1494
|
}) }), jsx("span", { class: "xnote-source-code-lang", children: lang })] })] }));
|
|
1515
1495
|
};
|
|
1516
1496
|
}
|
|
1497
|
+
function nodesToVNodes(slot, nodes, index) {
|
|
1498
|
+
return nodes.map(i => {
|
|
1499
|
+
const location = {
|
|
1500
|
+
slot,
|
|
1501
|
+
startIndex: index,
|
|
1502
|
+
endIndex: index + i.textContent.length
|
|
1503
|
+
};
|
|
1504
|
+
if (i.nodeType === Node.ELEMENT_NODE) {
|
|
1505
|
+
const childNodes = Array.from(i.childNodes);
|
|
1506
|
+
const vEle = createVNode('span', {
|
|
1507
|
+
class: i.className
|
|
1508
|
+
}, nodesToVNodes(slot, childNodes, index));
|
|
1509
|
+
index = location.endIndex;
|
|
1510
|
+
vEle.location = Object.assign({}, location);
|
|
1511
|
+
return vEle;
|
|
1512
|
+
}
|
|
1513
|
+
index = location.endIndex;
|
|
1514
|
+
const textNode = new VTextNode(i.textContent);
|
|
1515
|
+
textNode.location = location;
|
|
1516
|
+
return textNode;
|
|
1517
|
+
});
|
|
1518
|
+
}
|
|
1517
1519
|
const sourceCodeComponentLoader = {
|
|
1518
1520
|
match(element, returnableContentTypes) {
|
|
1519
1521
|
return returnableContentTypes.includes(ContentType.BlockComponent) &&
|
|
@@ -2274,7 +2276,7 @@ class ListComponent extends Component {
|
|
|
2274
2276
|
key: 'Tab'
|
|
2275
2277
|
},
|
|
2276
2278
|
action: () => {
|
|
2277
|
-
|
|
2279
|
+
updateAfterList(this);
|
|
2278
2280
|
return false;
|
|
2279
2281
|
}
|
|
2280
2282
|
});
|
|
@@ -3592,6 +3594,158 @@ const videoComponentLoader = {
|
|
|
3592
3594
|
}
|
|
3593
3595
|
};
|
|
3594
3596
|
|
|
3597
|
+
class KatexEditor extends Textbus {
|
|
3598
|
+
constructor() {
|
|
3599
|
+
const adapter = new ViewflyAdapter({
|
|
3600
|
+
[SourceCodeComponent.componentName]: SourceCodeView
|
|
3601
|
+
}, (host, root, injector) => {
|
|
3602
|
+
const appInjector = new ReflectiveInjector(injector, [{
|
|
3603
|
+
provide: OutputInjectionToken,
|
|
3604
|
+
useValue: true
|
|
3605
|
+
}]);
|
|
3606
|
+
const app = createApp(root, {
|
|
3607
|
+
context: appInjector
|
|
3608
|
+
}).mount(host);
|
|
3609
|
+
return () => {
|
|
3610
|
+
app.destroy();
|
|
3611
|
+
};
|
|
3612
|
+
});
|
|
3613
|
+
const browserModule = new BrowserModule({
|
|
3614
|
+
adapter,
|
|
3615
|
+
renderTo: () => {
|
|
3616
|
+
return this.host;
|
|
3617
|
+
}
|
|
3618
|
+
});
|
|
3619
|
+
super({
|
|
3620
|
+
components: [
|
|
3621
|
+
SourceCodeComponent
|
|
3622
|
+
],
|
|
3623
|
+
imports: [browserModule]
|
|
3624
|
+
});
|
|
3625
|
+
this.onValueChange = new Subject();
|
|
3626
|
+
}
|
|
3627
|
+
mount(host, code) {
|
|
3628
|
+
this.host = host;
|
|
3629
|
+
const model = new SourceCodeComponent(this, {
|
|
3630
|
+
lineNumber: true,
|
|
3631
|
+
autoBreak: true,
|
|
3632
|
+
lang: 'latex',
|
|
3633
|
+
theme: 'github',
|
|
3634
|
+
slots: code.split('\n').map(i => {
|
|
3635
|
+
const slot = new Slot([ContentType.Text]);
|
|
3636
|
+
slot.insert(i);
|
|
3637
|
+
return {
|
|
3638
|
+
slot,
|
|
3639
|
+
emphasize: false
|
|
3640
|
+
};
|
|
3641
|
+
})
|
|
3642
|
+
});
|
|
3643
|
+
this.onChange.subscribe(() => {
|
|
3644
|
+
const str = model.state.slots.map(i => {
|
|
3645
|
+
if (i.slot.isEmpty) {
|
|
3646
|
+
return '';
|
|
3647
|
+
}
|
|
3648
|
+
return i.slot.toString();
|
|
3649
|
+
}).join('\n');
|
|
3650
|
+
this.onValueChange.next(str);
|
|
3651
|
+
});
|
|
3652
|
+
return this.render(model);
|
|
3653
|
+
}
|
|
3654
|
+
}
|
|
3655
|
+
|
|
3656
|
+
class KatexComponent extends Component {
|
|
3657
|
+
static fromJSON(textbus, state) {
|
|
3658
|
+
return new KatexComponent(textbus, state);
|
|
3659
|
+
}
|
|
3660
|
+
constructor(textbus, state = {
|
|
3661
|
+
text: '% \\f is defined as #1f(#2) using the macro\n' +
|
|
3662
|
+
'\\f\\relax{x} = \\int_{-\\infty}^\\infty\n' +
|
|
3663
|
+
'\\f\\hat\\xi\\,e^{2 \\pi i \\xi x}\n' +
|
|
3664
|
+
'\\,d\\xi'
|
|
3665
|
+
}) {
|
|
3666
|
+
super(textbus, state);
|
|
3667
|
+
}
|
|
3668
|
+
}
|
|
3669
|
+
KatexComponent.componentName = 'KatexComponent';
|
|
3670
|
+
KatexComponent.type = ContentType.InlineComponent;
|
|
3671
|
+
function domToVDom(el) {
|
|
3672
|
+
const attrs = {};
|
|
3673
|
+
el.getAttributeNames().forEach(key => {
|
|
3674
|
+
attrs[key] = el.getAttribute(key);
|
|
3675
|
+
});
|
|
3676
|
+
attrs.children = Array.from(el.childNodes).map(child => {
|
|
3677
|
+
if (child.nodeType === Node.ELEMENT_NODE) {
|
|
3678
|
+
return domToVDom(child);
|
|
3679
|
+
}
|
|
3680
|
+
return child.textContent || '';
|
|
3681
|
+
});
|
|
3682
|
+
return jsx$1(el.tagName.toLowerCase(), attrs);
|
|
3683
|
+
}
|
|
3684
|
+
function KatexComponentView(props) {
|
|
3685
|
+
function toDOM(value) {
|
|
3686
|
+
let htmlString;
|
|
3687
|
+
try {
|
|
3688
|
+
htmlString = Katex.renderToString(value, {
|
|
3689
|
+
displayMode: true,
|
|
3690
|
+
leqno: false,
|
|
3691
|
+
fleqn: false,
|
|
3692
|
+
throwOnError: true,
|
|
3693
|
+
errorColor: '#cc0000',
|
|
3694
|
+
strict: 'warn',
|
|
3695
|
+
output: 'html',
|
|
3696
|
+
trust: false,
|
|
3697
|
+
macros: { '\\f': '#1f(#2)' }
|
|
3698
|
+
});
|
|
3699
|
+
}
|
|
3700
|
+
catch (e) {
|
|
3701
|
+
htmlString = '<span style="color: red">公式错误</span>';
|
|
3702
|
+
}
|
|
3703
|
+
return new DOMParser().parseFromString(htmlString, 'text/html').body.children[0];
|
|
3704
|
+
}
|
|
3705
|
+
const selection = inject(Textbus);
|
|
3706
|
+
const editorRef = createDynamicRef(node => {
|
|
3707
|
+
const editor = new KatexEditor();
|
|
3708
|
+
editor.mount(node, props.component.state.text).then(() => {
|
|
3709
|
+
editor.focus();
|
|
3710
|
+
});
|
|
3711
|
+
selection.blur();
|
|
3712
|
+
const subscription = editor.onValueChange.subscribe((value) => {
|
|
3713
|
+
props.component.state.text = value;
|
|
3714
|
+
}).add(fromEvent(node, 'mousedown').subscribe(ev => ev.stopPropagation()), fromEvent(document, 'mousedown').subscribe(() => {
|
|
3715
|
+
var _a;
|
|
3716
|
+
(_a = dropdownRef.current) === null || _a === void 0 ? void 0 : _a.isShow(false);
|
|
3717
|
+
}));
|
|
3718
|
+
return () => {
|
|
3719
|
+
subscription.unsubscribe();
|
|
3720
|
+
editor.destroy();
|
|
3721
|
+
};
|
|
3722
|
+
});
|
|
3723
|
+
const dropdownRef = createRef();
|
|
3724
|
+
const output = useOutput();
|
|
3725
|
+
const readonly = useReadonly();
|
|
3726
|
+
return () => {
|
|
3727
|
+
const text = props.component.state.text;
|
|
3728
|
+
return (jsx("span", { onClick: () => {
|
|
3729
|
+
var _a;
|
|
3730
|
+
(_a = dropdownRef.current) === null || _a === void 0 ? void 0 : _a.isShow(true);
|
|
3731
|
+
}, ref: props.rootRef, "data-component": KatexComponent.componentName, "data-katex": btoa(text), class: "xnote-katex", children: (output() || readonly()) ?
|
|
3732
|
+
domToVDom(toDOM(text))
|
|
3733
|
+
:
|
|
3734
|
+
jsx(Dropdown, { padding: '0', ref: dropdownRef, trigger: 'none', width: '600px', menu: jsx("div", { class: "xnote-katex-input", ref: editorRef }), children: domToVDom(toDOM(text)) }) }));
|
|
3735
|
+
};
|
|
3736
|
+
}
|
|
3737
|
+
const katexComponentLoader = {
|
|
3738
|
+
match(element) {
|
|
3739
|
+
return element.dataset.component === KatexComponent.componentName;
|
|
3740
|
+
},
|
|
3741
|
+
read(element, textbus) {
|
|
3742
|
+
const value = element.dataset.katex || '';
|
|
3743
|
+
return new KatexComponent(textbus, {
|
|
3744
|
+
text: atob(value)
|
|
3745
|
+
});
|
|
3746
|
+
}
|
|
3747
|
+
};
|
|
3748
|
+
|
|
3595
3749
|
function InsertTool(props) {
|
|
3596
3750
|
const commander = inject(Commander);
|
|
3597
3751
|
const selection = inject(Selection);
|
|
@@ -3719,10 +3873,19 @@ function InsertTool(props) {
|
|
|
3719
3873
|
selection.setPosition(p.state.slot, 0);
|
|
3720
3874
|
}
|
|
3721
3875
|
break;
|
|
3876
|
+
case 'katex':
|
|
3877
|
+
{
|
|
3878
|
+
const p = new ParagraphComponent(textbus);
|
|
3879
|
+
const comp = new KatexComponent(textbus);
|
|
3880
|
+
p.state.slot.insert(comp);
|
|
3881
|
+
insertComponent(p);
|
|
3882
|
+
selection.selectComponent(comp);
|
|
3883
|
+
}
|
|
3884
|
+
break;
|
|
3722
3885
|
}
|
|
3723
3886
|
}
|
|
3724
3887
|
return withScopedCSS(scopedId$8, () => {
|
|
3725
|
-
return jsxs(Fragment, { children: [props.hideTitle ? null : jsx(MenuHeading, { children: props.replace ? '替换为' : '在下面添加' }), jsxs("div", { class: "btn-group", children: [jsx(Button, { ordinary: true, onClick: () => insert('paragraph'), children: jsx("span", { class: "xnote-icon-pilcrow" }) }), jsx(Button, { ordinary: true, onClick: () => insert('h1'), children: jsx("span", { class: "xnote-icon-heading-h1" }) }), jsx(Button, { ordinary: true, onClick: () => insert('h2'), children: jsx("span", { class: "xnote-icon-heading-h2" }) }), jsx(Button, { ordinary: true, onClick: () => insert('h3'), children: jsx("span", { class: "xnote-icon-heading-h3" }) }), jsx(Button, { ordinary: true, onClick: () => insert('h4'), children: jsx("span", { class: "xnote-icon-heading-h4" }) }), jsx(Button, { ordinary: true, onClick: () => insert('h5'), children: jsx("span", { class: "xnote-icon-heading-h5" }) }), jsx(Button, { ordinary: true, onClick: () => insert('h6'), children: jsx("span", { class: "xnote-icon-heading-h6" }) }), jsx(Button, { ordinary: true, onClick: () => insert('ol'), children: jsx("span", { class: "xnote-icon-list-numbered" }) }), jsx(Button, { ordinary: true, onClick: () => insert('ul'), children: jsx("span", { class: "xnote-icon-list" }) }), jsx(Button, { ordinary: true, onClick: () => insert('sourceCode'), children: jsx("span", { class: "xnote-icon-source-code" }) })] }), jsx(Divider, {}), jsx(MenuItem, { onClick: () => insert('table'), icon: jsx("span", { class: "xnote-icon-table" }), children: "\u8868\u683C" }), jsx(MenuItem, { onClick: () => insert('todolist'), icon: jsx("span", { class: "xnote-icon-checkbox-checked" }), children: "\u5F85\u529E\u5217\u8868" }), jsx(MenuItem, { onClick: () => insert('image'), icon: jsx("span", { class: "xnote-icon-image" }), children: "\u56FE\u7247" }), jsx(MenuItem, { onClick: () => insert('video'), icon: jsx("span", { class: "xnote-icon-video" }), children: "\u89C6\u9891" }), jsx(MenuItem, { onClick: () => insert('highlightBox'), icon: jsx("span", { class: "xnote-icon-warning" }), children: "\u9AD8\u4EAE\u5757" })] });
|
|
3888
|
+
return jsxs(Fragment, { children: [props.hideTitle ? null : jsx(MenuHeading, { children: props.replace ? '替换为' : '在下面添加' }), jsxs("div", { class: "btn-group", children: [jsx(Button, { ordinary: true, onClick: () => insert('paragraph'), children: jsx("span", { class: "xnote-icon-pilcrow" }) }), jsx(Button, { ordinary: true, onClick: () => insert('h1'), children: jsx("span", { class: "xnote-icon-heading-h1" }) }), jsx(Button, { ordinary: true, onClick: () => insert('h2'), children: jsx("span", { class: "xnote-icon-heading-h2" }) }), jsx(Button, { ordinary: true, onClick: () => insert('h3'), children: jsx("span", { class: "xnote-icon-heading-h3" }) }), jsx(Button, { ordinary: true, onClick: () => insert('h4'), children: jsx("span", { class: "xnote-icon-heading-h4" }) }), jsx(Button, { ordinary: true, onClick: () => insert('h5'), children: jsx("span", { class: "xnote-icon-heading-h5" }) }), jsx(Button, { ordinary: true, onClick: () => insert('h6'), children: jsx("span", { class: "xnote-icon-heading-h6" }) }), jsx(Button, { ordinary: true, onClick: () => insert('ol'), children: jsx("span", { class: "xnote-icon-list-numbered" }) }), jsx(Button, { ordinary: true, onClick: () => insert('ul'), children: jsx("span", { class: "xnote-icon-list" }) }), jsx(Button, { ordinary: true, onClick: () => insert('sourceCode'), children: jsx("span", { class: "xnote-icon-source-code" }) })] }), jsx(Divider, {}), jsx(MenuItem, { onClick: () => insert('table'), icon: jsx("span", { class: "xnote-icon-table" }), children: "\u8868\u683C" }), jsx(MenuItem, { onClick: () => insert('todolist'), icon: jsx("span", { class: "xnote-icon-checkbox-checked" }), children: "\u5F85\u529E\u5217\u8868" }), jsx(MenuItem, { onClick: () => insert('image'), icon: jsx("span", { class: "xnote-icon-image" }), children: "\u56FE\u7247" }), jsx(MenuItem, { onClick: () => insert('video'), icon: jsx("span", { class: "xnote-icon-video" }), children: "\u89C6\u9891" }), jsx(MenuItem, { onClick: () => insert('highlightBox'), icon: jsx("span", { class: "xnote-icon-warning" }), children: "\u9AD8\u4EAE\u5757" }), jsx(MenuItem, { onClick: () => insert('katex'), icon: jsx("span", { class: "xnote-icon-opt" }), children: "\u6570\u5B66\u516C\u5F0F" })] });
|
|
3726
3889
|
});
|
|
3727
3890
|
}
|
|
3728
3891
|
|
|
@@ -5196,6 +5359,7 @@ class Editor extends Textbus {
|
|
|
5196
5359
|
[ImageComponent.componentName]: ImageView,
|
|
5197
5360
|
[VideoComponent.componentName]: VideoView,
|
|
5198
5361
|
[AtComponent.componentName]: AtComponentView,
|
|
5362
|
+
[KatexComponent.componentName]: KatexComponentView,
|
|
5199
5363
|
}, (host, root, injector) => {
|
|
5200
5364
|
const appInjector = new ReflectiveInjector(injector, [{
|
|
5201
5365
|
provide: OutputInjectionToken,
|
|
@@ -5213,14 +5377,15 @@ class Editor extends Textbus {
|
|
|
5213
5377
|
}, adapter, componentLoaders: [
|
|
5214
5378
|
atComponentLoader,
|
|
5215
5379
|
sourceCodeComponentLoader,
|
|
5380
|
+
listComponentLoader,
|
|
5216
5381
|
tableComponentLoader,
|
|
5217
5382
|
imageComponentLoader,
|
|
5218
|
-
videoComponentLoader,
|
|
5219
5383
|
highlightBoxComponentLoader,
|
|
5220
5384
|
blockquoteComponentLoader,
|
|
5221
|
-
|
|
5385
|
+
videoComponentLoader,
|
|
5222
5386
|
todolistComponentLoader,
|
|
5223
|
-
|
|
5387
|
+
katexComponentLoader,
|
|
5388
|
+
paragraphComponentLoader,
|
|
5224
5389
|
], formatLoaders: [
|
|
5225
5390
|
backgroundColorFormatLoader,
|
|
5226
5391
|
boldFormatLoader,
|
|
@@ -5252,7 +5417,8 @@ class Editor extends Textbus {
|
|
|
5252
5417
|
[ListComponent.componentName]: ListComponentView,
|
|
5253
5418
|
[ImageComponent.componentName]: ImageView,
|
|
5254
5419
|
[VideoComponent.componentName]: VideoView,
|
|
5255
|
-
[AtComponent.componentName]: AtComponentView
|
|
5420
|
+
[AtComponent.componentName]: AtComponentView,
|
|
5421
|
+
[KatexComponent.componentName]: KatexComponentView
|
|
5256
5422
|
}, (host, root, injector) => {
|
|
5257
5423
|
const appInjector = new ReflectiveInjector(injector, [{
|
|
5258
5424
|
provide: OutputInjectionToken,
|
|
@@ -5282,7 +5448,8 @@ class Editor extends Textbus {
|
|
|
5282
5448
|
HighlightBoxComponent,
|
|
5283
5449
|
ListComponent,
|
|
5284
5450
|
VideoComponent,
|
|
5285
|
-
AtComponent
|
|
5451
|
+
AtComponent,
|
|
5452
|
+
KatexComponent
|
|
5286
5453
|
], formatters: [
|
|
5287
5454
|
backgroundColorFormatter,
|
|
5288
5455
|
boldFormatter,
|
|
@@ -5354,4 +5521,4 @@ class Editor extends Textbus {
|
|
|
5354
5521
|
}
|
|
5355
5522
|
}
|
|
5356
5523
|
|
|
5357
|
-
export { AtComponent, AtComponentView, AttrTool, BlockTool, BlockquoteComponent, BlockquoteView, BoldTool, Button, CodeTool, ColorTool, ComponentToolbar, Divider, DragResize, Dropdown, DropdownContextService, DropdownMenuPortal, DropdownService, Editor, EditorService, FontFamilyTool, FontSizeTool, HighlightBoxComponent, HighlightBoxView, ImageComponent, ImageView, InsertTool, ItalicTool, Keymap, LeftToolbar, LeftToolbarPlugin, LinkTool, ListComponent, ListComponentView, Matcher, MenuHeading, MenuItem, Organization, OutputInjectionToken, ParagraphComponent, ParagraphView, Popup, RefreshService, RootComponent, RootView, SourceCodeComponent, SourceCodeView, StrikeThroughTool, TableComponent, TableComponentView, TodolistComponent, TodolistView, Toolbar, ToolbarItem, ToolbarPlugin, UnderlineTool, VideoComponent, VideoView, atComponentLoader, autoComplete, backgroundColorFormatLoader, backgroundColorFormatter, blockquoteComponentLoader, boldFormatLoader, boldFormatter, codeFormatLoader, codeFormatter, colorFormatLoader, colorFormatter, deltaToBlock, fontFamilyFormatLoader, fontFamilyFormatter, fontSizeFormatLoader, fontSizeFormatter, headingAttr, headingAttrLoader, highlightBoxComponentLoader, imageComponentLoader, isSupportFont, italicFormatLoader, italicFormatter, languageList, linkFormatLoader, linkFormatter, listComponentLoader, paragraphComponentLoader, registerAtShortcut, registerBlockquoteShortcut, registerBoldShortcut, registerCodeShortcut, registerHeadingShortcut, registerItalicShortcut, registerListShortcut, registerStrikeThroughShortcut, registerTextAlignShortcut, registerTextIndentShortcut, registerUnderlineShortcut, rootComponentLoader, sourceCodeComponentLoader, sourceCodeThemes, strikeThroughFormatLoader, strikeThroughFormatter, tableComponentLoader, textAlignAttr, textAlignAttrLoader, textIndentAttr, textIndentAttrLoader, toBlockquote, toList, todolistComponentLoader, toggleBold, toggleCode, toggleItalic, toggleStrikeThrough, toggleUnderline, underlineFormatLoader, underlineFormatter, useActiveBlock, useBlockContent, useBlockTransform, useOutput, useReadonly, videoComponentLoader };
|
|
5524
|
+
export { AtComponent, AtComponentView, AttrTool, BlockTool, BlockquoteComponent, BlockquoteView, BoldTool, Button, CodeTool, ColorTool, ComponentToolbar, Divider, DragResize, Dropdown, DropdownContextService, DropdownMenuPortal, DropdownService, Editor, EditorService, FontFamilyTool, FontSizeTool, HighlightBoxComponent, HighlightBoxView, ImageComponent, ImageView, InsertTool, ItalicTool, KatexComponent, KatexComponentView, Keymap, LeftToolbar, LeftToolbarPlugin, LinkTool, ListComponent, ListComponentView, Matcher, MenuHeading, MenuItem, Organization, OutputInjectionToken, ParagraphComponent, ParagraphView, Popup, RefreshService, RootComponent, RootView, SourceCodeComponent, SourceCodeView, StrikeThroughTool, TableComponent, TableComponentView, TodolistComponent, TodolistView, Toolbar, ToolbarItem, ToolbarPlugin, UnderlineTool, VideoComponent, VideoView, atComponentLoader, autoComplete, backgroundColorFormatLoader, backgroundColorFormatter, blockquoteComponentLoader, boldFormatLoader, boldFormatter, codeFormatLoader, codeFormatter, colorFormatLoader, colorFormatter, deltaToBlock, fontFamilyFormatLoader, fontFamilyFormatter, fontSizeFormatLoader, fontSizeFormatter, headingAttr, headingAttrLoader, highlightBoxComponentLoader, imageComponentLoader, isSupportFont, italicFormatLoader, italicFormatter, katexComponentLoader, languageList, linkFormatLoader, linkFormatter, listComponentLoader, paragraphComponentLoader, registerAtShortcut, registerBlockquoteShortcut, registerBoldShortcut, registerCodeShortcut, registerHeadingShortcut, registerItalicShortcut, registerListShortcut, registerStrikeThroughShortcut, registerTextAlignShortcut, registerTextIndentShortcut, registerUnderlineShortcut, rootComponentLoader, sourceCodeComponentLoader, sourceCodeThemes, strikeThroughFormatLoader, strikeThroughFormatter, tableComponentLoader, textAlignAttr, textAlignAttrLoader, textIndentAttr, textIndentAttrLoader, toBlockquote, toList, todolistComponentLoader, toggleBold, toggleCode, toggleItalic, toggleStrikeThrough, toggleUnderline, underlineFormatLoader, underlineFormatter, useActiveBlock, useBlockContent, useBlockTransform, useOutput, useReadonly, videoComponentLoader };
|
package/bundles/index.js
CHANGED
|
@@ -8,8 +8,9 @@ var platformBrowser = require('@textbus/platform-browser');
|
|
|
8
8
|
var platformBrowser$1 = require('@viewfly/platform-browser');
|
|
9
9
|
var hooks = require('@viewfly/hooks');
|
|
10
10
|
var highlightjs = require('highlight.js');
|
|
11
|
-
var
|
|
11
|
+
var Katex = require('katex');
|
|
12
12
|
var adapterViewfly = require('@textbus/adapter-viewfly');
|
|
13
|
+
var color = require('@tanbo/color');
|
|
13
14
|
var collaborate = require('@textbus/collaborate');
|
|
14
15
|
|
|
15
16
|
var scopedId$m = "vf-3d0183";
|
|
@@ -283,7 +284,7 @@ function DragResize(props) {
|
|
|
283
284
|
|
|
284
285
|
var scopedId$i = "vf-a99c5e";
|
|
285
286
|
|
|
286
|
-
var scopedId$h = "vf-
|
|
287
|
+
var scopedId$h = "vf-d1e8a0";
|
|
287
288
|
|
|
288
289
|
const DropdownMenuPortal = core.withAnnotation({
|
|
289
290
|
providers: [
|
|
@@ -357,7 +358,6 @@ const DropdownMenuPortal = core.withAnnotation({
|
|
|
357
358
|
}
|
|
358
359
|
}
|
|
359
360
|
core.onUpdated(() => {
|
|
360
|
-
console.log(22);
|
|
361
361
|
update();
|
|
362
362
|
});
|
|
363
363
|
core.onUnmounted(() => {
|
|
@@ -380,7 +380,9 @@ const DropdownMenuPortal = core.withAnnotation({
|
|
|
380
380
|
return platformBrowser$1.createPortal(scopedCss.withScopedCSS(scopedId$h, () => {
|
|
381
381
|
return (jsxRuntime.jsx("div", { onMouseenter: onEnter, onMouseleave: onLeave, ref: menuRef, style: {
|
|
382
382
|
width: props.width
|
|
383
|
-
}, class: "dropdown-menu", children: jsxRuntime.jsx("div", { class: "dropdown-menu-content",
|
|
383
|
+
}, class: "dropdown-menu", children: jsxRuntime.jsx("div", { class: "dropdown-menu-content", style: {
|
|
384
|
+
padding: props.padding
|
|
385
|
+
}, children: props.children }) }));
|
|
384
386
|
}), document.body);
|
|
385
387
|
});
|
|
386
388
|
|
|
@@ -444,7 +446,7 @@ const Dropdown = core.withAnnotation({
|
|
|
444
446
|
}
|
|
445
447
|
},
|
|
446
448
|
$render: scopedCss.withScopedCSS(scopedId$i, () => {
|
|
447
|
-
return (jsxRuntime.jsxs("div", { class: ['dropdown', props.class], style: props.style, ref: dropdownRef, children: [jsxRuntime.jsxs("div", { class: "dropdown-btn", ref: triggerRef, children: [jsxRuntime.jsx("div", { class: "dropdown-btn-inner", children: props.children }), jsxRuntime.jsx("div", { class: "dropdown-btn-arrow" })] }), isShow() && jsxRuntime.jsx(DropdownMenuPortal, { noTrigger: props.trigger === 'none', width: props.width, abreast: props.abreast, triggerRef: triggerRef, children: Array.isArray(props.menu) ?
|
|
449
|
+
return (jsxRuntime.jsxs("div", { class: ['dropdown', props.class], style: props.style, ref: dropdownRef, children: [jsxRuntime.jsxs("div", { class: "dropdown-btn", ref: triggerRef, children: [jsxRuntime.jsx("div", { class: "dropdown-btn-inner", children: props.children }), jsxRuntime.jsx("div", { class: "dropdown-btn-arrow" })] }), isShow() && jsxRuntime.jsx(DropdownMenuPortal, { padding: props.padding, noTrigger: props.trigger === 'none', width: props.width, abreast: props.abreast, triggerRef: triggerRef, children: Array.isArray(props.menu) ?
|
|
448
450
|
props.menu.map(menu => {
|
|
449
451
|
return (jsxRuntime.jsx("div", { class: "dropdown-menu-item", onClick: () => {
|
|
450
452
|
var _a;
|
|
@@ -1160,7 +1162,9 @@ class SourceCodeComponent extends core$1.Component {
|
|
|
1160
1162
|
const selection = core$1.useContext(core$1.Selection);
|
|
1161
1163
|
core$1.onBreak(ev => {
|
|
1162
1164
|
const slots = this.state.slots;
|
|
1163
|
-
|
|
1165
|
+
const parentComponent = selection.commonAncestorComponent;
|
|
1166
|
+
const parentSlot = parentComponent.parent;
|
|
1167
|
+
if (parentSlot && ev.target.isEmpty && ev.target === slots[slots.length - 1].slot) {
|
|
1164
1168
|
const prevSlot = slots[slots.length - 2];
|
|
1165
1169
|
if (prevSlot === null || prevSlot === void 0 ? void 0 : prevSlot.slot.isEmpty) {
|
|
1166
1170
|
const slot = new core$1.Slot([
|
|
@@ -1170,8 +1174,6 @@ class SourceCodeComponent extends core$1.Component {
|
|
|
1170
1174
|
const paragraph = new ParagraphComponent(textbus, {
|
|
1171
1175
|
slot
|
|
1172
1176
|
});
|
|
1173
|
-
const parentComponent = selection.commonAncestorComponent;
|
|
1174
|
-
const parentSlot = parentComponent.parent;
|
|
1175
1177
|
const index = parentSlot.indexOf(parentComponent);
|
|
1176
1178
|
parentSlot.retain(index + 1);
|
|
1177
1179
|
slots.pop();
|
|
@@ -1434,28 +1436,6 @@ function SourceCodeView(props) {
|
|
|
1434
1436
|
}
|
|
1435
1437
|
}
|
|
1436
1438
|
}
|
|
1437
|
-
function nodesToVNodes(slot, nodes, index) {
|
|
1438
|
-
return nodes.map(i => {
|
|
1439
|
-
const location = {
|
|
1440
|
-
slot,
|
|
1441
|
-
startIndex: index,
|
|
1442
|
-
endIndex: index + i.textContent.length
|
|
1443
|
-
};
|
|
1444
|
-
if (i.nodeType === Node.ELEMENT_NODE) {
|
|
1445
|
-
const childNodes = Array.from(i.childNodes);
|
|
1446
|
-
const vEle = core$1.createVNode('span', {
|
|
1447
|
-
class: i.className
|
|
1448
|
-
}, nodesToVNodes(slot, childNodes, index));
|
|
1449
|
-
index = location.endIndex;
|
|
1450
|
-
vEle.location = Object.assign({}, location);
|
|
1451
|
-
return vEle;
|
|
1452
|
-
}
|
|
1453
|
-
index = location.endIndex;
|
|
1454
|
-
const textNode = new core$1.VTextNode(i.textContent);
|
|
1455
|
-
textNode.location = location;
|
|
1456
|
-
return textNode;
|
|
1457
|
-
});
|
|
1458
|
-
}
|
|
1459
1439
|
return (jsxRuntime.jsxs("div", { ref: props.rootRef, class: {
|
|
1460
1440
|
'xnote-source-code': true,
|
|
1461
1441
|
'xnote-source-code-line-number': state.lineNumber,
|
|
@@ -1516,6 +1496,28 @@ function SourceCodeView(props) {
|
|
|
1516
1496
|
}) }), jsxRuntime.jsx("span", { class: "xnote-source-code-lang", children: lang })] })] }));
|
|
1517
1497
|
};
|
|
1518
1498
|
}
|
|
1499
|
+
function nodesToVNodes(slot, nodes, index) {
|
|
1500
|
+
return nodes.map(i => {
|
|
1501
|
+
const location = {
|
|
1502
|
+
slot,
|
|
1503
|
+
startIndex: index,
|
|
1504
|
+
endIndex: index + i.textContent.length
|
|
1505
|
+
};
|
|
1506
|
+
if (i.nodeType === Node.ELEMENT_NODE) {
|
|
1507
|
+
const childNodes = Array.from(i.childNodes);
|
|
1508
|
+
const vEle = core$1.createVNode('span', {
|
|
1509
|
+
class: i.className
|
|
1510
|
+
}, nodesToVNodes(slot, childNodes, index));
|
|
1511
|
+
index = location.endIndex;
|
|
1512
|
+
vEle.location = Object.assign({}, location);
|
|
1513
|
+
return vEle;
|
|
1514
|
+
}
|
|
1515
|
+
index = location.endIndex;
|
|
1516
|
+
const textNode = new core$1.VTextNode(i.textContent);
|
|
1517
|
+
textNode.location = location;
|
|
1518
|
+
return textNode;
|
|
1519
|
+
});
|
|
1520
|
+
}
|
|
1519
1521
|
const sourceCodeComponentLoader = {
|
|
1520
1522
|
match(element, returnableContentTypes) {
|
|
1521
1523
|
return returnableContentTypes.includes(core$1.ContentType.BlockComponent) &&
|
|
@@ -2276,7 +2278,7 @@ class ListComponent extends core$1.Component {
|
|
|
2276
2278
|
key: 'Tab'
|
|
2277
2279
|
},
|
|
2278
2280
|
action: () => {
|
|
2279
|
-
|
|
2281
|
+
updateAfterList(this);
|
|
2280
2282
|
return false;
|
|
2281
2283
|
}
|
|
2282
2284
|
});
|
|
@@ -3594,6 +3596,158 @@ const videoComponentLoader = {
|
|
|
3594
3596
|
}
|
|
3595
3597
|
};
|
|
3596
3598
|
|
|
3599
|
+
class KatexEditor extends core$1.Textbus {
|
|
3600
|
+
constructor() {
|
|
3601
|
+
const adapter = new adapterViewfly.ViewflyAdapter({
|
|
3602
|
+
[SourceCodeComponent.componentName]: SourceCodeView
|
|
3603
|
+
}, (host, root, injector) => {
|
|
3604
|
+
const appInjector = new core.ReflectiveInjector(injector, [{
|
|
3605
|
+
provide: OutputInjectionToken,
|
|
3606
|
+
useValue: true
|
|
3607
|
+
}]);
|
|
3608
|
+
const app = platformBrowser$1.createApp(root, {
|
|
3609
|
+
context: appInjector
|
|
3610
|
+
}).mount(host);
|
|
3611
|
+
return () => {
|
|
3612
|
+
app.destroy();
|
|
3613
|
+
};
|
|
3614
|
+
});
|
|
3615
|
+
const browserModule = new platformBrowser.BrowserModule({
|
|
3616
|
+
adapter,
|
|
3617
|
+
renderTo: () => {
|
|
3618
|
+
return this.host;
|
|
3619
|
+
}
|
|
3620
|
+
});
|
|
3621
|
+
super({
|
|
3622
|
+
components: [
|
|
3623
|
+
SourceCodeComponent
|
|
3624
|
+
],
|
|
3625
|
+
imports: [browserModule]
|
|
3626
|
+
});
|
|
3627
|
+
this.onValueChange = new core$1.Subject();
|
|
3628
|
+
}
|
|
3629
|
+
mount(host, code) {
|
|
3630
|
+
this.host = host;
|
|
3631
|
+
const model = new SourceCodeComponent(this, {
|
|
3632
|
+
lineNumber: true,
|
|
3633
|
+
autoBreak: true,
|
|
3634
|
+
lang: 'latex',
|
|
3635
|
+
theme: 'github',
|
|
3636
|
+
slots: code.split('\n').map(i => {
|
|
3637
|
+
const slot = new core$1.Slot([core$1.ContentType.Text]);
|
|
3638
|
+
slot.insert(i);
|
|
3639
|
+
return {
|
|
3640
|
+
slot,
|
|
3641
|
+
emphasize: false
|
|
3642
|
+
};
|
|
3643
|
+
})
|
|
3644
|
+
});
|
|
3645
|
+
this.onChange.subscribe(() => {
|
|
3646
|
+
const str = model.state.slots.map(i => {
|
|
3647
|
+
if (i.slot.isEmpty) {
|
|
3648
|
+
return '';
|
|
3649
|
+
}
|
|
3650
|
+
return i.slot.toString();
|
|
3651
|
+
}).join('\n');
|
|
3652
|
+
this.onValueChange.next(str);
|
|
3653
|
+
});
|
|
3654
|
+
return this.render(model);
|
|
3655
|
+
}
|
|
3656
|
+
}
|
|
3657
|
+
|
|
3658
|
+
class KatexComponent extends core$1.Component {
|
|
3659
|
+
static fromJSON(textbus, state) {
|
|
3660
|
+
return new KatexComponent(textbus, state);
|
|
3661
|
+
}
|
|
3662
|
+
constructor(textbus, state = {
|
|
3663
|
+
text: '% \\f is defined as #1f(#2) using the macro\n' +
|
|
3664
|
+
'\\f\\relax{x} = \\int_{-\\infty}^\\infty\n' +
|
|
3665
|
+
'\\f\\hat\\xi\\,e^{2 \\pi i \\xi x}\n' +
|
|
3666
|
+
'\\,d\\xi'
|
|
3667
|
+
}) {
|
|
3668
|
+
super(textbus, state);
|
|
3669
|
+
}
|
|
3670
|
+
}
|
|
3671
|
+
KatexComponent.componentName = 'KatexComponent';
|
|
3672
|
+
KatexComponent.type = core$1.ContentType.InlineComponent;
|
|
3673
|
+
function domToVDom(el) {
|
|
3674
|
+
const attrs = {};
|
|
3675
|
+
el.getAttributeNames().forEach(key => {
|
|
3676
|
+
attrs[key] = el.getAttribute(key);
|
|
3677
|
+
});
|
|
3678
|
+
attrs.children = Array.from(el.childNodes).map(child => {
|
|
3679
|
+
if (child.nodeType === Node.ELEMENT_NODE) {
|
|
3680
|
+
return domToVDom(child);
|
|
3681
|
+
}
|
|
3682
|
+
return child.textContent || '';
|
|
3683
|
+
});
|
|
3684
|
+
return core.jsx(el.tagName.toLowerCase(), attrs);
|
|
3685
|
+
}
|
|
3686
|
+
function KatexComponentView(props) {
|
|
3687
|
+
function toDOM(value) {
|
|
3688
|
+
let htmlString;
|
|
3689
|
+
try {
|
|
3690
|
+
htmlString = Katex.renderToString(value, {
|
|
3691
|
+
displayMode: true,
|
|
3692
|
+
leqno: false,
|
|
3693
|
+
fleqn: false,
|
|
3694
|
+
throwOnError: true,
|
|
3695
|
+
errorColor: '#cc0000',
|
|
3696
|
+
strict: 'warn',
|
|
3697
|
+
output: 'html',
|
|
3698
|
+
trust: false,
|
|
3699
|
+
macros: { '\\f': '#1f(#2)' }
|
|
3700
|
+
});
|
|
3701
|
+
}
|
|
3702
|
+
catch (e) {
|
|
3703
|
+
htmlString = '<span style="color: red">公式错误</span>';
|
|
3704
|
+
}
|
|
3705
|
+
return new DOMParser().parseFromString(htmlString, 'text/html').body.children[0];
|
|
3706
|
+
}
|
|
3707
|
+
const selection = core.inject(core$1.Textbus);
|
|
3708
|
+
const editorRef = core.createDynamicRef(node => {
|
|
3709
|
+
const editor = new KatexEditor();
|
|
3710
|
+
editor.mount(node, props.component.state.text).then(() => {
|
|
3711
|
+
editor.focus();
|
|
3712
|
+
});
|
|
3713
|
+
selection.blur();
|
|
3714
|
+
const subscription = editor.onValueChange.subscribe((value) => {
|
|
3715
|
+
props.component.state.text = value;
|
|
3716
|
+
}).add(core$1.fromEvent(node, 'mousedown').subscribe(ev => ev.stopPropagation()), core$1.fromEvent(document, 'mousedown').subscribe(() => {
|
|
3717
|
+
var _a;
|
|
3718
|
+
(_a = dropdownRef.current) === null || _a === void 0 ? void 0 : _a.isShow(false);
|
|
3719
|
+
}));
|
|
3720
|
+
return () => {
|
|
3721
|
+
subscription.unsubscribe();
|
|
3722
|
+
editor.destroy();
|
|
3723
|
+
};
|
|
3724
|
+
});
|
|
3725
|
+
const dropdownRef = core.createRef();
|
|
3726
|
+
const output = useOutput();
|
|
3727
|
+
const readonly = useReadonly();
|
|
3728
|
+
return () => {
|
|
3729
|
+
const text = props.component.state.text;
|
|
3730
|
+
return (jsxRuntime.jsx("span", { onClick: () => {
|
|
3731
|
+
var _a;
|
|
3732
|
+
(_a = dropdownRef.current) === null || _a === void 0 ? void 0 : _a.isShow(true);
|
|
3733
|
+
}, ref: props.rootRef, "data-component": KatexComponent.componentName, "data-katex": btoa(text), class: "xnote-katex", children: (output() || readonly()) ?
|
|
3734
|
+
domToVDom(toDOM(text))
|
|
3735
|
+
:
|
|
3736
|
+
jsxRuntime.jsx(Dropdown, { padding: '0', ref: dropdownRef, trigger: 'none', width: '600px', menu: jsxRuntime.jsx("div", { class: "xnote-katex-input", ref: editorRef }), children: domToVDom(toDOM(text)) }) }));
|
|
3737
|
+
};
|
|
3738
|
+
}
|
|
3739
|
+
const katexComponentLoader = {
|
|
3740
|
+
match(element) {
|
|
3741
|
+
return element.dataset.component === KatexComponent.componentName;
|
|
3742
|
+
},
|
|
3743
|
+
read(element, textbus) {
|
|
3744
|
+
const value = element.dataset.katex || '';
|
|
3745
|
+
return new KatexComponent(textbus, {
|
|
3746
|
+
text: atob(value)
|
|
3747
|
+
});
|
|
3748
|
+
}
|
|
3749
|
+
};
|
|
3750
|
+
|
|
3597
3751
|
function InsertTool(props) {
|
|
3598
3752
|
const commander = core.inject(core$1.Commander);
|
|
3599
3753
|
const selection = core.inject(core$1.Selection);
|
|
@@ -3721,10 +3875,19 @@ function InsertTool(props) {
|
|
|
3721
3875
|
selection.setPosition(p.state.slot, 0);
|
|
3722
3876
|
}
|
|
3723
3877
|
break;
|
|
3878
|
+
case 'katex':
|
|
3879
|
+
{
|
|
3880
|
+
const p = new ParagraphComponent(textbus);
|
|
3881
|
+
const comp = new KatexComponent(textbus);
|
|
3882
|
+
p.state.slot.insert(comp);
|
|
3883
|
+
insertComponent(p);
|
|
3884
|
+
selection.selectComponent(comp);
|
|
3885
|
+
}
|
|
3886
|
+
break;
|
|
3724
3887
|
}
|
|
3725
3888
|
}
|
|
3726
3889
|
return scopedCss.withScopedCSS(scopedId$8, () => {
|
|
3727
|
-
return jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [props.hideTitle ? null : jsxRuntime.jsx(MenuHeading, { children: props.replace ? '替换为' : '在下面添加' }), jsxRuntime.jsxs("div", { class: "btn-group", children: [jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('paragraph'), children: jsxRuntime.jsx("span", { class: "xnote-icon-pilcrow" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('h1'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h1" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('h2'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h2" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('h3'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h3" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('h4'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h4" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('h5'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h5" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('h6'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h6" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('ol'), children: jsxRuntime.jsx("span", { class: "xnote-icon-list-numbered" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('ul'), children: jsxRuntime.jsx("span", { class: "xnote-icon-list" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('sourceCode'), children: jsxRuntime.jsx("span", { class: "xnote-icon-source-code" }) })] }), jsxRuntime.jsx(Divider, {}), jsxRuntime.jsx(MenuItem, { onClick: () => insert('table'), icon: jsxRuntime.jsx("span", { class: "xnote-icon-table" }), children: "\u8868\u683C" }), jsxRuntime.jsx(MenuItem, { onClick: () => insert('todolist'), icon: jsxRuntime.jsx("span", { class: "xnote-icon-checkbox-checked" }), children: "\u5F85\u529E\u5217\u8868" }), jsxRuntime.jsx(MenuItem, { onClick: () => insert('image'), icon: jsxRuntime.jsx("span", { class: "xnote-icon-image" }), children: "\u56FE\u7247" }), jsxRuntime.jsx(MenuItem, { onClick: () => insert('video'), icon: jsxRuntime.jsx("span", { class: "xnote-icon-video" }), children: "\u89C6\u9891" }), jsxRuntime.jsx(MenuItem, { onClick: () => insert('highlightBox'), icon: jsxRuntime.jsx("span", { class: "xnote-icon-warning" }), children: "\u9AD8\u4EAE\u5757" })] });
|
|
3890
|
+
return jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [props.hideTitle ? null : jsxRuntime.jsx(MenuHeading, { children: props.replace ? '替换为' : '在下面添加' }), jsxRuntime.jsxs("div", { class: "btn-group", children: [jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('paragraph'), children: jsxRuntime.jsx("span", { class: "xnote-icon-pilcrow" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('h1'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h1" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('h2'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h2" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('h3'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h3" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('h4'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h4" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('h5'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h5" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('h6'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h6" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('ol'), children: jsxRuntime.jsx("span", { class: "xnote-icon-list-numbered" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('ul'), children: jsxRuntime.jsx("span", { class: "xnote-icon-list" }) }), jsxRuntime.jsx(Button, { ordinary: true, onClick: () => insert('sourceCode'), children: jsxRuntime.jsx("span", { class: "xnote-icon-source-code" }) })] }), jsxRuntime.jsx(Divider, {}), jsxRuntime.jsx(MenuItem, { onClick: () => insert('table'), icon: jsxRuntime.jsx("span", { class: "xnote-icon-table" }), children: "\u8868\u683C" }), jsxRuntime.jsx(MenuItem, { onClick: () => insert('todolist'), icon: jsxRuntime.jsx("span", { class: "xnote-icon-checkbox-checked" }), children: "\u5F85\u529E\u5217\u8868" }), jsxRuntime.jsx(MenuItem, { onClick: () => insert('image'), icon: jsxRuntime.jsx("span", { class: "xnote-icon-image" }), children: "\u56FE\u7247" }), jsxRuntime.jsx(MenuItem, { onClick: () => insert('video'), icon: jsxRuntime.jsx("span", { class: "xnote-icon-video" }), children: "\u89C6\u9891" }), jsxRuntime.jsx(MenuItem, { onClick: () => insert('highlightBox'), icon: jsxRuntime.jsx("span", { class: "xnote-icon-warning" }), children: "\u9AD8\u4EAE\u5757" }), jsxRuntime.jsx(MenuItem, { onClick: () => insert('katex'), icon: jsxRuntime.jsx("span", { class: "xnote-icon-opt" }), children: "\u6570\u5B66\u516C\u5F0F" })] });
|
|
3728
3891
|
});
|
|
3729
3892
|
}
|
|
3730
3893
|
|
|
@@ -5198,6 +5361,7 @@ class Editor extends core$1.Textbus {
|
|
|
5198
5361
|
[ImageComponent.componentName]: ImageView,
|
|
5199
5362
|
[VideoComponent.componentName]: VideoView,
|
|
5200
5363
|
[AtComponent.componentName]: AtComponentView,
|
|
5364
|
+
[KatexComponent.componentName]: KatexComponentView,
|
|
5201
5365
|
}, (host, root, injector) => {
|
|
5202
5366
|
const appInjector = new core.ReflectiveInjector(injector, [{
|
|
5203
5367
|
provide: OutputInjectionToken,
|
|
@@ -5215,14 +5379,15 @@ class Editor extends core$1.Textbus {
|
|
|
5215
5379
|
}, adapter, componentLoaders: [
|
|
5216
5380
|
atComponentLoader,
|
|
5217
5381
|
sourceCodeComponentLoader,
|
|
5382
|
+
listComponentLoader,
|
|
5218
5383
|
tableComponentLoader,
|
|
5219
5384
|
imageComponentLoader,
|
|
5220
|
-
videoComponentLoader,
|
|
5221
5385
|
highlightBoxComponentLoader,
|
|
5222
5386
|
blockquoteComponentLoader,
|
|
5223
|
-
|
|
5387
|
+
videoComponentLoader,
|
|
5224
5388
|
todolistComponentLoader,
|
|
5225
|
-
|
|
5389
|
+
katexComponentLoader,
|
|
5390
|
+
paragraphComponentLoader,
|
|
5226
5391
|
], formatLoaders: [
|
|
5227
5392
|
backgroundColorFormatLoader,
|
|
5228
5393
|
boldFormatLoader,
|
|
@@ -5254,7 +5419,8 @@ class Editor extends core$1.Textbus {
|
|
|
5254
5419
|
[ListComponent.componentName]: ListComponentView,
|
|
5255
5420
|
[ImageComponent.componentName]: ImageView,
|
|
5256
5421
|
[VideoComponent.componentName]: VideoView,
|
|
5257
|
-
[AtComponent.componentName]: AtComponentView
|
|
5422
|
+
[AtComponent.componentName]: AtComponentView,
|
|
5423
|
+
[KatexComponent.componentName]: KatexComponentView
|
|
5258
5424
|
}, (host, root, injector) => {
|
|
5259
5425
|
const appInjector = new core.ReflectiveInjector(injector, [{
|
|
5260
5426
|
provide: OutputInjectionToken,
|
|
@@ -5284,7 +5450,8 @@ class Editor extends core$1.Textbus {
|
|
|
5284
5450
|
HighlightBoxComponent,
|
|
5285
5451
|
ListComponent,
|
|
5286
5452
|
VideoComponent,
|
|
5287
|
-
AtComponent
|
|
5453
|
+
AtComponent,
|
|
5454
|
+
KatexComponent
|
|
5288
5455
|
], formatters: [
|
|
5289
5456
|
backgroundColorFormatter,
|
|
5290
5457
|
boldFormatter,
|
|
@@ -5380,6 +5547,8 @@ exports.ImageComponent = ImageComponent;
|
|
|
5380
5547
|
exports.ImageView = ImageView;
|
|
5381
5548
|
exports.InsertTool = InsertTool;
|
|
5382
5549
|
exports.ItalicTool = ItalicTool;
|
|
5550
|
+
exports.KatexComponent = KatexComponent;
|
|
5551
|
+
exports.KatexComponentView = KatexComponentView;
|
|
5383
5552
|
exports.Keymap = Keymap;
|
|
5384
5553
|
exports.LeftToolbar = LeftToolbar;
|
|
5385
5554
|
exports.LeftToolbarPlugin = LeftToolbarPlugin;
|
|
@@ -5432,6 +5601,7 @@ exports.imageComponentLoader = imageComponentLoader;
|
|
|
5432
5601
|
exports.isSupportFont = isSupportFont;
|
|
5433
5602
|
exports.italicFormatLoader = italicFormatLoader;
|
|
5434
5603
|
exports.italicFormatter = italicFormatter;
|
|
5604
|
+
exports.katexComponentLoader = katexComponentLoader;
|
|
5435
5605
|
exports.languageList = languageList;
|
|
5436
5606
|
exports.linkFormatLoader = linkFormatLoader;
|
|
5437
5607
|
exports.linkFormatter = linkFormatter;
|
|
@@ -3,6 +3,7 @@ export * from './at/at-component.view';
|
|
|
3
3
|
export * from './blockqoute/blockquote.component';
|
|
4
4
|
export * from './highlight-box/highlight-box.component';
|
|
5
5
|
export * from './image/image.component';
|
|
6
|
+
export * from './katex/katex.component';
|
|
6
7
|
export * from './list/list.component';
|
|
7
8
|
export * from './paragraph/paragraph.component';
|
|
8
9
|
export * from './root/root.component';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Component, ComponentStateLiteral, ContentType, Textbus } from '@textbus/core';
|
|
2
|
+
import { ViewComponentProps } from '@textbus/adapter-viewfly';
|
|
3
|
+
import { ComponentLoader } from '@textbus/platform-browser';
|
|
4
|
+
import './katex.component.scss';
|
|
5
|
+
export interface KatexComponentState {
|
|
6
|
+
text: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class KatexComponent extends Component<KatexComponentState> {
|
|
9
|
+
static componentName: string;
|
|
10
|
+
static type: ContentType;
|
|
11
|
+
static fromJSON(textbus: Textbus, state: ComponentStateLiteral<KatexComponentState>): KatexComponent;
|
|
12
|
+
constructor(textbus: Textbus, state?: KatexComponentState);
|
|
13
|
+
}
|
|
14
|
+
export declare function KatexComponentView(props: ViewComponentProps<KatexComponent>): () => any;
|
|
15
|
+
export declare const katexComponentLoader: ComponentLoader;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@textbus/xnote",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.19",
|
|
4
4
|
"description": "Viewfly project.",
|
|
5
5
|
"main": "./bundles/index.js",
|
|
6
6
|
"module": "./bundles/index.esm.js",
|
|
@@ -15,16 +15,16 @@
|
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@tanbo/color": "^0.1.1",
|
|
18
|
-
"@textbus/adapter-viewfly": "^4.0.0-alpha.
|
|
19
|
-
"@textbus/collaborate": "^4.0.0-alpha.
|
|
20
|
-
"@textbus/core": "^4.0.0-alpha.
|
|
21
|
-
"@textbus/platform-browser": "^4.0.0-alpha.
|
|
22
|
-
"@viewfly/core": "^1.0.0-alpha.
|
|
23
|
-
"@viewfly/hooks": "^1.0.0-alpha.
|
|
24
|
-
"@viewfly/platform-browser": "^1.0.0-alpha.
|
|
25
|
-
"@viewfly/scoped-css": "^1.0.0-alpha.
|
|
18
|
+
"@textbus/adapter-viewfly": "^4.0.0-alpha.55",
|
|
19
|
+
"@textbus/collaborate": "^4.0.0-alpha.55",
|
|
20
|
+
"@textbus/core": "^4.0.0-alpha.55",
|
|
21
|
+
"@textbus/platform-browser": "^4.0.0-alpha.55",
|
|
22
|
+
"@viewfly/core": "^1.0.0-alpha.6",
|
|
23
|
+
"@viewfly/hooks": "^1.0.0-alpha.6",
|
|
24
|
+
"@viewfly/platform-browser": "^1.0.0-alpha.6",
|
|
25
|
+
"@viewfly/scoped-css": "^1.0.0-alpha.6",
|
|
26
26
|
"highlight.js": "^11.9.0",
|
|
27
|
-
"
|
|
27
|
+
"katex": "^0.16.10"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@babel/core": "^7.16.5",
|