@ibiz-template-plugin/ibiz-file-previewer 0.0.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 +37 -0
- package/dist/index.cjs +1 -0
- package/dist/index.es.js +26625 -0
- package/dist/index.umd.js +1 -0
- package/dist/style.css +51 -0
- package/dist/types/component/file-preview-item/file-preview-image-group/file-preview-image-group.d.ts +34 -0
- package/dist/types/component/file-preview-item/file-preview-image-group/image-page/image-page.d.ts +38 -0
- package/dist/types/component/file-preview-item/file-preview-image-group/thumbnail-panel/thumbnail-panel.d.ts +28 -0
- package/dist/types/component/file-preview-item/file-preview-img/file-preview-img.d.ts +19 -0
- package/dist/types/component/file-preview-item/file-preview-json/file-preview-json.d.ts +18 -0
- package/dist/types/component/file-preview-item/file-preview-md/file-preview-md.d.ts +20 -0
- package/dist/types/component/file-preview-item/file-preview-text/file-preview-text.d.ts +18 -0
- package/dist/types/component/file-preview-item/file-preview-unknown/file-preview-unkown.d.ts +17 -0
- package/dist/types/component/file-preview-item/file-preview-xml/file-preview-xml.d.ts +18 -0
- package/dist/types/component/file-preview-shell/file-preview-shell.d.ts +24 -0
- package/dist/types/const/action-type.d.ts +6 -0
- package/dist/types/const/constant.d.ts +6 -0
- package/dist/types/const/file-type.d.ts +34 -0
- package/dist/types/controller/file-preview-image-controller.d.ts +18 -0
- package/dist/types/controller/file-preview-image-group-controller.d.ts +16 -0
- package/dist/types/controller/file-preview-item-controller.d.ts +37 -0
- package/dist/types/controller/file-preview-item-dispatcher.d.ts +31 -0
- package/dist/types/controller/file-preview-md-controller.d.ts +10 -0
- package/dist/types/controller/file-preview-shell-controller.d.ts +77 -0
- package/dist/types/controller/file-preview-text-controller.d.ts +11 -0
- package/dist/types/controller/index.d.ts +4 -0
- package/dist/types/hook/index.d.ts +1 -0
- package/dist/types/hook/use-teleport-with-delay.d.ts +8 -0
- package/dist/types/icon/index.d.ts +9 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/interface/i-file-preview-item-controller.d.ts +91 -0
- package/dist/types/interface/i-file-preview-shell-controller.d.ts +59 -0
- package/dist/types/interface/i-file-previewer-option.d.ts +94 -0
- package/dist/types/interface/index.d.ts +3 -0
- package/dist/types/util/index.d.ts +1 -0
- package/dist/types/util/util.d.ts +13 -0
- package/package.json +43 -0
package/dist/style.css
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
@charset "UTF-8";.file-preview-shell.dark{--color: #fff;--bg-color: #1e1e1e;--border-color: #3e3e42;--hover-bg-color: #3e3e42;--active-color: #fff;--active-bg-color: #0e639c;--header-bg-color: #252526;--track-bg-color: rgb(0 0 0 / 0%);--thumb-bg-color: rgb(255 255 255 / 9%);--thumb-hover-bg-color: rgb(255 255 255 / 13%)}.file-preview-shell.light{--color: #24292e;--bg-color: #f9f9f9;--border-color: #d1d5da;--hover-bg-color: #e0e1e2;--active-color: #fff;--active-bg-color: #0e639c;--header-bg-color: #fafbfc;--track-bg-color: transparent;--thumb-bg-color: #e0e1e2;--thumb-hover-bg-color: #e0e1e2}.file-preview-shell{position:relative;display:flex;flex-direction:column;width:100%;height:100%;color:var(--color);background-color:var(--bg-color)}.file-preview-shell .preview-header{display:flex;align-items:center;justify-content:space-between;padding:16px;background-color:var(--header-bg-color);border-bottom:1px solid var(--border-color)}.file-preview-shell .preview-header .file-info{display:flex;gap:8px;align-items:center}.file-preview-shell .preview-header .file-info .file-name{max-width:300px;margin:0;overflow:hidden;font-size:16px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.file-preview-shell .preview-header .file-info .file-type{padding:8px 16px;font-size:12px;font-weight:500;color:var(--active-color);background-color:var(--active-bg-color);border-radius:4px}.file-preview-shell .preview-header .preview-controls{display:flex;gap:8px;align-items:center}.file-preview-shell .preview-header .preview-controls .control-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--color);cursor:pointer;background-color:transparent;border:1px solid var(--border-color);border-radius:4px;transition:all .2s ease}.file-preview-shell .preview-header .preview-controls .control-btn:hover{background-color:var(--hover-bg-color)}.file-preview-shell .preview-header .preview-controls .control-btn .icon{font-size:16px}.file-preview-shell .preview-header .preview-controls .custom-controls{display:flex;gap:8px;align-items:center}.file-preview-shell .preview-header .preview-controls .zoom-controls{display:flex;gap:4px;align-items:center}.file-preview-shell .preview-header .preview-controls .zoom-controls .zoom-level{min-width:50px;font-size:12px;text-align:center}.file-preview-shell .preview-header .preview-controls .download-btn{position:relative}.file-preview-shell .download-options{position:absolute;top:60px;right:16px;z-index:1000;background-color:var(--header-bg-color);border:1px solid var(--border-color);border-radius:4px;box-shadow:0 2px 8px #0000004d}.file-preview-shell .download-options .download-option{display:block;width:100%;padding:8px 16px;color:var(--color);text-align:left;cursor:pointer;background-color:transparent;border:none;transition:background-color .2s ease}.file-preview-shell .download-options .download-option:hover{background-color:var(--hover-bg-color)}.file-preview-shell .download-options .download-option:first-child{border-radius:4px 4px 0 0}.file-preview-shell .download-options .download-option:last-child{border-radius:0 0 4px 4px}.file-preview-shell .preview-content{position:relative;flex:1;padding:12px;overflow:hidden}.file-preview-shell .preview-content::-webkit-scrollbar{width:6px;height:6px}.file-preview-shell .preview-content::-webkit-scrollbar-track{background:var(--track-bg-color)}.file-preview-shell .preview-content::-webkit-scrollbar-thumb{background:var(--thumb-bg-color);border-radius:2px}.file-preview-shell .preview-content::-webkit-scrollbar-thumb:hover{background:var(--thumb-hover-bg-color)}.file-preview-shell .preview-content .preview-inner{display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:auto;transition:transform .3s ease;transform-origin:center center}/*!
|
|
2
|
+
* Vditor v3.11.2 - A markdown editor written in TypeScript.
|
|
3
|
+
*
|
|
4
|
+
* MIT License
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) 2018-present B3log 开源, b3log.org
|
|
7
|
+
*
|
|
8
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
9
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
10
|
+
* in the Software without restriction, including without limitation the rights
|
|
11
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
12
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
13
|
+
* furnished to do so, subject to the following conditions:
|
|
14
|
+
*
|
|
15
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
16
|
+
* copies or substantial portions of the Software.
|
|
17
|
+
*
|
|
18
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
19
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
20
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
21
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
22
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
23
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
24
|
+
* SOFTWARE.
|
|
25
|
+
*
|
|
26
|
+
*//*!
|
|
27
|
+
* Vditor v3.11.2 - A markdown editor written in TypeScript.
|
|
28
|
+
*
|
|
29
|
+
* MIT License
|
|
30
|
+
*
|
|
31
|
+
* Copyright (c) 2018-present B3log 开源, b3log.org
|
|
32
|
+
*
|
|
33
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
34
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
35
|
+
* in the Software without restriction, including without limitation the rights
|
|
36
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
37
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
38
|
+
* furnished to do so, subject to the following conditions:
|
|
39
|
+
*
|
|
40
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
41
|
+
* copies or substantial portions of the Software.
|
|
42
|
+
*
|
|
43
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
44
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
45
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
46
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
47
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
48
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
49
|
+
* SOFTWARE.
|
|
50
|
+
*
|
|
51
|
+
*/.vditor{--border-color: #d1d5da;--second-color: rgba(88, 96, 105, .36);--panel-background-color: #fff;--panel-shadow: 0 1px 2px rgba(0, 0, 0, .2);--toolbar-background-color: #f6f8fa;--toolbar-icon-color: #586069;--toolbar-icon-hover-color: #4285f4;--toolbar-height: 35px;--toolbar-divider-margin-top: 8px;--textarea-background-color: #fafbfc;--textarea-text-color: #24292e;--resize-icon-color: var(--toolbar-icon-color);--resize-background-color: var(--toolbar-background-color);--resize-hover-icon-color: var(--panel-background-color);--resize-hover-background-color: var(--toolbar-icon-hover-color);--count-background-color: rgba(27, 31, 35, .05);--heading-border-color: #eaecef;--blockquote-color: #6a737d;--ir-heading-color: #660e7a;--ir-title-color: #808080;--ir-bi-color: #0033b3;--ir-link-color: #008000;--ir-bracket-color: #0000ff;--ir-paren-color: #008000}.vditor--dark{--border-color: #141414;--second-color: rgba(185, 185, 185, .36);--panel-background-color: #24292e;--panel-shadow: 0 1px 2px rgba(255, 255, 255, .2);--toolbar-background-color: #1d2125;--toolbar-icon-color: #b9b9b9;--toolbar-icon-hover-color: #fff;--textarea-background-color: #2f363d;--textarea-text-color: #d1d5da;--resize-icon-color: var(--border-color);--resize-background-color: var(--second-color);--resize-hover-icon-color: var(--toolbar-icon-hover-color);--resize-hover-background-color: rgba(185, 185, 185, .86);--count-background-color: rgba(66, 133, 244, .36);--heading-border-color: var(--textarea-text-color);--blockquote-color: var(--toolbar-icon-color);--ir-heading-color: #9876aa;--ir-title-color: #808080;--ir-bi-color: #cc7832;--ir-link-color: #ffc66d;--ir-bracket-color: #287bde;--ir-paren-color: #6a8759}@keyframes tooltip-appear{0%{opacity:0}to{opacity:1}}.vditor-tooltipped{position:relative;cursor:pointer}.vditor-tooltipped:after{position:absolute;z-index:1000000;display:none;padding:5px 8px;font-size:11px;font-weight:400;-webkit-font-smoothing:subpixel-antialiased;color:#fff;text-align:center;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:#3b3e43;border-radius:3px;line-height:16px;opacity:0}.vditor-tooltipped:before{position:absolute;z-index:1000001;display:none;width:0;height:0;color:#3b3e43;pointer-events:none;content:"";border:5px solid transparent;opacity:0}.vditor-tooltipped--hover:before,.vditor-tooltipped--hover:after,.vditor-tooltipped:hover:before,.vditor-tooltipped:hover:after,.vditor-tooltipped:active:before,.vditor-tooltipped:active:after,.vditor-tooltipped:focus:before,.vditor-tooltipped:focus:after{display:inline-block;text-decoration:none;animation-name:tooltip-appear;animation-duration:.15s;animation-fill-mode:forwards;animation-timing-function:ease-in}.vditor-tooltipped__s:after,.vditor-tooltipped__se:after,.vditor-tooltipped__sw:after{top:100%;right:50%;margin-top:5px}.vditor-tooltipped__s:before,.vditor-tooltipped__se:before,.vditor-tooltipped__sw:before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:#3b3e43}.vditor-tooltipped__se:after{right:auto;left:50%;margin-left:-15px}.vditor-tooltipped__sw:after{margin-right:-15px}.vditor-tooltipped__n:after,.vditor-tooltipped__ne:after,.vditor-tooltipped__nw:after{right:50%;bottom:100%;margin-bottom:5px}.vditor-tooltipped__n:before,.vditor-tooltipped__ne:before,.vditor-tooltipped__nw:before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:#3b3e43}.vditor-tooltipped__ne:after{right:auto;left:50%;margin-left:-15px}.vditor-tooltipped__nw:after{margin-right:-15px}.vditor-tooltipped__s:after,.vditor-tooltipped__n:after{transform:translate(50%)}.vditor-tooltipped__w:after{right:100%;bottom:50%;margin-right:5px;transform:translateY(50%)}.vditor-tooltipped__w:before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:#3b3e43}.vditor-tooltipped__e:after{bottom:50%;left:100%;margin-left:5px;transform:translateY(50%)}.vditor-tooltipped__e:before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:#3b3e43}@media screen and (max-width: 520px){.vditor-tooltipped:before,.vditor-tooltipped:after{content:none}}@keyframes scale-in{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.vditor-panel{background-color:var(--panel-background-color);position:absolute;box-shadow:var(--panel-shadow);border-radius:3px;padding:5px;z-index:3;font-size:14px;display:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;max-width:320px;min-width:80px;animation-duration:.15s;animation-name:scale-in;animation-timing-function:cubic-bezier(.2,0,.13,1.5);color:var(--toolbar-icon-color)}.vditor-panel--none{padding:0;animation:none;min-width:auto;max-width:none;white-space:nowrap;opacity:.86}.vditor-panel--arrow:before{position:absolute;width:0;height:0;pointer-events:none;content:" ";border:7px solid transparent;top:-14px;left:5px;border-bottom-color:var(--panel-background-color)}.vditor-panel--left{right:0}.vditor-panel--left.vditor-panel--arrow:before{right:5px;left:auto}.vditor-input{border:0;padding:3px 5px;background-color:var(--panel-background-color);font-size:12px;color:var(--textarea-text-color)}.vditor-input:focus{background-color:var(--toolbar-background-color);outline:none}.vditor-icon{color:var(--toolbar-icon-color);cursor:pointer;float:left;padding:4px 5px;height:21px;width:23px;background-color:transparent;border:0;box-sizing:border-box}.vditor-icon:hover,.vditor-icon--current{color:var(--toolbar-icon-hover-color);background-color:transparent}.vditor-icon:focus{outline:none}.vditor-icon svg{height:13px!important;width:13px!important;float:left;fill:currentColor;pointer-events:none}.vditor-toolbar{background-color:var(--toolbar-background-color);border-bottom:1px solid var(--border-color);padding:0 5px;line-height:1}.vditor-toolbar--pin{position:sticky;top:0;z-index:1}.vditor-toolbar--hide{transition:all .15s ease-in-out;height:5px;overflow:hidden}.vditor-toolbar--hide:hover{background-color:var(--toolbar-background-color);height:auto;overflow:visible}.vditor-toolbar__item{float:left;position:relative}.vditor-toolbar__item .vditor-tooltipped{color:var(--toolbar-icon-color);border:0;padding:10px 5px;background-color:transparent;height:var(--toolbar-height);width:25px;box-sizing:border-box;font-size:0}.vditor-toolbar__item .vditor-tooltipped:focus{outline:none}.vditor-toolbar__item .vditor-tooltipped:focus{cursor:pointer;color:var(--toolbar-icon-hover-color)}.vditor-toolbar__item svg{fill:currentColor;display:inline-block;stroke-width:0;stroke:currentColor;width:15px;height:15px}.vditor-toolbar__item input{position:absolute;width:25px;height:var(--toolbar-height);top:0;left:0;cursor:pointer;opacity:.001;overflow:hidden}.vditor-toolbar__divider{float:left;height:calc(var(--toolbar-height) - (var(--toolbar-divider-margin-top) * 2));border-left:1px solid var(--second-color);margin:var(--toolbar-divider-margin-top) 8px}.vditor-toolbar__br{width:100%;padding:0!important;height:0!important}.vditor-menu--current{color:var(--toolbar-icon-hover-color)!important}.vditor-menu--disabled{color:var(--second-color)!important;cursor:not-allowed!important}.vditor-emojis{display:inline-block;overflow:auto}.vditor-emojis::-webkit-scrollbar{display:none}.vditor-emojis__tip{flex:1;min-width:1px;width:200px;margin-right:10px;color:var(--toolbar-icon-color);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vditor-emojis__tail{margin-top:5px;font-size:12px;color:var(--toolbar-icon-color);display:flex}.vditor-emojis__tail a{text-decoration:none;color:var(--toolbar-icon-color)}.vditor-emojis__tail a:hover{color:var(--toolbar-icon-hover-color)}.vditor-emojis button{cursor:pointer;border-radius:3px;float:left;height:30px;width:30px;text-align:center;line-height:26px;padding:3px;box-sizing:border-box;font-size:16px;transition:all .15s ease-in-out;border:0;margin:0;background-color:transparent;overflow:hidden}.vditor-emojis button:focus{outline:none}.vditor-emojis button:hover .vditor-emojis__icon{display:inline-block;transform:scale(1.2)}.vditor-emojis img{height:20px;width:20px;float:left;margin:3px 0 0 3px}@media screen and (max-width: 520px){.vditor-toolbar__item{padding:0 12px}.vditor-panel--left.vditor-panel--arrow:before{right:17px}}@media (hover: hover) and (pointer: fine){.vditor-toolbar__item .vditor-tooltipped:hover{color:var(--toolbar-icon-hover-color)}}@keyframes slideInDown{0%{transform:translate3d(0,-100%,0);visibility:visible}to{transform:translateZ(0)}}.vditor{display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:3px;box-sizing:border-box;font-family:Helvetica Neue,Luxi Sans,DejaVu Sans,Hiragino Sans GB,Microsoft Yahei,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",Segoe UI Symbol,"Android Emoji",EmojiSymbols}.vditor--fullscreen{position:fixed;top:0;width:100%!important;left:0;height:100vh!important;z-index:90;border-radius:0}.vditor-content{display:flex;min-height:60px;flex:1;min-width:1px;position:relative}.vditor-preview{flex:1;min-width:1px;overflow:auto;margin-left:-1px;border-left:1px solid var(--border-color);box-sizing:border-box;border-radius:0 0 3px;background-color:var(--textarea-background-color)}.vditor-preview::-webkit-scrollbar{display:none}.vditor-preview__action{text-align:center;padding:10px;background-color:var(--toolbar-background-color)}.vditor-preview__action button{background-color:var(--toolbar-background-color);color:var(--toolbar-icon-color);line-height:20px;border:0;margin:0 10px;cursor:pointer;padding:0 7px;font-size:12px}.vditor-preview__action button.vditor-preview__action--current,.vditor-preview__action button:hover{color:var(--toolbar-icon-hover-color);background-color:var(--toolbar-background-color)}.vditor-preview__action button:focus{outline:none}.vditor-preview__action button svg{fill:currentColor;height:15px;width:15px;vertical-align:middle}.vditor-preview>.vditor-reset{padding:10px;margin:0 auto}.vditor-preview img:not(.emoji){cursor:pointer}.vditor-devtools{display:none;background-color:var(--textarea-background-color);overflow:auto;flex:1;min-width:1px;box-shadow:inset 1px 0 var(--border-color);box-sizing:border-box;border-radius:0 0 3px;padding:10px}.vditor-counter{padding:3px;color:var(--toolbar-icon-color);background-color:var(--count-background-color);border-radius:3px;font-size:12px;-webkit-user-select:none;-moz-user-select:none;user-select:none;float:right;margin:8px 3px 0 0}.vditor-counter--error{color:#d23f31;background-color:#d23f311a}.vditor-resize{padding:3px 0;cursor:row-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:absolute;width:100%}.vditor-resize--top{top:-3px}.vditor-resize--bottom{bottom:-3px}.vditor-resize>div{height:3px;background-color:var(--resize-background-color);transition:all .15s ease-in-out}.vditor-resize:hover>div,.vditor-resize--selected>div{background-color:var(--resize-hover-background-color)}.vditor-resize:hover svg,.vditor-resize--selected svg{color:var(--resize-hover-icon-color)}.vditor-resize svg{fill:currentColor;stroke-width:0;stroke:currentColor;width:13px;height:3px;display:block;margin:0 auto;color:var(--resize-icon-color)}.vditor-upload{position:absolute;height:3px;left:0;top:-2px;transition:all .15s ease-in-out;background-color:#4285f4}.vditor-tip{position:absolute;font-size:12px;top:10px;animation-duration:.15s;animation-fill-mode:both;left:50%;z-index:5}.vditor-tip--show{display:block;animation-name:slideInDown}.vditor-tip__content{text-align:left;display:inline-block;line-height:16px;padding:3px 10px;border-radius:3px;background:var(--toolbar-background-color);position:relative;margin-left:-50%;color:var(--toolbar-icon-color);max-width:100%;box-shadow:var(--panel-shadow)}.vditor-tip__content ul{margin:2px 0;padding:0 0 0 18px}.vditor-tip__content a{color:#4285f4}.vditor-tip__close{position:absolute;color:var(--toolbar-icon-color);top:-7px;right:-15px;font-weight:700;cursor:pointer}.vditor-tip__close:hover{color:var(--toolbar-icon-hover-color)}.vditor-img{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;z-index:100}.vditor-img__bar{border-bottom:1px solid var(--border-color);background-color:var(--toolbar-background-color);text-align:center;height:36px;box-sizing:border-box;display:flex;align-items:center;justify-content:center}.vditor-img__btn{display:flex;align-items:center;cursor:pointer;margin-left:24px;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--toolbar-icon-color)}.vditor-img__btn:hover{color:var(--toolbar-icon-hover-color)}.vditor-img__btn svg{height:14px;width:14px;margin-right:8px;fill:currentColor}.vditor-img__img{flex:1;background-color:var(--textarea-background-color);overflow:auto;cursor:zoom-out}.vditor-img__img img{max-width:none}.vditor-hint{background-color:var(--panel-background-color);position:absolute;box-shadow:var(--panel-shadow);border-radius:3px;padding:5px 0;z-index:4;line-height:20px;list-style:none;font-size:12px;margin:0;max-width:250px;min-width:80px;display:none}.vditor-hint .vditor-hint{margin-top:-31px;left:100%;right:auto}.vditor-hint .vditor-hint.vditor-panel--left{right:100%;left:auto}.vditor-hint button{color:var(--toolbar-icon-color);display:block;padding:3px 10px;border:0;border-radius:0;line-height:20px;width:100%;box-sizing:border-box;text-align:left;margin:0;background-color:transparent;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vditor-hint button:focus{outline:none}.vditor-hint--current,.vditor-hint button:not(.vditor-menu--disabled):hover{background-color:var(--toolbar-background-color)!important;color:var(--toolbar-icon-hover-color)!important}.vditor-hint__emoji{font-size:16px;float:left;margin-right:3px}.vditor-hint img{height:20px;width:20px;float:left;margin-right:3px}.vditor-reset{color:#24292e;font-variant-ligatures:no-common-ligatures;font-family:Helvetica Neue,Luxi Sans,DejaVu Sans,Hiragino Sans GB,Microsoft Yahei,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",Segoe UI Symbol,"Android Emoji",EmojiSymbols;word-wrap:break-word;overflow:auto;line-height:1.5;font-size:16px;word-break:break-word}.vditor-reset--anchor{padding-left:20px}.vditor-reset--error{color:#d23f31;font-size:12px;display:block;line-height:16px}.vditor-reset ul ul ul{list-style-type:square}.vditor-reset ul ul{list-style-type:circle}.vditor-reset ul{list-style-type:disc}.vditor-reset ul,.vditor-reset ol{padding-left:2em;margin-top:0;margin-bottom:16px}.vditor-reset li+li{margin-top:.25em}.vditor-reset li p{margin-top:16px}.vditor-reset audio{max-width:100%}.vditor-reset audio:focus{outline:none}.vditor-reset video{max-height:90vh;max-width:100%}.vditor-reset img{max-width:100%}.vditor-reset img.emoji{cursor:auto;max-width:20px;vertical-align:sub}.vditor-reset h1,.vditor-reset h2,.vditor-reset h3,.vditor-reset h4,.vditor-reset h5,.vditor-reset h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.vditor-reset h1:hover .vditor-anchor svg,.vditor-reset h2:hover .vditor-anchor svg,.vditor-reset h3:hover .vditor-anchor svg,.vditor-reset h4:hover .vditor-anchor svg,.vditor-reset h5:hover .vditor-anchor svg,.vditor-reset h6:hover .vditor-anchor svg{visibility:visible}.vditor-reset h1{font-size:1.75em}.vditor-reset h2{font-size:1.55em}.vditor-reset h3{font-size:1.38em}.vditor-reset h4{font-size:1.25em}.vditor-reset h5{font-size:1.13em}.vditor-reset h6{font-size:1em}.vditor-reset hr{height:2px;padding:0;margin:24px 0;background-color:#eaecef;border:0}.vditor-reset p{margin-top:0;margin-bottom:16px}.vditor-reset blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #eaecef;margin:0 0 16px}.vditor-reset blockquote>:first-child{margin-top:0}.vditor-reset blockquote>:last-child{margin-bottom:0}.vditor-reset ins>iframe{border:0}.vditor-reset iframe{border:1px solid #d1d5da;max-width:100%;box-sizing:border-box}.vditor-reset iframe.iframe__video{min-width:80%;min-height:36vh}.vditor-reset table{border-collapse:collapse;empty-cells:show;margin-bottom:16px;overflow:auto;border-spacing:0;display:block;word-break:keep-all;width:100%}.vditor-reset table tr{background-color:#fafbfc;border-top:1px solid #c6cbd1}.vditor-reset table td,.vditor-reset table th{padding:6px 13px;border:1px solid #dfe2e5;word-break:normal;white-space:nowrap}.vditor-reset table td:first-child:after,.vditor-reset table th:first-child:after{content:"";display:inline-block;vertical-align:top;min-height:24px}.vditor-reset table th{font-weight:600}.vditor-reset table tbody tr:nth-child(2n){background-color:#fff}.vditor-reset code:not(.hljs):not(.highlight-chroma){padding:.2em .4em;margin:0;font-size:85%;border-radius:3px;font-family:mononoki,Consolas,Liberation Mono,Menlo,Courier,monospace,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",Segoe UI Symbol,"Android Emoji",EmojiSymbols;word-break:break-word;background-size:20px 20px;white-space:pre-wrap}.vditor-reset pre{margin:1em 0}.vditor-reset pre>code{margin:0;font-size:85%;padding:.5em;border-radius:5px;display:block;overflow:auto;white-space:pre;font-family:mononoki,Consolas,Liberation Mono,Menlo,Courier,monospace,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",Segoe UI Symbol,"Android Emoji",EmojiSymbols;background-size:20px 20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AgMAAABHkjHhAAAACVBMVEWAgIBaWlo+Pj7rTFvWAAAAA3RSTlMHCAw+VhR4AAAA+klEQVQoz4WSMW7EQAhFPxKWNh2FCx+HkaZI6RRb5DYbyVfIJXLKDCFoMbaTKSw/8ZnPAPjaH2xgZcUNUDADD7D9LtDBCLZ45fbkvo/30K8yeI64pPwl6znd/3n/Oe93P3ho9qeh72btTFzqkz0rsJle8Zr81OLEwZ1dv/713uWqvu2pl+k0fy7MWtj9r/tN5q/02z89qa/L4Dc2LvM93kezPfXlME/O86EbY/V9GB9ePX8G1/6W+/9h1dq/HGfTfzT3j/xNo7522Bfnqe5jO/fvhVthlfk434v3iO9zG/UOphyPeinPl1J8Gtaa7xPTa/Dk+RIs4deMvwGvcGsmsCvJ0AAAAABJRU5ErkJggg==);word-break:initial;word-wrap:normal}.vditor-reset pre:hover div.vditor-copy{display:block}.vditor-reset .language-math,.vditor-reset .language-echarts,.vditor-reset .language-mindmap,.vditor-reset .language-plantuml,.vditor-reset .language-mermaid,.vditor-reset .language-smiles,.vditor-reset .language-markmap,.vditor-reset .language-abc,.vditor-reset .language-flowchart,.vditor-reset .language-graphviz{margin-bottom:16px}.vditor-reset .language-math mjx-container:focus{outline:none;cursor:context-menu}.vditor-reset .language-math .katex-display>.katex>.katex-html>.tag{display:inline-block;font-size:1.21rem;right:2px}.vditor-reset .language-echarts,.vditor-reset .language-mindmap{overflow:hidden;height:420px}.vditor-reset .language-mermaid,.vditor-reset .language-markmap,.vditor-reset .language-flowchart,.vditor-reset .language-graphviz{text-align:center}.vditor-reset .language-graphviz parsererror{overflow:auto}.vditor-reset kbd{display:inline-block;padding:3px 5px;font:11px Consolas,Liberation Mono,Menlo,Courier,monospace;line-height:10px;color:#24292e;vertical-align:middle;background-color:#fafbfc;border:solid 1px #d1d5da;border-radius:3px;box-shadow:inset 0 -1px #d1d5da}.vditor-reset summary{cursor:pointer}.vditor-reset summary:focus{outline:none}.vditor-reset svg{height:auto;width:auto;stroke-width:initial}.vditor-reset p:last-child,.vditor-reset blockquote:last-child,.vditor-reset pre:last-child,.vditor-reset ul:last-child,.vditor-reset ol:last-child,.vditor-reset hr:last-child{margin-bottom:0}.vditor-comment{border-bottom:2px solid #f8e6ab}.vditor-comment--focus,.vditor-comment--hover{background-color:#faf1d1;border-bottom:2px solid #ffc60a}.vditor-comment--focus .vditor-comment,.vditor-comment--hover .vditor-comment{border-bottom:2px solid #ffc60a}.vditor-task{list-style:none!important;word-break:break-all}.vditor-task input{margin:0 .2em .25em -1.6em;font-size:12px;vertical-align:middle}.vditor-copy{position:relative;display:none;z-index:1}.vditor-copy textarea{position:absolute;left:-100000px;height:10px}.vditor-copy span{cursor:pointer;position:absolute;right:15px;top:.5em}.vditor-copy svg{color:#586069;height:14px;width:14px!important;display:block;fill:currentColor}.vditor-linenumber{padding-left:4em!important;position:relative}.vditor-linenumber__rows{position:absolute;pointer-events:none;top:1em;left:0;width:3em;-webkit-user-select:none;-moz-user-select:none;user-select:none;counter-reset:linenumber}.vditor-linenumber__rows>span{pointer-events:none;display:block}.vditor-linenumber__rows>span:before{counter-increment:linenumber;content:counter(linenumber);color:#9e969661;display:block;padding-right:1em;text-align:right}.vditor-speech{position:absolute;display:none;background-color:#f6f8fa;border:1px solid #d1d5da;border-radius:3px;padding:3px;cursor:pointer;color:#586069}.vditor-speech:hover,.vditor-speech--current{color:#4285f4}.vditor-speech svg{height:14px;width:14px;fill:currentColor;display:block;stroke-width:0;stroke:currentColor}.vditor-anchor{margin-left:5px}.vditor-anchor--left{float:left;padding-right:4px;margin-left:-20px}.vditor-anchor svg{visibility:hidden}.vditor-anchor:hover svg{visibility:visible}.vditor-anchor:focus{outline:none}.vditor-linkcard{margin:31px auto 16px;transition:all .15s ease-in-out;cursor:pointer;max-width:768px;padding:0 10px}.vditor-linkcard a{border-radius:3px;background-color:#f6f8fa;overflow:hidden;max-height:250px;display:flex;text-decoration:none;flex-wrap:wrap-reverse;box-shadow:0 1px 2px #0003}.vditor-linkcard a:hover{box-shadow:0 0 3px #00000021,0 3px 6px #00000042;text-decoration:none}.vditor-linkcard a:visited .vditor-linkcard__abstract{color:#5860695c}.vditor-linkcard__info{padding:10px;min-width:200px;box-sizing:border-box;flex:1}.vditor-linkcard__title{font-size:14px;font-weight:400;color:#24292e;display:flex;align-items:center}.vditor-linkcard__title img{cursor:pointer;height:20px;width:20px;border-radius:3px;flex-shrink:0;margin-right:5px}.vditor-linkcard__abstract{word-wrap:break-word;word-break:break-all;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical;display:-webkit-box;font-size:13px;color:#586069;margin:5px 0}.vditor-linkcard__site{font-size:12px;color:#4285f4}.vditor-linkcard__image{background-size:cover;background-repeat:no-repeat;background-position:center center;max-width:250px;min-width:126px;cursor:pointer;background-color:#5860695c}.vditor-footnotes__goto-ref{text-decoration:none}.vditor-toc{margin-bottom:16px;-webkit-user-select:text;-moz-user-select:text;user-select:text;color:#4285f4}.vditor-toc .vditor-outline__action{display:none}.vditor-toc ul{list-style:none!important;padding-left:1em}.vditor-toc>ul{padding-left:0}.vditor-toc span{cursor:pointer}.vditor-toc li>span>svg{width:0;height:0}.vditor-outline{width:250px;border-right:1px solid var(--border-color);background-color:var(--panel-background-color);display:none;overflow:auto}.vditor-outline--right{border-right:0;border-left:1px solid var(--border-color)}.vditor-outline::-webkit-scrollbar{display:none}.vditor-outline ul{list-style:none!important;padding-left:1em;margin:0}.vditor-outline__content>ul{padding-left:0}.vditor-outline li>span{display:flex;align-items:center;padding:5px 10px;cursor:pointer;color:var(--textarea-text-color)}.vditor-outline li>span>svg{height:10px;width:10px;flex-shrink:0}.vditor-outline li>span:hover{color:var(--toolbar-icon-hover-color)}.vditor-outline li>span>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vditor-outline__title{border-bottom:1px dashed var(--border-color);padding:5px 10px;color:var(--toolbar-icon-color);font-size:12px}.vditor-outline__action{transition:all .15s ease-in-out;fill:currentColor;margin-right:5px;flex-shrink:0}.vditor-outline__action--close{transform:rotate(-90deg)}.vditor-wysiwyg{box-sizing:border-box;flex:1;position:relative;width:100%;min-width:1px}.vditor-wysiwyg pre.vditor-reset{background-color:var(--panel-background-color);margin:0;white-space:pre-wrap;height:100%;box-sizing:border-box}.vditor-wysiwyg pre.vditor-reset[contenteditable=false]{opacity:.3;cursor:not-allowed}.vditor-wysiwyg pre.vditor-reset:empty:before{content:attr(placeholder);color:var(--second-color)}.vditor-wysiwyg pre.vditor-reset:focus{outline:none;background-color:var(--textarea-background-color)}.vditor-wysiwyg pre.vditor-reset:after{content:"";height:var(--editor-bottom);display:block}.vditor-wysiwyg blockquote:empty:before,.vditor-wysiwyg pre>code:empty:before,.vditor-wysiwyg p:empty:before,.vditor-wysiwyg h1:empty:after,.vditor-wysiwyg h2:empty:after,.vditor-wysiwyg h3:empty:after,.vditor-wysiwyg h4:empty:after,.vditor-wysiwyg h5:empty:after,.vditor-wysiwyg h6:empty:after{content:" "}.vditor-wysiwyg code[data-marker="`"]{padding-left:0!important;padding-right:0!important}.vditor-wysiwyg__block pre:first-child{margin-bottom:-1em}.vditor-wysiwyg__block pre:first-child code{color:var(--textarea-text-color);height:auto;text-align:left}.vditor-wysiwyg__block pre:last-child{margin-bottom:1em}.vditor-wysiwyg__preview{cursor:pointer;white-space:initial;min-height:27px}.vditor-wysiwyg>.vditor-reset>h1:before,.vditor-wysiwyg>.vditor-reset>h2:before,.vditor-wysiwyg>.vditor-reset>h3:before,.vditor-wysiwyg>.vditor-reset>h4:before,.vditor-wysiwyg>.vditor-reset>h5:before,.vditor-wysiwyg>.vditor-reset>h6:before,.vditor-wysiwyg div.vditor-wysiwyg__block:before,.vditor-wysiwyg div[data-type=link-ref-defs-block]:before,.vditor-wysiwyg div[data-type=footnotes-block]:before,.vditor-wysiwyg .vditor-toc:before{float:left;padding-right:4px;margin-left:-29px;content:"H1";font-size:.85rem;font-weight:400;color:var(--second-color)}.vditor-wysiwyg>.vditor-reset>h2:before{content:"H2"}.vditor-wysiwyg>.vditor-reset>h3:before{content:"H3"}.vditor-wysiwyg>.vditor-reset>h4:before{content:"H4"}.vditor-wysiwyg>.vditor-reset>h5:before{content:"H5"}.vditor-wysiwyg>.vditor-reset>h6:before{content:"H6"}.vditor-wysiwyg div[data-type=link-ref-defs-block]:before{content:'"A"'}.vditor-wysiwyg div[data-type=footnotes-block]:before{content:"^F"}.vditor-wysiwyg div.vditor-wysiwyg__block:before{content:"</>"}.vditor-wysiwyg div.vditor-wysiwyg__block[data-type=yaml-front-matter]:before{content:"F"}.vditor-wysiwyg div.vditor-wysiwyg__block[data-type=math-block]:before{content:"$$"}.vditor-wysiwyg .vditor-toc:before{content:"ToC"}.vditor-wysiwyg hr{display:inline-block;margin:12px 0;width:100%}.vditor-wysiwyg details{white-space:initial}.vditor-wysiwyg a{cursor:pointer}.vditor-wysiwyg span[data-type=backslash]>span{display:none;color:var(--second-color)}.vditor-wysiwyg span[data-type=link-ref],.vditor-wysiwyg sup[data-type=footnotes-ref]{color:#4285f4}.vditor-wysiwyg span[data-type=toc-h]{color:#4285f4;text-decoration:underline}.vditor-wysiwyg div[data-type=footnotes-block]{border-top:2px solid var(--heading-border-color);padding-top:24px;margin-top:24px}.vditor-wysiwyg div[data-type=link-ref-defs-block]{color:var(--blockquote-color)}@media screen and (max-width: 520px){.vditor-wysiwyg h1:before,.vditor-wysiwyg h2:before,.vditor-wysiwyg h3:before,.vditor-wysiwyg h4:before,.vditor-wysiwyg h5:before,.vditor-wysiwyg h6:before,.vditor-wysiwyg div.vditor-wysiwyg__block:before,.vditor-wysiwyg div[data-type=link-ref-defs-block]:before,.vditor-wysiwyg div[data-type=footnotes-block]:before,.vditor-wysiwyg .vditor-toc:before{content:none}}.vditor-ir{box-sizing:border-box;flex:1;min-width:1px;position:relative;width:100%}.vditor-ir__node[data-type=code-block]:before,.vditor-ir__node[data-type=code-block]:after,.vditor-ir__node[data-type=yaml-front-matter]:before,.vditor-ir__node[data-type=yaml-front-matter]:after,.vditor-ir__node[data-type=math-block]:before,.vditor-ir__node[data-type=math-block]:after{content:" ";color:var(--second-color)}.vditor-ir__node:not(.vditor-ir__node--expand) .vditor-ir__marker{padding:0!important}.vditor-ir__node:not(.vditor-ir__node--expand)[data-type=a]{cursor:pointer}.vditor-ir__node[data-type=link-ref],.vditor-ir__node[data-type=footnotes-ref]{color:#4285f4}.vditor-ir__node[data-type=html-block]{margin-bottom:1em}.vditor-ir__node .vditor-ir__marker{width:0;overflow:hidden;display:inline-block;height:0;transition:all .15s ease-in-out}.vditor-ir__node--hidden .vditor-ir__marker{visibility:hidden}.vditor-ir__node--expand .vditor-ir__marker{color:var(--second-color);display:inline;height:auto;width:auto}.vditor-ir__node--expand .vditor-ir__marker--hide{display:none}.vditor-ir__node--expand .vditor-ir__marker--heading{color:var(--ir-heading-color)}.vditor-ir__node--expand .vditor-ir__marker--bi{color:var(--ir-bi-color)}.vditor-ir__node--expand .vditor-ir__marker--link{color:var(--ir-link-color)}.vditor-ir__node--expand .vditor-ir__marker--title{color:var(--ir-title-color)}.vditor-ir__node--expand .vditor-ir__marker--bracket{color:var(--ir-bracket-color);text-decoration:underline}.vditor-ir__node--expand .vditor-ir__marker--paren{color:var(--ir-paren-color)}.vditor-ir__node--expand .vditor-ir__marker--info{color:var(--ir-heading-color)}.vditor-ir__node--expand .vditor-ir__marker--pre code{color:var(--textarea-text-color);height:auto;text-align:left}.vditor-ir__node--expand[data-type=code-block]:before,.vditor-ir__node--expand[data-type=code-block]:after{content:"```"}.vditor-ir__node--expand[data-type=yaml-front-matter]:before,.vditor-ir__node--expand[data-type=yaml-front-matter]:after{content:"---"}.vditor-ir__node--expand[data-type=math-block]:before,.vditor-ir__node--expand[data-type=math-block]:after{content:"$$"}.vditor-ir__node span[data-type=code-block-open-marker],.vditor-ir__node span[data-type=code-block-close-marker],.vditor-ir__node span[data-type=yaml-front-matter-open-marker],.vditor-ir__node span[data-type=yaml-front-matter-close-marker],.vditor-ir__node span[data-type=math-block-open-marker],.vditor-ir__node span[data-type=math-block-close-marker]{display:none}.vditor-ir__preview{cursor:pointer;white-space:initial;min-height:27px}.vditor-ir__link{color:var(--ir-bracket-color);text-decoration:underline}.vditor-ir pre.vditor-reset{background-color:var(--panel-background-color);margin:0;white-space:pre-wrap;height:100%;box-sizing:border-box}.vditor-ir pre.vditor-reset[contenteditable=false]{opacity:.3;cursor:not-allowed}.vditor-ir pre.vditor-reset:empty:before{content:attr(placeholder);color:var(--second-color)}.vditor-ir pre.vditor-reset:focus{outline:none;background-color:var(--textarea-background-color)}.vditor-ir pre.vditor-reset:after{content:"";height:var(--editor-bottom);display:block}.vditor-ir pre.vditor-reset pre{margin:0}.vditor-ir hr{display:inline-block;margin:12px 0;width:100%}.vditor-ir blockquote:empty:before,.vditor-ir pre>code:empty:before,.vditor-ir p:empty:before,.vditor-ir h1:empty:after,.vditor-ir h2:empty:after,.vditor-ir h3:empty:after,.vditor-ir h4:empty:after,.vditor-ir h5:empty:after,.vditor-ir h6:empty:after{content:" "}.vditor-ir .vditor-reset>h1:before,.vditor-ir .vditor-reset>h2:before,.vditor-ir .vditor-reset>h3:before,.vditor-ir .vditor-reset>h4:before,.vditor-ir .vditor-reset>h5:before,.vditor-ir .vditor-reset>h6:before,.vditor-ir div[data-type=link-ref-defs-block]:before,.vditor-ir div[data-type=footnotes-block]:before,.vditor-ir .vditor-toc:before{float:left;padding-right:4px;margin-left:-29px;content:"H1";font-size:.85rem;font-weight:400;color:var(--second-color)}.vditor-ir .vditor-reset>h2:before{content:"H2"}.vditor-ir .vditor-reset>h3:before{content:"H3"}.vditor-ir .vditor-reset>h4:before{content:"H4"}.vditor-ir .vditor-reset>h5:before{content:"H5"}.vditor-ir .vditor-reset>h6:before{content:"H6"}.vditor-ir div[data-type=link-ref-defs-block]{color:var(--blockquote-color)}.vditor-ir div[data-type=link-ref-defs-block]:before{content:'"A"'}.vditor-ir div[data-type=footnotes-block]{border-top:2px solid var(--heading-border-color);padding-top:24px;margin-top:24px}.vditor-ir div[data-type=footnotes-block]:before{content:"^F"}.vditor-ir div[data-type=footnotes-block]>div[data-type=footnotes-def]>ul,.vditor-ir div[data-type=footnotes-block]>div[data-type=footnotes-def]>ol,.vditor-ir div[data-type=footnotes-block]>div[data-type=footnotes-def]>p,.vditor-ir div[data-type=footnotes-block]>div[data-type=footnotes-def]>blockquote,.vditor-ir div[data-type=footnotes-block]>div[data-type=footnotes-def]>pre,.vditor-ir div[data-type=footnotes-block]>div[data-type=footnotes-def]>table,.vditor-ir div[data-type=footnotes-block]>div[data-type=footnotes-def]>hr{margin-left:8px}.vditor-ir .vditor-toc:before{content:"ToC"}.vditor-ir .vditor-toc span[data-type=toc-h]{color:#4285f4;text-decoration:underline}@media screen and (max-width: 520px){.vditor-ir h1:before,.vditor-ir h2:before,.vditor-ir h3:before,.vditor-ir h4:before,.vditor-ir h5:before,.vditor-ir h6:before,.vditor-ir div[data-type=link-ref-defs-block]:before,.vditor-ir div[data-type=footnotes-block]:before,.vditor-ir .vditor-toc:before{content:none}}.vditor-sv{font-family:Helvetica Neue,Luxi Sans,DejaVu Sans,Hiragino Sans GB,Microsoft Yahei,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",Segoe UI Symbol,"Android Emoji",EmojiSymbols;margin:0 1px 0 0;overflow:auto;width:100%;flex:1;min-width:1px;border:0;resize:none;padding:10px 9px 10px 10px;box-sizing:border-box;background-color:var(--panel-background-color);outline:0 none;font-size:16px;line-height:22px;color:var(--textarea-text-color);border-radius:0 0 3px 3px;font-variant-ligatures:no-common-ligatures;white-space:pre-wrap;word-break:break-word;word-wrap:break-word}.vditor-sv[contenteditable=false]{opacity:.3;cursor:not-allowed}.vditor-sv:empty:before{content:attr(placeholder);color:var(--second-color)}.vditor-sv:focus{background-color:var(--textarea-background-color)}.vditor-sv:after{content:"";height:var(--editor-bottom);display:block}.vditor-sv span[data-type=newline]+span[data-type=text]:empty{display:inherit}.vditor-sv .sup{vertical-align:super;font-size:smaller}.vditor-sv .strong{font-weight:700}.vditor-sv .em{font-style:italic}.vditor-sv .s{text-decoration:line-through}.vditor-sv .mark:not(.vditor-sv__marker){background-color:#ff0;color:#000}.vditor-sv .h1{font-size:1.75em;line-height:44px}.vditor-sv .h2{font-size:1.55em;line-height:38px}.vditor-sv .h3{font-size:1.38em;line-height:27px}.vditor-sv .h4{font-size:1.25em;line-height:25px}.vditor-sv .h5{font-size:1.13em}.vditor-sv .h6{font-size:1em}.vditor-sv__marker{color:var(--second-color)}.vditor-sv__marker--heading{color:var(--ir-heading-color)}.vditor-sv__marker--bi{color:var(--ir-bi-color)}.vditor-sv__marker--link{color:var(--ir-link-color)}.vditor-sv__marker--title{color:var(--ir-title-color)}.vditor-sv__marker--bracket{color:var(--ir-bracket-color)}.vditor-sv__marker--paren{color:var(--ir-paren-color)}.vditor-sv__marker--info{color:var(--ir-heading-color)}.vditor-sv__marker--strong{font-weight:700}.file-preview-md{width:100%;height:100%}.file-preview-md .vditor-toolbar--hide{display:none}.file-preview-md .vditor-preview>.vditor-reset{color:var(--textarea-text-color)}.file-preview-md .vditor-preview>.vditor-reset code.hljs{border:1px solid var(--border-color)}.file-preview-md .vditor-preview>.vditor-reset table{color:#24292e}.file-preview-md .vditor-preview>.vditor-reset table::-webkit-scrollbar{width:6px;height:6px}.file-preview-md .vditor-preview>.vditor-reset table::-webkit-scrollbar-track{background:var(--track-bg-color)}.file-preview-md .vditor-preview>.vditor-reset table::-webkit-scrollbar-thumb{background:var(--thumb-bg-color);border-radius:2px}.file-preview-md .vditor-preview>.vditor-reset table::-webkit-scrollbar-thumb:hover{background:var(--thumb-hover-bg-color)}.file-preview-unkown{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.file-preview-unkown.light{--base: #fafafa;--mono-1: #383a42}.file-preview-unkown.dark{--base: #282c34;--mono-1: #abb2bf}.file-preview-unkown{color:var(--mono-1);background-color:var(--base)}.file-preview-text{width:100%;height:100%}.file-preview-text.light{--base: #fafafa;--mono-1: #383a42}.file-preview-text.dark{--base: #282c34;--mono-1: #abb2bf}.file-preview-text{color:var(--mono-1);background-color:var(--base)}.file-preview-json{width:100%;height:100%}.file-preview-json.light{--base: #fafafa;--mono-1: #383a42;--mono-2: #686b77;--mono-3: #a0a1a7;--hue-1: #0184bb;--hue-2: #4078f2;--hue-3: #a626a4;--hue-4: #50a14f;--hue-5: #e45649;--hue-5-2: #c91243;--hue-6: #986801;--hue-6-2: #c18401}.file-preview-json.dark{--base: #282c34;--mono-1: #abb2bf;--mono-2: #818896;--mono-3: #5c6370;--hue-1: #56b6c2;--hue-2: #61aeee;--hue-3: #c678dd;--hue-4: #98c379;--hue-5: #e06c75;--hue-5-2: #be5046;--hue-6: #d19a66;--hue-6-2: #e6c07b}.file-preview-json code.hljs{display:block;padding:1em;overflow-x:auto}.file-preview-json code.hljs{padding:3px 5px}.file-preview-json .hljs{color:var(--mono-1);background:var(--base)}.file-preview-json .hljs-comment,.file-preview-json .hljs-quote{font-style:italic;color:var(--mono-3)}.file-preview-json .hljs-doctag,.file-preview-json .hljs-keyword,.file-preview-json .hljs-formula{color:var(--hue-3)}.file-preview-json .hljs-section,.file-preview-json .hljs-name,.file-preview-json .hljs-selector-tag,.file-preview-json .hljs-deletion,.file-preview-json .hljs-subst{color:var(--hue-5)}.file-preview-json .hljs-literal{color:var(--hue-1)}.file-preview-json .hljs-string,.file-preview-json .hljs-regexp,.file-preview-json .hljs-addition,.file-preview-json .hljs-attribute,.file-preview-json .hljs-meta .hljs-string{color:var(--hue-4)}.file-preview-json .hljs-attr,.file-preview-json .hljs-variable,.file-preview-json .hljs-template-variable,.file-preview-json .hljs-type,.file-preview-json .hljs-selector-class,.file-preview-json .hljs-selector-attr,.file-preview-json .hljs-selector-pseudo,.file-preview-json .hljs-number{color:var(--hue-6)}.file-preview-json .hljs-symbol,.file-preview-json .hljs-bullet,.file-preview-json .hljs-link,.file-preview-json .hljs-meta,.file-preview-json .hljs-selector-id,.file-preview-json .hljs-title{color:var(--hue-2)}.file-preview-json .hljs-built_in,.file-preview-json .hljs-title.class_,.file-preview-json .hljs-class .hljs-title{color:var(--hue-6-2)}.file-preview-json .hljs-emphasis{font-style:italic}.file-preview-json .hljs-strong{font-weight:700}.file-preview-json .hljs-link{text-decoration:underline}.file-preview-xml{width:100%;height:100%}.file-preview-xml.light{--base: #fafafa;--mono-1: #383a42;--mono-2: #686b77;--mono-3: #a0a1a7;--hue-1: #0184bb;--hue-2: #4078f2;--hue-3: #a626a4;--hue-4: #50a14f;--hue-5: #e45649;--hue-5-2: #c91243;--hue-6: #986801;--hue-6-2: #c18401}.file-preview-xml.dark{--base: #282c34;--mono-1: #abb2bf;--mono-2: #818896;--mono-3: #5c6370;--hue-1: #56b6c2;--hue-2: #61aeee;--hue-3: #c678dd;--hue-4: #98c379;--hue-5: #e06c75;--hue-5-2: #be5046;--hue-6: #d19a66;--hue-6-2: #e6c07b}.file-preview-xml code.hljs{display:block;padding:1em;overflow-x:auto}.file-preview-xml code.hljs{padding:3px 5px}.file-preview-xml .hljs{color:var(--mono-1);background:var(--base)}.file-preview-xml .hljs-comment,.file-preview-xml .hljs-quote{font-style:italic;color:var(--mono-3)}.file-preview-xml .hljs-doctag,.file-preview-xml .hljs-keyword,.file-preview-xml .hljs-formula{color:var(--hue-3)}.file-preview-xml .hljs-section,.file-preview-xml .hljs-name,.file-preview-xml .hljs-selector-tag,.file-preview-xml .hljs-deletion,.file-preview-xml .hljs-subst{color:var(--hue-5)}.file-preview-xml .hljs-literal{color:var(--hue-1)}.file-preview-xml .hljs-string,.file-preview-xml .hljs-regexp,.file-preview-xml .hljs-addition,.file-preview-xml .hljs-attribute,.file-preview-xml .hljs-meta .hljs-string{color:var(--hue-4)}.file-preview-xml .hljs-attr,.file-preview-xml .hljs-variable,.file-preview-xml .hljs-template-variable,.file-preview-xml .hljs-type,.file-preview-xml .hljs-selector-class,.file-preview-xml .hljs-selector-attr,.file-preview-xml .hljs-selector-pseudo,.file-preview-xml .hljs-number{color:var(--hue-6)}.file-preview-xml .hljs-symbol,.file-preview-xml .hljs-bullet,.file-preview-xml .hljs-link,.file-preview-xml .hljs-meta,.file-preview-xml .hljs-selector-id,.file-preview-xml .hljs-title{color:var(--hue-2)}.file-preview-xml .hljs-built_in,.file-preview-xml .hljs-title.class_,.file-preview-xml .hljs-class .hljs-title{color:var(--hue-6-2)}.file-preview-xml .hljs-emphasis{font-style:italic}.file-preview-xml .hljs-strong{font-weight:700}.file-preview-xml .hljs-link{text-decoration:underline}.file-preview-img{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.file-preview-img img{object-fit:cover;transition:transform .3s}.file-preview-img__toolbar{display:flex;gap:8px;align-items:center}.thumbnail-panel{display:flex;flex-direction:column;width:100%;height:100%;background-color:var(--bg-color);border-right:1px solid var(--border-color);transition:all .3s ease}.thumbnail-panel-header{padding:16px;background-color:var(--bg-color);border-bottom:1px solid var(--border-color)}.thumbnail-panel-header h3{margin:0;font-size:14px;font-weight:600;color:var(--color)}.thumbnail-panel-content{flex:1;padding:12px;overflow-y:auto}.thumbnail-panel-content::-webkit-scrollbar{width:6px;height:6px}.thumbnail-panel-content::-webkit-scrollbar-track{background:var(--track-bg-color)}.thumbnail-panel-content::-webkit-scrollbar-thumb{background:var(--thumb-bg-color);border-radius:2px}.thumbnail-panel-content::-webkit-scrollbar-thumb:hover{background:var(--thumb-hover-bg-color)}.thumbnail-item{position:relative;margin-bottom:12px;overflow:hidden;cursor:pointer;border:2px solid transparent;border-radius:4px;transition:all .2s ease}.thumbnail-item:hover{box-shadow:0 2px 8px #00000026;transform:translateY(-1px)}.thumbnail-item.active{border-color:var(--active-bg-color);box-shadow:0 0 0 2px #007aff33}.thumbnail-image{display:block;width:100%;height:auto;border-radius:2px;transition:transform .2s ease}.thumbnail-item:hover .thumbnail-image{transform:scale(1.02)}.thumbnail-page-number{position:absolute;right:4px;bottom:4px;padding:2px 6px;font-size:10px;color:var(--color);background-color:var(--hover-bg-color);border-radius:10px}.image-page{margin-bottom:24px}.image-page>img{width:100%}.file-preview-image-group{display:flex;width:100%;height:100%;overflow:hidden}.image-group-left-container{width:180px;height:100%}.image-group-main-container{display:flex;flex-direction:column;align-items:center;width:100%;height:100%;overflow:hidden auto}.image-group-main-container::-webkit-scrollbar{width:6px;height:6px}.image-group-main-container::-webkit-scrollbar-track{background:var(--track-bg-color)}.image-group-main-container::-webkit-scrollbar-thumb{background:var(--thumb-bg-color);border-radius:2px}.image-group-main-container::-webkit-scrollbar-thumb:hover{background:var(--thumb-hover-bg-color)}.image-group-toolbar-container{display:flex;gap:4px;align-items:center}.image-group-toolbar-container input[type=number]::-webkit-inner-spin-button,.image-group-toolbar-container input[type=number]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.image-group-toolbar-container input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.image-group-toolbar-container input[type=number]:focus{outline:none;box-shadow:none}.page-input{width:64px;height:32px;font-size:16px;color:var(--color);text-align:center;background:transparent;border:1px solid var(--border-color);border-radius:4px}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
import { FilePreviewImageGroupController } from '../../../controller';
|
|
3
|
+
import './file-preview-image-group.scss';
|
|
4
|
+
export declare const FilePreviewImageGroup: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
5
|
+
controller: {
|
|
6
|
+
type: PropType<FilePreviewImageGroupController>;
|
|
7
|
+
required: true;
|
|
8
|
+
};
|
|
9
|
+
}>, {
|
|
10
|
+
state: {
|
|
11
|
+
showThumbnailPanel: boolean;
|
|
12
|
+
currentPage: number;
|
|
13
|
+
items: {
|
|
14
|
+
description: string;
|
|
15
|
+
image_url: string;
|
|
16
|
+
index: number;
|
|
17
|
+
}[];
|
|
18
|
+
total: number;
|
|
19
|
+
content: string | object;
|
|
20
|
+
scale: number;
|
|
21
|
+
theme: "light" | "dark";
|
|
22
|
+
};
|
|
23
|
+
contentRef: import("vue").Ref<HTMLElement | null, HTMLElement | null>;
|
|
24
|
+
shouldRender: import("vue").Ref<boolean, boolean>;
|
|
25
|
+
handlePageClick: (pageIndex: number) => void;
|
|
26
|
+
handleScroll: () => void;
|
|
27
|
+
handleInput: (e: Event) => void;
|
|
28
|
+
updatePageChange: (type: "UP" | "DOWN") => void;
|
|
29
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
30
|
+
controller: {
|
|
31
|
+
type: PropType<FilePreviewImageGroupController>;
|
|
32
|
+
required: true;
|
|
33
|
+
};
|
|
34
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
package/dist/types/component/file-preview-item/file-preview-image-group/image-page/image-page.d.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
import './image-page.scss';
|
|
3
|
+
/**
|
|
4
|
+
* 图片页
|
|
5
|
+
*/
|
|
6
|
+
export declare const ImagePage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
7
|
+
index: {
|
|
8
|
+
type: NumberConstructor;
|
|
9
|
+
required: true;
|
|
10
|
+
};
|
|
11
|
+
page: {
|
|
12
|
+
type: PropType<any>;
|
|
13
|
+
required: true;
|
|
14
|
+
};
|
|
15
|
+
scale: {
|
|
16
|
+
type: NumberConstructor;
|
|
17
|
+
required: true;
|
|
18
|
+
};
|
|
19
|
+
}>, {
|
|
20
|
+
widthStyle: import("vue").ComputedRef<{
|
|
21
|
+
width: string;
|
|
22
|
+
}>;
|
|
23
|
+
handleImageLoad: () => void;
|
|
24
|
+
handleImageError: (error: Event) => void;
|
|
25
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
26
|
+
index: {
|
|
27
|
+
type: NumberConstructor;
|
|
28
|
+
required: true;
|
|
29
|
+
};
|
|
30
|
+
page: {
|
|
31
|
+
type: PropType<any>;
|
|
32
|
+
required: true;
|
|
33
|
+
};
|
|
34
|
+
scale: {
|
|
35
|
+
type: NumberConstructor;
|
|
36
|
+
required: true;
|
|
37
|
+
};
|
|
38
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
import './thumbnail-panel.scss';
|
|
3
|
+
export declare const ThumbnailPanel: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
4
|
+
pages: {
|
|
5
|
+
type: PropType<Array<object>>;
|
|
6
|
+
required: true;
|
|
7
|
+
};
|
|
8
|
+
currentPage: {
|
|
9
|
+
type: NumberConstructor;
|
|
10
|
+
required: true;
|
|
11
|
+
};
|
|
12
|
+
}>, {
|
|
13
|
+
contentRef: import("vue").Ref<HTMLElement | null, HTMLElement | null>;
|
|
14
|
+
handleClick: (index: number, event: MouseEvent) => void;
|
|
15
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
16
|
+
pageClick: (number: number) => true;
|
|
17
|
+
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
18
|
+
pages: {
|
|
19
|
+
type: PropType<Array<object>>;
|
|
20
|
+
required: true;
|
|
21
|
+
};
|
|
22
|
+
currentPage: {
|
|
23
|
+
type: NumberConstructor;
|
|
24
|
+
required: true;
|
|
25
|
+
};
|
|
26
|
+
}>> & Readonly<{
|
|
27
|
+
onPageClick?: ((number: number) => any) | undefined;
|
|
28
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PropType, CSSProperties } from 'vue';
|
|
2
|
+
import { FilePreviewImageController } from '../../../controller';
|
|
3
|
+
import './file-preview-img.scss';
|
|
4
|
+
export declare const FilePreviewImg: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
5
|
+
controller: {
|
|
6
|
+
type: PropType<FilePreviewImageController>;
|
|
7
|
+
required: true;
|
|
8
|
+
};
|
|
9
|
+
}>, {
|
|
10
|
+
c: FilePreviewImageController<import("../../../interface").IFilePreviewImageState>;
|
|
11
|
+
style: import("vue").ComputedRef<CSSProperties>;
|
|
12
|
+
previewRef: import("vue").Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>;
|
|
13
|
+
shouldRender: import("vue").Ref<boolean, boolean>;
|
|
14
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
15
|
+
controller: {
|
|
16
|
+
type: PropType<FilePreviewImageController>;
|
|
17
|
+
required: true;
|
|
18
|
+
};
|
|
19
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
import { FilePreviewTextController } from '../../../controller';
|
|
3
|
+
import './file-preview-json.scss';
|
|
4
|
+
export declare const FilePreviewJson: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
5
|
+
controller: {
|
|
6
|
+
type: PropType<FilePreviewTextController>;
|
|
7
|
+
required: true;
|
|
8
|
+
};
|
|
9
|
+
}>, {
|
|
10
|
+
c: FilePreviewTextController<import("../../../interface").IFilePreviewItemState>;
|
|
11
|
+
previewRef: import("vue").Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>;
|
|
12
|
+
shouldRender: import("vue").Ref<boolean, boolean>;
|
|
13
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
14
|
+
controller: {
|
|
15
|
+
type: PropType<FilePreviewTextController>;
|
|
16
|
+
required: true;
|
|
17
|
+
};
|
|
18
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
import { FilePreviewTextController } from '../../../controller';
|
|
3
|
+
import 'vditor/dist/index.css';
|
|
4
|
+
import './file-preview-md.scss';
|
|
5
|
+
export declare const FilePreviewMD: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
6
|
+
controller: {
|
|
7
|
+
type: PropType<FilePreviewTextController>;
|
|
8
|
+
required: true;
|
|
9
|
+
};
|
|
10
|
+
}>, {
|
|
11
|
+
c: FilePreviewTextController<import("../../../interface").IFilePreviewItemState>;
|
|
12
|
+
previewRef: import("vue").Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>;
|
|
13
|
+
shouldRender: import("vue").Ref<boolean, boolean>;
|
|
14
|
+
onOutline: () => void;
|
|
15
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
16
|
+
controller: {
|
|
17
|
+
type: PropType<FilePreviewTextController>;
|
|
18
|
+
required: true;
|
|
19
|
+
};
|
|
20
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
import { FilePreviewTextController } from '../../../controller';
|
|
3
|
+
import './file-preview-text.scss';
|
|
4
|
+
export declare const FilePreviewText: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
5
|
+
controller: {
|
|
6
|
+
type: PropType<FilePreviewTextController>;
|
|
7
|
+
required: true;
|
|
8
|
+
};
|
|
9
|
+
}>, {
|
|
10
|
+
c: FilePreviewTextController<import("../../../interface").IFilePreviewItemState>;
|
|
11
|
+
previewRef: import("vue").Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>;
|
|
12
|
+
shouldRender: import("vue").Ref<boolean, boolean>;
|
|
13
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
14
|
+
controller: {
|
|
15
|
+
type: PropType<FilePreviewTextController>;
|
|
16
|
+
required: true;
|
|
17
|
+
};
|
|
18
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
import { FilePreviewTextController } from '../../../controller';
|
|
3
|
+
import './file-preview-unkown.scss';
|
|
4
|
+
export declare const FilePreviewUnkown: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
5
|
+
controller: {
|
|
6
|
+
type: PropType<FilePreviewTextController>;
|
|
7
|
+
required: true;
|
|
8
|
+
};
|
|
9
|
+
}>, {
|
|
10
|
+
c: FilePreviewTextController<import("../../../interface").IFilePreviewItemState>;
|
|
11
|
+
fileType: string;
|
|
12
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
13
|
+
controller: {
|
|
14
|
+
type: PropType<FilePreviewTextController>;
|
|
15
|
+
required: true;
|
|
16
|
+
};
|
|
17
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
import { FilePreviewTextController } from '../../../controller';
|
|
3
|
+
import './file-preview-xml.scss';
|
|
4
|
+
export declare const FilePreviewXml: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
5
|
+
controller: {
|
|
6
|
+
type: PropType<FilePreviewTextController>;
|
|
7
|
+
required: true;
|
|
8
|
+
};
|
|
9
|
+
}>, {
|
|
10
|
+
c: FilePreviewTextController<import("../../../interface").IFilePreviewItemState>;
|
|
11
|
+
previewRef: import("vue").Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>;
|
|
12
|
+
shouldRender: import("vue").Ref<boolean, boolean>;
|
|
13
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
14
|
+
controller: {
|
|
15
|
+
type: PropType<FilePreviewTextController>;
|
|
16
|
+
required: true;
|
|
17
|
+
};
|
|
18
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
import { FilePreviewShellController } from '../../controller';
|
|
3
|
+
import { ActionType } from '../../const/action-type';
|
|
4
|
+
import './file-preview-shell.scss';
|
|
5
|
+
/**
|
|
6
|
+
* 文件预览壳组件
|
|
7
|
+
*/
|
|
8
|
+
export declare const FilePreviewShell: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
9
|
+
controller: {
|
|
10
|
+
type: PropType<FilePreviewShellController>;
|
|
11
|
+
required: true;
|
|
12
|
+
};
|
|
13
|
+
}>, {
|
|
14
|
+
controller: FilePreviewShellController;
|
|
15
|
+
state: import("vue").Ref<import("../../interface").IFilePreviewShellState, import("../../interface").IFilePreviewShellState>;
|
|
16
|
+
showDownloadMenu: import("vue").Ref<boolean, boolean>;
|
|
17
|
+
showDownloadOptions: () => void;
|
|
18
|
+
handDownLoad: (actionType: ActionType.DOWNORIGINAL | ActionType.COPYTEXTCONTENT | ActionType.DOWNPDF | ActionType.DOWNMD, event: MouseEvent) => void;
|
|
19
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
20
|
+
controller: {
|
|
21
|
+
type: PropType<FilePreviewShellController>;
|
|
22
|
+
required: true;
|
|
23
|
+
};
|
|
24
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const contentWidth: number;
|
|
2
|
+
export declare const mdEngineTypes: string[];
|
|
3
|
+
export declare const htmlEngineTypes: string[];
|
|
4
|
+
export declare const txtEngineTypes: string[];
|
|
5
|
+
export declare const pdfEngineTypes: string[];
|
|
6
|
+
export declare const imgEngineTypes: string[];
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 文件类型枚举
|
|
3
|
+
*/
|
|
4
|
+
export declare enum FileType {
|
|
5
|
+
HTML = "html",
|
|
6
|
+
MD = "md",// Markdown文件
|
|
7
|
+
TXT = "txt",// 文本文件
|
|
8
|
+
JSON = "json",// JSON文件
|
|
9
|
+
XML = "xml",// XML文件
|
|
10
|
+
DOC = "doc",// Word文档(旧版)
|
|
11
|
+
DOCX = "docx",// Word文档(新版)
|
|
12
|
+
XLS = "xls",// Excel表格(旧版)
|
|
13
|
+
XLSX = "xlsx",// Excel表格(新版)
|
|
14
|
+
WPS = "wps",// WPS文字处理
|
|
15
|
+
ET = "et",// WPS电子表格
|
|
16
|
+
PDF = "pdf",// PDF文档
|
|
17
|
+
OFD = "ofd",// OFD版式文档
|
|
18
|
+
PPT = "ppt",// PowerPoint演示文稿(旧版)
|
|
19
|
+
PPTX = "pptx",// PowerPoint演示文稿(新版)
|
|
20
|
+
VSD = "vsd",// Visio绘图
|
|
21
|
+
JPG = "jpg",// JPEG图像
|
|
22
|
+
PNG = "png",// PNG图像
|
|
23
|
+
GIF = "gif",// GIF图像
|
|
24
|
+
SVG = "svg",// SVG矢量图像
|
|
25
|
+
UNKNOWN = "unknown"
|
|
26
|
+
}
|
|
27
|
+
export declare enum EngineType {
|
|
28
|
+
HTML = "HTML",// HTML
|
|
29
|
+
MD = "MD",// Markdown
|
|
30
|
+
TXT = "TXT",// 纯文本
|
|
31
|
+
PDF = "PDF",// PDF
|
|
32
|
+
IMG = "IMG",// 图片
|
|
33
|
+
UNKNOWN = "UNKNOWN"
|
|
34
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IFilePreviewImageState } from '../interface';
|
|
2
|
+
import { FilePreviewItemController } from './file-preview-item-controller';
|
|
3
|
+
/**
|
|
4
|
+
* 图片预览控制器
|
|
5
|
+
*/
|
|
6
|
+
export declare class FilePreviewImageController<S extends IFilePreviewImageState = IFilePreviewImageState> extends FilePreviewItemController<S> {
|
|
7
|
+
protected initState(): void;
|
|
8
|
+
/**
|
|
9
|
+
* 获取内容
|
|
10
|
+
*/
|
|
11
|
+
getContent(): Promise<string | object>;
|
|
12
|
+
/**
|
|
13
|
+
* 改变旋转角度
|
|
14
|
+
*
|
|
15
|
+
* @param value
|
|
16
|
+
*/
|
|
17
|
+
onRotateChange(value: number): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IFilePreviewImageGroupState } from '../interface';
|
|
2
|
+
import { FilePreviewItemController } from './file-preview-item-controller';
|
|
3
|
+
/**
|
|
4
|
+
* 图片组预览
|
|
5
|
+
*/
|
|
6
|
+
export declare class FilePreviewImageGroupController<S extends IFilePreviewImageGroupState = IFilePreviewImageGroupState> extends FilePreviewItemController<S> {
|
|
7
|
+
protected initState(): void;
|
|
8
|
+
/**
|
|
9
|
+
* 获取内容
|
|
10
|
+
*/
|
|
11
|
+
getContent(): Promise<string | object>;
|
|
12
|
+
/**
|
|
13
|
+
* 切换缩略图面板
|
|
14
|
+
*/
|
|
15
|
+
switchThumbnailPanel(): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { IInitializeParam, IFilePreviewItemState, IFilePreviewItemController, IFilePreviewShellController } from '../interface';
|
|
2
|
+
/**
|
|
3
|
+
* 文件预览项控制器
|
|
4
|
+
*/
|
|
5
|
+
export declare class FilePreviewItemController<S extends IFilePreviewItemState = IFilePreviewItemState> implements IFilePreviewItemController {
|
|
6
|
+
filePreviewShell: IFilePreviewShellController;
|
|
7
|
+
/**
|
|
8
|
+
* 状态
|
|
9
|
+
*/
|
|
10
|
+
state: import("vue").Reactive<S>;
|
|
11
|
+
/**
|
|
12
|
+
* 构造函数
|
|
13
|
+
* @param filePreviewShell
|
|
14
|
+
*/
|
|
15
|
+
constructor(filePreviewShell: IFilePreviewShellController);
|
|
16
|
+
/**
|
|
17
|
+
* 初始化状态
|
|
18
|
+
*/
|
|
19
|
+
protected initState(): void;
|
|
20
|
+
/**
|
|
21
|
+
* 初始化
|
|
22
|
+
* @param param 初始化参数
|
|
23
|
+
*/
|
|
24
|
+
initialize(param: IInitializeParam): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* 获取内容
|
|
27
|
+
*/
|
|
28
|
+
getContent(): Promise<string | object>;
|
|
29
|
+
/**
|
|
30
|
+
* 缩小预览
|
|
31
|
+
*/
|
|
32
|
+
zoomOutPreview(event: MouseEvent): void;
|
|
33
|
+
/**
|
|
34
|
+
* 放大预览
|
|
35
|
+
*/
|
|
36
|
+
zoomInPreview(event: MouseEvent): void;
|
|
37
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Component } from 'vue';
|
|
2
|
+
import { IFilePreviewItemConstructor } from '../interface';
|
|
3
|
+
/**
|
|
4
|
+
* 文件预览分发器
|
|
5
|
+
*/
|
|
6
|
+
export declare class FilePreviewItemDispatcher {
|
|
7
|
+
/**
|
|
8
|
+
* 文件预览组件映射表
|
|
9
|
+
*/
|
|
10
|
+
private static filePreviewMap;
|
|
11
|
+
/**
|
|
12
|
+
* 注册文件预览项
|
|
13
|
+
* @param type 文件类型
|
|
14
|
+
* @param component 组件
|
|
15
|
+
* @param controller 控制器
|
|
16
|
+
*/
|
|
17
|
+
private static registerItem;
|
|
18
|
+
/**
|
|
19
|
+
* 初始化
|
|
20
|
+
*/
|
|
21
|
+
static initialize(): void;
|
|
22
|
+
/**
|
|
23
|
+
* 获取文件预览项
|
|
24
|
+
* @param type
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
27
|
+
static getItem(type: string): {
|
|
28
|
+
component: Component;
|
|
29
|
+
controller: IFilePreviewItemConstructor;
|
|
30
|
+
} | null;
|
|
31
|
+
}
|