@textbus/xnote 0.2.6 → 0.3.0
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 +6 -0
- package/bundles/editor.d.ts +7 -2
- package/bundles/index.css +1 -1
- package/bundles/index.esm.css +1 -1
- package/bundles/index.esm.js +65 -32
- package/bundles/index.js +65 -32
- package/index.tsx +151 -0
- package/lerna.json +9 -0
- package/package.json +11 -11
package/README.md
CHANGED
package/bundles/editor.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { OutputTranslator } from '@viewfly/platform-browser';
|
|
2
2
|
import { ViewOptions } from '@textbus/platform-browser';
|
|
3
3
|
import { CollaborateConfig } from '@textbus/collaborate';
|
|
4
|
-
import { Textbus, TextbusConfig } from '@textbus/core';
|
|
4
|
+
import { ComponentStateLiteral, Textbus, TextbusConfig } from '@textbus/core';
|
|
5
5
|
import './assets/icons/style.css';
|
|
6
|
+
import { RootComponentState } from './textbus/components/_api';
|
|
6
7
|
import './textbus/doc.scss';
|
|
7
8
|
export interface XNoteCollaborateConfig extends CollaborateConfig {
|
|
8
9
|
userinfo: {
|
|
@@ -16,7 +17,7 @@ export interface XNoteCollaborateConfig extends CollaborateConfig {
|
|
|
16
17
|
*/
|
|
17
18
|
export interface EditorConfig extends TextbusConfig {
|
|
18
19
|
/** 默认 HTML 内容*/
|
|
19
|
-
content?: string
|
|
20
|
+
content?: string | ComponentStateLiteral<RootComponentState>;
|
|
20
21
|
/** 协作服务配置 */
|
|
21
22
|
collaborateConfig?: XNoteCollaborateConfig;
|
|
22
23
|
/** 视图配置项 */
|
|
@@ -29,5 +30,9 @@ export declare class Editor extends Textbus {
|
|
|
29
30
|
private vDomAdapter;
|
|
30
31
|
constructor(editorConfig?: EditorConfig);
|
|
31
32
|
mount(host: HTMLElement): Promise<this>;
|
|
33
|
+
setContent(content: string | ComponentStateLiteral<RootComponentState>): void;
|
|
32
34
|
getHTML(): string;
|
|
35
|
+
private createModel;
|
|
36
|
+
private createModelFromState;
|
|
37
|
+
private createModelFromHTML;
|
|
33
38
|
}
|
package/bundles/index.css
CHANGED
|
@@ -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{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;width:0}.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-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%}.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}.btn-group[vf-cf8e1c]{font-size:15px;padding:5px 0;text-align:center}.btn-group button[vf-cf8e1c]{margin:2px 5px}@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;min-height:300px;overflow:hidden}.input-group[vf-e74208]{display:flex;padding:5px 10px}.input-group input[vf-e74208]{border:1px solid #ddd;border-radius:4px;font-size:14px;margin-right:5px;outline:none;padding:2px 6px}.input-group input[vf-e74208]:focus{border-color:#296eff}.input-group button[vf-e74208]{border:1px solid #ddd;border-radius:4px;font-size:14px}.split-line[vf-669084]{background:#ddd;margin:8px 5px;width:1px}.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}.link-jump-plugin[vf-3073ba]{background-color:#333;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.3);color:#ddd;font-size:12px;line-height:1em;margin-top:-30px;padding:6px 0;position:absolute;text-align:center;text-decoration:none;transform:translateX(-50%);width:66px}.link-jump-plugin a[vf-3073ba],.link-jump-plugin span[vf-3073ba]{color:inherit;cursor:pointer;margin-left:2px;margin-right:2px;text-decoration:none}.link-jump-plugin a[vf-3073ba]:hover,.link-jump-plugin span[vf-3073ba]:hover{color:#296eff}.link-jump-plugin[vf-3073ba]:after{border:6px solid transparent;border-top-color:#333;content:"";left:50%;margin-left:-6px;pointer-events:none;position:absolute;top:100%}.toolbar[vf-33b3ca]{background-color:#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}.toolbar.dark[vf-33b3ca]{background-color:#222;color:#ccc}.toolbar.dark[vf-33b3ca] .split-line{background:#666}.toolbar.dark[vf-33b3ca] .btn.active,.toolbar.dark[vf-33b3ca] .btn:hover{background-color:hsla(0,0%,100%,.2)}.toolbar[vf-42c12d]{border-radius:inherit;box-sizing:border-box;color:#000;display:flex;font-size:13px;padding:3px 15px;position:relative;text-align:left;top:0;z-index:3}.toolbar.dark[vf-42c12d]{background-color:#222;color:#ccc}.toolbar.dark[vf-42c12d] .split-line{background:#666}.toolbar.dark[vf-42c12d] .btn.active,.toolbar.dark[vf-42c12d] .btn:hover{background-color:hsla(0,0%,100%,.2)}.toolbar[vf-25fd9c]{background:#fff;border:1px solid #dee0e3;border-radius:5px;box-sizing:border-box;color:#000;display:flex;font-size:13px;padding:3px 10px;position:relative;text-align:left;top:0;transition-duration:.15s;transition-property:all;transition-timing-function:ease;z-index:3}.toolbar.suspension[vf-25fd9c]{box-shadow:0 4px 8px rgba(0,0,0,.08)}.toolbar.dark[vf-25fd9c]{background-color:#222;color:#ccc}.toolbar.dark[vf-25fd9c] .split-line{background:#666}.toolbar.dark[vf-25fd9c] .btn.active,.toolbar.dark[vf-25fd9c] .btn:hover{background-color:hsla(0,0%,100%,.2)}.xnote-at{color:#296eff;display:inline-block;line-height:1em}.xnote-at-complete{background-color:#296eff;border-radius:1em;color:#fff;font-size:.9em;margin-left:2px;margin-right:2px;padding:4px 6px}.xnote-at-input{display:inline-block;min-width:2em}.xnote-at-menu{user-select:none}.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{color:initial;font-family:initial;font-size:medium;line-height:1.65}.xnote-content:before{content:attr(data-placeholder);opacity:.5;position:absolute}.xnote-table{margin-bottom:16px;margin-top:16px}.xnote-table-inner{display:inline-block;max-width:100%;position:relative}.xnote-table-content{background:hsla(0,0%,100%,.8);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-7bef30]{overflow-x:auto;overflow-y:hidden}.scroll-container[vf-7bef30]:hover::-webkit-scrollbar-thumb{background-color:#80848f}.scroll-container[vf-7bef30]::-webkit-scrollbar-thumb{border:0;border-radius:4px;height:50px;outline:0;outline-offset:0}.scroll-container[vf-7bef30]::-webkit-scrollbar-thumb:hover{background-color:#495060;height:50px}.scroll-container[vf-7bef30]::-webkit-scrollbar{border-radius:3px;height:6px;width:6px}.scroll-container[vf-7bef30]:before{background-image:linear-gradient(90deg,rgba(0,0,0,.1),transparent);border-left:1px solid #ddd;left:0;z-index:1}.scroll-container[vf-7bef30]:after,.scroll-container[vf-7bef30]:before{bottom:6px;content:"";pointer-events:none;position:absolute;top:0;width:12px}.scroll-container[vf-7bef30]:after{background:linear-gradient(90deg,transparent,rgba(0,0,0,.1));border-right:1px solid #ddd;right:0}.scroll-container.left-end[vf-7bef30]:before,.scroll-container.right-end[vf-7bef30]: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?oyolf2) format("truetype"),url(fonts/textbus.woff?oyolf2) format("woff"),url(fonts/textbus.svg?oyolf2#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-timeline:before{content:"\e900"}.xnote-icon-step:before{content:"\e901"}.xnote-icon-arrow-left:before{content:"\e902"}.xnote-icon-arrow-right:before{content:"\e903"}.xnote-icon-arrow-top:before{content:"\e904"}.xnote-icon-arrow-bottom:before{content:"\e905"}.xnote-icon-source-code:before{content:"\e906"}.xnote-icon-insert-paragraph-after:before{content:"\e907"}.xnote-icon-insert-paragraph-before:before{content:"\e908"}.xnote-icon-plus:before{content:"\e909"}.xnote-icon-table-border:before{content:"\e90a"}.xnote-icon-table-remove:before{content:"\e90b"}.xnote-icon-function:before{content:"\e90c"}.xnote-icon-paint-bucket:before{content:"\e90d"}.xnote-icon-background-color:before{content:"\e90e"}.xnote-icon-color:before{content:"\e90f"}.xnote-icon-hightlight-box:before{content:"\e910"}.xnote-icon-table-edit:before{content:"\e911"}.xnote-icon-table-split-columns:before{content:"\e912"}.xnote-icon-align-middle:before{content:"\e913"}.xnote-icon-align-bottom:before{content:"\e914"}.xnote-icon-align-top:before{content:"\e915"}.xnote-icon-palette:before{content:"\e916"}.xnote-icon-split-cells:before{content:"\e917"}.xnote-icon-merge-cells:before{content:"\e918"}.xnote-icon-image:before{content:"\e919"}.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-more:before{content:"\e921"}.xnote-icon-checkmark:before{content:"\e922"}.xnote-icon-text-wrap:before{content:"\e924"}.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-copy:before{content:"\e92c"}.xnote-icon-paste:before{content:"\e92d"}.xnote-icon-history-back:before{content:"\e967"}.xnote-icon-history-forward:before{content:"\e968"}.xnote-icon-quotes-right:before{content:"\e978"}.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-command:before{content:"\ea4e"}.xnote-icon-shift:before{content:"\ea4f"}.xnote-icon-ctrl:before{content:"\ea50"}.xnote-icon-opt:before{content:"\ea51"}.xnote-icon-checkbox-checked:before{content:"\ea52"}.xnote-icon-checkbox-unchecked:before{content:"\ea53"}.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-table:before{content:"\ea71"}.xnote-icon-pilcrow:before{content:"\ea73"}.xnote-icon-ltr:before{content:"\ea74"}.xnote-icon-rtl:before{content:"\ea75"}.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-icon-code:before{content:"\ea80"}.xnote-icon-clear-formatting:before{content:"\ea6f"}.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}.xnote-timeline{display:block;padding-left:5px;padding-top:1em}.xnote-timeline-item{display:block;opacity:.76;padding-bottom:.5em;padding-left:1.5em;position:relative}.xnote-timeline-item:first-of-type>.xnote-timeline-line{top:1em}.xnote-timeline-item:last-of-type>.xnote-timeline-line{bottom:calc(100% - 1em)}.xnote-timeline-line{border-left:1px solid #dddee1;bottom:0;left:0;position:absolute;top:0;width:0}.xnote-timeline-icon{background-color:#fff;border:1px solid #bbbec4;border-radius:50%;box-sizing:border-box;height:9px;left:-4px;position:absolute;top:.5em;width:9px}.xnote-timeline-tools{display:none;position:absolute;right:0;top:0}.xnote-timeline-item-content>:first-child{margin-top:0}.xnote-timeline-item:hover .xnote-timeline-tools{display:block}.xnote-step{display:flex}.xnote-step-item{flex:1;position:relative}.xnote-step-item:last-child .xnote-step-item-line{display:none}.xnote-step-item.xnote-complete .xnote-step-item-line{border-top-color:#15bd9a}.xnote-step-item.xnote-complete .xnote-step-item-icon{background-color:#15bd9a}.xnote-step-item.xnote-current .xnote-step-item-line{border-top-style:dashed}.xnote-step-item.xnote-current .xnote-step-item-icon{background-color:#1296db}.xnote-step-item.xnote-waiting .xnote-step-item-line{border-top-style:dashed}.xnote-step-item.xnote-waiting .xnote-step-item-icon{background-color:#bbbec4}.xnote-step-item.xnote-waiting .xnote-step-item-content{opacity:.8}.xnote-step-item-header{cursor:pointer;margin-bottom:1em;position:relative}.xnote-step-item-icon{border-radius:50%;color:#fff;font-weight:500;height:1.6em;line-height:1.6em;position:relative;text-align:center;width:1.6em}.xnote-step-item-line{border-top:1px solid #dddee1;left:0;position:absolute;right:0;top:50%}.xnote-step-item-content{padding-right:15px}.xnote-step-title{font-size:1.2em;font-weight:500;margin:0}.xnote-step-title>small{font-weight:400;opacity:.8}.xnote-step-content{font-weight:400;margin:0}.xnote-step-tools{display:none;position:absolute;right:0;top:0}.xnote-step-item-content>:first-child{margin-top:0}.xnote-step-item:hover .xnote-step-tools{display:block}
|
|
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{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;width:0}.xnote-highlight-box-icon{user-select:none}.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-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%}.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;user-select:none;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}.btn-group[vf-cf8e1c]{font-size:15px;padding:5px 0;text-align:center}.btn-group button[vf-cf8e1c]{margin:2px 5px}@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;min-height:300px;overflow:hidden}.input-group[vf-e74208]{display:flex;padding:5px 10px}.input-group input[vf-e74208]{border:1px solid #ddd;border-radius:4px;font-size:14px;margin-right:5px;outline:none;padding:2px 6px}.input-group input[vf-e74208]:focus{border-color:#296eff}.input-group button[vf-e74208]{border:1px solid #ddd;border-radius:4px;font-size:14px}.split-line[vf-669084]{background:#ddd;margin:8px 5px;width:1px}.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}.link-jump-plugin[vf-3073ba]{background-color:#333;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.3);color:#ddd;font-size:12px;line-height:1em;margin-top:-30px;padding:6px 0;position:absolute;text-align:center;text-decoration:none;transform:translateX(-50%);width:66px}.link-jump-plugin a[vf-3073ba],.link-jump-plugin span[vf-3073ba]{color:inherit;cursor:pointer;margin-left:2px;margin-right:2px;text-decoration:none}.link-jump-plugin a[vf-3073ba]:hover,.link-jump-plugin span[vf-3073ba]:hover{color:#296eff}.link-jump-plugin[vf-3073ba]:after{border:6px solid transparent;border-top-color:#333;content:"";left:50%;margin-left:-6px;pointer-events:none;position:absolute;top:100%}.toolbar[vf-33b3ca]{background-color:#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}.toolbar.dark[vf-33b3ca]{background-color:#222;color:#ccc}.toolbar.dark[vf-33b3ca] .split-line{background:#666}.toolbar.dark[vf-33b3ca] .btn.active,.toolbar.dark[vf-33b3ca] .btn:hover{background-color:hsla(0,0%,100%,.2)}.toolbar[vf-42c12d]{border-radius:inherit;box-sizing:border-box;color:#000;display:flex;font-size:13px;padding:3px 15px;position:relative;text-align:left;top:0;z-index:3}.toolbar.dark[vf-42c12d]{background-color:#222;color:#ccc}.toolbar.dark[vf-42c12d] .split-line{background:#666}.toolbar.dark[vf-42c12d] .btn.active,.toolbar.dark[vf-42c12d] .btn:hover{background-color:hsla(0,0%,100%,.2)}.toolbar[vf-25fd9c]{background:#fff;border:1px solid #dee0e3;border-radius:5px;box-sizing:border-box;color:#000;display:flex;font-size:13px;padding:3px 10px;position:relative;text-align:left;top:0;transition-duration:.15s;transition-property:all;transition-timing-function:ease;z-index:3}.toolbar.suspension[vf-25fd9c]{box-shadow:0 4px 8px rgba(0,0,0,.08)}.toolbar.dark[vf-25fd9c]{background-color:#222;color:#ccc}.toolbar.dark[vf-25fd9c] .split-line{background:#666}.toolbar.dark[vf-25fd9c] .btn.active,.toolbar.dark[vf-25fd9c] .btn:hover{background-color:hsla(0,0%,100%,.2)}.xnote-at{color:#296eff;display:inline-block;line-height:1em}.xnote-at-complete{background-color:#296eff;border-radius:1em;color:#fff;font-size:.9em;margin-left:2px;margin-right:2px;padding:4px 6px}.xnote-at-input{display:inline-block;min-width:2em}.xnote-at-menu{user-select:none}.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{color:initial;font-family:initial;font-size:medium;line-height:1.65}.xnote-content:before{content:attr(data-placeholder);opacity:.5;position:absolute}.xnote-table{margin-bottom:16px;margin-top:16px}.xnote-table-inner{display:inline-block;max-width:100%;position:relative}.xnote-table-content{background:hsla(0,0%,100%,.8);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-7bef30]{overflow-x:auto;overflow-y:hidden}.scroll-container[vf-7bef30]:hover::-webkit-scrollbar-thumb{background-color:#80848f}.scroll-container[vf-7bef30]::-webkit-scrollbar-thumb{border:0;border-radius:4px;height:50px;outline:0;outline-offset:0}.scroll-container[vf-7bef30]::-webkit-scrollbar-thumb:hover{background-color:#495060;height:50px}.scroll-container[vf-7bef30]::-webkit-scrollbar{border-radius:3px;height:6px;width:6px}.scroll-container[vf-7bef30]:before{background-image:linear-gradient(90deg,rgba(0,0,0,.1),transparent);border-left:1px solid #ddd;left:0;z-index:1}.scroll-container[vf-7bef30]:after,.scroll-container[vf-7bef30]:before{bottom:6px;content:"";pointer-events:none;position:absolute;top:0;width:12px}.scroll-container[vf-7bef30]:after{background:linear-gradient(90deg,transparent,rgba(0,0,0,.1));border-right:1px solid #ddd;right:0}.scroll-container.left-end[vf-7bef30]:before,.scroll-container.right-end[vf-7bef30]: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?oyolf2) format("truetype"),url(fonts/textbus.woff?oyolf2) format("woff"),url(fonts/textbus.svg?oyolf2#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-timeline:before{content:"\e900"}.xnote-icon-step:before{content:"\e901"}.xnote-icon-arrow-left:before{content:"\e902"}.xnote-icon-arrow-right:before{content:"\e903"}.xnote-icon-arrow-top:before{content:"\e904"}.xnote-icon-arrow-bottom:before{content:"\e905"}.xnote-icon-source-code:before{content:"\e906"}.xnote-icon-insert-paragraph-after:before{content:"\e907"}.xnote-icon-insert-paragraph-before:before{content:"\e908"}.xnote-icon-plus:before{content:"\e909"}.xnote-icon-table-border:before{content:"\e90a"}.xnote-icon-table-remove:before{content:"\e90b"}.xnote-icon-function:before{content:"\e90c"}.xnote-icon-paint-bucket:before{content:"\e90d"}.xnote-icon-background-color:before{content:"\e90e"}.xnote-icon-color:before{content:"\e90f"}.xnote-icon-hightlight-box:before{content:"\e910"}.xnote-icon-table-edit:before{content:"\e911"}.xnote-icon-table-split-columns:before{content:"\e912"}.xnote-icon-align-middle:before{content:"\e913"}.xnote-icon-align-bottom:before{content:"\e914"}.xnote-icon-align-top:before{content:"\e915"}.xnote-icon-palette:before{content:"\e916"}.xnote-icon-split-cells:before{content:"\e917"}.xnote-icon-merge-cells:before{content:"\e918"}.xnote-icon-image:before{content:"\e919"}.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-more:before{content:"\e921"}.xnote-icon-checkmark:before{content:"\e922"}.xnote-icon-text-wrap:before{content:"\e924"}.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-copy:before{content:"\e92c"}.xnote-icon-paste:before{content:"\e92d"}.xnote-icon-history-back:before{content:"\e967"}.xnote-icon-history-forward:before{content:"\e968"}.xnote-icon-quotes-right:before{content:"\e978"}.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-command:before{content:"\ea4e"}.xnote-icon-shift:before{content:"\ea4f"}.xnote-icon-ctrl:before{content:"\ea50"}.xnote-icon-opt:before{content:"\ea51"}.xnote-icon-checkbox-checked:before{content:"\ea52"}.xnote-icon-checkbox-unchecked:before{content:"\ea53"}.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-table:before{content:"\ea71"}.xnote-icon-pilcrow:before{content:"\ea73"}.xnote-icon-ltr:before{content:"\ea74"}.xnote-icon-rtl:before{content:"\ea75"}.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-icon-code:before{content:"\ea80"}.xnote-icon-clear-formatting:before{content:"\ea6f"}.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}.xnote-timeline{display:block;padding-left:5px;padding-top:1em}.xnote-timeline-item{display:block;opacity:.76;padding-bottom:.5em;padding-left:1.5em;position:relative}.xnote-timeline-item:first-of-type>.xnote-timeline-line{top:1em}.xnote-timeline-item:last-of-type>.xnote-timeline-line{bottom:calc(100% - 1em)}.xnote-timeline-line{border-left:1px solid #dddee1;bottom:0;left:0;position:absolute;top:0;width:0}.xnote-timeline-icon{background-color:#fff;border:1px solid #bbbec4;border-radius:50%;box-sizing:border-box;height:9px;left:-4px;position:absolute;top:.5em;width:9px}.xnote-timeline-tools{display:none;position:absolute;right:0;top:0}.xnote-timeline-item-content>:first-child{margin-top:0}.xnote-timeline-item:hover .xnote-timeline-tools{display:block}.xnote-step{display:flex}.xnote-step-item{flex:1;position:relative}.xnote-step-item:last-child .xnote-step-item-line{display:none}.xnote-step-item.xnote-complete .xnote-step-item-line{border-top-color:#15bd9a}.xnote-step-item.xnote-complete .xnote-step-item-icon{background-color:#15bd9a}.xnote-step-item.xnote-current .xnote-step-item-line{border-top-style:dashed}.xnote-step-item.xnote-current .xnote-step-item-icon{background-color:#1296db}.xnote-step-item.xnote-waiting .xnote-step-item-line{border-top-style:dashed}.xnote-step-item.xnote-waiting .xnote-step-item-icon{background-color:#bbbec4}.xnote-step-item.xnote-waiting .xnote-step-item-content{opacity:.8}.xnote-step-item-header{cursor:pointer;margin-bottom:1em;position:relative}.xnote-step-item-icon{border-radius:50%;color:#fff;font-weight:500;height:1.6em;line-height:1.6em;position:relative;text-align:center;user-select:none;width:1.6em}.xnote-step-item-line{border-top:1px solid #dddee1;left:0;position:absolute;right:0;top:50%}.xnote-step-item-content{padding-right:15px}.xnote-step-title{font-size:1.2em;font-weight:500;margin:0}.xnote-step-title>small{font-weight:400;opacity:.8}.xnote-step-content{font-weight:400;margin:0}.xnote-step-tools{display:none;position:absolute;right:0;top:0}.xnote-step-item-content>:first-child{margin-top:0}.xnote-step-item:hover .xnote-step-tools{display:block}
|
package/bundles/index.esm.css
CHANGED
|
@@ -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{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;width:0}.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-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%}.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}.btn-group[vf-cf8e1c]{font-size:15px;padding:5px 0;text-align:center}.btn-group button[vf-cf8e1c]{margin:2px 5px}@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;min-height:300px;overflow:hidden}.input-group[vf-e74208]{display:flex;padding:5px 10px}.input-group input[vf-e74208]{border:1px solid #ddd;border-radius:4px;font-size:14px;margin-right:5px;outline:none;padding:2px 6px}.input-group input[vf-e74208]:focus{border-color:#296eff}.input-group button[vf-e74208]{border:1px solid #ddd;border-radius:4px;font-size:14px}.split-line[vf-669084]{background:#ddd;margin:8px 5px;width:1px}.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}.link-jump-plugin[vf-3073ba]{background-color:#333;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.3);color:#ddd;font-size:12px;line-height:1em;margin-top:-30px;padding:6px 0;position:absolute;text-align:center;text-decoration:none;transform:translateX(-50%);width:66px}.link-jump-plugin a[vf-3073ba],.link-jump-plugin span[vf-3073ba]{color:inherit;cursor:pointer;margin-left:2px;margin-right:2px;text-decoration:none}.link-jump-plugin a[vf-3073ba]:hover,.link-jump-plugin span[vf-3073ba]:hover{color:#296eff}.link-jump-plugin[vf-3073ba]:after{border:6px solid transparent;border-top-color:#333;content:"";left:50%;margin-left:-6px;pointer-events:none;position:absolute;top:100%}.toolbar[vf-33b3ca]{background-color:#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}.toolbar.dark[vf-33b3ca]{background-color:#222;color:#ccc}.toolbar.dark[vf-33b3ca] .split-line{background:#666}.toolbar.dark[vf-33b3ca] .btn.active,.toolbar.dark[vf-33b3ca] .btn:hover{background-color:hsla(0,0%,100%,.2)}.toolbar[vf-42c12d]{border-radius:inherit;box-sizing:border-box;color:#000;display:flex;font-size:13px;padding:3px 15px;position:relative;text-align:left;top:0;z-index:3}.toolbar.dark[vf-42c12d]{background-color:#222;color:#ccc}.toolbar.dark[vf-42c12d] .split-line{background:#666}.toolbar.dark[vf-42c12d] .btn.active,.toolbar.dark[vf-42c12d] .btn:hover{background-color:hsla(0,0%,100%,.2)}.toolbar[vf-25fd9c]{background:#fff;border:1px solid #dee0e3;border-radius:5px;box-sizing:border-box;color:#000;display:flex;font-size:13px;padding:3px 10px;position:relative;text-align:left;top:0;transition-duration:.15s;transition-property:all;transition-timing-function:ease;z-index:3}.toolbar.suspension[vf-25fd9c]{box-shadow:0 4px 8px rgba(0,0,0,.08)}.toolbar.dark[vf-25fd9c]{background-color:#222;color:#ccc}.toolbar.dark[vf-25fd9c] .split-line{background:#666}.toolbar.dark[vf-25fd9c] .btn.active,.toolbar.dark[vf-25fd9c] .btn:hover{background-color:hsla(0,0%,100%,.2)}.xnote-at{color:#296eff;display:inline-block;line-height:1em}.xnote-at-complete{background-color:#296eff;border-radius:1em;color:#fff;font-size:.9em;margin-left:2px;margin-right:2px;padding:4px 6px}.xnote-at-input{display:inline-block;min-width:2em}.xnote-at-menu{user-select:none}.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{color:initial;font-family:initial;font-size:medium;line-height:1.65}.xnote-content:before{content:attr(data-placeholder);opacity:.5;position:absolute}.xnote-table{margin-bottom:16px;margin-top:16px}.xnote-table-inner{display:inline-block;max-width:100%;position:relative}.xnote-table-content{background:hsla(0,0%,100%,.8);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-7bef30]{overflow-x:auto;overflow-y:hidden}.scroll-container[vf-7bef30]:hover::-webkit-scrollbar-thumb{background-color:#80848f}.scroll-container[vf-7bef30]::-webkit-scrollbar-thumb{border:0;border-radius:4px;height:50px;outline:0;outline-offset:0}.scroll-container[vf-7bef30]::-webkit-scrollbar-thumb:hover{background-color:#495060;height:50px}.scroll-container[vf-7bef30]::-webkit-scrollbar{border-radius:3px;height:6px;width:6px}.scroll-container[vf-7bef30]:before{background-image:linear-gradient(90deg,rgba(0,0,0,.1),transparent);border-left:1px solid #ddd;left:0;z-index:1}.scroll-container[vf-7bef30]:after,.scroll-container[vf-7bef30]:before{bottom:6px;content:"";pointer-events:none;position:absolute;top:0;width:12px}.scroll-container[vf-7bef30]:after{background:linear-gradient(90deg,transparent,rgba(0,0,0,.1));border-right:1px solid #ddd;right:0}.scroll-container.left-end[vf-7bef30]:before,.scroll-container.right-end[vf-7bef30]: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?oyolf2) format("truetype"),url(fonts/textbus.woff?oyolf2) format("woff"),url(fonts/textbus.svg?oyolf2#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-timeline:before{content:"\e900"}.xnote-icon-step:before{content:"\e901"}.xnote-icon-arrow-left:before{content:"\e902"}.xnote-icon-arrow-right:before{content:"\e903"}.xnote-icon-arrow-top:before{content:"\e904"}.xnote-icon-arrow-bottom:before{content:"\e905"}.xnote-icon-source-code:before{content:"\e906"}.xnote-icon-insert-paragraph-after:before{content:"\e907"}.xnote-icon-insert-paragraph-before:before{content:"\e908"}.xnote-icon-plus:before{content:"\e909"}.xnote-icon-table-border:before{content:"\e90a"}.xnote-icon-table-remove:before{content:"\e90b"}.xnote-icon-function:before{content:"\e90c"}.xnote-icon-paint-bucket:before{content:"\e90d"}.xnote-icon-background-color:before{content:"\e90e"}.xnote-icon-color:before{content:"\e90f"}.xnote-icon-hightlight-box:before{content:"\e910"}.xnote-icon-table-edit:before{content:"\e911"}.xnote-icon-table-split-columns:before{content:"\e912"}.xnote-icon-align-middle:before{content:"\e913"}.xnote-icon-align-bottom:before{content:"\e914"}.xnote-icon-align-top:before{content:"\e915"}.xnote-icon-palette:before{content:"\e916"}.xnote-icon-split-cells:before{content:"\e917"}.xnote-icon-merge-cells:before{content:"\e918"}.xnote-icon-image:before{content:"\e919"}.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-more:before{content:"\e921"}.xnote-icon-checkmark:before{content:"\e922"}.xnote-icon-text-wrap:before{content:"\e924"}.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-copy:before{content:"\e92c"}.xnote-icon-paste:before{content:"\e92d"}.xnote-icon-history-back:before{content:"\e967"}.xnote-icon-history-forward:before{content:"\e968"}.xnote-icon-quotes-right:before{content:"\e978"}.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-command:before{content:"\ea4e"}.xnote-icon-shift:before{content:"\ea4f"}.xnote-icon-ctrl:before{content:"\ea50"}.xnote-icon-opt:before{content:"\ea51"}.xnote-icon-checkbox-checked:before{content:"\ea52"}.xnote-icon-checkbox-unchecked:before{content:"\ea53"}.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-table:before{content:"\ea71"}.xnote-icon-pilcrow:before{content:"\ea73"}.xnote-icon-ltr:before{content:"\ea74"}.xnote-icon-rtl:before{content:"\ea75"}.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-icon-code:before{content:"\ea80"}.xnote-icon-clear-formatting:before{content:"\ea6f"}.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}.xnote-timeline{display:block;padding-left:5px;padding-top:1em}.xnote-timeline-item{display:block;opacity:.76;padding-bottom:.5em;padding-left:1.5em;position:relative}.xnote-timeline-item:first-of-type>.xnote-timeline-line{top:1em}.xnote-timeline-item:last-of-type>.xnote-timeline-line{bottom:calc(100% - 1em)}.xnote-timeline-line{border-left:1px solid #dddee1;bottom:0;left:0;position:absolute;top:0;width:0}.xnote-timeline-icon{background-color:#fff;border:1px solid #bbbec4;border-radius:50%;box-sizing:border-box;height:9px;left:-4px;position:absolute;top:.5em;width:9px}.xnote-timeline-tools{display:none;position:absolute;right:0;top:0}.xnote-timeline-item-content>:first-child{margin-top:0}.xnote-timeline-item:hover .xnote-timeline-tools{display:block}.xnote-step{display:flex}.xnote-step-item{flex:1;position:relative}.xnote-step-item:last-child .xnote-step-item-line{display:none}.xnote-step-item.xnote-complete .xnote-step-item-line{border-top-color:#15bd9a}.xnote-step-item.xnote-complete .xnote-step-item-icon{background-color:#15bd9a}.xnote-step-item.xnote-current .xnote-step-item-line{border-top-style:dashed}.xnote-step-item.xnote-current .xnote-step-item-icon{background-color:#1296db}.xnote-step-item.xnote-waiting .xnote-step-item-line{border-top-style:dashed}.xnote-step-item.xnote-waiting .xnote-step-item-icon{background-color:#bbbec4}.xnote-step-item.xnote-waiting .xnote-step-item-content{opacity:.8}.xnote-step-item-header{cursor:pointer;margin-bottom:1em;position:relative}.xnote-step-item-icon{border-radius:50%;color:#fff;font-weight:500;height:1.6em;line-height:1.6em;position:relative;text-align:center;width:1.6em}.xnote-step-item-line{border-top:1px solid #dddee1;left:0;position:absolute;right:0;top:50%}.xnote-step-item-content{padding-right:15px}.xnote-step-title{font-size:1.2em;font-weight:500;margin:0}.xnote-step-title>small{font-weight:400;opacity:.8}.xnote-step-content{font-weight:400;margin:0}.xnote-step-tools{display:none;position:absolute;right:0;top:0}.xnote-step-item-content>:first-child{margin-top:0}.xnote-step-item:hover .xnote-step-tools{display:block}
|
|
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{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;width:0}.xnote-highlight-box-icon{user-select:none}.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-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%}.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;user-select:none;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}.btn-group[vf-cf8e1c]{font-size:15px;padding:5px 0;text-align:center}.btn-group button[vf-cf8e1c]{margin:2px 5px}@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;min-height:300px;overflow:hidden}.input-group[vf-e74208]{display:flex;padding:5px 10px}.input-group input[vf-e74208]{border:1px solid #ddd;border-radius:4px;font-size:14px;margin-right:5px;outline:none;padding:2px 6px}.input-group input[vf-e74208]:focus{border-color:#296eff}.input-group button[vf-e74208]{border:1px solid #ddd;border-radius:4px;font-size:14px}.split-line[vf-669084]{background:#ddd;margin:8px 5px;width:1px}.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}.link-jump-plugin[vf-3073ba]{background-color:#333;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.3);color:#ddd;font-size:12px;line-height:1em;margin-top:-30px;padding:6px 0;position:absolute;text-align:center;text-decoration:none;transform:translateX(-50%);width:66px}.link-jump-plugin a[vf-3073ba],.link-jump-plugin span[vf-3073ba]{color:inherit;cursor:pointer;margin-left:2px;margin-right:2px;text-decoration:none}.link-jump-plugin a[vf-3073ba]:hover,.link-jump-plugin span[vf-3073ba]:hover{color:#296eff}.link-jump-plugin[vf-3073ba]:after{border:6px solid transparent;border-top-color:#333;content:"";left:50%;margin-left:-6px;pointer-events:none;position:absolute;top:100%}.toolbar[vf-33b3ca]{background-color:#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}.toolbar.dark[vf-33b3ca]{background-color:#222;color:#ccc}.toolbar.dark[vf-33b3ca] .split-line{background:#666}.toolbar.dark[vf-33b3ca] .btn.active,.toolbar.dark[vf-33b3ca] .btn:hover{background-color:hsla(0,0%,100%,.2)}.toolbar[vf-42c12d]{border-radius:inherit;box-sizing:border-box;color:#000;display:flex;font-size:13px;padding:3px 15px;position:relative;text-align:left;top:0;z-index:3}.toolbar.dark[vf-42c12d]{background-color:#222;color:#ccc}.toolbar.dark[vf-42c12d] .split-line{background:#666}.toolbar.dark[vf-42c12d] .btn.active,.toolbar.dark[vf-42c12d] .btn:hover{background-color:hsla(0,0%,100%,.2)}.toolbar[vf-25fd9c]{background:#fff;border:1px solid #dee0e3;border-radius:5px;box-sizing:border-box;color:#000;display:flex;font-size:13px;padding:3px 10px;position:relative;text-align:left;top:0;transition-duration:.15s;transition-property:all;transition-timing-function:ease;z-index:3}.toolbar.suspension[vf-25fd9c]{box-shadow:0 4px 8px rgba(0,0,0,.08)}.toolbar.dark[vf-25fd9c]{background-color:#222;color:#ccc}.toolbar.dark[vf-25fd9c] .split-line{background:#666}.toolbar.dark[vf-25fd9c] .btn.active,.toolbar.dark[vf-25fd9c] .btn:hover{background-color:hsla(0,0%,100%,.2)}.xnote-at{color:#296eff;display:inline-block;line-height:1em}.xnote-at-complete{background-color:#296eff;border-radius:1em;color:#fff;font-size:.9em;margin-left:2px;margin-right:2px;padding:4px 6px}.xnote-at-input{display:inline-block;min-width:2em}.xnote-at-menu{user-select:none}.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{color:initial;font-family:initial;font-size:medium;line-height:1.65}.xnote-content:before{content:attr(data-placeholder);opacity:.5;position:absolute}.xnote-table{margin-bottom:16px;margin-top:16px}.xnote-table-inner{display:inline-block;max-width:100%;position:relative}.xnote-table-content{background:hsla(0,0%,100%,.8);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-7bef30]{overflow-x:auto;overflow-y:hidden}.scroll-container[vf-7bef30]:hover::-webkit-scrollbar-thumb{background-color:#80848f}.scroll-container[vf-7bef30]::-webkit-scrollbar-thumb{border:0;border-radius:4px;height:50px;outline:0;outline-offset:0}.scroll-container[vf-7bef30]::-webkit-scrollbar-thumb:hover{background-color:#495060;height:50px}.scroll-container[vf-7bef30]::-webkit-scrollbar{border-radius:3px;height:6px;width:6px}.scroll-container[vf-7bef30]:before{background-image:linear-gradient(90deg,rgba(0,0,0,.1),transparent);border-left:1px solid #ddd;left:0;z-index:1}.scroll-container[vf-7bef30]:after,.scroll-container[vf-7bef30]:before{bottom:6px;content:"";pointer-events:none;position:absolute;top:0;width:12px}.scroll-container[vf-7bef30]:after{background:linear-gradient(90deg,transparent,rgba(0,0,0,.1));border-right:1px solid #ddd;right:0}.scroll-container.left-end[vf-7bef30]:before,.scroll-container.right-end[vf-7bef30]: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?oyolf2) format("truetype"),url(fonts/textbus.woff?oyolf2) format("woff"),url(fonts/textbus.svg?oyolf2#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-timeline:before{content:"\e900"}.xnote-icon-step:before{content:"\e901"}.xnote-icon-arrow-left:before{content:"\e902"}.xnote-icon-arrow-right:before{content:"\e903"}.xnote-icon-arrow-top:before{content:"\e904"}.xnote-icon-arrow-bottom:before{content:"\e905"}.xnote-icon-source-code:before{content:"\e906"}.xnote-icon-insert-paragraph-after:before{content:"\e907"}.xnote-icon-insert-paragraph-before:before{content:"\e908"}.xnote-icon-plus:before{content:"\e909"}.xnote-icon-table-border:before{content:"\e90a"}.xnote-icon-table-remove:before{content:"\e90b"}.xnote-icon-function:before{content:"\e90c"}.xnote-icon-paint-bucket:before{content:"\e90d"}.xnote-icon-background-color:before{content:"\e90e"}.xnote-icon-color:before{content:"\e90f"}.xnote-icon-hightlight-box:before{content:"\e910"}.xnote-icon-table-edit:before{content:"\e911"}.xnote-icon-table-split-columns:before{content:"\e912"}.xnote-icon-align-middle:before{content:"\e913"}.xnote-icon-align-bottom:before{content:"\e914"}.xnote-icon-align-top:before{content:"\e915"}.xnote-icon-palette:before{content:"\e916"}.xnote-icon-split-cells:before{content:"\e917"}.xnote-icon-merge-cells:before{content:"\e918"}.xnote-icon-image:before{content:"\e919"}.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-more:before{content:"\e921"}.xnote-icon-checkmark:before{content:"\e922"}.xnote-icon-text-wrap:before{content:"\e924"}.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-copy:before{content:"\e92c"}.xnote-icon-paste:before{content:"\e92d"}.xnote-icon-history-back:before{content:"\e967"}.xnote-icon-history-forward:before{content:"\e968"}.xnote-icon-quotes-right:before{content:"\e978"}.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-command:before{content:"\ea4e"}.xnote-icon-shift:before{content:"\ea4f"}.xnote-icon-ctrl:before{content:"\ea50"}.xnote-icon-opt:before{content:"\ea51"}.xnote-icon-checkbox-checked:before{content:"\ea52"}.xnote-icon-checkbox-unchecked:before{content:"\ea53"}.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-table:before{content:"\ea71"}.xnote-icon-pilcrow:before{content:"\ea73"}.xnote-icon-ltr:before{content:"\ea74"}.xnote-icon-rtl:before{content:"\ea75"}.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-icon-code:before{content:"\ea80"}.xnote-icon-clear-formatting:before{content:"\ea6f"}.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}.xnote-timeline{display:block;padding-left:5px;padding-top:1em}.xnote-timeline-item{display:block;opacity:.76;padding-bottom:.5em;padding-left:1.5em;position:relative}.xnote-timeline-item:first-of-type>.xnote-timeline-line{top:1em}.xnote-timeline-item:last-of-type>.xnote-timeline-line{bottom:calc(100% - 1em)}.xnote-timeline-line{border-left:1px solid #dddee1;bottom:0;left:0;position:absolute;top:0;width:0}.xnote-timeline-icon{background-color:#fff;border:1px solid #bbbec4;border-radius:50%;box-sizing:border-box;height:9px;left:-4px;position:absolute;top:.5em;width:9px}.xnote-timeline-tools{display:none;position:absolute;right:0;top:0}.xnote-timeline-item-content>:first-child{margin-top:0}.xnote-timeline-item:hover .xnote-timeline-tools{display:block}.xnote-step{display:flex}.xnote-step-item{flex:1;position:relative}.xnote-step-item:last-child .xnote-step-item-line{display:none}.xnote-step-item.xnote-complete .xnote-step-item-line{border-top-color:#15bd9a}.xnote-step-item.xnote-complete .xnote-step-item-icon{background-color:#15bd9a}.xnote-step-item.xnote-current .xnote-step-item-line{border-top-style:dashed}.xnote-step-item.xnote-current .xnote-step-item-icon{background-color:#1296db}.xnote-step-item.xnote-waiting .xnote-step-item-line{border-top-style:dashed}.xnote-step-item.xnote-waiting .xnote-step-item-icon{background-color:#bbbec4}.xnote-step-item.xnote-waiting .xnote-step-item-content{opacity:.8}.xnote-step-item-header{cursor:pointer;margin-bottom:1em;position:relative}.xnote-step-item-icon{border-radius:50%;color:#fff;font-weight:500;height:1.6em;line-height:1.6em;position:relative;text-align:center;user-select:none;width:1.6em}.xnote-step-item-line{border-top:1px solid #dddee1;left:0;position:absolute;right:0;top:50%}.xnote-step-item-content{padding-right:15px}.xnote-step-title{font-size:1.2em;font-weight:500;margin:0}.xnote-step-title>small{font-weight:400;opacity:.8}.xnote-step-content{font-weight:400;margin:0}.xnote-step-tools{display:none;position:absolute;right:0;top:0}.xnote-step-item-content>:first-child{margin-top:0}.xnote-step-item:hover .xnote-step-tools{display:block}
|
package/bundles/index.esm.js
CHANGED
|
@@ -823,7 +823,7 @@ const Dropdown = withAnnotation({
|
|
|
823
823
|
$render: withScopedCSS(scopedId$l, () => {
|
|
824
824
|
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', {
|
|
825
825
|
'has-arrow': props.arrow
|
|
826
|
-
}], children: props.children }), props.arrow && jsx("div", { ref: arrowRef, class: "dropdown-btn-arrow", children: jsx(Button, { arrow: true }) })] }), isShow() &&
|
|
826
|
+
}], children: props.children }), props.arrow && jsx("div", { ref: arrowRef, class: "dropdown-btn-arrow", children: jsx(Button, { disabled: props.disabled, arrow: true }) })] }), isShow() &&
|
|
827
827
|
jsx(DropdownMenuPortal, { toLeft: props.toLeft, padding: props.padding, noTrigger: props.trigger === 'none', width: props.width, abreast: props.abreast, triggerRef: triggerRef, children: Array.isArray(props.menu) ?
|
|
828
828
|
props.menu.map(menu => {
|
|
829
829
|
return (jsx("div", { class: "dropdown-menu-item", onClick: () => {
|
|
@@ -4099,7 +4099,7 @@ function BoldTool() {
|
|
|
4099
4099
|
});
|
|
4100
4100
|
return () => {
|
|
4101
4101
|
const vm = viewModel();
|
|
4102
|
-
return jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly, onClick: toggle, children: jsx("span", { class: "xnote-icon-bold" }) });
|
|
4102
|
+
return jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly || commonState().selectEmbed, onClick: toggle, children: jsx("span", { class: "xnote-icon-bold" }) });
|
|
4103
4103
|
};
|
|
4104
4104
|
}
|
|
4105
4105
|
|
|
@@ -4112,7 +4112,7 @@ function CleanFormatsTool() {
|
|
|
4112
4112
|
]);
|
|
4113
4113
|
}
|
|
4114
4114
|
return () => {
|
|
4115
|
-
return (jsx(Button, { disabled: commonState().inSourceCode || commonState().readonly, onClick: clean, children: jsx("span", { class: "xnote-icon-clear-formatting" }) }));
|
|
4115
|
+
return (jsx(Button, { disabled: commonState().inSourceCode || commonState().readonly || commonState().selectEmbed, onClick: clean, children: jsx("span", { class: "xnote-icon-clear-formatting" }) }));
|
|
4116
4116
|
};
|
|
4117
4117
|
}
|
|
4118
4118
|
|
|
@@ -4138,7 +4138,7 @@ function CodeTool() {
|
|
|
4138
4138
|
});
|
|
4139
4139
|
return () => {
|
|
4140
4140
|
const vm = viewModel();
|
|
4141
|
-
return jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly, onClick: toggle, children: jsx("span", { class: "xnote-icon-code" }) });
|
|
4141
|
+
return jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly || commonState().selectEmbed, onClick: toggle, children: jsx("span", { class: "xnote-icon-code" }) });
|
|
4142
4142
|
};
|
|
4143
4143
|
}
|
|
4144
4144
|
|
|
@@ -4238,7 +4238,7 @@ function FontFamilyTool() {
|
|
|
4238
4238
|
const commonState = useCommonState();
|
|
4239
4239
|
return () => {
|
|
4240
4240
|
var _a;
|
|
4241
|
-
const b = commonState().inSourceCode || commonState().readonly;
|
|
4241
|
+
const b = commonState().inSourceCode || commonState().readonly || commonState().selectEmbed;
|
|
4242
4242
|
return (jsx(Dropdown, { disabled: b, onCheck: check, menu: fontFamilyOptions.map(i => {
|
|
4243
4243
|
const disabled = i.value ? !i.value.split(',').map(i => isSupportFont(i.trim())).some(v => v) : false;
|
|
4244
4244
|
return {
|
|
@@ -4293,7 +4293,7 @@ function FontSizeTool() {
|
|
|
4293
4293
|
});
|
|
4294
4294
|
const commonState = useCommonState();
|
|
4295
4295
|
return () => {
|
|
4296
|
-
const b = commonState().inSourceCode || commonState().readonly;
|
|
4296
|
+
const b = commonState().inSourceCode || commonState().readonly || commonState().selectEmbed;
|
|
4297
4297
|
return (jsx(Dropdown, { disabled: b, onCheck: check, menu: fontSizeOptions.map(i => {
|
|
4298
4298
|
return {
|
|
4299
4299
|
label: jsx(MenuItem, { checked: currentFontSize() === i, children: i || '默认' }),
|
|
@@ -4639,7 +4639,7 @@ function InsertTool() {
|
|
|
4639
4639
|
const commonState = useCommonState();
|
|
4640
4640
|
return () => {
|
|
4641
4641
|
const b = commonState().readonly;
|
|
4642
|
-
return (jsx(Dropdown, { disabled: b, menu: jsx(InsertMenu, { replace: false, hideTitle:
|
|
4642
|
+
return (jsx(Dropdown, { disabled: b, menu: jsx(InsertMenu, { replace: false, hideTitle: false, slot: selection.focusSlot }), children: jsx(Button, { disabled: b, arrow: true, children: "\u63D2\u5165" }) }));
|
|
4643
4643
|
};
|
|
4644
4644
|
}
|
|
4645
4645
|
|
|
@@ -4665,7 +4665,7 @@ function ItalicTool() {
|
|
|
4665
4665
|
const commonState = useCommonState();
|
|
4666
4666
|
return () => {
|
|
4667
4667
|
const vm = viewModel();
|
|
4668
|
-
return jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly, onClick: toggle, children: jsx("span", { class: "xnote-icon-italic" }) });
|
|
4668
|
+
return jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly || commonState().selectEmbed, onClick: toggle, children: jsx("span", { class: "xnote-icon-italic" }) });
|
|
4669
4669
|
};
|
|
4670
4670
|
}
|
|
4671
4671
|
|
|
@@ -4777,7 +4777,7 @@ function StrikeThroughTool() {
|
|
|
4777
4777
|
const commonState = useCommonState();
|
|
4778
4778
|
return () => {
|
|
4779
4779
|
const vm = viewModel();
|
|
4780
|
-
return jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly, onClick: toggle, children: jsx("span", { class: "xnote-icon-strikethrough" }) });
|
|
4780
|
+
return jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly || commonState().selectEmbed, onClick: toggle, children: jsx("span", { class: "xnote-icon-strikethrough" }) });
|
|
4781
4781
|
};
|
|
4782
4782
|
}
|
|
4783
4783
|
|
|
@@ -4812,7 +4812,7 @@ function SubscriptTool() {
|
|
|
4812
4812
|
}
|
|
4813
4813
|
const commonState = useCommonState();
|
|
4814
4814
|
return () => {
|
|
4815
|
-
return (jsx(Button, { disabled: commonState().inSourceCode || commonState().readonly, highlight: state().highlight, onClick: apply, children: jsx("span", { class: "xnote-icon-subscript" }) }));
|
|
4815
|
+
return (jsx(Button, { disabled: commonState().inSourceCode || commonState().readonly || commonState().selectEmbed, highlight: state().highlight, onClick: apply, children: jsx("span", { class: "xnote-icon-subscript" }) }));
|
|
4816
4816
|
};
|
|
4817
4817
|
}
|
|
4818
4818
|
|
|
@@ -4847,7 +4847,7 @@ function SuperscriptTool() {
|
|
|
4847
4847
|
}
|
|
4848
4848
|
const commonState = useCommonState();
|
|
4849
4849
|
return () => {
|
|
4850
|
-
return (jsx(Button, { disabled: commonState().inSourceCode || commonState().readonly, highlight: state().highlight, onClick: apply, children: jsx("span", { class: "xnote-icon-superscript" }) }));
|
|
4850
|
+
return (jsx(Button, { disabled: commonState().inSourceCode || commonState().readonly || commonState().selectEmbed, highlight: state().highlight, onClick: apply, children: jsx("span", { class: "xnote-icon-superscript" }) }));
|
|
4851
4851
|
};
|
|
4852
4852
|
}
|
|
4853
4853
|
|
|
@@ -4967,7 +4967,7 @@ function UnderlineTool() {
|
|
|
4967
4967
|
const commonState = useCommonState();
|
|
4968
4968
|
return () => {
|
|
4969
4969
|
const vm = viewModel();
|
|
4970
|
-
return jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly, onClick: toggle, children: jsx("span", { class: "xnote-icon-underline" }) });
|
|
4970
|
+
return jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly || commonState().selectEmbed, onClick: toggle, children: jsx("span", { class: "xnote-icon-underline" }) });
|
|
4971
4971
|
};
|
|
4972
4972
|
}
|
|
4973
4973
|
|
|
@@ -5541,7 +5541,7 @@ const LeftToolbar = withAnnotation({
|
|
|
5541
5541
|
}, menu: isEmptyBlock() ?
|
|
5542
5542
|
jsx(InsertMenu, { replace: !needInsert, slot: activeSlot() })
|
|
5543
5543
|
:
|
|
5544
|
-
jsxs(Fragment, { children: [jsxs("div", { class: "btn-group", children: [jsx(Button, { ordinary: true, highlight: states.paragraph, onClick: () => transform('paragraph'), children: jsx("span", { class: "xnote-icon-pilcrow" }) }), jsx(Button, { ordinary: true, highlight: states.h1, onClick: () => transform('h1'), children: jsx("span", { class: "xnote-icon-heading-h1" }) }), jsx(Button, { ordinary: true, highlight: states.h2, onClick: () => transform('h2'), children: jsx("span", { class: "xnote-icon-heading-h2" }) }), jsx(Button, { ordinary: true, highlight: states.h3, onClick: () => transform('h3'), children: jsx("span", { class: "xnote-icon-heading-h3" }) }), jsx(Button, { ordinary: true, highlight: states.h4, onClick: () => transform('h4'), children: jsx("span", { class: "xnote-icon-heading-h4" }) }), jsx(Button, { ordinary: true, highlight: states.todolist, onClick: () => transform('todolist'), children: jsx("span", { class: "xnote-icon-checkbox-checked" }) }), jsx(Button, { ordinary: true, highlight: states.orderedList, onClick: () => transform('ol'), children: jsx("span", { class: "xnote-icon-list-numbered" }) }), jsx(Button, { ordinary: true, highlight: states.unorderedList, onClick: () => transform('ul'), children: jsx("span", { class: "xnote-icon-list" }) }), jsx(Button, { ordinary: true, highlight: states.blockquote, onClick: () => transform('blockquote'), children: jsx("span", { class: "xnote-icon-quotes-right" }) }), jsx(Button, { ordinary: true, highlight: states.sourceCode, onClick: () => transform('sourceCode'), children: jsx("span", { class: "xnote-icon-source-code" }) })] }), jsx(Divider, {}), jsx(AttrTool, { style: { display: 'block' }, abreast: true, slot: slot, applyBefore: applyBefore, children: jsx(MenuItem, { arrow: true, icon: jsx("span", { class: "xnote-icon-indent-decrease" }), children: "\u7F29\u8FDB\u548C\u5BF9\u9F50" }) }), jsx(TextColorTool, { style: { display: 'block' }, abreast: true, applyBefore: applyBefore, children: jsx(MenuItem, { arrow: true, icon: jsx("span", { class: "xnote-icon-color" }), children: "\u6587\
|
|
5544
|
+
jsxs(Fragment, { children: [jsxs("div", { class: "btn-group", children: [jsx(Button, { ordinary: true, highlight: states.paragraph, onClick: () => transform('paragraph'), children: jsx("span", { class: "xnote-icon-pilcrow" }) }), jsx(Button, { ordinary: true, highlight: states.h1, onClick: () => transform('h1'), children: jsx("span", { class: "xnote-icon-heading-h1" }) }), jsx(Button, { ordinary: true, highlight: states.h2, onClick: () => transform('h2'), children: jsx("span", { class: "xnote-icon-heading-h2" }) }), jsx(Button, { ordinary: true, highlight: states.h3, onClick: () => transform('h3'), children: jsx("span", { class: "xnote-icon-heading-h3" }) }), jsx(Button, { ordinary: true, highlight: states.h4, onClick: () => transform('h4'), children: jsx("span", { class: "xnote-icon-heading-h4" }) }), jsx(Button, { ordinary: true, highlight: states.todolist, onClick: () => transform('todolist'), children: jsx("span", { class: "xnote-icon-checkbox-checked" }) }), jsx(Button, { ordinary: true, highlight: states.orderedList, onClick: () => transform('ol'), children: jsx("span", { class: "xnote-icon-list-numbered" }) }), jsx(Button, { ordinary: true, highlight: states.unorderedList, onClick: () => transform('ul'), children: jsx("span", { class: "xnote-icon-list" }) }), jsx(Button, { ordinary: true, highlight: states.blockquote, onClick: () => transform('blockquote'), children: jsx("span", { class: "xnote-icon-quotes-right" }) }), jsx(Button, { ordinary: true, highlight: states.sourceCode, onClick: () => transform('sourceCode'), children: jsx("span", { class: "xnote-icon-source-code" }) })] }), jsx(Divider, {}), jsx(AttrTool, { style: { display: 'block' }, abreast: true, slot: slot, applyBefore: applyBefore, children: jsx(MenuItem, { arrow: true, icon: jsx("span", { class: "xnote-icon-indent-decrease" }), children: "\u7F29\u8FDB\u548C\u5BF9\u9F50" }) }), jsx(TextColorTool, { style: { display: 'block' }, abreast: true, applyBefore: applyBefore, children: jsx(MenuItem, { arrow: true, icon: jsx("span", { class: "xnote-icon-color" }), children: "\u6587\u5B57\u989C\u8272" }) }), jsx(TextBackgroundColorTool, { style: { display: 'block' }, abreast: true, applyBefore: applyBefore, children: jsx(MenuItem, { arrow: true, icon: jsx("span", { class: "xnote-icon-background-color" }), children: "\u6587\u5B57\u80CC\u666F\u989C\u8272" }) }), jsx(Divider, {}), jsx(MenuItem, { onClick: copy, icon: jsx("span", { class: "xnote-icon-copy" }), children: "\u590D\u5236" }), jsx(MenuItem, { onClick: remove, icon: jsx("span", { class: "xnote-icon-bin" }), children: "\u5220\u9664" }), jsx(MenuItem, { onClick: cut, icon: jsx("span", { class: "xnote-icon-cut" }), children: "\u526A\u5207" }), jsx(Divider, {}), jsx(Dropdown, { style: { display: 'block' }, abreast: true, menu: jsx(InsertMenu, { hideTitle: true, slot: activeSlot() }), children: jsx(MenuItem, { arrow: true, icon: jsx("span", { class: "xnote-icon-plus" }), children: "\u5728\u4E0B\u9762\u6DFB\u52A0" }) })] }), children: jsx("button", { type: "button", class: "left-toolbar-btn", children: isEmptyBlock() ?
|
|
5545
5545
|
jsx("span", { children: jsx("i", { class: "xnote-icon-plus" }) })
|
|
5546
5546
|
:
|
|
5547
5547
|
jsxs("span", { children: [activeNode, jsx("i", { style: "font-size: 12px", class: "xnote-icon-more" })] }) }) }) }) }));
|
|
@@ -5672,7 +5672,9 @@ const InlineToolbar = withAnnotation({
|
|
|
5672
5672
|
});
|
|
5673
5673
|
let mouseupSubscription = new Subscription();
|
|
5674
5674
|
const toolbarRef = createRef();
|
|
5675
|
+
const commonState = useCommonState();
|
|
5675
5676
|
function getTop() {
|
|
5677
|
+
var _a;
|
|
5676
5678
|
const docRect = viewDocument.getBoundingClientRect();
|
|
5677
5679
|
// const toolbarRect = toolbarRef.current!.getBoundingClientRect()
|
|
5678
5680
|
const toolbarHeight = 36;
|
|
@@ -5710,6 +5712,21 @@ const InlineToolbar = withAnnotation({
|
|
|
5710
5712
|
});
|
|
5711
5713
|
}
|
|
5712
5714
|
}
|
|
5715
|
+
else if (commonState().selectEmbed) {
|
|
5716
|
+
const component = (_a = selection.startSlot) === null || _a === void 0 ? void 0 : _a.getContentAtIndex(selection.startOffset);
|
|
5717
|
+
if (component instanceof ImageComponent || component instanceof VideoComponent) {
|
|
5718
|
+
const nativeNode = adapter.getNativeNodeByComponent(component);
|
|
5719
|
+
if (nativeNode) {
|
|
5720
|
+
const rect = nativeNode.getBoundingClientRect();
|
|
5721
|
+
selectionFocusRect = {
|
|
5722
|
+
left: rect.left + rect.width / 2,
|
|
5723
|
+
top: rect.top,
|
|
5724
|
+
height: rect.height,
|
|
5725
|
+
width: rect.width
|
|
5726
|
+
};
|
|
5727
|
+
}
|
|
5728
|
+
}
|
|
5729
|
+
}
|
|
5713
5730
|
else {
|
|
5714
5731
|
selectionFocusRect = bridge.getRect({
|
|
5715
5732
|
slot: selection.focusSlot,
|
|
@@ -6331,7 +6348,6 @@ class RootComponent extends Component {
|
|
|
6331
6348
|
RootComponent.componentName = 'RootComponent';
|
|
6332
6349
|
RootComponent.type = ContentType.BlockComponent;
|
|
6333
6350
|
function RootView(props) {
|
|
6334
|
-
const { content } = props.component.state;
|
|
6335
6351
|
const ref = createDynamicRef(node => {
|
|
6336
6352
|
const sub = props.component.onCompositionStart.subscribe(() => {
|
|
6337
6353
|
node.children[0].dataset.placeholder = '';
|
|
@@ -6353,6 +6369,7 @@ function RootView(props) {
|
|
|
6353
6369
|
}
|
|
6354
6370
|
return () => {
|
|
6355
6371
|
const { rootRef } = props;
|
|
6372
|
+
const { content } = props.component.state;
|
|
6356
6373
|
return (jsx("div", { class: "xnote-root", onClick: checkContent, style: !readonly() ? {
|
|
6357
6374
|
paddingBottom: '40px'
|
|
6358
6375
|
} : {}, dir: "auto", ref: [rootRef, containerRef, ref], "data-component": props.component.name, children: jsx(SlotRender, { slot: content, tag: "div", class: "xnote-content", "data-placeholder": content.isEmpty ? '请输入内容' : '', renderEnv: readonly() || output() }) }));
|
|
@@ -7539,24 +7556,7 @@ class Editor extends Textbus {
|
|
|
7539
7556
|
let rootComp;
|
|
7540
7557
|
const config = this.editorConfig;
|
|
7541
7558
|
if (config.content) {
|
|
7542
|
-
|
|
7543
|
-
const doc = parser.parseDoc(config.content, rootComponentLoader);
|
|
7544
|
-
if (doc instanceof Component) {
|
|
7545
|
-
rootComp = doc;
|
|
7546
|
-
}
|
|
7547
|
-
else {
|
|
7548
|
-
const content = new Slot([
|
|
7549
|
-
ContentType.BlockComponent
|
|
7550
|
-
]);
|
|
7551
|
-
if (doc instanceof Slot) {
|
|
7552
|
-
deltaToBlock(doc.toDelta(), this).forEach(i => {
|
|
7553
|
-
content.insert(i);
|
|
7554
|
-
});
|
|
7555
|
-
}
|
|
7556
|
-
rootComp = new RootComponent(this, {
|
|
7557
|
-
content
|
|
7558
|
-
});
|
|
7559
|
-
}
|
|
7559
|
+
rootComp = this.createModel(config.content);
|
|
7560
7560
|
}
|
|
7561
7561
|
else {
|
|
7562
7562
|
rootComp = new RootComponent(this, {
|
|
@@ -7565,9 +7565,42 @@ class Editor extends Textbus {
|
|
|
7565
7565
|
}
|
|
7566
7566
|
return this.render(rootComp);
|
|
7567
7567
|
}
|
|
7568
|
+
setContent(content) {
|
|
7569
|
+
this.guardReady();
|
|
7570
|
+
const newModel = this.createModel(content);
|
|
7571
|
+
const rootComponent = this.get(RootComponentRef).component;
|
|
7572
|
+
Object.assign(rootComponent.state, newModel.state);
|
|
7573
|
+
}
|
|
7568
7574
|
getHTML() {
|
|
7569
7575
|
return this.translator.transform(this.vDomAdapter.host);
|
|
7570
7576
|
}
|
|
7577
|
+
createModel(content) {
|
|
7578
|
+
if (typeof content === 'string') {
|
|
7579
|
+
return this.createModelFromHTML(content);
|
|
7580
|
+
}
|
|
7581
|
+
return this.createModelFromState(content);
|
|
7582
|
+
}
|
|
7583
|
+
createModelFromState(state) {
|
|
7584
|
+
return RootComponent.fromJSON(this, state);
|
|
7585
|
+
}
|
|
7586
|
+
createModelFromHTML(html) {
|
|
7587
|
+
const parser = this.get(Parser);
|
|
7588
|
+
const doc = parser.parseDoc(html, rootComponentLoader);
|
|
7589
|
+
if (doc instanceof Component) {
|
|
7590
|
+
return doc;
|
|
7591
|
+
}
|
|
7592
|
+
const content = new Slot([
|
|
7593
|
+
ContentType.BlockComponent
|
|
7594
|
+
]);
|
|
7595
|
+
if (doc instanceof Slot) {
|
|
7596
|
+
deltaToBlock(doc.toDelta(), this).forEach(i => {
|
|
7597
|
+
content.insert(i);
|
|
7598
|
+
});
|
|
7599
|
+
}
|
|
7600
|
+
return new RootComponent(this, {
|
|
7601
|
+
content
|
|
7602
|
+
});
|
|
7603
|
+
}
|
|
7571
7604
|
}
|
|
7572
7605
|
|
|
7573
7606
|
export { AtComponent, AtComponentView, AttrTool, BlockTool, BlockquoteComponent, BlockquoteView, BoldTool, Button, CellAlignTool, CellBackgroundTool, CleanFormatsTool, CodeTool, ColorPicker, ComponentToolbar, Divider, DragResize, Dropdown, DropdownContextService, DropdownMenuContainer, DropdownMenuPortal, DropdownService, Editor, EditorService, FileUploader, FontFamilyTool, FontSizeTool, HighlightBoxComponent, HighlightBoxView, ImageComponent, ImageView, InlineToolbar, InlineToolbarPlugin, InsertMenu, InsertTool, ItalicTool, KatexComponent, KatexComponentView, Keymap, LeftToolbar, LeftToolbarPlugin, LinkJump, LinkTool, ListComponent, ListComponentView, Matcher, MenuHeading, MenuItem, MergeCellsTool, Organization, OutputInjectionToken, ParagraphComponent, ParagraphView, Picker, Popup, RedoTool, RefreshService, RootComponent, RootView, SourceCodeComponent, SourceCodeView, SplitCellsTool, SplitLine, StaticToolbar, StaticToolbarPlugin, StrikeThroughTool, SubscriptTool, SuperscriptTool, SuspensionToolbar, SuspensionToolbarPlugin, TableComponent, TableComponentView, TextBackgroundColorTool, TextColorTool, TodolistComponent, TodolistView, ToolbarItem, UnderlineTool, UndoTool, VideoComponent, VideoView, XNoteMessageBus, atComponentLoader, backgroundColorFormatLoader, backgroundColorFormatter, blockquoteComponentLoader, boldFormatLoader, boldFormatter, cellAlignAttr, cellAlignAttrLoader, cellBackgroundAttr, cellBackgroundAttrLoader, 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, subscriptFormatLoader, subscriptFormatter, superscriptFormatLoader, superscriptFormatter, 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
|
@@ -825,7 +825,7 @@ const Dropdown = core.withAnnotation({
|
|
|
825
825
|
$render: scopedCss.withScopedCSS(scopedId$l, () => {
|
|
826
826
|
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', {
|
|
827
827
|
'has-arrow': props.arrow
|
|
828
|
-
}], children: props.children }), props.arrow && jsxRuntime.jsx("div", { ref: arrowRef, class: "dropdown-btn-arrow", children: jsxRuntime.jsx(Button, { arrow: true }) })] }), isShow() &&
|
|
828
|
+
}], children: props.children }), props.arrow && jsxRuntime.jsx("div", { ref: arrowRef, class: "dropdown-btn-arrow", children: jsxRuntime.jsx(Button, { disabled: props.disabled, arrow: true }) })] }), isShow() &&
|
|
829
829
|
jsxRuntime.jsx(DropdownMenuPortal, { toLeft: props.toLeft, padding: props.padding, noTrigger: props.trigger === 'none', width: props.width, abreast: props.abreast, triggerRef: triggerRef, children: Array.isArray(props.menu) ?
|
|
830
830
|
props.menu.map(menu => {
|
|
831
831
|
return (jsxRuntime.jsx("div", { class: "dropdown-menu-item", onClick: () => {
|
|
@@ -4101,7 +4101,7 @@ function BoldTool() {
|
|
|
4101
4101
|
});
|
|
4102
4102
|
return () => {
|
|
4103
4103
|
const vm = viewModel();
|
|
4104
|
-
return jsxRuntime.jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly, onClick: toggle, children: jsxRuntime.jsx("span", { class: "xnote-icon-bold" }) });
|
|
4104
|
+
return jsxRuntime.jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly || commonState().selectEmbed, onClick: toggle, children: jsxRuntime.jsx("span", { class: "xnote-icon-bold" }) });
|
|
4105
4105
|
};
|
|
4106
4106
|
}
|
|
4107
4107
|
|
|
@@ -4114,7 +4114,7 @@ function CleanFormatsTool() {
|
|
|
4114
4114
|
]);
|
|
4115
4115
|
}
|
|
4116
4116
|
return () => {
|
|
4117
|
-
return (jsxRuntime.jsx(Button, { disabled: commonState().inSourceCode || commonState().readonly, onClick: clean, children: jsxRuntime.jsx("span", { class: "xnote-icon-clear-formatting" }) }));
|
|
4117
|
+
return (jsxRuntime.jsx(Button, { disabled: commonState().inSourceCode || commonState().readonly || commonState().selectEmbed, onClick: clean, children: jsxRuntime.jsx("span", { class: "xnote-icon-clear-formatting" }) }));
|
|
4118
4118
|
};
|
|
4119
4119
|
}
|
|
4120
4120
|
|
|
@@ -4140,7 +4140,7 @@ function CodeTool() {
|
|
|
4140
4140
|
});
|
|
4141
4141
|
return () => {
|
|
4142
4142
|
const vm = viewModel();
|
|
4143
|
-
return jsxRuntime.jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly, onClick: toggle, children: jsxRuntime.jsx("span", { class: "xnote-icon-code" }) });
|
|
4143
|
+
return jsxRuntime.jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly || commonState().selectEmbed, onClick: toggle, children: jsxRuntime.jsx("span", { class: "xnote-icon-code" }) });
|
|
4144
4144
|
};
|
|
4145
4145
|
}
|
|
4146
4146
|
|
|
@@ -4240,7 +4240,7 @@ function FontFamilyTool() {
|
|
|
4240
4240
|
const commonState = useCommonState();
|
|
4241
4241
|
return () => {
|
|
4242
4242
|
var _a;
|
|
4243
|
-
const b = commonState().inSourceCode || commonState().readonly;
|
|
4243
|
+
const b = commonState().inSourceCode || commonState().readonly || commonState().selectEmbed;
|
|
4244
4244
|
return (jsxRuntime.jsx(Dropdown, { disabled: b, onCheck: check, menu: fontFamilyOptions.map(i => {
|
|
4245
4245
|
const disabled = i.value ? !i.value.split(',').map(i => isSupportFont(i.trim())).some(v => v) : false;
|
|
4246
4246
|
return {
|
|
@@ -4295,7 +4295,7 @@ function FontSizeTool() {
|
|
|
4295
4295
|
});
|
|
4296
4296
|
const commonState = useCommonState();
|
|
4297
4297
|
return () => {
|
|
4298
|
-
const b = commonState().inSourceCode || commonState().readonly;
|
|
4298
|
+
const b = commonState().inSourceCode || commonState().readonly || commonState().selectEmbed;
|
|
4299
4299
|
return (jsxRuntime.jsx(Dropdown, { disabled: b, onCheck: check, menu: fontSizeOptions.map(i => {
|
|
4300
4300
|
return {
|
|
4301
4301
|
label: jsxRuntime.jsx(MenuItem, { checked: currentFontSize() === i, children: i || '默认' }),
|
|
@@ -4641,7 +4641,7 @@ function InsertTool() {
|
|
|
4641
4641
|
const commonState = useCommonState();
|
|
4642
4642
|
return () => {
|
|
4643
4643
|
const b = commonState().readonly;
|
|
4644
|
-
return (jsxRuntime.jsx(Dropdown, { disabled: b, menu: jsxRuntime.jsx(InsertMenu, { replace: false, hideTitle:
|
|
4644
|
+
return (jsxRuntime.jsx(Dropdown, { disabled: b, menu: jsxRuntime.jsx(InsertMenu, { replace: false, hideTitle: false, slot: selection.focusSlot }), children: jsxRuntime.jsx(Button, { disabled: b, arrow: true, children: "\u63D2\u5165" }) }));
|
|
4645
4645
|
};
|
|
4646
4646
|
}
|
|
4647
4647
|
|
|
@@ -4667,7 +4667,7 @@ function ItalicTool() {
|
|
|
4667
4667
|
const commonState = useCommonState();
|
|
4668
4668
|
return () => {
|
|
4669
4669
|
const vm = viewModel();
|
|
4670
|
-
return jsxRuntime.jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly, onClick: toggle, children: jsxRuntime.jsx("span", { class: "xnote-icon-italic" }) });
|
|
4670
|
+
return jsxRuntime.jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly || commonState().selectEmbed, onClick: toggle, children: jsxRuntime.jsx("span", { class: "xnote-icon-italic" }) });
|
|
4671
4671
|
};
|
|
4672
4672
|
}
|
|
4673
4673
|
|
|
@@ -4779,7 +4779,7 @@ function StrikeThroughTool() {
|
|
|
4779
4779
|
const commonState = useCommonState();
|
|
4780
4780
|
return () => {
|
|
4781
4781
|
const vm = viewModel();
|
|
4782
|
-
return jsxRuntime.jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly, onClick: toggle, children: jsxRuntime.jsx("span", { class: "xnote-icon-strikethrough" }) });
|
|
4782
|
+
return jsxRuntime.jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly || commonState().selectEmbed, onClick: toggle, children: jsxRuntime.jsx("span", { class: "xnote-icon-strikethrough" }) });
|
|
4783
4783
|
};
|
|
4784
4784
|
}
|
|
4785
4785
|
|
|
@@ -4814,7 +4814,7 @@ function SubscriptTool() {
|
|
|
4814
4814
|
}
|
|
4815
4815
|
const commonState = useCommonState();
|
|
4816
4816
|
return () => {
|
|
4817
|
-
return (jsxRuntime.jsx(Button, { disabled: commonState().inSourceCode || commonState().readonly, highlight: state().highlight, onClick: apply, children: jsxRuntime.jsx("span", { class: "xnote-icon-subscript" }) }));
|
|
4817
|
+
return (jsxRuntime.jsx(Button, { disabled: commonState().inSourceCode || commonState().readonly || commonState().selectEmbed, highlight: state().highlight, onClick: apply, children: jsxRuntime.jsx("span", { class: "xnote-icon-subscript" }) }));
|
|
4818
4818
|
};
|
|
4819
4819
|
}
|
|
4820
4820
|
|
|
@@ -4849,7 +4849,7 @@ function SuperscriptTool() {
|
|
|
4849
4849
|
}
|
|
4850
4850
|
const commonState = useCommonState();
|
|
4851
4851
|
return () => {
|
|
4852
|
-
return (jsxRuntime.jsx(Button, { disabled: commonState().inSourceCode || commonState().readonly, highlight: state().highlight, onClick: apply, children: jsxRuntime.jsx("span", { class: "xnote-icon-superscript" }) }));
|
|
4852
|
+
return (jsxRuntime.jsx(Button, { disabled: commonState().inSourceCode || commonState().readonly || commonState().selectEmbed, highlight: state().highlight, onClick: apply, children: jsxRuntime.jsx("span", { class: "xnote-icon-superscript" }) }));
|
|
4853
4853
|
};
|
|
4854
4854
|
}
|
|
4855
4855
|
|
|
@@ -4969,7 +4969,7 @@ function UnderlineTool() {
|
|
|
4969
4969
|
const commonState = useCommonState();
|
|
4970
4970
|
return () => {
|
|
4971
4971
|
const vm = viewModel();
|
|
4972
|
-
return jsxRuntime.jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly, onClick: toggle, children: jsxRuntime.jsx("span", { class: "xnote-icon-underline" }) });
|
|
4972
|
+
return jsxRuntime.jsx(Button, { highlight: vm.highlight, disabled: commonState().inSourceCode || commonState().readonly || commonState().selectEmbed, onClick: toggle, children: jsxRuntime.jsx("span", { class: "xnote-icon-underline" }) });
|
|
4973
4973
|
};
|
|
4974
4974
|
}
|
|
4975
4975
|
|
|
@@ -5543,7 +5543,7 @@ const LeftToolbar = core.withAnnotation({
|
|
|
5543
5543
|
}, menu: isEmptyBlock() ?
|
|
5544
5544
|
jsxRuntime.jsx(InsertMenu, { replace: !needInsert, slot: activeSlot() })
|
|
5545
5545
|
:
|
|
5546
|
-
jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { class: "btn-group", children: [jsxRuntime.jsx(Button, { ordinary: true, highlight: states.paragraph, onClick: () => transform('paragraph'), children: jsxRuntime.jsx("span", { class: "xnote-icon-pilcrow" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.h1, onClick: () => transform('h1'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h1" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.h2, onClick: () => transform('h2'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h2" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.h3, onClick: () => transform('h3'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h3" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.h4, onClick: () => transform('h4'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h4" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.todolist, onClick: () => transform('todolist'), children: jsxRuntime.jsx("span", { class: "xnote-icon-checkbox-checked" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.orderedList, onClick: () => transform('ol'), children: jsxRuntime.jsx("span", { class: "xnote-icon-list-numbered" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.unorderedList, onClick: () => transform('ul'), children: jsxRuntime.jsx("span", { class: "xnote-icon-list" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.blockquote, onClick: () => transform('blockquote'), children: jsxRuntime.jsx("span", { class: "xnote-icon-quotes-right" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.sourceCode, onClick: () => transform('sourceCode'), children: jsxRuntime.jsx("span", { class: "xnote-icon-source-code" }) })] }), jsxRuntime.jsx(Divider, {}), jsxRuntime.jsx(AttrTool, { style: { display: 'block' }, abreast: true, slot: slot, applyBefore: applyBefore, children: jsxRuntime.jsx(MenuItem, { arrow: true, icon: jsxRuntime.jsx("span", { class: "xnote-icon-indent-decrease" }), children: "\u7F29\u8FDB\u548C\u5BF9\u9F50" }) }), jsxRuntime.jsx(TextColorTool, { style: { display: 'block' }, abreast: true, applyBefore: applyBefore, children: jsxRuntime.jsx(MenuItem, { arrow: true, icon: jsxRuntime.jsx("span", { class: "xnote-icon-color" }), children: "\u6587\
|
|
5546
|
+
jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { class: "btn-group", children: [jsxRuntime.jsx(Button, { ordinary: true, highlight: states.paragraph, onClick: () => transform('paragraph'), children: jsxRuntime.jsx("span", { class: "xnote-icon-pilcrow" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.h1, onClick: () => transform('h1'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h1" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.h2, onClick: () => transform('h2'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h2" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.h3, onClick: () => transform('h3'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h3" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.h4, onClick: () => transform('h4'), children: jsxRuntime.jsx("span", { class: "xnote-icon-heading-h4" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.todolist, onClick: () => transform('todolist'), children: jsxRuntime.jsx("span", { class: "xnote-icon-checkbox-checked" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.orderedList, onClick: () => transform('ol'), children: jsxRuntime.jsx("span", { class: "xnote-icon-list-numbered" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.unorderedList, onClick: () => transform('ul'), children: jsxRuntime.jsx("span", { class: "xnote-icon-list" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.blockquote, onClick: () => transform('blockquote'), children: jsxRuntime.jsx("span", { class: "xnote-icon-quotes-right" }) }), jsxRuntime.jsx(Button, { ordinary: true, highlight: states.sourceCode, onClick: () => transform('sourceCode'), children: jsxRuntime.jsx("span", { class: "xnote-icon-source-code" }) })] }), jsxRuntime.jsx(Divider, {}), jsxRuntime.jsx(AttrTool, { style: { display: 'block' }, abreast: true, slot: slot, applyBefore: applyBefore, children: jsxRuntime.jsx(MenuItem, { arrow: true, icon: jsxRuntime.jsx("span", { class: "xnote-icon-indent-decrease" }), children: "\u7F29\u8FDB\u548C\u5BF9\u9F50" }) }), jsxRuntime.jsx(TextColorTool, { style: { display: 'block' }, abreast: true, applyBefore: applyBefore, children: jsxRuntime.jsx(MenuItem, { arrow: true, icon: jsxRuntime.jsx("span", { class: "xnote-icon-color" }), children: "\u6587\u5B57\u989C\u8272" }) }), jsxRuntime.jsx(TextBackgroundColorTool, { style: { display: 'block' }, abreast: true, applyBefore: applyBefore, children: jsxRuntime.jsx(MenuItem, { arrow: true, icon: jsxRuntime.jsx("span", { class: "xnote-icon-background-color" }), children: "\u6587\u5B57\u80CC\u666F\u989C\u8272" }) }), jsxRuntime.jsx(Divider, {}), jsxRuntime.jsx(MenuItem, { onClick: copy, icon: jsxRuntime.jsx("span", { class: "xnote-icon-copy" }), children: "\u590D\u5236" }), jsxRuntime.jsx(MenuItem, { onClick: remove, icon: jsxRuntime.jsx("span", { class: "xnote-icon-bin" }), children: "\u5220\u9664" }), jsxRuntime.jsx(MenuItem, { onClick: cut, icon: jsxRuntime.jsx("span", { class: "xnote-icon-cut" }), children: "\u526A\u5207" }), jsxRuntime.jsx(Divider, {}), jsxRuntime.jsx(Dropdown, { style: { display: 'block' }, abreast: true, menu: jsxRuntime.jsx(InsertMenu, { hideTitle: true, slot: activeSlot() }), children: jsxRuntime.jsx(MenuItem, { arrow: true, icon: jsxRuntime.jsx("span", { class: "xnote-icon-plus" }), children: "\u5728\u4E0B\u9762\u6DFB\u52A0" }) })] }), children: jsxRuntime.jsx("button", { type: "button", class: "left-toolbar-btn", children: isEmptyBlock() ?
|
|
5547
5547
|
jsxRuntime.jsx("span", { children: jsxRuntime.jsx("i", { class: "xnote-icon-plus" }) })
|
|
5548
5548
|
:
|
|
5549
5549
|
jsxRuntime.jsxs("span", { children: [activeNode, jsxRuntime.jsx("i", { style: "font-size: 12px", class: "xnote-icon-more" })] }) }) }) }) }));
|
|
@@ -5674,7 +5674,9 @@ const InlineToolbar = core.withAnnotation({
|
|
|
5674
5674
|
});
|
|
5675
5675
|
let mouseupSubscription = new core$1.Subscription();
|
|
5676
5676
|
const toolbarRef = core.createRef();
|
|
5677
|
+
const commonState = useCommonState();
|
|
5677
5678
|
function getTop() {
|
|
5679
|
+
var _a;
|
|
5678
5680
|
const docRect = viewDocument.getBoundingClientRect();
|
|
5679
5681
|
// const toolbarRect = toolbarRef.current!.getBoundingClientRect()
|
|
5680
5682
|
const toolbarHeight = 36;
|
|
@@ -5712,6 +5714,21 @@ const InlineToolbar = core.withAnnotation({
|
|
|
5712
5714
|
});
|
|
5713
5715
|
}
|
|
5714
5716
|
}
|
|
5717
|
+
else if (commonState().selectEmbed) {
|
|
5718
|
+
const component = (_a = selection.startSlot) === null || _a === void 0 ? void 0 : _a.getContentAtIndex(selection.startOffset);
|
|
5719
|
+
if (component instanceof ImageComponent || component instanceof VideoComponent) {
|
|
5720
|
+
const nativeNode = adapter.getNativeNodeByComponent(component);
|
|
5721
|
+
if (nativeNode) {
|
|
5722
|
+
const rect = nativeNode.getBoundingClientRect();
|
|
5723
|
+
selectionFocusRect = {
|
|
5724
|
+
left: rect.left + rect.width / 2,
|
|
5725
|
+
top: rect.top,
|
|
5726
|
+
height: rect.height,
|
|
5727
|
+
width: rect.width
|
|
5728
|
+
};
|
|
5729
|
+
}
|
|
5730
|
+
}
|
|
5731
|
+
}
|
|
5715
5732
|
else {
|
|
5716
5733
|
selectionFocusRect = bridge.getRect({
|
|
5717
5734
|
slot: selection.focusSlot,
|
|
@@ -6333,7 +6350,6 @@ class RootComponent extends core$1.Component {
|
|
|
6333
6350
|
RootComponent.componentName = 'RootComponent';
|
|
6334
6351
|
RootComponent.type = core$1.ContentType.BlockComponent;
|
|
6335
6352
|
function RootView(props) {
|
|
6336
|
-
const { content } = props.component.state;
|
|
6337
6353
|
const ref = core.createDynamicRef(node => {
|
|
6338
6354
|
const sub = props.component.onCompositionStart.subscribe(() => {
|
|
6339
6355
|
node.children[0].dataset.placeholder = '';
|
|
@@ -6355,6 +6371,7 @@ function RootView(props) {
|
|
|
6355
6371
|
}
|
|
6356
6372
|
return () => {
|
|
6357
6373
|
const { rootRef } = props;
|
|
6374
|
+
const { content } = props.component.state;
|
|
6358
6375
|
return (jsxRuntime.jsx("div", { class: "xnote-root", onClick: checkContent, style: !readonly() ? {
|
|
6359
6376
|
paddingBottom: '40px'
|
|
6360
6377
|
} : {}, dir: "auto", ref: [rootRef, containerRef, ref], "data-component": props.component.name, children: jsxRuntime.jsx(SlotRender, { slot: content, tag: "div", class: "xnote-content", "data-placeholder": content.isEmpty ? '请输入内容' : '', renderEnv: readonly() || output() }) }));
|
|
@@ -7541,24 +7558,7 @@ class Editor extends core$1.Textbus {
|
|
|
7541
7558
|
let rootComp;
|
|
7542
7559
|
const config = this.editorConfig;
|
|
7543
7560
|
if (config.content) {
|
|
7544
|
-
|
|
7545
|
-
const doc = parser.parseDoc(config.content, rootComponentLoader);
|
|
7546
|
-
if (doc instanceof core$1.Component) {
|
|
7547
|
-
rootComp = doc;
|
|
7548
|
-
}
|
|
7549
|
-
else {
|
|
7550
|
-
const content = new core$1.Slot([
|
|
7551
|
-
core$1.ContentType.BlockComponent
|
|
7552
|
-
]);
|
|
7553
|
-
if (doc instanceof core$1.Slot) {
|
|
7554
|
-
deltaToBlock(doc.toDelta(), this).forEach(i => {
|
|
7555
|
-
content.insert(i);
|
|
7556
|
-
});
|
|
7557
|
-
}
|
|
7558
|
-
rootComp = new RootComponent(this, {
|
|
7559
|
-
content
|
|
7560
|
-
});
|
|
7561
|
-
}
|
|
7561
|
+
rootComp = this.createModel(config.content);
|
|
7562
7562
|
}
|
|
7563
7563
|
else {
|
|
7564
7564
|
rootComp = new RootComponent(this, {
|
|
@@ -7567,9 +7567,42 @@ class Editor extends core$1.Textbus {
|
|
|
7567
7567
|
}
|
|
7568
7568
|
return this.render(rootComp);
|
|
7569
7569
|
}
|
|
7570
|
+
setContent(content) {
|
|
7571
|
+
this.guardReady();
|
|
7572
|
+
const newModel = this.createModel(content);
|
|
7573
|
+
const rootComponent = this.get(core$1.RootComponentRef).component;
|
|
7574
|
+
Object.assign(rootComponent.state, newModel.state);
|
|
7575
|
+
}
|
|
7570
7576
|
getHTML() {
|
|
7571
7577
|
return this.translator.transform(this.vDomAdapter.host);
|
|
7572
7578
|
}
|
|
7579
|
+
createModel(content) {
|
|
7580
|
+
if (typeof content === 'string') {
|
|
7581
|
+
return this.createModelFromHTML(content);
|
|
7582
|
+
}
|
|
7583
|
+
return this.createModelFromState(content);
|
|
7584
|
+
}
|
|
7585
|
+
createModelFromState(state) {
|
|
7586
|
+
return RootComponent.fromJSON(this, state);
|
|
7587
|
+
}
|
|
7588
|
+
createModelFromHTML(html) {
|
|
7589
|
+
const parser = this.get(platformBrowser.Parser);
|
|
7590
|
+
const doc = parser.parseDoc(html, rootComponentLoader);
|
|
7591
|
+
if (doc instanceof core$1.Component) {
|
|
7592
|
+
return doc;
|
|
7593
|
+
}
|
|
7594
|
+
const content = new core$1.Slot([
|
|
7595
|
+
core$1.ContentType.BlockComponent
|
|
7596
|
+
]);
|
|
7597
|
+
if (doc instanceof core$1.Slot) {
|
|
7598
|
+
deltaToBlock(doc.toDelta(), this).forEach(i => {
|
|
7599
|
+
content.insert(i);
|
|
7600
|
+
});
|
|
7601
|
+
}
|
|
7602
|
+
return new RootComponent(this, {
|
|
7603
|
+
content
|
|
7604
|
+
});
|
|
7605
|
+
}
|
|
7573
7606
|
}
|
|
7574
7607
|
|
|
7575
7608
|
exports.AtComponent = AtComponent;
|
package/index.tsx
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import 'reflect-metadata'
|
|
3
|
+
import { Editor, Member, Organization } from './src/public-api'
|
|
4
|
+
import { SyncConnector, YWebsocketConnector } from '@textbus/collaborate'
|
|
5
|
+
import { FileUploader } from './src/interfaces'
|
|
6
|
+
import { UserInfo } from './src/xnote-message-bus'
|
|
7
|
+
import { StaticToolbarPlugin, SuspensionToolbarPlugin } from '@textbus/xnote'
|
|
8
|
+
import { VIEW_CONTAINER } from '@textbus/platform-browser'
|
|
9
|
+
import { createRef, onMounted } from '@viewfly/core'
|
|
10
|
+
import { createApp } from '@viewfly/platform-browser'
|
|
11
|
+
import { RootComponentRef } from '@textbus/core'
|
|
12
|
+
|
|
13
|
+
const firstNameText = '王、李、张、刘、陈、杨、黄、赵、周、吴、徐、孙、马、胡、朱、郭、何、罗、高、林'.replace(/、/g, '')
|
|
14
|
+
const lastNameText = '本义既为女子所生子嗣则同一女子所生子嗣组成的亲族也可以称为姓以表示其同出于一个女性始祖的这种特殊的亲属关系这是姓的另一引申义此种亲族组织强调女性始祖则当如许多学者所推拟的其最初必形成于母系氏族社会中即夫从妻居子女属于母族世系以母方计对于这种具有血缘关系的亲属组织的名称杨希枚先生主张称为姓族典籍所记姬姓姜姓嬴姓最初应皆属母系姓族姬姜则是此种母系姓族之名号进入父系氏族社会后妻从夫居子女不再属母族而归于父族世系以父方计所以母系姓族遂转为父系姓族此后父系姓族仍然使用着母系姓族的名号其四姓在东周文献中有时是指姓族之名号如国语周语下言赐姓曰姜之姓即应理解为所赐姓族之名号即姜又如左传哀公五月昭夫人孟子卒昭公娶于吴故不书姓很明显姓在这里是指吴女所属姓族之名号即姬所谓姓族之姓与作姓族名号讲的姓是一实一名属于两种概念范畴所以会发生此种混同当如杨希枚先生所言是由于名代表实积久而以实为名于是产生姬姜之类姓之名号就是姓的概念司马迁在史记中常言姓某氏没能区别古代姓与氏之不同但他所说的姓意思即是指姓族之名号妘黄帝住姬水之滨以姬为姓司马迁在史记五帝本纪中说黄帝二十五子其得姓者十四人三语中胥臣解释说黄帝之子二十五宗其得姓者十四人为十二姓姬酉祁己滕箴任荀僖姞儇衣是也惟青阳与夷鼓同己姓后来的五帝少昊颛顼喾尧舜以及夏禹商族的祖先契周族的祖先农神后稷秦族的祖先伯益等都是黄帝的后代后稷承继姬姓他的后代建立了周朝周初周天子姬发大封诸侯时其中姬姓国个姬姓位于百家姓第位由姬姓演支出个姓占百家姓总姓姓的再演化出来的姓氏更是数不胜数了炎帝居姜水之旁以姜为姓姜姓还是今天中国的许多姓氏如吕姓谢姓齐姓高姓卢姓崔姓等的重要起源之一姜姓在当今以人口排名的中国百家姓氏中居于第位妘起源于帝喾高辛氏嬴起源于少昊金天氏;姚妫同源都是起源于帝舜;姒起源于大禹此外部落首领之子亦可得姓黄帝有二十五子得姓者十四人为姬酉祁己滕任荀葴僖姞儇依十二姓其中有四人分属二姓祝融之后为己董彭秃妘曹斟芈等八姓史称祝融八姓'
|
|
15
|
+
|
|
16
|
+
function createUserName() {
|
|
17
|
+
const firstName = firstNameText.substr(Math.floor(Math.random() * firstNameText.length), 1)
|
|
18
|
+
const lastName = lastNameText.substr(Math.floor(Math.random() * lastNameText.length), 1 + Math.floor(Math.random() * 2))
|
|
19
|
+
|
|
20
|
+
return firstName + lastName
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const username = createUserName()
|
|
24
|
+
|
|
25
|
+
function createColor() {
|
|
26
|
+
const fn = function () {
|
|
27
|
+
const s = Math.floor(Math.random() * 255).toString(16)
|
|
28
|
+
if (s.length === 2) {
|
|
29
|
+
return s
|
|
30
|
+
}
|
|
31
|
+
return '0' + s
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return `#${fn()}${fn()}${fn()}`
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const user: UserInfo = {
|
|
38
|
+
username: username,
|
|
39
|
+
color: createColor(),
|
|
40
|
+
id: Math.random().toString()
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function sleep(delay: number) {
|
|
44
|
+
return new Promise<void>(resolve => {
|
|
45
|
+
setTimeout(() => {
|
|
46
|
+
resolve()
|
|
47
|
+
}, delay)
|
|
48
|
+
})
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
class Http extends Organization {
|
|
52
|
+
async getMembers(name: string): Promise<Member[]> {
|
|
53
|
+
await sleep(100)
|
|
54
|
+
let len = Math.floor(20 / name.length + 1)
|
|
55
|
+
|
|
56
|
+
const arr = Array.from<Member>({ length: len }).map(() => {
|
|
57
|
+
return {
|
|
58
|
+
id: 'xxx',
|
|
59
|
+
name: name + createUserName(),
|
|
60
|
+
groupName: '部门-' + createUserName(),
|
|
61
|
+
groupId: 'xxx',
|
|
62
|
+
avatar: '',
|
|
63
|
+
color: createColor()
|
|
64
|
+
}
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
if (name.length) {
|
|
68
|
+
arr.unshift({
|
|
69
|
+
id: 'xxx',
|
|
70
|
+
name: name,
|
|
71
|
+
groupName: '部门-' + createUserName(),
|
|
72
|
+
groupId: 'xxx',
|
|
73
|
+
avatar: '',
|
|
74
|
+
color: createColor()
|
|
75
|
+
})
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return Promise.resolve(arr)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
atMember(member: Member) {
|
|
82
|
+
//
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const editor = new Editor({
|
|
87
|
+
readonly: false,
|
|
88
|
+
// content: document.getElementById('article')!.innerHTML,
|
|
89
|
+
collaborateConfig: {
|
|
90
|
+
userinfo: user,
|
|
91
|
+
createConnector(yDoc): SyncConnector {
|
|
92
|
+
return new YWebsocketConnector('ws://localhost:1234', 'xnote', yDoc)
|
|
93
|
+
// return new YWebsocketConnector('wss://textbus.io/api', 'xnote', yDoc)
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
// plugins: [
|
|
97
|
+
// new SuspensionToolbarPlugin()
|
|
98
|
+
// ],
|
|
99
|
+
providers: [
|
|
100
|
+
{
|
|
101
|
+
provide: Organization,
|
|
102
|
+
useValue: new Http()
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
provide: FileUploader,
|
|
106
|
+
useValue: {
|
|
107
|
+
uploadFile(type: string) {
|
|
108
|
+
console.log(type)
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
})
|
|
114
|
+
|
|
115
|
+
function App() {
|
|
116
|
+
const editorRef = createRef<HTMLElement>()
|
|
117
|
+
const htmlRef = createRef<HTMLTextAreaElement>()
|
|
118
|
+
|
|
119
|
+
onMounted(() => {
|
|
120
|
+
editor.mount(editorRef.current!).then(() => {
|
|
121
|
+
const root = editor.get(RootComponentRef).component
|
|
122
|
+
root.changeMarker.onChange.subscribe(op => {
|
|
123
|
+
console.log(op)
|
|
124
|
+
})
|
|
125
|
+
})
|
|
126
|
+
})
|
|
127
|
+
return () => {
|
|
128
|
+
return (
|
|
129
|
+
<div>
|
|
130
|
+
<div style={{
|
|
131
|
+
display: 'flex',
|
|
132
|
+
height: '60px',
|
|
133
|
+
}}>
|
|
134
|
+
<button type="button" onClick={() => {
|
|
135
|
+
const html = editor.getHTML()
|
|
136
|
+
htmlRef.current!.value = html
|
|
137
|
+
}}>获取 HTML</button>
|
|
138
|
+
<textarea name="" id="" ref={htmlRef} cols="30" rows="10"></textarea>
|
|
139
|
+
<button type="button" onClick={() => {
|
|
140
|
+
const html = htmlRef.current!.value
|
|
141
|
+
editor.setContent(html)
|
|
142
|
+
}}>设置 HTML</button>
|
|
143
|
+
</div>
|
|
144
|
+
<div ref={editorRef}></div>
|
|
145
|
+
</div>
|
|
146
|
+
)
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
createApp(<App/>).mount(document.getElementById('app')!)
|
|
151
|
+
|
package/lerna.json
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@textbus/xnote",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "A high-performance rich text editor that supports multiplayer online collaboration.",
|
|
5
5
|
"main": "./bundles/index.js",
|
|
6
6
|
"module": "./bundles/index.esm.js",
|
|
@@ -27,14 +27,14 @@
|
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@tanbo/color": "^0.1.1",
|
|
30
|
-
"@textbus/adapter-viewfly": "^4.3.
|
|
31
|
-
"@textbus/collaborate": "^4.3.
|
|
32
|
-
"@textbus/core": "^4.3.
|
|
33
|
-
"@textbus/platform-browser": "^4.3.
|
|
34
|
-
"@viewfly/core": "^1.1.
|
|
35
|
-
"@viewfly/hooks": "^1.1.
|
|
36
|
-
"@viewfly/platform-browser": "^1.1.
|
|
37
|
-
"@viewfly/scoped-css": "^1.1.
|
|
30
|
+
"@textbus/adapter-viewfly": "^4.3.1",
|
|
31
|
+
"@textbus/collaborate": "^4.3.1",
|
|
32
|
+
"@textbus/core": "^4.3.1",
|
|
33
|
+
"@textbus/platform-browser": "^4.3.1",
|
|
34
|
+
"@viewfly/core": "^1.1.2",
|
|
35
|
+
"@viewfly/hooks": "^1.1.2",
|
|
36
|
+
"@viewfly/platform-browser": "^1.1.5",
|
|
37
|
+
"@viewfly/scoped-css": "^1.1.2",
|
|
38
38
|
"highlight.js": "^11.9.0",
|
|
39
39
|
"katex": "^0.16.10",
|
|
40
40
|
"uuid": "^10.0.0"
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"@types/uuid": "^10.0.0",
|
|
48
48
|
"@typescript-eslint/eslint-plugin": "^5.8.0",
|
|
49
49
|
"@typescript-eslint/parser": "^5.8.0",
|
|
50
|
-
"@viewfly/devtools": "^1.1.
|
|
50
|
+
"@viewfly/devtools": "^1.1.4",
|
|
51
51
|
"autoprefixer": "^10.4.0",
|
|
52
52
|
"babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
|
|
53
53
|
"core-js": "^3.20.1",
|
|
@@ -60,9 +60,9 @@
|
|
|
60
60
|
"file-loader": "^6.2.0",
|
|
61
61
|
"html-webpack-plugin": "^5.5.0",
|
|
62
62
|
"ip": "^2.0.1",
|
|
63
|
+
"lerna": "^8.1.9",
|
|
63
64
|
"less": "^4.1.3",
|
|
64
65
|
"less-loader": "^11.1.3",
|
|
65
|
-
"lerna": "^8.1.8",
|
|
66
66
|
"mini-css-extract-plugin": "^2.4.5",
|
|
67
67
|
"postcss": "^8.4.38",
|
|
68
68
|
"postcss-loader": "^7.3.3",
|