ai-word-editor 0.0.55 → 0.0.56
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/dist/ai-word-editor.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.ProseMirror span.comment-mark,.umo-editor span.comment-mark{border-bottom:2px solid #fbbf24;background-color:transparent;border-radius:0;cursor:text;transition:border-bottom-color .15s}.ProseMirror span.comment-mark:hover,.umo-editor span.comment-mark:hover{border-bottom-color:#facc15}.ProseMirror span.comment-mark--active,.umo-editor span.comment-mark--active{background-color:transparent;border-bottom-color:#f59e0b}.comment-panel[data-v-10b7616a]{box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:100%;border-left:1px solid #e5e7eb;background:#fafafa;display:flex;flex-direction:column;overflow:hidden}.comment-panel__header[data-v-10b7616a]{padding:14px 16px 10px;border-bottom:1px solid #e5e7eb;background:#fff}.comment-panel__title[data-v-10b7616a]{margin:0;font-size:14px;font-weight:600;color:#374151;display:flex;align-items:center;gap:6px}.comment-panel__badge[data-v-10b7616a]{background:#f59e0b;color:#fff;border-radius:10px;font-size:11px;padding:1px 6px;font-weight:500}.comment-panel__empty[data-v-10b7616a]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9ca3af;gap:4px;padding:24px;text-align:center}.comment-panel__empty p[data-v-10b7616a]{margin:0;font-size:13px}.comment-panel__empty-icon[data-v-10b7616a]{font-size:32px;margin-bottom:8px;opacity:.5}.comment-panel__empty-hint[data-v-10b7616a]{font-size:12px!important;color:#d1d5db}.comment-panel__list[data-v-10b7616a]{list-style:none;margin:0;padding:8px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:8px}.comment-item[data-v-10b7616a]{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.comment-item[data-v-10b7616a]:hover{border-color:#fbbf24;box-shadow:0 1px 4px #fbbf2426}.comment-item--active[data-v-10b7616a]{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b33}.comment-item--resolved[data-v-10b7616a]{opacity:.55}.comment-item--resolved .comment-item__note[data-v-10b7616a]{text-decoration:line-through;color:#9ca3af}.comment-item__quote[data-v-10b7616a]{font-size:12px;color:#6b7280;background:#fef9c3;border-left:3px solid #fbbf24;padding:4px 8px;border-radius:0 4px 4px 0;margin-bottom:6px;line-height:1.4}.comment-item__quote-icon[data-v-10b7616a]{color:#fbbf24;margin-right:2px}.comment-item--c0 .comment-item__quote[data-v-10b7616a]{background:#fef3c7cc;border-left-color:#f97316}.comment-item--c0 .comment-item__quote-icon[data-v-10b7616a]{color:#f97316}.comment-item--c1 .comment-item__quote[data-v-10b7616a]{background:#d1fae5d9;border-left-color:#22c55e}.comment-item--c1 .comment-item__quote-icon[data-v-10b7616a]{color:#22c55e}.comment-item--c2 .comment-item__quote[data-v-10b7616a]{background:#dbeafed9;border-left-color:#3b82f6}.comment-item--c2 .comment-item__quote-icon[data-v-10b7616a]{color:#3b82f6}.comment-item--c3 .comment-item__quote[data-v-10b7616a]{background:#ede9fee6;border-left-color:#a855f7}.comment-item--c3 .comment-item__quote-icon[data-v-10b7616a]{color:#a855f7}.comment-item--c4 .comment-item__quote[data-v-10b7616a]{background:#fce7f3e6;border-left-color:#ec4899}.comment-item--c4 .comment-item__quote-icon[data-v-10b7616a]{color:#ec4899}.comment-item--c5 .comment-item__quote[data-v-10b7616a]{background:#ccfbf1d9;border-left-color:#14b8a6}.comment-item--c5 .comment-item__quote-icon[data-v-10b7616a]{color:#14b8a6}.comment-item--c6 .comment-item__quote[data-v-10b7616a]{background:#fef9c3e6;border-left-color:#eab308}.comment-item--c6 .comment-item__quote-icon[data-v-10b7616a]{color:#eab308}.comment-item--c7 .comment-item__quote[data-v-10b7616a]{background:#ffe4e6e6;border-left-color:#f43f5e}.comment-item--c7 .comment-item__quote-icon[data-v-10b7616a]{color:#f43f5e}.comment-item--c8 .comment-item__quote[data-v-10b7616a]{background:#e0e7ffe6;border-left-color:#6366f1}.comment-item--c8 .comment-item__quote-icon[data-v-10b7616a]{color:#6366f1}.comment-item--c9 .comment-item__quote[data-v-10b7616a]{background:#ecfdc8e6;border-left-color:#84cc16}.comment-item--c9 .comment-item__quote-icon[data-v-10b7616a]{color:#84cc16}.comment-item--c10 .comment-item__quote[data-v-10b7616a]{background:#cffafee6;border-left-color:#06b6d4}.comment-item--c10 .comment-item__quote-icon[data-v-10b7616a]{color:#06b6d4}.comment-item--c11 .comment-item__quote[data-v-10b7616a]{background:#d1fae5d9;border-left-color:#10b981}.comment-item--c11 .comment-item__quote-icon[data-v-10b7616a]{color:#10b981}.comment-item--c12 .comment-item__quote[data-v-10b7616a]{background:#ede9fee6;border-left-color:#8b5cf6}.comment-item--c12 .comment-item__quote-icon[data-v-10b7616a]{color:#8b5cf6}.comment-item--c13 .comment-item__quote[data-v-10b7616a]{background:#faf0ffe6;border-left-color:#d946ef}.comment-item--c13 .comment-item__quote-icon[data-v-10b7616a]{color:#d946ef}.comment-item--c14 .comment-item__quote[data-v-10b7616a]{background:#e0f2fee6;border-left-color:#0ea5e9}.comment-item--c14 .comment-item__quote-icon[data-v-10b7616a]{color:#0ea5e9}.comment-item--c15 .comment-item__quote[data-v-10b7616a]{background:#ffedd5e6;border-left-color:#ea580c}.comment-item--c15 .comment-item__quote-icon[data-v-10b7616a]{color:#ea580c}.comment-item--c16 .comment-item__quote[data-v-10b7616a]{background:#fefce8e6;border-left-color:#ca8a04}.comment-item--c16 .comment-item__quote-icon[data-v-10b7616a]{color:#ca8a04}.comment-item--c17 .comment-item__quote[data-v-10b7616a]{background:#fee2e2e6;border-left-color:#dc2626}.comment-item--c17 .comment-item__quote-icon[data-v-10b7616a]{color:#dc2626}.comment-item--c18 .comment-item__quote[data-v-10b7616a]{background:#ccfbf1d9;border-left-color:#0d9488}.comment-item--c18 .comment-item__quote-icon[data-v-10b7616a]{color:#0d9488}.comment-item--c19 .comment-item__quote[data-v-10b7616a]{background:#f1f5f9e6;border-left-color:#64748b}.comment-item--c19 .comment-item__quote-icon[data-v-10b7616a]{color:#64748b}.comment-item__note[data-v-10b7616a]{font-size:13px;color:#374151;line-height:1.5;margin-bottom:6px;word-break:break-word}.comment-item__meta[data-v-10b7616a]{display:flex;justify-content:space-between;font-size:11px;color:#9ca3af;margin-bottom:8px}.comment-item__author[data-v-10b7616a]{font-weight:500}.comment-item__actions[data-v-10b7616a]{display:flex;gap:6px;justify-content:flex-end}.comment-btn[data-v-10b7616a]{border:none;border-radius:4px;padding:3px 8px;font-size:11px;cursor:pointer;transition:background .15s}.comment-btn--resolve[data-v-10b7616a]{background:#ecfdf5;color:#059669}.comment-btn--resolve[data-v-10b7616a]:hover{background:#d1fae5}.comment-btn--delete[data-v-10b7616a]{background:#fef2f2;color:#dc2626}.comment-btn--delete[data-v-10b7616a]:hover{background:#fee2e2}.dialog-backdrop[data-v-8cbc8293]{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:9999}.dialog[data-v-8cbc8293]{background:#fff;border-radius:10px;box-shadow:0 20px 60px #00000026,0 4px 12px #00000014;width:460px;max-width:calc(100vw - 32px);overflow:hidden}.dialog__header[data-v-8cbc8293]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid #e5e7eb}.dialog__title[data-v-8cbc8293]{margin:0;font-size:15px;font-weight:600;color:#111827}.dialog__close[data-v-8cbc8293]{border:none;background:none;font-size:14px;color:#9ca3af;cursor:pointer;padding:4px 6px;border-radius:4px;line-height:1}.dialog__close[data-v-8cbc8293]:hover{background:#f3f4f6;color:#374151}.dialog__quote[data-v-8cbc8293]{padding:12px 20px 0}.dialog__quote-label[data-v-8cbc8293]{font-size:11px;font-weight:500;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.dialog__quote-text[data-v-8cbc8293]{margin:4px 0 0;padding:8px 12px;background:#fef9c3;border-left:3px solid #fbbf24;border-radius:0 4px 4px 0;font-size:13px;color:#374151;line-height:1.5}.dialog__body[data-v-8cbc8293]{padding:16px 20px 0}.dialog__label[data-v-8cbc8293]{display:block;font-size:12px;font-weight:500;color:#374151;margin-bottom:6px}.dialog__textarea[data-v-8cbc8293]{width:100%;border:1px solid #d1d5db;border-radius:6px;padding:10px 12px;font-size:14px;font-family:inherit;resize:vertical;box-sizing:border-box;transition:border-color .15s,box-shadow .15s;outline:none;color:#111827;line-height:1.5}.dialog__textarea[data-v-8cbc8293]:focus{border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b26}.dialog__hint[data-v-8cbc8293]{margin:6px 0 0;font-size:11px;color:#9ca3af}.dialog__footer[data-v-8cbc8293]{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px}.dialog__btn[data-v-8cbc8293]{border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}.dialog__btn--cancel[data-v-8cbc8293]{background:#f3f4f6;color:#374151}.dialog__btn--cancel[data-v-8cbc8293]:hover{background:#e5e7eb}.dialog__btn--confirm[data-v-8cbc8293]{background:#f59e0b;color:#fff}.dialog__btn--confirm[data-v-8cbc8293]:hover:not(:disabled){background:#d97706}.dialog__btn--confirm[data-v-8cbc8293]:disabled{opacity:.45;cursor:not-allowed}.comment-gutter[data-v-ac6164bd]{position:absolute;top:12px;right:-300px;width:280px;pointer-events:none;display:flex;flex-direction:column}.gutter-item-wrapper[data-v-ac6164bd]{pointer-events:auto}.gutter-item[data-v-ac6164bd]{position:relative;width:100%;background:#fff;border:1px solid #e5e7eb;border-left-width:4px;border-radius:8px;padding:8px 10px;box-shadow:0 8px 18px #0000000f;cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;transition:transform .12s,box-shadow .12s,border-color .12s}.gutter-item[data-v-ac6164bd]:hover{transform:translateY(-1px);box-shadow:0 10px 22px #00000014}.gutter-item--active[data-v-ac6164bd]{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b38,0 10px 22px #00000014}.gutter-item--resolved[data-v-ac6164bd]{opacity:.6}.gutter-item__quote[data-v-ac6164bd]{font-size:12px;color:#6b7280;margin-bottom:4px}.gutter-item__note[data-v-ac6164bd]{font-size:13px;color:#374151;line-height:1.35;margin-bottom:6px;word-break:break-word}.gutter-item__meta[data-v-ac6164bd]{display:flex;justify-content:space-between;font-size:11px;color:#9ca3af}.gutter-item--c0[data-v-ac6164bd]{border-left-color:#f97316}.gutter-item--c1[data-v-ac6164bd]{border-left-color:#22c55e}.gutter-item--c2[data-v-ac6164bd]{border-left-color:#3b82f6}.gutter-item--c3[data-v-ac6164bd]{border-left-color:#a855f7}.gutter-item--c4[data-v-ac6164bd]{border-left-color:#ec4899}.gutter-item--c5[data-v-ac6164bd]{border-left-color:#14b8a6}.gutter-item--c6[data-v-ac6164bd]{border-left-color:#eab308}.gutter-item--c7[data-v-ac6164bd]{border-left-color:#f43f5e}.gutter-item--c8[data-v-ac6164bd]{border-left-color:#6366f1}.gutter-item--c9[data-v-ac6164bd]{border-left-color:#84cc16}.gutter-item--c10[data-v-ac6164bd]{border-left-color:#06b6d4}.gutter-item--c11[data-v-ac6164bd]{border-left-color:#10b981}.gutter-item--c12[data-v-ac6164bd]{border-left-color:#8b5cf6}.gutter-item--c13[data-v-ac6164bd]{border-left-color:#d946ef}.gutter-item--c14[data-v-ac6164bd]{border-left-color:#0ea5e9}.gutter-item--c15[data-v-ac6164bd]{border-left-color:#ea580c}.gutter-item--c16[data-v-ac6164bd]{border-left-color:#ca8a04}.gutter-item--c17[data-v-ac6164bd]{border-left-color:#dc2626}.gutter-item--c18[data-v-ac6164bd]{border-left-color:#0d9488}.gutter-item--c19[data-v-ac6164bd]{border-left-color:#64748b}.umo-editor-content table:has(colgroup[data-word-col-layout]) td,.umo-editor-content table:has(colgroup[data-word-col-layout]) th,.umo-editor-content table:has(colgroup[data-word-col-layout]){border:none!important;outline:none!important}.umo-editor-content table:has(colgroup col:nth-child(2)){table-layout:fixed}.umo-editor-content ul[type=disc] li>p:before,.umo-editor-content ul[type=circle] li>p:before,.umo-editor-content ul[type=square] li>p:before{content:none}.auth-page[data-v-17559b0a]{min-height:100%;display:flex;align-items:center;justify-content:center;background:#f3f4f6}.auth-card[data-v-17559b0a]{background:#fff;border-radius:12px;padding:40px 36px;width:340px;box-shadow:0 4px 24px #0000001a}.auth-title[data-v-17559b0a]{font-size:20px;font-weight:700;color:#111827;text-align:center;margin:0 0 24px}.auth-tabs[data-v-17559b0a]{display:flex;gap:0;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;margin-bottom:20px}.auth-tab[data-v-17559b0a]{flex:1;padding:8px;border:none;background:transparent;cursor:pointer;font-size:14px;color:#6b7280;transition:background .15s,color .15s}.auth-tab--active[data-v-17559b0a]{background:#3b82f6;color:#fff}.auth-form[data-v-17559b0a]{display:flex;flex-direction:column;gap:12px}.auth-input[data-v-17559b0a]{padding:10px 14px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;outline:none;transition:border-color .15s}.auth-input[data-v-17559b0a]:focus{border-color:#3b82f6}.auth-submit[data-v-17559b0a]{padding:10px;border:none;border-radius:8px;background:#3b82f6;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.auth-submit[data-v-17559b0a]:hover:not(:disabled){background:#2563eb}.auth-submit[data-v-17559b0a]:disabled{opacity:.6;cursor:not-allowed}.auth-error[data-v-17559b0a]{color:#ef4444;font-size:13px;margin:0}.app-layout[data-v-17559b0a]{display:flex;width:100%;height:100%;overflow:hidden}.editor-wrapper[data-v-17559b0a]{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.app-layout__comment-aside[data-v-17559b0a]{flex:0 1 clamp(280px,36vw,720px);min-width:0;max-width:100%;display:flex;flex-direction:column;overflow:hidden}.comment-toolbar[data-v-17559b0a]{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#fff;border-bottom:1px solid #e5e7eb;z-index:10;flex-shrink:0}.toolbar-docname[data-v-17559b0a]{flex:1;min-width:0}.toolbar-docname__input[data-v-17559b0a]{width:100%;border:1px solid transparent;border-radius:4px;padding:3px 6px;font-size:14px;font-weight:600;color:#111827;background:transparent;outline:none;transition:border-color .15s,background .15s}.toolbar-docname__input[data-v-17559b0a]:hover,.toolbar-docname__input[data-v-17559b0a]:focus{border-color:#d1d5db;background:#f9fafb}.toolbar-docname--empty[data-v-17559b0a]{font-size:13px;color:#9ca3af}.toolbar-actions[data-v-17559b0a]{display:flex;gap:8px;flex-shrink:0}.toolbar-btn[data-v-17559b0a]{display:inline-flex;align-items:center;gap:5px;border:none;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s}.toolbar-btn[data-v-17559b0a]:disabled{opacity:.5;cursor:not-allowed}.toolbar-btn__icon[data-v-17559b0a]{font-size:15px}.toolbar-btn--save[data-v-17559b0a]{background:#d1fae5;color:#065f46}.toolbar-btn--save[data-v-17559b0a]:hover:not(:disabled){background:#a7f3d0}.toolbar-btn--primary[data-v-17559b0a]{background:#fef3c7;color:#92400e}.toolbar-btn--primary[data-v-17559b0a]:hover:not(:disabled){background:#fde68a}.toolbar-btn--ai[data-v-17559b0a]{background:#ede9fe;color:#5b21b6}.toolbar-btn--ai[data-v-17559b0a]:hover:not(:disabled){background:#ddd6fe}.umo-editor-instance[data-v-17559b0a]{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.umo-editor-stage[data-v-17559b0a]{position:relative;flex:1;min-height:0;overflow:hidden}.umo-editor-stage[data-v-17559b0a]:fullscreen{width:100vw;height:100vh;background:#fff}.editor-placeholder[data-v-17559b0a]{flex:1;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:14px}.umo-custom-huge-btn[data-v-17559b0a]{display:inline-flex;align-items:center;justify-content:center;flex-direction:column;width:auto;height:56px;padding:0 5px;margin:0;border:none;border-radius:var(--umo-radius, 3px);background:transparent;cursor:pointer;transition:background .2s;white-space:nowrap}.umo-custom-huge-btn[data-v-17559b0a]:hover:not(:disabled){background:var(--umo-button-hover-background, rgba(0, 0, 0, .06))}.umo-custom-huge-btn[data-v-17559b0a]:disabled{opacity:.5;cursor:not-allowed}.umo-custom-huge-btn__icon[data-v-17559b0a]{display:flex;align-items:center;justify-content:center;color:var(--umo-text-color, #3d3d3d);margin-top:3px}.umo-custom-huge-btn__icon svg[data-v-17559b0a]{width:24px;height:24px}.umo-custom-huge-btn__text[data-v-17559b0a]{display:block;font-size:12px;color:var(--umo-text-color, #3d3d3d);margin-top:2px;line-height:1.2}.html-dialog-mask[data-v-17559b0a]{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:9999}.html-dialog[data-v-17559b0a]{background:#1e1e2e;border-radius:10px;width:min(860px,92vw);max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0006}.html-dialog__header[data-v-17559b0a]{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #313244;flex-shrink:0}.html-dialog__title[data-v-17559b0a]{font-size:14px;font-weight:600;color:#cdd6f4}.html-dialog__close[data-v-17559b0a]{background:none;border:none;color:#6c7086;font-size:16px;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1;transition:color .15s,background .15s}.html-dialog__close[data-v-17559b0a]:hover{color:#cdd6f4;background:#313244}.html-dialog__toolbar[data-v-17559b0a]{display:flex;justify-content:flex-end;padding:8px 16px;border-bottom:1px solid #313244;flex-shrink:0}.html-dialog__copy-btn[data-v-17559b0a]{font-size:12px;padding:4px 14px;border-radius:5px;border:1px solid #45475a;background:#313244;color:#cdd6f4;cursor:pointer;transition:background .15s,border-color .15s}.html-dialog__copy-btn[data-v-17559b0a]:hover{background:#45475a;border-color:#89b4fa;color:#89b4fa}.html-dialog__content[data-v-17559b0a]{flex:1;overflow:auto;margin:0;padding:16px 20px;font-family:Fira Code,Consolas,Courier New,monospace;font-size:12.5px;line-height:1.7;color:#a6e3a1;white-space:pre-wrap;word-break:break-all}[data-v-17559b0a] table:has(colgroup[data-word-col-layout]) td,[data-v-17559b0a] table:has(colgroup[data-word-col-layout]) th,[data-v-17559b0a] table:has(colgroup[data-word-col-layout]){border:none!important;outline:none!important}.complex-comment-panel[data-v-857048b4]{box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:100%;border-left:1px solid #e5e7eb;background:#f3f4f6;display:flex;flex-direction:column;overflow:hidden}.complex-comment-panel__header[data-v-857048b4]{padding:12px 14px 10px;background:#fff;border-bottom:1px solid #e5e7eb}.complex-comment-panel__title[data-v-857048b4]{margin:0 0 10px;font-size:16px;font-weight:600;color:#111827}.complex-comment-panel__toolbar[data-v-857048b4]{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.complex-comment-panel__download[data-v-857048b4]{border:none;border-radius:4px;padding:5px 14px;font-size:13px;font-weight:500;cursor:pointer;background:#2563eb;color:#fff}.complex-comment-panel__download[data-v-857048b4]:hover{background:#1d4ed8}.complex-comment-panel__risk-toggle[data-v-857048b4]{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#4b5563;cursor:pointer;-webkit-user-select:none;user-select:none}.complex-comment-panel__risk-toggle input[data-v-857048b4]{width:14px;height:14px;cursor:pointer}.complex-comment-panel__empty[data-v-857048b4]{flex:1;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:14px}.complex-comment-panel__tabs[data-v-857048b4]{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px;background:#fff;border-bottom:1px solid #e5e7eb}.complex-comment-panel__tab[data-v-857048b4]{border:1px solid #e5e7eb;background:#fff;border-radius:4px;padding:4px 10px;font-size:12px;color:#6b7280;cursor:pointer}.complex-comment-panel__tab[data-v-857048b4]:hover{border-color:#93c5fd;color:#2563eb}.complex-comment-panel__tab--active[data-v-857048b4]{border-color:#2563eb;color:#2563eb;background:#eff6ff;font-weight:500}.complex-comment-panel__body[data-v-857048b4]{flex:1;overflow-y:auto;padding:10px 12px 16px;display:flex;flex-direction:column;gap:14px}.complex-comment-panel__section-head[data-v-857048b4]{margin-bottom:8px}.complex-comment-panel__section-title[data-v-857048b4]{font-size:14px;font-weight:600;color:#111827}.complex-comment-panel__cards[data-v-857048b4]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.audit-card[data-v-857048b4]{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px 14px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.audit-card[data-v-857048b4]:hover{border-color:#d1d5db;box-shadow:0 1px 3px #0000000f}.audit-card--active[data-v-857048b4]{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb33}.audit-card__head[data-v-857048b4]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.audit-card__point[data-v-857048b4]{font-size:14px;font-weight:600;color:#111827;line-height:1.4;flex:1}.audit-card__badge[data-v-857048b4]{flex-shrink:0;font-size:12px;font-weight:500;padding:2px 8px;border-radius:4px;white-space:nowrap}.audit-card__badge--risk[data-v-857048b4]{background:#fee2e2;color:#dc2626}.audit-card__badge--ok[data-v-857048b4]{background:#22c55e;color:#fff}.audit-card__badge--muted[data-v-857048b4]{background:#f3f4f6;color:#6b7280}.audit-card__block[data-v-857048b4]{margin-bottom:4px}.audit-card__label[data-v-857048b4]{font-size:12px;color:#9ca3af;margin-bottom:6px}.audit-card__label--strong[data-v-857048b4]{color:#111827;font-weight:500}.audit-card__quote[data-v-857048b4]{font-size:13px;color:#6b7280;line-height:1.5;padding:8px 10px 8px 12px;border-left:3px solid #d1d5db;background:#f9fafb;border-radius:0 4px 4px 0;word-break:break-word}.audit-card__locate[data-v-857048b4]{margin-top:8px;border:none;background:none;padding:0;font-size:12px;color:#2563eb;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.audit-card__locate[data-v-857048b4]:hover{text-decoration:underline}.audit-card__locate-icon[data-v-857048b4]{font-size:14px;line-height:1;opacity:.85}.audit-card__divider[data-v-857048b4]{height:1px;background:#e5e7eb;margin:12px 0}.audit-card__block--desc[data-v-857048b4]{margin-bottom:0}.audit-card__desc[data-v-857048b4]{margin:0;font-size:13px;color:#374151;line-height:1.55;word-break:break-word}
|
|
1
|
+
.ProseMirror span.comment-mark,.umo-editor span.comment-mark{border-bottom:2px solid #fbbf24;background-color:transparent;border-radius:0;cursor:text;transition:border-bottom-color .15s}.ProseMirror span.comment-mark:hover,.umo-editor span.comment-mark:hover{border-bottom-color:#facc15}.ProseMirror span.comment-mark--active,.umo-editor span.comment-mark--active{background-color:transparent;border-bottom-color:#f59e0b}.comment-panel[data-v-10b7616a]{box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:100%;border-left:1px solid #e5e7eb;background:#fafafa;display:flex;flex-direction:column;overflow:hidden}.comment-panel__header[data-v-10b7616a]{padding:14px 16px 10px;border-bottom:1px solid #e5e7eb;background:#fff}.comment-panel__title[data-v-10b7616a]{margin:0;font-size:14px;font-weight:600;color:#374151;display:flex;align-items:center;gap:6px}.comment-panel__badge[data-v-10b7616a]{background:#f59e0b;color:#fff;border-radius:10px;font-size:11px;padding:1px 6px;font-weight:500}.comment-panel__empty[data-v-10b7616a]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9ca3af;gap:4px;padding:24px;text-align:center}.comment-panel__empty p[data-v-10b7616a]{margin:0;font-size:13px}.comment-panel__empty-icon[data-v-10b7616a]{font-size:32px;margin-bottom:8px;opacity:.5}.comment-panel__empty-hint[data-v-10b7616a]{font-size:12px!important;color:#d1d5db}.comment-panel__list[data-v-10b7616a]{list-style:none;margin:0;padding:8px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:8px}.comment-item[data-v-10b7616a]{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.comment-item[data-v-10b7616a]:hover{border-color:#fbbf24;box-shadow:0 1px 4px #fbbf2426}.comment-item--active[data-v-10b7616a]{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b33}.comment-item--resolved[data-v-10b7616a]{opacity:.55}.comment-item--resolved .comment-item__note[data-v-10b7616a]{text-decoration:line-through;color:#9ca3af}.comment-item__quote[data-v-10b7616a]{font-size:12px;color:#6b7280;background:#fef9c3;border-left:3px solid #fbbf24;padding:4px 8px;border-radius:0 4px 4px 0;margin-bottom:6px;line-height:1.4}.comment-item__quote-icon[data-v-10b7616a]{color:#fbbf24;margin-right:2px}.comment-item--c0 .comment-item__quote[data-v-10b7616a]{background:#fef3c7cc;border-left-color:#f97316}.comment-item--c0 .comment-item__quote-icon[data-v-10b7616a]{color:#f97316}.comment-item--c1 .comment-item__quote[data-v-10b7616a]{background:#d1fae5d9;border-left-color:#22c55e}.comment-item--c1 .comment-item__quote-icon[data-v-10b7616a]{color:#22c55e}.comment-item--c2 .comment-item__quote[data-v-10b7616a]{background:#dbeafed9;border-left-color:#3b82f6}.comment-item--c2 .comment-item__quote-icon[data-v-10b7616a]{color:#3b82f6}.comment-item--c3 .comment-item__quote[data-v-10b7616a]{background:#ede9fee6;border-left-color:#a855f7}.comment-item--c3 .comment-item__quote-icon[data-v-10b7616a]{color:#a855f7}.comment-item--c4 .comment-item__quote[data-v-10b7616a]{background:#fce7f3e6;border-left-color:#ec4899}.comment-item--c4 .comment-item__quote-icon[data-v-10b7616a]{color:#ec4899}.comment-item--c5 .comment-item__quote[data-v-10b7616a]{background:#ccfbf1d9;border-left-color:#14b8a6}.comment-item--c5 .comment-item__quote-icon[data-v-10b7616a]{color:#14b8a6}.comment-item--c6 .comment-item__quote[data-v-10b7616a]{background:#fef9c3e6;border-left-color:#eab308}.comment-item--c6 .comment-item__quote-icon[data-v-10b7616a]{color:#eab308}.comment-item--c7 .comment-item__quote[data-v-10b7616a]{background:#ffe4e6e6;border-left-color:#f43f5e}.comment-item--c7 .comment-item__quote-icon[data-v-10b7616a]{color:#f43f5e}.comment-item--c8 .comment-item__quote[data-v-10b7616a]{background:#e0e7ffe6;border-left-color:#6366f1}.comment-item--c8 .comment-item__quote-icon[data-v-10b7616a]{color:#6366f1}.comment-item--c9 .comment-item__quote[data-v-10b7616a]{background:#ecfdc8e6;border-left-color:#84cc16}.comment-item--c9 .comment-item__quote-icon[data-v-10b7616a]{color:#84cc16}.comment-item--c10 .comment-item__quote[data-v-10b7616a]{background:#cffafee6;border-left-color:#06b6d4}.comment-item--c10 .comment-item__quote-icon[data-v-10b7616a]{color:#06b6d4}.comment-item--c11 .comment-item__quote[data-v-10b7616a]{background:#d1fae5d9;border-left-color:#10b981}.comment-item--c11 .comment-item__quote-icon[data-v-10b7616a]{color:#10b981}.comment-item--c12 .comment-item__quote[data-v-10b7616a]{background:#ede9fee6;border-left-color:#8b5cf6}.comment-item--c12 .comment-item__quote-icon[data-v-10b7616a]{color:#8b5cf6}.comment-item--c13 .comment-item__quote[data-v-10b7616a]{background:#faf0ffe6;border-left-color:#d946ef}.comment-item--c13 .comment-item__quote-icon[data-v-10b7616a]{color:#d946ef}.comment-item--c14 .comment-item__quote[data-v-10b7616a]{background:#e0f2fee6;border-left-color:#0ea5e9}.comment-item--c14 .comment-item__quote-icon[data-v-10b7616a]{color:#0ea5e9}.comment-item--c15 .comment-item__quote[data-v-10b7616a]{background:#ffedd5e6;border-left-color:#ea580c}.comment-item--c15 .comment-item__quote-icon[data-v-10b7616a]{color:#ea580c}.comment-item--c16 .comment-item__quote[data-v-10b7616a]{background:#fefce8e6;border-left-color:#ca8a04}.comment-item--c16 .comment-item__quote-icon[data-v-10b7616a]{color:#ca8a04}.comment-item--c17 .comment-item__quote[data-v-10b7616a]{background:#fee2e2e6;border-left-color:#dc2626}.comment-item--c17 .comment-item__quote-icon[data-v-10b7616a]{color:#dc2626}.comment-item--c18 .comment-item__quote[data-v-10b7616a]{background:#ccfbf1d9;border-left-color:#0d9488}.comment-item--c18 .comment-item__quote-icon[data-v-10b7616a]{color:#0d9488}.comment-item--c19 .comment-item__quote[data-v-10b7616a]{background:#f1f5f9e6;border-left-color:#64748b}.comment-item--c19 .comment-item__quote-icon[data-v-10b7616a]{color:#64748b}.comment-item__note[data-v-10b7616a]{font-size:13px;color:#374151;line-height:1.5;margin-bottom:6px;word-break:break-word}.comment-item__meta[data-v-10b7616a]{display:flex;justify-content:space-between;font-size:11px;color:#9ca3af;margin-bottom:8px}.comment-item__author[data-v-10b7616a]{font-weight:500}.comment-item__actions[data-v-10b7616a]{display:flex;gap:6px;justify-content:flex-end}.comment-btn[data-v-10b7616a]{border:none;border-radius:4px;padding:3px 8px;font-size:11px;cursor:pointer;transition:background .15s}.comment-btn--resolve[data-v-10b7616a]{background:#ecfdf5;color:#059669}.comment-btn--resolve[data-v-10b7616a]:hover{background:#d1fae5}.comment-btn--delete[data-v-10b7616a]{background:#fef2f2;color:#dc2626}.comment-btn--delete[data-v-10b7616a]:hover{background:#fee2e2}.dialog-backdrop[data-v-8cbc8293]{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:9999}.dialog[data-v-8cbc8293]{background:#fff;border-radius:10px;box-shadow:0 20px 60px #00000026,0 4px 12px #00000014;width:460px;max-width:calc(100vw - 32px);overflow:hidden}.dialog__header[data-v-8cbc8293]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid #e5e7eb}.dialog__title[data-v-8cbc8293]{margin:0;font-size:15px;font-weight:600;color:#111827}.dialog__close[data-v-8cbc8293]{border:none;background:none;font-size:14px;color:#9ca3af;cursor:pointer;padding:4px 6px;border-radius:4px;line-height:1}.dialog__close[data-v-8cbc8293]:hover{background:#f3f4f6;color:#374151}.dialog__quote[data-v-8cbc8293]{padding:12px 20px 0}.dialog__quote-label[data-v-8cbc8293]{font-size:11px;font-weight:500;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.dialog__quote-text[data-v-8cbc8293]{margin:4px 0 0;padding:8px 12px;background:#fef9c3;border-left:3px solid #fbbf24;border-radius:0 4px 4px 0;font-size:13px;color:#374151;line-height:1.5}.dialog__body[data-v-8cbc8293]{padding:16px 20px 0}.dialog__label[data-v-8cbc8293]{display:block;font-size:12px;font-weight:500;color:#374151;margin-bottom:6px}.dialog__textarea[data-v-8cbc8293]{width:100%;border:1px solid #d1d5db;border-radius:6px;padding:10px 12px;font-size:14px;font-family:inherit;resize:vertical;box-sizing:border-box;transition:border-color .15s,box-shadow .15s;outline:none;color:#111827;line-height:1.5}.dialog__textarea[data-v-8cbc8293]:focus{border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b26}.dialog__hint[data-v-8cbc8293]{margin:6px 0 0;font-size:11px;color:#9ca3af}.dialog__footer[data-v-8cbc8293]{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px}.dialog__btn[data-v-8cbc8293]{border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}.dialog__btn--cancel[data-v-8cbc8293]{background:#f3f4f6;color:#374151}.dialog__btn--cancel[data-v-8cbc8293]:hover{background:#e5e7eb}.dialog__btn--confirm[data-v-8cbc8293]{background:#f59e0b;color:#fff}.dialog__btn--confirm[data-v-8cbc8293]:hover:not(:disabled){background:#d97706}.dialog__btn--confirm[data-v-8cbc8293]:disabled{opacity:.45;cursor:not-allowed}.comment-gutter[data-v-ac6164bd]{position:absolute;top:12px;right:-300px;width:280px;pointer-events:none;display:flex;flex-direction:column}.gutter-item-wrapper[data-v-ac6164bd]{pointer-events:auto}.gutter-item[data-v-ac6164bd]{position:relative;width:100%;background:#fff;border:1px solid #e5e7eb;border-left-width:4px;border-radius:8px;padding:8px 10px;box-shadow:0 8px 18px #0000000f;cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;transition:transform .12s,box-shadow .12s,border-color .12s}.gutter-item[data-v-ac6164bd]:hover{transform:translateY(-1px);box-shadow:0 10px 22px #00000014}.gutter-item--active[data-v-ac6164bd]{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b38,0 10px 22px #00000014}.gutter-item--resolved[data-v-ac6164bd]{opacity:.6}.gutter-item__quote[data-v-ac6164bd]{font-size:12px;color:#6b7280;margin-bottom:4px}.gutter-item__note[data-v-ac6164bd]{font-size:13px;color:#374151;line-height:1.35;margin-bottom:6px;word-break:break-word}.gutter-item__meta[data-v-ac6164bd]{display:flex;justify-content:space-between;font-size:11px;color:#9ca3af}.gutter-item--c0[data-v-ac6164bd]{border-left-color:#f97316}.gutter-item--c1[data-v-ac6164bd]{border-left-color:#22c55e}.gutter-item--c2[data-v-ac6164bd]{border-left-color:#3b82f6}.gutter-item--c3[data-v-ac6164bd]{border-left-color:#a855f7}.gutter-item--c4[data-v-ac6164bd]{border-left-color:#ec4899}.gutter-item--c5[data-v-ac6164bd]{border-left-color:#14b8a6}.gutter-item--c6[data-v-ac6164bd]{border-left-color:#eab308}.gutter-item--c7[data-v-ac6164bd]{border-left-color:#f43f5e}.gutter-item--c8[data-v-ac6164bd]{border-left-color:#6366f1}.gutter-item--c9[data-v-ac6164bd]{border-left-color:#84cc16}.gutter-item--c10[data-v-ac6164bd]{border-left-color:#06b6d4}.gutter-item--c11[data-v-ac6164bd]{border-left-color:#10b981}.gutter-item--c12[data-v-ac6164bd]{border-left-color:#8b5cf6}.gutter-item--c13[data-v-ac6164bd]{border-left-color:#d946ef}.gutter-item--c14[data-v-ac6164bd]{border-left-color:#0ea5e9}.gutter-item--c15[data-v-ac6164bd]{border-left-color:#ea580c}.gutter-item--c16[data-v-ac6164bd]{border-left-color:#ca8a04}.gutter-item--c17[data-v-ac6164bd]{border-left-color:#dc2626}.gutter-item--c18[data-v-ac6164bd]{border-left-color:#0d9488}.gutter-item--c19[data-v-ac6164bd]{border-left-color:#64748b}.umo-editor-content table:has(colgroup[data-word-col-layout]) td,.umo-editor-content table:has(colgroup[data-word-col-layout]) th,.umo-editor-content table:has(colgroup[data-word-col-layout]){border:none!important;outline:none!important}.umo-editor-content table:has(colgroup col:nth-child(2)){table-layout:fixed}.umo-editor-content ul[type=disc] li>p:before,.umo-editor-content ul[type=circle] li>p:before,.umo-editor-content ul[type=square] li>p:before{content:none}.auth-page[data-v-17559b0a]{min-height:100%;display:flex;align-items:center;justify-content:center;background:#f3f4f6}.auth-card[data-v-17559b0a]{background:#fff;border-radius:12px;padding:40px 36px;width:340px;box-shadow:0 4px 24px #0000001a}.auth-title[data-v-17559b0a]{font-size:20px;font-weight:700;color:#111827;text-align:center;margin:0 0 24px}.auth-tabs[data-v-17559b0a]{display:flex;gap:0;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;margin-bottom:20px}.auth-tab[data-v-17559b0a]{flex:1;padding:8px;border:none;background:transparent;cursor:pointer;font-size:14px;color:#6b7280;transition:background .15s,color .15s}.auth-tab--active[data-v-17559b0a]{background:#3b82f6;color:#fff}.auth-form[data-v-17559b0a]{display:flex;flex-direction:column;gap:12px}.auth-input[data-v-17559b0a]{padding:10px 14px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;outline:none;transition:border-color .15s}.auth-input[data-v-17559b0a]:focus{border-color:#3b82f6}.auth-submit[data-v-17559b0a]{padding:10px;border:none;border-radius:8px;background:#3b82f6;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.auth-submit[data-v-17559b0a]:hover:not(:disabled){background:#2563eb}.auth-submit[data-v-17559b0a]:disabled{opacity:.6;cursor:not-allowed}.auth-error[data-v-17559b0a]{color:#ef4444;font-size:13px;margin:0}.app-layout[data-v-17559b0a]{display:flex;width:100%;height:100%;overflow:hidden}.editor-wrapper[data-v-17559b0a]{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.app-layout__comment-aside[data-v-17559b0a]{flex:0 1 clamp(280px,36vw,720px);min-width:0;max-width:100%;display:flex;flex-direction:column;overflow:hidden}.comment-toolbar[data-v-17559b0a]{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#fff;border-bottom:1px solid #e5e7eb;z-index:10;flex-shrink:0}.toolbar-docname[data-v-17559b0a]{flex:1;min-width:0}.toolbar-docname__input[data-v-17559b0a]{width:100%;border:1px solid transparent;border-radius:4px;padding:3px 6px;font-size:14px;font-weight:600;color:#111827;background:transparent;outline:none;transition:border-color .15s,background .15s}.toolbar-docname__input[data-v-17559b0a]:hover,.toolbar-docname__input[data-v-17559b0a]:focus{border-color:#d1d5db;background:#f9fafb}.toolbar-docname--empty[data-v-17559b0a]{font-size:13px;color:#9ca3af}.toolbar-actions[data-v-17559b0a]{display:flex;gap:8px;flex-shrink:0}.toolbar-btn[data-v-17559b0a]{display:inline-flex;align-items:center;gap:5px;border:none;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s}.toolbar-btn[data-v-17559b0a]:disabled{opacity:.5;cursor:not-allowed}.toolbar-btn__icon[data-v-17559b0a]{font-size:15px}.toolbar-btn--save[data-v-17559b0a]{background:#d1fae5;color:#065f46}.toolbar-btn--save[data-v-17559b0a]:hover:not(:disabled){background:#a7f3d0}.toolbar-btn--primary[data-v-17559b0a]{background:#fef3c7;color:#92400e}.toolbar-btn--primary[data-v-17559b0a]:hover:not(:disabled){background:#fde68a}.toolbar-btn--ai[data-v-17559b0a]{background:#ede9fe;color:#5b21b6}.toolbar-btn--ai[data-v-17559b0a]:hover:not(:disabled){background:#ddd6fe}.umo-editor-instance[data-v-17559b0a]{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.umo-editor-stage[data-v-17559b0a]{position:relative;flex:1;min-height:0;overflow:hidden}.umo-editor-stage[data-v-17559b0a]:fullscreen{width:100vw;height:100vh;background:#fff}.editor-placeholder[data-v-17559b0a]{flex:1;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:14px}.umo-custom-huge-btn[data-v-17559b0a]{display:inline-flex;align-items:center;justify-content:center;flex-direction:column;width:auto;height:56px;padding:0 5px;margin:0;border:none;border-radius:var(--umo-radius, 3px);background:transparent;cursor:pointer;transition:background .2s;white-space:nowrap}.umo-custom-huge-btn[data-v-17559b0a]:hover:not(:disabled){background:var(--umo-button-hover-background, rgba(0, 0, 0, .06))}.umo-custom-huge-btn[data-v-17559b0a]:disabled{opacity:.5;cursor:not-allowed}.umo-custom-huge-btn__icon[data-v-17559b0a]{display:flex;align-items:center;justify-content:center;color:var(--umo-text-color, #3d3d3d);margin-top:3px}.umo-custom-huge-btn__icon svg[data-v-17559b0a]{width:24px;height:24px}.umo-custom-huge-btn__text[data-v-17559b0a]{display:block;font-size:12px;color:var(--umo-text-color, #3d3d3d);margin-top:2px;line-height:1.2}.html-dialog-mask[data-v-17559b0a]{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:9999}.html-dialog[data-v-17559b0a]{background:#1e1e2e;border-radius:10px;width:min(860px,92vw);max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0006}.html-dialog__header[data-v-17559b0a]{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #313244;flex-shrink:0}.html-dialog__title[data-v-17559b0a]{font-size:14px;font-weight:600;color:#cdd6f4}.html-dialog__close[data-v-17559b0a]{background:none;border:none;color:#6c7086;font-size:16px;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1;transition:color .15s,background .15s}.html-dialog__close[data-v-17559b0a]:hover{color:#cdd6f4;background:#313244}.html-dialog__toolbar[data-v-17559b0a]{display:flex;justify-content:flex-end;padding:8px 16px;border-bottom:1px solid #313244;flex-shrink:0}.html-dialog__copy-btn[data-v-17559b0a]{font-size:12px;padding:4px 14px;border-radius:5px;border:1px solid #45475a;background:#313244;color:#cdd6f4;cursor:pointer;transition:background .15s,border-color .15s}.html-dialog__copy-btn[data-v-17559b0a]:hover{background:#45475a;border-color:#89b4fa;color:#89b4fa}.html-dialog__content[data-v-17559b0a]{flex:1;overflow:auto;margin:0;padding:16px 20px;font-family:Fira Code,Consolas,Courier New,monospace;font-size:12.5px;line-height:1.7;color:#a6e3a1;white-space:pre-wrap;word-break:break-all}[data-v-17559b0a] table:has(colgroup[data-word-col-layout]) td,[data-v-17559b0a] table:has(colgroup[data-word-col-layout]) th,[data-v-17559b0a] table:has(colgroup[data-word-col-layout]){border:none!important;outline:none!important}.complex-comment-panel[data-v-de917c6e]{box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:100%;border-left:1px solid #e5e7eb;background:#f3f4f6;display:flex;flex-direction:column;overflow:hidden}.complex-comment-panel__header[data-v-de917c6e]{padding:12px 14px 10px;background:#fff;border-bottom:1px solid #e5e7eb}.complex-comment-panel__title[data-v-de917c6e]{margin:0 0 10px;font-size:16px;font-weight:600;color:#111827}.complex-comment-panel__toolbar[data-v-de917c6e]{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.complex-comment-panel__download[data-v-de917c6e]{border:none;border-radius:4px;padding:5px 14px;font-size:13px;font-weight:500;cursor:pointer;background:#2563eb;color:#fff}.complex-comment-panel__download[data-v-de917c6e]:hover{background:#1d4ed8}.complex-comment-panel__risk-toggle[data-v-de917c6e]{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#4b5563;cursor:pointer;-webkit-user-select:none;user-select:none}.complex-comment-panel__risk-toggle input[data-v-de917c6e]{width:14px;height:14px;cursor:pointer}.complex-comment-panel__empty[data-v-de917c6e]{flex:1;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:14px}.complex-comment-panel__tabs[data-v-de917c6e]{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px;background:#fff;border-bottom:1px solid #e5e7eb}.complex-comment-panel__tab[data-v-de917c6e]{border:1px solid #e5e7eb;background:#fff;border-radius:4px;padding:4px 10px;font-size:12px;color:#6b7280;cursor:pointer}.complex-comment-panel__tab[data-v-de917c6e]:hover{border-color:#93c5fd;color:#2563eb}.complex-comment-panel__tab--active[data-v-de917c6e]{border-color:#2563eb;color:#2563eb;background:#eff6ff;font-weight:500}.complex-comment-panel__body[data-v-de917c6e]{flex:1;overflow-y:auto;padding:10px 12px 16px;display:flex;flex-direction:column;gap:14px}.complex-comment-panel__section-head[data-v-de917c6e]{margin-bottom:8px}.complex-comment-panel__section-title[data-v-de917c6e]{font-size:14px;font-weight:600;color:#111827}.complex-comment-panel__cards[data-v-de917c6e]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.audit-card[data-v-de917c6e]{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px 14px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.audit-card[data-v-de917c6e]:hover{border-color:#d1d5db;box-shadow:0 1px 3px #0000000f}.audit-card--active[data-v-de917c6e]{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb33}.audit-card__head[data-v-de917c6e]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.audit-card__point[data-v-de917c6e]{font-size:14px;font-weight:600;color:#111827;line-height:1.4;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-card__badge[data-v-de917c6e]{flex-shrink:0;font-size:12px;font-weight:500;padding:2px 8px;border-radius:4px;white-space:nowrap}.audit-card__badge--risk[data-v-de917c6e]{background:#fee2e2;color:#dc2626}.audit-card__badge--ok[data-v-de917c6e]{background:#22c55e;color:#fff}.audit-card__badge--muted[data-v-de917c6e]{background:#f3f4f6;color:#6b7280}.audit-card__block[data-v-de917c6e]{margin-bottom:4px}.audit-card__label[data-v-de917c6e]{font-size:12px;color:#9ca3af;margin-bottom:6px}.audit-card__label--strong[data-v-de917c6e]{color:#111827;font-weight:500}.audit-card__quote[data-v-de917c6e]{font-size:13px;color:#6b7280;line-height:1.5;padding:8px 10px 8px 12px;border-left:3px solid #d1d5db;background:#f9fafb;border-radius:0 4px 4px 0;word-break:break-word}.audit-card__locate[data-v-de917c6e]{margin-top:8px;border:none;background:none;padding:0;font-size:12px;color:#2563eb;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.audit-card__locate[data-v-de917c6e]:hover{text-decoration:underline}.audit-card__locate-icon[data-v-de917c6e]{font-size:14px;line-height:1;opacity:.85}.audit-card__divider[data-v-de917c6e]{height:1px;background:#e5e7eb;margin:12px 0}.audit-card__block--desc[data-v-de917c6e]{margin-bottom:0}.audit-card__desc[data-v-de917c6e]{margin:0;font-size:13px;color:#374151;line-height:1.55;word-break:break-word}
|
package/dist/index.js
CHANGED
|
@@ -3491,16 +3491,16 @@ class ol {
|
|
|
3491
3491
|
}
|
|
3492
3492
|
let d = l.size + e - (s.content.size - s.openEnd);
|
|
3493
3493
|
for (; c < l.childCount; ) {
|
|
3494
|
-
let g = l.child(c),
|
|
3495
|
-
if (!
|
|
3494
|
+
let g = l.child(c), w = f.matchType(g.type);
|
|
3495
|
+
if (!w)
|
|
3496
3496
|
break;
|
|
3497
|
-
c++, (c > 1 || a == 0 || g.content.size) && (f =
|
|
3497
|
+
c++, (c > 1 || a == 0 || g.content.size) && (f = w, u.push(Ro(g.mark(y.allowedMarks(g.marks)), c == 1 ? a : 0, c == l.childCount ? d : -1)));
|
|
3498
3498
|
}
|
|
3499
3499
|
let h = c == l.childCount;
|
|
3500
3500
|
h || (d = -1), this.placed = yt(this.placed, t, S.from(u)), this.frontier[t].match = f, h && d < 0 && n && n.type == this.frontier[this.depth].type && this.frontier.length > 1 && this.closeFrontierNode();
|
|
3501
|
-
for (let g = 0,
|
|
3502
|
-
let v =
|
|
3503
|
-
this.frontier.push({ type: v.type, match: v.contentMatchAt(v.childCount) }),
|
|
3501
|
+
for (let g = 0, w = l; g < d; g++) {
|
|
3502
|
+
let v = w.lastChild;
|
|
3503
|
+
this.frontier.push({ type: v.type, match: v.contentMatchAt(v.childCount) }), w = v.content;
|
|
3504
3504
|
}
|
|
3505
3505
|
this.unplaced = h ? e == 0 ? T.empty : new T(gt(s.content, e - 1, 1), e - 1, d < 0 ? s.openEnd : e - 1) : new T(gt(s.content, e, c), s.openStart, s.openEnd);
|
|
3506
3506
|
}
|
|
@@ -4409,8 +4409,8 @@ function Go(r, e, t, n) {
|
|
|
4409
4409
|
for (let v = s.length - 1; v >= 0; v--)
|
|
4410
4410
|
h = S.from(s[v].create(null, h));
|
|
4411
4411
|
h = S.from(o.copy(h));
|
|
4412
|
-
let g = r.tr.step(new Se(e.pos - 1, d, e.pos, d, new T(h, 1, 0), s.length, !0)),
|
|
4413
|
-
|
|
4412
|
+
let g = r.tr.step(new Se(e.pos - 1, d, e.pos, d, new T(h, 1, 0), s.length, !0)), w = g.doc.resolve(d + 2 * s.length);
|
|
4413
|
+
w.nodeAfter && w.nodeAfter.type == o.type && Ue(g.doc, w.pos) && g.join(w.pos), t(g.scrollIntoView());
|
|
4414
4414
|
}
|
|
4415
4415
|
return !0;
|
|
4416
4416
|
}
|
|
@@ -4421,15 +4421,15 @@ function Go(r, e, t, n) {
|
|
|
4421
4421
|
let d = o, h = [];
|
|
4422
4422
|
for (; h.push(d), !d.isTextblock; )
|
|
4423
4423
|
d = d.lastChild;
|
|
4424
|
-
let g = i,
|
|
4424
|
+
let g = i, w = 1;
|
|
4425
4425
|
for (; !g.isTextblock; g = g.firstChild)
|
|
4426
|
-
|
|
4426
|
+
w++;
|
|
4427
4427
|
if (d.canReplace(d.childCount, d.childCount, g.content)) {
|
|
4428
4428
|
if (t) {
|
|
4429
4429
|
let v = S.empty;
|
|
4430
4430
|
for (let A = h.length - 1; A >= 0; A--)
|
|
4431
4431
|
v = S.from(h[A].copy(v));
|
|
4432
|
-
let I = r.tr.step(new Se(e.pos - h.length, e.pos + i.nodeSize, e.pos +
|
|
4432
|
+
let I = r.tr.step(new Se(e.pos - h.length, e.pos + i.nodeSize, e.pos + w, e.pos + i.nodeSize - w, new T(v, h.length, 0), 0, !0));
|
|
4433
4433
|
t(I.scrollIntoView());
|
|
4434
4434
|
}
|
|
4435
4435
|
return !0;
|
|
@@ -4628,7 +4628,7 @@ class Al {
|
|
|
4628
4628
|
createChain(e, t = !0) {
|
|
4629
4629
|
const { rawCommands: n, editor: o, state: i } = this, { view: s } = o, l = [], a = !!e, c = e || i.tr, u = () => (!a && t && !c.getMeta("preventDispatch") && !this.hasCustomState && s.dispatch(c), l.every((y) => y === !0)), f = {
|
|
4630
4630
|
...Object.fromEntries(Object.entries(n).map(([y, d]) => [y, (...g) => {
|
|
4631
|
-
const
|
|
4631
|
+
const w = this.buildProps(c, t), v = d(...g)(w);
|
|
4632
4632
|
return l.push(v), f;
|
|
4633
4633
|
}])),
|
|
4634
4634
|
run: u
|
|
@@ -5283,10 +5283,10 @@ function za(r, e, t = {}) {
|
|
|
5283
5283
|
const l = [];
|
|
5284
5284
|
if (o.forEach(({ $from: f, $to: y }) => {
|
|
5285
5285
|
const d = f.pos, h = y.pos;
|
|
5286
|
-
r.doc.nodesBetween(d, h, (g,
|
|
5286
|
+
r.doc.nodesBetween(d, h, (g, w) => {
|
|
5287
5287
|
if (!g.isText && !g.marks.length)
|
|
5288
5288
|
return;
|
|
5289
|
-
const v = Math.max(d,
|
|
5289
|
+
const v = Math.max(d, w), I = Math.min(h, w + g.nodeSize), A = I - v;
|
|
5290
5290
|
s += A, l.push(...g.marks.map((M) => ({
|
|
5291
5291
|
mark: M,
|
|
5292
5292
|
from: v,
|
|
@@ -5423,8 +5423,8 @@ const La = ({ keepMarks: r = !0 } = {}) => ({ tr: e, state: t, dispatch: n, edit
|
|
|
5423
5423
|
}
|
|
5424
5424
|
] : void 0), n) {
|
|
5425
5425
|
if (h && (i instanceof H && e.deleteSelection(), e.split(e.mapping.map(l.pos), 1, d), y && !f && !l.parentOffset && l.parent.type !== y)) {
|
|
5426
|
-
const g = e.mapping.map(l.before()),
|
|
5427
|
-
l.node(-1).canReplaceWith(
|
|
5426
|
+
const g = e.mapping.map(l.before()), w = e.doc.resolve(g);
|
|
5427
|
+
l.node(-1).canReplaceWith(w.index(), w.index() + 1, y) && e.setNodeMarkup(e.mapping.map(l.before()), y);
|
|
5428
5428
|
}
|
|
5429
5429
|
r && Ur(t, o.extensionManager.splittableMarks), e.scrollIntoView();
|
|
5430
5430
|
}
|
|
@@ -5470,7 +5470,7 @@ const La = ({ keepMarks: r = !0 } = {}) => ({ tr: e, state: t, dispatch: n, edit
|
|
|
5470
5470
|
...e
|
|
5471
5471
|
};
|
|
5472
5472
|
t.delete(a.pos, c.pos);
|
|
5473
|
-
const
|
|
5473
|
+
const w = d ? [
|
|
5474
5474
|
{ type: l, attrs: h },
|
|
5475
5475
|
{ type: d, attrs: g }
|
|
5476
5476
|
] : [{ type: l, attrs: h }];
|
|
@@ -5478,7 +5478,7 @@ const La = ({ keepMarks: r = !0 } = {}) => ({ tr: e, state: t, dispatch: n, edit
|
|
|
5478
5478
|
return !1;
|
|
5479
5479
|
if (o) {
|
|
5480
5480
|
const { selection: v, storedMarks: I } = n, { splittableMarks: A } = i.extensionManager, M = I || v.$to.parentOffset && v.$from.marks();
|
|
5481
|
-
if (t.split(a.pos, 2,
|
|
5481
|
+
if (t.split(a.pos, 2, w).scrollIntoView(), !M || !o)
|
|
5482
5482
|
return !0;
|
|
5483
5483
|
const j = M.filter((re) => A.includes(re.type.name));
|
|
5484
5484
|
t.ensureMarks(j);
|
|
@@ -5503,7 +5503,7 @@ const La = ({ keepMarks: r = !0 } = {}) => ({ tr: e, state: t, dispatch: n, edit
|
|
|
5503
5503
|
const o = r.doc.nodeAt(n);
|
|
5504
5504
|
return t.node.type === o?.type && Ue(r.doc, n) && r.join(n), !0;
|
|
5505
5505
|
}, Wa = (r, e, t, n = {}) => ({ editor: o, tr: i, state: s, dispatch: l, chain: a, commands: c, can: u }) => {
|
|
5506
|
-
const { extensions: f, splittableMarks: y } = o.extensionManager, d = ee(r, s.schema), h = ee(e, s.schema), { selection: g, storedMarks:
|
|
5506
|
+
const { extensions: f, splittableMarks: y } = o.extensionManager, d = ee(r, s.schema), h = ee(e, s.schema), { selection: g, storedMarks: w } = s, { $from: v, $to: I } = g, A = v.blockRange(I), M = w || g.$to.parentOffset && g.$from.marks();
|
|
5507
5507
|
if (!A)
|
|
5508
5508
|
return !1;
|
|
5509
5509
|
const j = sr((re) => Hr(re.type.name, f))(g);
|
|
@@ -5559,7 +5559,7 @@ const La = ({ keepMarks: r = !0 } = {}) => ({ tr: e, state: t, dispatch: n, edit
|
|
|
5559
5559
|
return !0;
|
|
5560
5560
|
if (u && s) {
|
|
5561
5561
|
let { from: y, to: d } = l;
|
|
5562
|
-
const h = (i = c.marks().find((
|
|
5562
|
+
const h = (i = c.marks().find((w) => w.type === a)) === null || i === void 0 ? void 0 : i.attrs, g = Yo(c, a, h);
|
|
5563
5563
|
g && (y = g.from, d = g.to), t.removeMark(y, d, a);
|
|
5564
5564
|
} else
|
|
5565
5565
|
f.forEach((y) => {
|
|
@@ -5572,15 +5572,15 @@ const La = ({ keepMarks: r = !0 } = {}) => ({ tr: e, state: t, dispatch: n, edit
|
|
|
5572
5572
|
return l ? (l === "node" && (i = ee(r, n.schema)), l === "mark" && (s = $e(r, n.schema)), o && t.selection.ranges.forEach((a) => {
|
|
5573
5573
|
const c = a.$from.pos, u = a.$to.pos;
|
|
5574
5574
|
let f, y, d, h;
|
|
5575
|
-
t.selection.empty ? n.doc.nodesBetween(c, u, (g,
|
|
5576
|
-
i && i === g.type && (d = Math.max(
|
|
5577
|
-
}) : n.doc.nodesBetween(c, u, (g,
|
|
5578
|
-
|
|
5575
|
+
t.selection.empty ? n.doc.nodesBetween(c, u, (g, w) => {
|
|
5576
|
+
i && i === g.type && (d = Math.max(w, c), h = Math.min(w + g.nodeSize, u), f = w, y = g);
|
|
5577
|
+
}) : n.doc.nodesBetween(c, u, (g, w) => {
|
|
5578
|
+
w < c && i && i === g.type && (d = Math.max(w, c), h = Math.min(w + g.nodeSize, u), f = w, y = g), w >= c && w <= u && (i && i === g.type && t.setNodeMarkup(w, void 0, {
|
|
5579
5579
|
...g.attrs,
|
|
5580
5580
|
...e
|
|
5581
5581
|
}), s && g.marks.length && g.marks.forEach((v) => {
|
|
5582
5582
|
if (s === v.type) {
|
|
5583
|
-
const I = Math.max(
|
|
5583
|
+
const I = Math.max(w, c), A = Math.min(w + g.nodeSize, u);
|
|
5584
5584
|
t.addMark(I, A, s.create({
|
|
5585
5585
|
...v.attrs,
|
|
5586
5586
|
...e
|
|
@@ -5738,7 +5738,7 @@ de.create({
|
|
|
5738
5738
|
() => s.undoInputRule(),
|
|
5739
5739
|
// maybe convert first text block node to default node
|
|
5740
5740
|
() => s.command(({ tr: l }) => {
|
|
5741
|
-
const { selection: a, doc: c } = l, { empty: u, $anchor: f } = a, { pos: y, parent: d } = f, h = f.parent.isTextblock && y > 0 ? l.doc.resolve(y - 1) : f, g = h.parent.type.spec.isolating,
|
|
5741
|
+
const { selection: a, doc: c } = l, { empty: u, $anchor: f } = a, { pos: y, parent: d } = f, h = f.parent.isTextblock && y > 0 ? l.doc.resolve(y - 1) : f, g = h.parent.type.spec.isolating, w = f.pos - f.parentOffset, v = g && h.parent.childCount === 1 ? w === f.pos : F.atStart(c).from === y;
|
|
5742
5742
|
return !u || !d.type.isTextblock || d.textContent.length || !v || v && f.parent.type.name === "paragraph" ? !1 : s.clearNodes();
|
|
5743
5743
|
}),
|
|
5744
5744
|
() => s.deleteSelection(),
|
|
@@ -7667,8 +7667,8 @@ const Cc = new bc("commentGutter"), Tc = de.create({
|
|
|
7667
7667
|
a();
|
|
7668
7668
|
const u = o.dom;
|
|
7669
7669
|
if (!u) return;
|
|
7670
|
-
const f = r?.(), d = e?.() || f || u, h = d.getBoundingClientRect(), g = typeof d.scrollTop == "number" ? d.scrollTop : 0,
|
|
7671
|
-
|
|
7670
|
+
const f = r?.(), d = e?.() || f || u, h = d.getBoundingClientRect(), g = typeof d.scrollTop == "number" ? d.scrollTop : 0, w = u.querySelectorAll("span[data-comment-id]") || [], v = /* @__PURE__ */ new Map();
|
|
7671
|
+
w.forEach((A) => {
|
|
7672
7672
|
const M = A.getAttribute("data-comment-id");
|
|
7673
7673
|
if (!M) return;
|
|
7674
7674
|
const j = A.getClientRects()[0] || A.getBoundingClientRect();
|
|
@@ -7764,7 +7764,7 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
7764
7764
|
return crypto.randomUUID();
|
|
7765
7765
|
const m = new Uint8Array(16);
|
|
7766
7766
|
return crypto.getRandomValues(m), m[6] = m[6] & 15 | 64, m[8] = m[8] & 63 | 128, [...m].map(
|
|
7767
|
-
(k,
|
|
7767
|
+
(k, x) => ([4, 6, 8, 10].includes(x) ? "-" : "") + k.toString(16).padStart(2, "0")
|
|
7768
7768
|
).join("");
|
|
7769
7769
|
}
|
|
7770
7770
|
const o = $(!1);
|
|
@@ -7791,20 +7791,20 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
7791
7791
|
}
|
|
7792
7792
|
const d = $(""), h = /* @__PURE__ */ new Map();
|
|
7793
7793
|
let g = null;
|
|
7794
|
-
const
|
|
7794
|
+
const w = (m) => {
|
|
7795
7795
|
clearTimeout(g), g = setTimeout(() => {
|
|
7796
7796
|
const k = m ?? Q();
|
|
7797
7797
|
if (!k || M.value.length === 0 && h.size === 0) return;
|
|
7798
|
-
const
|
|
7798
|
+
const x = /* @__PURE__ */ new Set();
|
|
7799
7799
|
k.state.doc.descendants((C) => {
|
|
7800
7800
|
C.marks.forEach((E) => {
|
|
7801
|
-
E.type.name === "comment" && E.attrs.commentId &&
|
|
7801
|
+
E.type.name === "comment" && E.attrs.commentId && x.add(E.attrs.commentId);
|
|
7802
7802
|
});
|
|
7803
7803
|
});
|
|
7804
7804
|
for (const [C, { comment: E }] of h)
|
|
7805
|
-
|
|
7805
|
+
x.has(C) && (h.delete(C), yi(C), M.value.push(E));
|
|
7806
7806
|
M.value.filter(
|
|
7807
|
-
(C) => !
|
|
7807
|
+
(C) => !x.has(C.id) && !h.has(C.id)
|
|
7808
7808
|
).forEach((C) => {
|
|
7809
7809
|
M.value = M.value.filter((E) => E.id !== C.id), h.set(C.id, { comment: { ...C } }), gi(C.id);
|
|
7810
7810
|
});
|
|
@@ -7812,16 +7812,16 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
7812
7812
|
}, v = (m) => {
|
|
7813
7813
|
const k = m ?? Q();
|
|
7814
7814
|
if (!k || M.value.length === 0) return;
|
|
7815
|
-
const
|
|
7815
|
+
const x = /* @__PURE__ */ new Map();
|
|
7816
7816
|
k.state.doc.descendants((b) => {
|
|
7817
7817
|
b.marks.forEach((C) => {
|
|
7818
7818
|
if (C.type.name === "comment" && C.attrs.commentId) {
|
|
7819
7819
|
const E = C.attrs.colorIndex ?? 0, N = Number.parseInt(E, 10), R = Number.isNaN(N) || !Number.isFinite(N) ? 0 : (N % G + G) % G;
|
|
7820
|
-
|
|
7820
|
+
x.set(C.attrs.commentId, R);
|
|
7821
7821
|
}
|
|
7822
7822
|
});
|
|
7823
|
-
}),
|
|
7824
|
-
(b) =>
|
|
7823
|
+
}), x.size !== 0 && (M.value = M.value.map(
|
|
7824
|
+
(b) => x.has(b.id) ? { ...b, colorIndex: x.get(b.id) } : b
|
|
7825
7825
|
));
|
|
7826
7826
|
}, I = $(null);
|
|
7827
7827
|
let A = null;
|
|
@@ -7879,17 +7879,17 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
7879
7879
|
if (k)
|
|
7880
7880
|
await Qi(k, M.value, d.value || "文档");
|
|
7881
7881
|
else {
|
|
7882
|
-
const
|
|
7883
|
-
if (!
|
|
7884
|
-
await Tr(
|
|
7882
|
+
const x = m?.getHTML() ?? I.value?.getHTML();
|
|
7883
|
+
if (!x) throw new Error("编辑器内容为空,无法导出");
|
|
7884
|
+
await Tr(x, M.value, d.value || "文档");
|
|
7885
7885
|
}
|
|
7886
7886
|
} catch (k) {
|
|
7887
7887
|
try {
|
|
7888
|
-
const
|
|
7889
|
-
if (!
|
|
7890
|
-
await Tr(
|
|
7891
|
-
} catch (
|
|
7892
|
-
console.error("导出 Word 失败:",
|
|
7888
|
+
const x = m?.getHTML() ?? I.value?.getHTML();
|
|
7889
|
+
if (!x) throw k;
|
|
7890
|
+
await Tr(x, M.value, d.value || "文档");
|
|
7891
|
+
} catch (x) {
|
|
7892
|
+
console.error("导出 Word 失败:", x), alert("导出 Word 失败,请稍后重试");
|
|
7893
7893
|
}
|
|
7894
7894
|
} finally {
|
|
7895
7895
|
lt.value = !1;
|
|
@@ -7900,23 +7900,23 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
7900
7900
|
at.value = !0;
|
|
7901
7901
|
try {
|
|
7902
7902
|
const k = m?.getJSON?.();
|
|
7903
|
-
let
|
|
7903
|
+
let x;
|
|
7904
7904
|
if (k)
|
|
7905
|
-
|
|
7905
|
+
x = await Xi(k, M.value, d.value || "文档");
|
|
7906
7906
|
else {
|
|
7907
7907
|
const b = m?.getHTML() ?? I.value?.getHTML();
|
|
7908
7908
|
if (!b) throw new Error("编辑器内容为空,无法导出");
|
|
7909
|
-
|
|
7909
|
+
x = await Mr(b, d.value || "文档");
|
|
7910
7910
|
}
|
|
7911
|
-
Er(
|
|
7911
|
+
Er(x, `${d.value || "文档"}.docx`);
|
|
7912
7912
|
} catch (k) {
|
|
7913
7913
|
try {
|
|
7914
|
-
const
|
|
7915
|
-
if (!
|
|
7916
|
-
const b = await Mr(
|
|
7914
|
+
const x = m?.getHTML() ?? I.value?.getHTML();
|
|
7915
|
+
if (!x) throw k;
|
|
7916
|
+
const b = await Mr(x, d.value || "文档");
|
|
7917
7917
|
Er(b, `${d.value || "文档"}.docx`);
|
|
7918
|
-
} catch (
|
|
7919
|
-
console.error("Word 流导出失败:",
|
|
7918
|
+
} catch (x) {
|
|
7919
|
+
console.error("Word 流导出失败:", x), alert("Word 流导出失败,请稍后重试");
|
|
7920
7920
|
}
|
|
7921
7921
|
} finally {
|
|
7922
7922
|
at.value = !1;
|
|
@@ -7926,7 +7926,7 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
7926
7926
|
}, ur = async (m) => {
|
|
7927
7927
|
At.value = !0;
|
|
7928
7928
|
try {
|
|
7929
|
-
const k = pr.value?.onFileUpload,
|
|
7929
|
+
const k = pr.value?.onFileUpload, x = typeof k == "function" ? {
|
|
7930
7930
|
uploadImageFile: async (q) => {
|
|
7931
7931
|
const he = await k(q);
|
|
7932
7932
|
return { url: he?.url ?? "", id: he?.id };
|
|
@@ -7934,9 +7934,9 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
7934
7934
|
} : void 0;
|
|
7935
7935
|
let b = null;
|
|
7936
7936
|
try {
|
|
7937
|
-
b = await Yi(m,
|
|
7937
|
+
b = await Yi(m, x);
|
|
7938
7938
|
} catch (q) {
|
|
7939
|
-
console.warn("[Word 导入] JSON 导入失败,回退到 HTML:", q), b = await Zi(m,
|
|
7939
|
+
console.warn("[Word 导入] JSON 导入失败,回退到 HTML:", q), b = await Zi(m, x);
|
|
7940
7940
|
}
|
|
7941
7941
|
let C = Q();
|
|
7942
7942
|
for (let q = 0; q < 40 && !C; q++)
|
|
@@ -7982,7 +7982,7 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
7982
7982
|
function Rt(m) {
|
|
7983
7983
|
return typeof m != "string" ? "" : m.replace(/[\u200B\u200C\u200D\uFEFF]/g, " ").trim().replace(/\s+/g, " ").replace(/[\uFF01-\uFF5E]/g, (k) => String.fromCharCode(k.charCodeAt(0) - 65248));
|
|
7984
7984
|
}
|
|
7985
|
-
const Ei = (m, k,
|
|
7985
|
+
const Ei = (m, k, x, b = 0, C = {}) => {
|
|
7986
7986
|
const E = k.trim();
|
|
7987
7987
|
if (!E) return !1;
|
|
7988
7988
|
const { doc: N } = m.state, R = Rt(k);
|
|
@@ -8050,32 +8050,32 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8050
8050
|
if (se) {
|
|
8051
8051
|
const D = wr(!0), U = he(D);
|
|
8052
8052
|
if (U)
|
|
8053
|
-
return m.chain().setTextSelection(U).addComment(
|
|
8053
|
+
return m.chain().setTextSelection(U).addComment(x, b).run(), !0;
|
|
8054
8054
|
}
|
|
8055
8055
|
const Fi = wr(!1), xr = q(Fi);
|
|
8056
8056
|
if (xr)
|
|
8057
|
-
return m.chain().setTextSelection(xr).addComment(
|
|
8057
|
+
return m.chain().setTextSelection(xr).addComment(x, b).run(), !0;
|
|
8058
8058
|
if (se) {
|
|
8059
8059
|
const D = Dt(R, !0), U = he(D);
|
|
8060
8060
|
if (U)
|
|
8061
|
-
return m.chain().setTextSelection(U).addComment(
|
|
8061
|
+
return m.chain().setTextSelection(U).addComment(x, b).run(), !0;
|
|
8062
8062
|
}
|
|
8063
8063
|
let Tn = Dt(R, !1);
|
|
8064
8064
|
const vr = q(Tn);
|
|
8065
8065
|
if (vr)
|
|
8066
|
-
return m.chain().setTextSelection(vr).addComment(
|
|
8066
|
+
return m.chain().setTextSelection(vr).addComment(x, b).run(), !0;
|
|
8067
8067
|
const Sr = Math.min(30, Math.max(8, Math.floor(R.length * 0.6)));
|
|
8068
8068
|
if (Sr < R.length) {
|
|
8069
8069
|
const D = R.slice(0, Sr);
|
|
8070
8070
|
if (se) {
|
|
8071
8071
|
const z = Dt(D, !0), X = q(z);
|
|
8072
8072
|
if (X)
|
|
8073
|
-
return m.chain().setTextSelection(X).addComment(
|
|
8073
|
+
return m.chain().setTextSelection(X).addComment(x, b).run(), !0;
|
|
8074
8074
|
}
|
|
8075
8075
|
Tn = Dt(D, !1);
|
|
8076
8076
|
const U = q(Tn);
|
|
8077
8077
|
if (U)
|
|
8078
|
-
return m.chain().setTextSelection(U).addComment(
|
|
8078
|
+
return m.chain().setTextSelection(U).addComment(x, b).run(), !0;
|
|
8079
8079
|
}
|
|
8080
8080
|
try {
|
|
8081
8081
|
const D = m.state.doc.textBetween(0, m.state.doc.content.size, `
|
|
@@ -8090,8 +8090,8 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8090
8090
|
}
|
|
8091
8091
|
return !1;
|
|
8092
8092
|
};
|
|
8093
|
-
async function dr(m, k,
|
|
8094
|
-
const b =
|
|
8093
|
+
async function dr(m, k, x = {}) {
|
|
8094
|
+
const b = x.defaultAuthor ?? "智能审核";
|
|
8095
8095
|
let C = 0;
|
|
8096
8096
|
const E = [];
|
|
8097
8097
|
for (const N of k) {
|
|
@@ -8124,16 +8124,16 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8124
8124
|
};
|
|
8125
8125
|
}
|
|
8126
8126
|
function hr(m, k) {
|
|
8127
|
-
let
|
|
8127
|
+
let x = 0, b = !1;
|
|
8128
8128
|
for (let C = 0; C < m.length; C++)
|
|
8129
8129
|
if (fr(m[C]) === " ") {
|
|
8130
8130
|
if (!b) {
|
|
8131
|
-
if (
|
|
8132
|
-
|
|
8131
|
+
if (x === k) return C;
|
|
8132
|
+
x++, b = !0;
|
|
8133
8133
|
}
|
|
8134
8134
|
} else {
|
|
8135
|
-
if (
|
|
8136
|
-
|
|
8135
|
+
if (x === k) return C;
|
|
8136
|
+
x++, b = !1;
|
|
8137
8137
|
}
|
|
8138
8138
|
return m.length;
|
|
8139
8139
|
}
|
|
@@ -8171,8 +8171,8 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8171
8171
|
ct.value = !0;
|
|
8172
8172
|
try {
|
|
8173
8173
|
Sn.value = JSON.stringify(k, null, 2), Bt.value = !1, Ft.value = !0;
|
|
8174
|
-
} catch (
|
|
8175
|
-
console.error("导出 JSON 失败:",
|
|
8174
|
+
} catch (x) {
|
|
8175
|
+
console.error("导出 JSON 失败:", x), alert("导出 JSON 失败,请稍后重试");
|
|
8176
8176
|
} finally {
|
|
8177
8177
|
ct.value = !1;
|
|
8178
8178
|
}
|
|
@@ -8216,10 +8216,10 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8216
8216
|
// return await requestSave({ silent: true })
|
|
8217
8217
|
// },
|
|
8218
8218
|
onChanged: ({ editor: m }) => {
|
|
8219
|
-
|
|
8219
|
+
w(m);
|
|
8220
8220
|
}
|
|
8221
8221
|
})), pr = ue(() => {
|
|
8222
|
-
const m = f ?? {}, k = Array.isArray(m.extensions) ? m.extensions : [],
|
|
8222
|
+
const m = f ?? {}, k = Array.isArray(m.extensions) ? m.extensions : [], x = zi(), b = [...k, ...x], C = m.cdnUrl ?? "/node_modules/@umoteam/editor-external", E = {
|
|
8223
8223
|
...m,
|
|
8224
8224
|
cdnUrl: C,
|
|
8225
8225
|
disableExtensions: ["import-word"],
|
|
@@ -8244,12 +8244,12 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8244
8244
|
getEditor: () => Q(),
|
|
8245
8245
|
importDocxFile: Ti,
|
|
8246
8246
|
setContent: (m, k = !1) => {
|
|
8247
|
-
const
|
|
8248
|
-
return
|
|
8247
|
+
const x = Q();
|
|
8248
|
+
return x?.commands?.setContent ? (x.commands.setContent(m, !!k), !0) : !1;
|
|
8249
8249
|
},
|
|
8250
8250
|
setComments: async (m, k) => {
|
|
8251
|
-
const
|
|
8252
|
-
if (!
|
|
8251
|
+
const x = Q(), b = Array.isArray(m) ? m : [];
|
|
8252
|
+
if (!x)
|
|
8253
8253
|
return {
|
|
8254
8254
|
ok: !1,
|
|
8255
8255
|
applied: 0,
|
|
@@ -8259,13 +8259,13 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8259
8259
|
if (k?.replace) {
|
|
8260
8260
|
const R = M.value.map((se) => se.id);
|
|
8261
8261
|
for (const se of R)
|
|
8262
|
-
|
|
8262
|
+
x.commands.removeComment(se);
|
|
8263
8263
|
mi(), h.clear(), gn(null), await mn(void 0, []);
|
|
8264
8264
|
}
|
|
8265
|
-
const { applied: C, skipped: E, skippedItems: N } = await dr(
|
|
8265
|
+
const { applied: C, skipped: E, skippedItems: N } = await dr(x, b, {
|
|
8266
8266
|
defaultAuthor: "智能审核"
|
|
8267
8267
|
});
|
|
8268
|
-
return await Hi(), v(
|
|
8268
|
+
return await Hi(), v(x), w(x), {
|
|
8269
8269
|
ok: !0,
|
|
8270
8270
|
applied: C,
|
|
8271
8271
|
skipped: E,
|
|
@@ -8276,19 +8276,19 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8276
8276
|
});
|
|
8277
8277
|
function mr(m) {
|
|
8278
8278
|
!m || !m.querySelectorAll || m.querySelectorAll("table").forEach((k) => {
|
|
8279
|
-
const
|
|
8280
|
-
|
|
8279
|
+
const x = k.querySelector("colgroup"), b = k.querySelectorAll("tbody tr, tr"), C = k.querySelectorAll("td");
|
|
8280
|
+
x && !x.hasAttribute("data-word-col-layout") && b.length === 1 && C.length === 2 && x.setAttribute("data-word-col-layout", "1");
|
|
8281
8281
|
});
|
|
8282
8282
|
}
|
|
8283
8283
|
const _i = async (m) => {
|
|
8284
8284
|
const k = Q();
|
|
8285
8285
|
if (!k) return;
|
|
8286
|
-
const
|
|
8287
|
-
k.commands.addComment(
|
|
8286
|
+
const x = n(), b = M.value.length % G;
|
|
8287
|
+
k.commands.addComment(x, b);
|
|
8288
8288
|
try {
|
|
8289
|
-
await re({ id:
|
|
8289
|
+
await re({ id: x, selectedText: xn.value, note: m, colorIndex: b });
|
|
8290
8290
|
} catch {
|
|
8291
|
-
k.commands.removeComment(
|
|
8291
|
+
k.commands.removeComment(x);
|
|
8292
8292
|
}
|
|
8293
8293
|
wn.value = !1, xn.value = "";
|
|
8294
8294
|
}, gr = async (m) => {
|
|
@@ -8302,9 +8302,9 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8302
8302
|
}, Cn = (m) => {
|
|
8303
8303
|
const k = m.target;
|
|
8304
8304
|
if (!(k instanceof Element)) return;
|
|
8305
|
-
const
|
|
8306
|
-
if (!
|
|
8307
|
-
const b =
|
|
8305
|
+
const x = k.closest(".comment-mark");
|
|
8306
|
+
if (!x) return;
|
|
8307
|
+
const b = x.getAttribute("data-comment-id");
|
|
8308
8308
|
b && (gn(b), bn(b), c.value && requestAnimationFrame(() => {
|
|
8309
8309
|
const C = document.querySelector(".comment-panel");
|
|
8310
8310
|
if (!C) return;
|
|
@@ -8324,7 +8324,7 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8324
8324
|
}), br(() => {
|
|
8325
8325
|
clearTimeout(g), A && (A.removeEventListener("click", Cn), A = null);
|
|
8326
8326
|
}), (m, k) => {
|
|
8327
|
-
const
|
|
8327
|
+
const x = qi("umo-editor");
|
|
8328
8328
|
return O(), J("div", Ec, [
|
|
8329
8329
|
p("div", Ic, [
|
|
8330
8330
|
p("div", Nc, [
|
|
@@ -8333,7 +8333,7 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8333
8333
|
ref: _e,
|
|
8334
8334
|
class: "umo-editor-stage"
|
|
8335
8335
|
}, [
|
|
8336
|
-
Wi(
|
|
8336
|
+
Wi(x, Vi({
|
|
8337
8337
|
ref_key: "editorRef",
|
|
8338
8338
|
ref: I
|
|
8339
8339
|
}, pr.value), {
|
|
@@ -8671,7 +8671,7 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8671
8671
|
}, su = {
|
|
8672
8672
|
class: "complex-comment-panel__tabs",
|
|
8673
8673
|
role: "tablist"
|
|
8674
|
-
}, lu = ["onClick"], au = { class: "complex-comment-panel__body" }, cu = { class: "complex-comment-panel__section-head" }, uu = { class: "complex-comment-panel__section-title" }, fu = { class: "complex-comment-panel__cards" }, du = ["onClick"], hu = { class: "audit-card__head" }, pu =
|
|
8674
|
+
}, lu = ["onClick"], au = { class: "complex-comment-panel__body" }, cu = { class: "complex-comment-panel__section-head" }, uu = { class: "complex-comment-panel__section-title" }, fu = { class: "complex-comment-panel__cards" }, du = ["onClick"], hu = { class: "audit-card__head" }, pu = ["title"], mu = { class: "audit-card__block" }, gu = { class: "audit-card__quote" }, yu = ["onClick"], ku = { class: "audit-card__block audit-card__block--desc" }, wu = { class: "audit-card__desc" }, ut = "__all__", xu = {
|
|
8675
8675
|
__name: "ComplexCommentPanel",
|
|
8676
8676
|
props: {
|
|
8677
8677
|
items: {
|
|
@@ -8702,10 +8702,10 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8702
8702
|
const d = [...t.items ?? []];
|
|
8703
8703
|
return o.value ? d.filter((h) => String(h?.reviewStatus ?? "") === "risk") : d;
|
|
8704
8704
|
}), l = ue(() => {
|
|
8705
|
-
const d = s.value, h = /* @__PURE__ */ new Map(), g = [],
|
|
8705
|
+
const d = s.value, h = /* @__PURE__ */ new Map(), g = [], w = /* @__PURE__ */ new Set();
|
|
8706
8706
|
for (const I of d) {
|
|
8707
8707
|
const M = (I ?? {}).category || "未分类";
|
|
8708
|
-
h.set(M, (h.get(M) ?? 0) + 1),
|
|
8708
|
+
h.set(M, (h.get(M) ?? 0) + 1), w.has(M) || (w.add(M), g.push(M));
|
|
8709
8709
|
}
|
|
8710
8710
|
const v = [{ key: ut, label: "全部", count: d.length }];
|
|
8711
8711
|
for (const I of g)
|
|
@@ -8716,13 +8716,13 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8716
8716
|
return i.value !== ut && (d = d.filter((h) => (h?.category || "未分类") === i.value)), d;
|
|
8717
8717
|
}), c = ue(() => {
|
|
8718
8718
|
const d = a.value, h = [], g = /* @__PURE__ */ new Map();
|
|
8719
|
-
for (const
|
|
8720
|
-
const v =
|
|
8721
|
-
g.has(v) || (g.set(v, []), h.push(v)), g.get(v).push(
|
|
8719
|
+
for (const w of d) {
|
|
8720
|
+
const v = w.category || "未分类";
|
|
8721
|
+
g.has(v) || (g.set(v, []), h.push(v)), g.get(v).push(w);
|
|
8722
8722
|
}
|
|
8723
|
-
return h.map((
|
|
8724
|
-
category:
|
|
8725
|
-
rows: g.get(
|
|
8723
|
+
return h.map((w) => ({
|
|
8724
|
+
category: w,
|
|
8725
|
+
rows: g.get(w)
|
|
8726
8726
|
}));
|
|
8727
8727
|
}), u = (d) => {
|
|
8728
8728
|
const h = String(d ?? "");
|
|
@@ -8762,7 +8762,7 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8762
8762
|
type: "button",
|
|
8763
8763
|
role: "tab",
|
|
8764
8764
|
class: vt(["complex-comment-panel__tab", { "complex-comment-panel__tab--active": i.value === g.key }]),
|
|
8765
|
-
onClick: (
|
|
8765
|
+
onClick: (w) => i.value = g.key
|
|
8766
8766
|
}, _(g.label) + " (" + _(g.count) + ") ", 11, lu))), 128))
|
|
8767
8767
|
]),
|
|
8768
8768
|
p("div", au, [
|
|
@@ -8774,24 +8774,27 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8774
8774
|
p("span", uu, _(g.category), 1)
|
|
8775
8775
|
]),
|
|
8776
8776
|
p("ul", fu, [
|
|
8777
|
-
(O(!0), J(tt, null, xt(g.rows, (
|
|
8778
|
-
key:
|
|
8779
|
-
class: vt(["audit-card", { "audit-card--active": r.activeCommentId ===
|
|
8780
|
-
onClick: (v) => y(
|
|
8777
|
+
(O(!0), J(tt, null, xt(g.rows, (w) => (O(), J("li", {
|
|
8778
|
+
key: w.id,
|
|
8779
|
+
class: vt(["audit-card", { "audit-card--active": r.activeCommentId === w.id }]),
|
|
8780
|
+
onClick: (v) => y(w.id)
|
|
8781
8781
|
}, [
|
|
8782
8782
|
p("div", hu, [
|
|
8783
|
-
p("span", pu, _(x.reviewPoint || "(无审查点)"), 1),
|
|
8784
8783
|
p("span", {
|
|
8785
|
-
class:
|
|
8786
|
-
|
|
8784
|
+
class: "audit-card__point",
|
|
8785
|
+
title: w.reviewPoint || "(无审查点)"
|
|
8786
|
+
}, _(w.reviewPoint || "(无审查点)"), 9, pu),
|
|
8787
|
+
p("span", {
|
|
8788
|
+
class: vt(["audit-card__badge", f(w.reviewStatus)])
|
|
8789
|
+
}, _(u(w.reviewStatus)), 3)
|
|
8787
8790
|
]),
|
|
8788
8791
|
p("div", mu, [
|
|
8789
8792
|
h[5] || (h[5] = p("div", { class: "audit-card__label" }, "原文内容", -1)),
|
|
8790
|
-
p("div", gu, _(
|
|
8793
|
+
p("div", gu, _(w.originalText || "无原文"), 1),
|
|
8791
8794
|
p("button", {
|
|
8792
8795
|
type: "button",
|
|
8793
8796
|
class: "audit-card__locate",
|
|
8794
|
-
onClick: ze((v) => y(
|
|
8797
|
+
onClick: ze((v) => y(w.id), ["stop"])
|
|
8795
8798
|
}, [...h[4] || (h[4] = [
|
|
8796
8799
|
p("span", {
|
|
8797
8800
|
class: "audit-card__locate-icon",
|
|
@@ -8803,7 +8806,7 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8803
8806
|
h[7] || (h[7] = p("div", { class: "audit-card__divider" }, null, -1)),
|
|
8804
8807
|
p("div", ku, [
|
|
8805
8808
|
h[6] || (h[6] = p("div", { class: "audit-card__label audit-card__label--strong" }, "审查说明", -1)),
|
|
8806
|
-
p("p", wu, _(
|
|
8809
|
+
p("p", wu, _(w.auditDescription || "—"), 1)
|
|
8807
8810
|
])
|
|
8808
8811
|
], 10, du))), 128))
|
|
8809
8812
|
])
|
|
@@ -8812,7 +8815,7 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8812
8815
|
], 64))
|
|
8813
8816
|
]));
|
|
8814
8817
|
}
|
|
8815
|
-
}, Fu = /* @__PURE__ */ Ot(xu, [["__scopeId", "data-v-
|
|
8818
|
+
}, Fu = /* @__PURE__ */ Ot(xu, [["__scopeId", "data-v-de917c6e"]]);
|
|
8816
8819
|
function Bu() {
|
|
8817
8820
|
}
|
|
8818
8821
|
const Ju = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComplexCommentPanel.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ComplexCommentPanel.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ComplexCommentPanel.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ComplexCommentPanel.vue"],"names":[],"mappings":"wBA80BqB,OAAO,YAAY;;AAjBxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAgBG"}
|