ai-word-editor 0.0.54 → 0.0.55
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-04c62453]{width:280px;min-width:280px;height:100%;border-left:1px solid #e5e7eb;background:#fafafa;display:flex;flex-direction:column;overflow:hidden}.comment-panel__header[data-v-04c62453]{padding:14px 16px 10px;border-bottom:1px solid #e5e7eb;background:#fff}.comment-panel__title[data-v-04c62453]{margin:0;font-size:14px;font-weight:600;color:#374151;display:flex;align-items:center;gap:6px}.comment-panel__badge[data-v-04c62453]{background:#f59e0b;color:#fff;border-radius:10px;font-size:11px;padding:1px 6px;font-weight:500}.comment-panel__empty[data-v-04c62453]{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-04c62453]{margin:0;font-size:13px}.comment-panel__empty-icon[data-v-04c62453]{font-size:32px;margin-bottom:8px;opacity:.5}.comment-panel__empty-hint[data-v-04c62453]{font-size:12px!important;color:#d1d5db}.comment-panel__list[data-v-04c62453]{list-style:none;margin:0;padding:8px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:8px}.comment-item[data-v-04c62453]{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-04c62453]:hover{border-color:#fbbf24;box-shadow:0 1px 4px #fbbf2426}.comment-item--active[data-v-04c62453]{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b33}.comment-item--resolved[data-v-04c62453]{opacity:.55}.comment-item--resolved .comment-item__note[data-v-04c62453]{text-decoration:line-through;color:#9ca3af}.comment-item__quote[data-v-04c62453]{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-04c62453]{color:#fbbf24;margin-right:2px}.comment-item--c0 .comment-item__quote[data-v-04c62453]{background:#fef3c7cc;border-left-color:#f97316}.comment-item--c0 .comment-item__quote-icon[data-v-04c62453]{color:#f97316}.comment-item--c1 .comment-item__quote[data-v-04c62453]{background:#d1fae5d9;border-left-color:#22c55e}.comment-item--c1 .comment-item__quote-icon[data-v-04c62453]{color:#22c55e}.comment-item--c2 .comment-item__quote[data-v-04c62453]{background:#dbeafed9;border-left-color:#3b82f6}.comment-item--c2 .comment-item__quote-icon[data-v-04c62453]{color:#3b82f6}.comment-item--c3 .comment-item__quote[data-v-04c62453]{background:#ede9fee6;border-left-color:#a855f7}.comment-item--c3 .comment-item__quote-icon[data-v-04c62453]{color:#a855f7}.comment-item--c4 .comment-item__quote[data-v-04c62453]{background:#fce7f3e6;border-left-color:#ec4899}.comment-item--c4 .comment-item__quote-icon[data-v-04c62453]{color:#ec4899}.comment-item--c5 .comment-item__quote[data-v-04c62453]{background:#ccfbf1d9;border-left-color:#14b8a6}.comment-item--c5 .comment-item__quote-icon[data-v-04c62453]{color:#14b8a6}.comment-item--c6 .comment-item__quote[data-v-04c62453]{background:#fef9c3e6;border-left-color:#eab308}.comment-item--c6 .comment-item__quote-icon[data-v-04c62453]{color:#eab308}.comment-item--c7 .comment-item__quote[data-v-04c62453]{background:#ffe4e6e6;border-left-color:#f43f5e}.comment-item--c7 .comment-item__quote-icon[data-v-04c62453]{color:#f43f5e}.comment-item--c8 .comment-item__quote[data-v-04c62453]{background:#e0e7ffe6;border-left-color:#6366f1}.comment-item--c8 .comment-item__quote-icon[data-v-04c62453]{color:#6366f1}.comment-item--c9 .comment-item__quote[data-v-04c62453]{background:#ecfdc8e6;border-left-color:#84cc16}.comment-item--c9 .comment-item__quote-icon[data-v-04c62453]{color:#84cc16}.comment-item--c10 .comment-item__quote[data-v-04c62453]{background:#cffafee6;border-left-color:#06b6d4}.comment-item--c10 .comment-item__quote-icon[data-v-04c62453]{color:#06b6d4}.comment-item--c11 .comment-item__quote[data-v-04c62453]{background:#d1fae5d9;border-left-color:#10b981}.comment-item--c11 .comment-item__quote-icon[data-v-04c62453]{color:#10b981}.comment-item--c12 .comment-item__quote[data-v-04c62453]{background:#ede9fee6;border-left-color:#8b5cf6}.comment-item--c12 .comment-item__quote-icon[data-v-04c62453]{color:#8b5cf6}.comment-item--c13 .comment-item__quote[data-v-04c62453]{background:#faf0ffe6;border-left-color:#d946ef}.comment-item--c13 .comment-item__quote-icon[data-v-04c62453]{color:#d946ef}.comment-item--c14 .comment-item__quote[data-v-04c62453]{background:#e0f2fee6;border-left-color:#0ea5e9}.comment-item--c14 .comment-item__quote-icon[data-v-04c62453]{color:#0ea5e9}.comment-item--c15 .comment-item__quote[data-v-04c62453]{background:#ffedd5e6;border-left-color:#ea580c}.comment-item--c15 .comment-item__quote-icon[data-v-04c62453]{color:#ea580c}.comment-item--c16 .comment-item__quote[data-v-04c62453]{background:#fefce8e6;border-left-color:#ca8a04}.comment-item--c16 .comment-item__quote-icon[data-v-04c62453]{color:#ca8a04}.comment-item--c17 .comment-item__quote[data-v-04c62453]{background:#fee2e2e6;border-left-color:#dc2626}.comment-item--c17 .comment-item__quote-icon[data-v-04c62453]{color:#dc2626}.comment-item--c18 .comment-item__quote[data-v-04c62453]{background:#ccfbf1d9;border-left-color:#0d9488}.comment-item--c18 .comment-item__quote-icon[data-v-04c62453]{color:#0d9488}.comment-item--c19 .comment-item__quote[data-v-04c62453]{background:#f1f5f9e6;border-left-color:#64748b}.comment-item--c19 .comment-item__quote-icon[data-v-04c62453]{color:#64748b}.comment-item__note[data-v-04c62453]{font-size:13px;color:#374151;line-height:1.5;margin-bottom:6px;word-break:break-word}.comment-item__meta[data-v-04c62453]{display:flex;justify-content:space-between;font-size:11px;color:#9ca3af;margin-bottom:8px}.comment-item__author[data-v-04c62453]{font-weight:500}.comment-item__actions[data-v-04c62453]{display:flex;gap:6px;justify-content:flex-end}.comment-btn[data-v-04c62453]{border:none;border-radius:4px;padding:3px 8px;font-size:11px;cursor:pointer;transition:background .15s}.comment-btn--resolve[data-v-04c62453]{background:#ecfdf5;color:#059669}.comment-btn--resolve[data-v-04c62453]:hover{background:#d1fae5}.comment-btn--delete[data-v-04c62453]{background:#fef2f2;color:#dc2626}.comment-btn--delete[data-v-04c62453]: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-b26905a7]{min-height:100%;display:flex;align-items:center;justify-content:center;background:#f3f4f6}.auth-card[data-v-b26905a7]{background:#fff;border-radius:12px;padding:40px 36px;width:340px;box-shadow:0 4px 24px #0000001a}.auth-title[data-v-b26905a7]{font-size:20px;font-weight:700;color:#111827;text-align:center;margin:0 0 24px}.auth-tabs[data-v-b26905a7]{display:flex;gap:0;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;margin-bottom:20px}.auth-tab[data-v-b26905a7]{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-b26905a7]{background:#3b82f6;color:#fff}.auth-form[data-v-b26905a7]{display:flex;flex-direction:column;gap:12px}.auth-input[data-v-b26905a7]{padding:10px 14px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;outline:none;transition:border-color .15s}.auth-input[data-v-b26905a7]:focus{border-color:#3b82f6}.auth-submit[data-v-b26905a7]{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-b26905a7]:hover:not(:disabled){background:#2563eb}.auth-submit[data-v-b26905a7]:disabled{opacity:.6;cursor:not-allowed}.auth-error[data-v-b26905a7]{color:#ef4444;font-size:13px;margin:0}.app-layout[data-v-b26905a7]{display:flex;width:100%;height:100%;overflow:hidden}.editor-wrapper[data-v-b26905a7]{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.comment-toolbar[data-v-b26905a7]{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-b26905a7]{flex:1;min-width:0}.toolbar-docname__input[data-v-b26905a7]{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-b26905a7]:hover,.toolbar-docname__input[data-v-b26905a7]:focus{border-color:#d1d5db;background:#f9fafb}.toolbar-docname--empty[data-v-b26905a7]{font-size:13px;color:#9ca3af}.toolbar-actions[data-v-b26905a7]{display:flex;gap:8px;flex-shrink:0}.toolbar-btn[data-v-b26905a7]{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-b26905a7]:disabled{opacity:.5;cursor:not-allowed}.toolbar-btn__icon[data-v-b26905a7]{font-size:15px}.toolbar-btn--save[data-v-b26905a7]{background:#d1fae5;color:#065f46}.toolbar-btn--save[data-v-b26905a7]:hover:not(:disabled){background:#a7f3d0}.toolbar-btn--primary[data-v-b26905a7]{background:#fef3c7;color:#92400e}.toolbar-btn--primary[data-v-b26905a7]:hover:not(:disabled){background:#fde68a}.toolbar-btn--ai[data-v-b26905a7]{background:#ede9fe;color:#5b21b6}.toolbar-btn--ai[data-v-b26905a7]:hover:not(:disabled){background:#ddd6fe}.umo-editor-instance[data-v-b26905a7]{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.umo-editor-stage[data-v-b26905a7]{position:relative;flex:1;min-height:0;overflow:hidden}.umo-editor-stage[data-v-b26905a7]:fullscreen{width:100vw;height:100vh;background:#fff}.editor-placeholder[data-v-b26905a7]{flex:1;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:14px}.umo-custom-huge-btn[data-v-b26905a7]{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-b26905a7]:hover:not(:disabled){background:var(--umo-button-hover-background, rgba(0, 0, 0, .06))}.umo-custom-huge-btn[data-v-b26905a7]:disabled{opacity:.5;cursor:not-allowed}.umo-custom-huge-btn__icon[data-v-b26905a7]{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-b26905a7]{width:24px;height:24px}.umo-custom-huge-btn__text[data-v-b26905a7]{display:block;font-size:12px;color:var(--umo-text-color, #3d3d3d);margin-top:2px;line-height:1.2}.html-dialog-mask[data-v-b26905a7]{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:9999}.html-dialog[data-v-b26905a7]{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-b26905a7]{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-b26905a7]{font-size:14px;font-weight:600;color:#cdd6f4}.html-dialog__close[data-v-b26905a7]{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-b26905a7]:hover{color:#cdd6f4;background:#313244}.html-dialog__toolbar[data-v-b26905a7]{display:flex;justify-content:flex-end;padding:8px 16px;border-bottom:1px solid #313244;flex-shrink:0}.html-dialog__copy-btn[data-v-b26905a7]{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-b26905a7]:hover{background:#45475a;border-color:#89b4fa;color:#89b4fa}.html-dialog__content[data-v-b26905a7]{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-b26905a7] table:has(colgroup[data-word-col-layout]) td,[data-v-b26905a7] table:has(colgroup[data-word-col-layout]) th,[data-v-b26905a7] table:has(colgroup[data-word-col-layout]){border:none!important;outline:none!important}.complex-comment-panel[data-v-9c5ef905]{width:360px;min-width:360px;height:100%;border-left:1px solid #e5e7eb;background:#f3f4f6;display:flex;flex-direction:column;overflow:hidden}.complex-comment-panel__header[data-v-9c5ef905]{padding:12px 14px 10px;background:#fff;border-bottom:1px solid #e5e7eb}.complex-comment-panel__title[data-v-9c5ef905]{margin:0 0 10px;font-size:16px;font-weight:600;color:#111827}.complex-comment-panel__toolbar[data-v-9c5ef905]{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.complex-comment-panel__download[data-v-9c5ef905]{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-9c5ef905]:hover{background:#1d4ed8}.complex-comment-panel__risk-toggle[data-v-9c5ef905]{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-9c5ef905]{width:14px;height:14px;cursor:pointer}.complex-comment-panel__empty[data-v-9c5ef905]{flex:1;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:14px}.complex-comment-panel__tabs[data-v-9c5ef905]{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px;background:#fff;border-bottom:1px solid #e5e7eb}.complex-comment-panel__tab[data-v-9c5ef905]{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-9c5ef905]:hover{border-color:#93c5fd;color:#2563eb}.complex-comment-panel__tab--active[data-v-9c5ef905]{border-color:#2563eb;color:#2563eb;background:#eff6ff;font-weight:500}.complex-comment-panel__body[data-v-9c5ef905]{flex:1;overflow-y:auto;padding:10px 12px 16px;display:flex;flex-direction:column;gap:14px}.complex-comment-panel__section-head[data-v-9c5ef905]{margin-bottom:8px}.complex-comment-panel__section-title[data-v-9c5ef905]{font-size:14px;font-weight:600;color:#111827}.complex-comment-panel__cards[data-v-9c5ef905]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.audit-card[data-v-9c5ef905]{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-9c5ef905]:hover{border-color:#d1d5db;box-shadow:0 1px 3px #0000000f}.audit-card--active[data-v-9c5ef905]{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb33}.audit-card__head[data-v-9c5ef905]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.audit-card__point[data-v-9c5ef905]{font-size:14px;font-weight:600;color:#111827;line-height:1.4;flex:1}.audit-card__badge[data-v-9c5ef905]{flex-shrink:0;font-size:12px;font-weight:500;padding:2px 8px;border-radius:4px;white-space:nowrap}.audit-card__badge--risk[data-v-9c5ef905]{background:#fee2e2;color:#dc2626}.audit-card__badge--ok[data-v-9c5ef905]{background:#22c55e;color:#fff}.audit-card__badge--muted[data-v-9c5ef905]{background:#f3f4f6;color:#6b7280}.audit-card__block[data-v-9c5ef905]{margin-bottom:4px}.audit-card__label[data-v-9c5ef905]{font-size:12px;color:#9ca3af;margin-bottom:6px}.audit-card__label--strong[data-v-9c5ef905]{color:#111827;font-weight:500}.audit-card__quote[data-v-9c5ef905]{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-9c5ef905]{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-9c5ef905]:hover{text-decoration:underline}.audit-card__locate-icon[data-v-9c5ef905]{font-size:14px;line-height:1;opacity:.85}.audit-card__divider[data-v-9c5ef905]{height:1px;background:#e5e7eb;margin:12px 0}.audit-card__block--desc[data-v-9c5ef905]{margin-bottom:0}.audit-card__desc[data-v-9c5ef905]{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-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}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useUmoEditor as Bi } from "@umoteam/editor";
|
|
2
|
-
import { computed as ue, openBlock as O, createElementBlock as J, createElementVNode as p, createTextVNode as Jn, toDisplayString as _, createCommentVNode as Be, Fragment as
|
|
2
|
+
import { computed as ue, openBlock as O, createElementBlock as J, createElementVNode as p, createTextVNode as Jn, toDisplayString as _, createCommentVNode as Be, Fragment as tt, renderList as xt, normalizeClass as vt, withModifiers as ze, ref as $, onMounted as Dn, createBlock as ft, Teleport as Pn, withDirectives as ro, withKeys as Ln, vModelText as Ji, watch as Je, normalizeStyle as Di, defineComponent as Pi, onUnmounted as br, useAttrs as Li, resolveComponent as qi, createVNode as Wi, mergeProps as Vi, withCtx as Cr, renderSlot as ji, unref as Qe, nextTick as Hi, createApp as Ui, h as Gi, vModelCheckbox as Ki } from "vue";
|
|
3
3
|
import { e as Qi, a as Tr, b as Xi, c as Mr, s as Er } from "./wordDocxExport-CoHu1Ogg.js";
|
|
4
4
|
import { parseDocxToJson as Yi, parseDocxToHtml as Zi, parseDocxComments as es } from "./wordDocxImport.js";
|
|
5
5
|
const Ot = (r, e) => {
|
|
@@ -49,7 +49,7 @@ const Ot = (r, e) => {
|
|
|
49
49
|
p("p", null, "暂无批注", -1),
|
|
50
50
|
p("p", { class: "comment-panel__empty-hint" }, "选中文本后点击「添加批注」", -1)
|
|
51
51
|
])])) : (O(), J("ul", ls, [
|
|
52
|
-
(O(!0), J(
|
|
52
|
+
(O(!0), J(tt, null, xt(r.comments, (c) => (O(), J("li", {
|
|
53
53
|
key: c.id,
|
|
54
54
|
class: vt(["comment-item", [
|
|
55
55
|
`comment-item--c${c.colorIndex ?? 0}`,
|
|
@@ -85,7 +85,7 @@ const Ot = (r, e) => {
|
|
|
85
85
|
]))
|
|
86
86
|
]));
|
|
87
87
|
}
|
|
88
|
-
}, ks = /* @__PURE__ */ Ot(ys, [["__scopeId", "data-v-
|
|
88
|
+
}, ks = /* @__PURE__ */ Ot(ys, [["__scopeId", "data-v-10b7616a"]]), ws = { class: "dialog" }, xs = { class: "dialog__header" }, vs = {
|
|
89
89
|
key: 0,
|
|
90
90
|
class: "dialog__quote"
|
|
91
91
|
}, Ss = { class: "dialog__quote-text" }, bs = { class: "dialog__body" }, Cs = ["onKeydown"], Ts = { class: "dialog__footer" }, Ms = ["disabled"], Es = {
|
|
@@ -701,7 +701,7 @@ let L = class qn {
|
|
|
701
701
|
};
|
|
702
702
|
L.none = [];
|
|
703
703
|
let rn = class extends Error {
|
|
704
|
-
}, T = class
|
|
704
|
+
}, T = class Xe {
|
|
705
705
|
/**
|
|
706
706
|
Create a slice. When specifying a non-zero open depth, you must
|
|
707
707
|
make sure that there are nodes of at least that depth at the
|
|
@@ -728,13 +728,13 @@ let rn = class extends Error {
|
|
|
728
728
|
*/
|
|
729
729
|
insertAt(e, t) {
|
|
730
730
|
let n = lo(this.content, e + this.openStart, t);
|
|
731
|
-
return n && new
|
|
731
|
+
return n && new Xe(n, this.openStart, this.openEnd);
|
|
732
732
|
}
|
|
733
733
|
/**
|
|
734
734
|
@internal
|
|
735
735
|
*/
|
|
736
736
|
removeBetween(e, t) {
|
|
737
|
-
return new
|
|
737
|
+
return new Xe(so(this.content, e + this.openStart, t + this.openStart), this.openStart, this.openEnd);
|
|
738
738
|
}
|
|
739
739
|
/**
|
|
740
740
|
Tests whether this slice is equal to another slice.
|
|
@@ -762,11 +762,11 @@ let rn = class extends Error {
|
|
|
762
762
|
*/
|
|
763
763
|
static fromJSON(e, t) {
|
|
764
764
|
if (!t)
|
|
765
|
-
return
|
|
765
|
+
return Xe.empty;
|
|
766
766
|
let n = t.openStart || 0, o = t.openEnd || 0;
|
|
767
767
|
if (typeof n != "number" || typeof o != "number")
|
|
768
768
|
throw new RangeError("Invalid input for Slice.fromJSON");
|
|
769
|
-
return new
|
|
769
|
+
return new Xe(S.fromJSON(e, t.content), n, o);
|
|
770
770
|
}
|
|
771
771
|
/**
|
|
772
772
|
Create a slice from a fragment by taking the maximum possible
|
|
@@ -778,7 +778,7 @@ let rn = class extends Error {
|
|
|
778
778
|
n++;
|
|
779
779
|
for (let i = e.lastChild; i && !i.isLeaf && (t || !i.type.spec.isolating); i = i.lastChild)
|
|
780
780
|
o++;
|
|
781
|
-
return new
|
|
781
|
+
return new Xe(e, n, o);
|
|
782
782
|
}
|
|
783
783
|
};
|
|
784
784
|
T.empty = new T(S.empty, 0, 0);
|
|
@@ -815,12 +815,12 @@ function ao(r, e, t, n) {
|
|
|
815
815
|
} else if (t.content.size)
|
|
816
816
|
if (!t.openStart && !t.openEnd && r.depth == n && e.depth == n) {
|
|
817
817
|
let s = r.parent, l = s.content;
|
|
818
|
-
return
|
|
818
|
+
return Ve(s, l.cut(0, r.parentOffset).append(t.content).append(l.cut(e.parentOffset)));
|
|
819
819
|
} else {
|
|
820
820
|
let { start: s, end: l } = Os(t, r);
|
|
821
|
-
return
|
|
821
|
+
return Ve(i, uo(r, s, l, e, n));
|
|
822
822
|
}
|
|
823
|
-
else return
|
|
823
|
+
else return Ve(i, on(r, e, n));
|
|
824
824
|
}
|
|
825
825
|
function co(r, e) {
|
|
826
826
|
if (!e.type.compatibleContent(r.type))
|
|
@@ -830,29 +830,29 @@ function Wn(r, e, t) {
|
|
|
830
830
|
let n = r.node(t);
|
|
831
831
|
return co(n, e.node(t)), n;
|
|
832
832
|
}
|
|
833
|
-
function
|
|
833
|
+
function We(r, e) {
|
|
834
834
|
let t = e.length - 1;
|
|
835
835
|
t >= 0 && r.isText && r.sameMarkup(e[t]) ? e[t] = r.withText(e[t].text + r.text) : e.push(r);
|
|
836
836
|
}
|
|
837
837
|
function St(r, e, t, n) {
|
|
838
838
|
let o = (e || r).node(t), i = 0, s = e ? e.index(t) : o.childCount;
|
|
839
|
-
r && (i = r.index(t), r.depth > t ? i++ : r.textOffset && (
|
|
839
|
+
r && (i = r.index(t), r.depth > t ? i++ : r.textOffset && (We(r.nodeAfter, n), i++));
|
|
840
840
|
for (let l = i; l < s; l++)
|
|
841
|
-
|
|
842
|
-
e && e.depth == t && e.textOffset &&
|
|
841
|
+
We(o.child(l), n);
|
|
842
|
+
e && e.depth == t && e.textOffset && We(e.nodeBefore, n);
|
|
843
843
|
}
|
|
844
|
-
function
|
|
844
|
+
function Ve(r, e) {
|
|
845
845
|
return r.type.checkContent(e), r.copy(e);
|
|
846
846
|
}
|
|
847
847
|
function uo(r, e, t, n, o) {
|
|
848
848
|
let i = r.depth > o && Wn(r, e, o + 1), s = n.depth > o && Wn(t, n, o + 1), l = [];
|
|
849
|
-
return St(null, r, o, l), i && s && e.index(o) == t.index(o) ? (co(i, s), Ve(
|
|
849
|
+
return St(null, r, o, l), i && s && e.index(o) == t.index(o) ? (co(i, s), We(Ve(i, uo(r, e, t, n, o + 1)), l)) : (i && We(Ve(i, on(r, e, o + 1)), l), St(e, t, o, l), s && We(Ve(s, on(t, n, o + 1)), l)), St(n, null, o, l), new S(l);
|
|
850
850
|
}
|
|
851
851
|
function on(r, e, t) {
|
|
852
852
|
let n = [];
|
|
853
853
|
if (St(null, r, t, n), r.depth > t) {
|
|
854
854
|
let o = Wn(r, e, t + 1);
|
|
855
|
-
Ve(
|
|
855
|
+
We(Ve(o, on(r, e, t + 1)), n);
|
|
856
856
|
}
|
|
857
857
|
return St(e, null, t, n), new S(n);
|
|
858
858
|
}
|
|
@@ -1572,7 +1572,7 @@ function fo(r, e) {
|
|
|
1572
1572
|
e = r[t].type.name + "(" + e + ")";
|
|
1573
1573
|
return e;
|
|
1574
1574
|
}
|
|
1575
|
-
class
|
|
1575
|
+
class je {
|
|
1576
1576
|
/**
|
|
1577
1577
|
@internal
|
|
1578
1578
|
*/
|
|
@@ -1585,7 +1585,7 @@ class He {
|
|
|
1585
1585
|
static parse(e, t) {
|
|
1586
1586
|
let n = new $s(e, t);
|
|
1587
1587
|
if (n.next == null)
|
|
1588
|
-
return
|
|
1588
|
+
return je.empty;
|
|
1589
1589
|
let o = ho(n);
|
|
1590
1590
|
n.next && n.err("Unexpected trailing text");
|
|
1591
1591
|
let i = Ls(Ps(o));
|
|
@@ -1734,7 +1734,7 @@ class He {
|
|
|
1734
1734
|
`);
|
|
1735
1735
|
}
|
|
1736
1736
|
}
|
|
1737
|
-
|
|
1737
|
+
je.empty = new je(!0);
|
|
1738
1738
|
class $s {
|
|
1739
1739
|
constructor(e, t) {
|
|
1740
1740
|
this.string = e, this.nodeTypes = t, this.inline = null, this.pos = 0, this.tokens = e.split(/\s*(?=\b|\W|$)/), this.tokens[this.tokens.length - 1] == "" && this.tokens.pop(), this.tokens[0] == "" && this.tokens.shift();
|
|
@@ -1897,7 +1897,7 @@ function Ls(r) {
|
|
|
1897
1897
|
});
|
|
1898
1898
|
});
|
|
1899
1899
|
});
|
|
1900
|
-
let i = e[n.join(",")] = new
|
|
1900
|
+
let i = e[n.join(",")] = new je(n.indexOf(r.length - 1) > -1);
|
|
1901
1901
|
for (let s = 0; s < o.length; s++) {
|
|
1902
1902
|
let l = o[s][1].sort(po);
|
|
1903
1903
|
i.next.push({ type: o[s][0], next: e[l.join(",")] || t(l) });
|
|
@@ -1980,7 +1980,7 @@ class an {
|
|
|
1980
1980
|
True for node types that allow no content.
|
|
1981
1981
|
*/
|
|
1982
1982
|
get isLeaf() {
|
|
1983
|
-
return this.contentMatch ==
|
|
1983
|
+
return this.contentMatch == je.empty;
|
|
1984
1984
|
}
|
|
1985
1985
|
/**
|
|
1986
1986
|
True when this node is an atom, i.e. when it does not have
|
|
@@ -2221,7 +2221,7 @@ class js {
|
|
|
2221
2221
|
if (o in this.marks)
|
|
2222
2222
|
throw new RangeError(o + " can not be both a node and a mark");
|
|
2223
2223
|
let i = this.nodes[o], s = i.spec.content || "", l = i.spec.marks;
|
|
2224
|
-
if (i.contentMatch = n[s] || (n[s] =
|
|
2224
|
+
if (i.contentMatch = n[s] || (n[s] = je.parse(s, this.nodes)), i.inlineContent = i.contentMatch.inlineContent, i.spec.linebreakReplacement) {
|
|
2225
2225
|
if (this.linebreakReplacement)
|
|
2226
2226
|
throw new RangeError("Multiple linebreak nodes defined");
|
|
2227
2227
|
if (!i.isInline || !i.isLeaf)
|
|
@@ -2850,15 +2850,15 @@ let Br = class {
|
|
|
2850
2850
|
get deletedAcross() {
|
|
2851
2851
|
return (this.delInfo & Qt) > 0;
|
|
2852
2852
|
}
|
|
2853
|
-
},
|
|
2853
|
+
}, He = class Ye {
|
|
2854
2854
|
/**
|
|
2855
2855
|
Create a position map. The modifications to the document are
|
|
2856
2856
|
represented as an array of numbers, in which each group of three
|
|
2857
2857
|
represents a modified chunk as `[start, oldSize, newSize]`.
|
|
2858
2858
|
*/
|
|
2859
2859
|
constructor(e, t = !1) {
|
|
2860
|
-
if (this.ranges = e, this.inverted = t, !e.length &&
|
|
2861
|
-
return
|
|
2860
|
+
if (this.ranges = e, this.inverted = t, !e.length && Ye.empty)
|
|
2861
|
+
return Ye.empty;
|
|
2862
2862
|
}
|
|
2863
2863
|
/**
|
|
2864
2864
|
@internal
|
|
@@ -2929,7 +2929,7 @@ let Br = class {
|
|
|
2929
2929
|
map positions in the post-step document to the pre-step document.
|
|
2930
2930
|
*/
|
|
2931
2931
|
invert() {
|
|
2932
|
-
return new
|
|
2932
|
+
return new Ye(this.ranges, !this.inverted);
|
|
2933
2933
|
}
|
|
2934
2934
|
/**
|
|
2935
2935
|
@internal
|
|
@@ -2943,10 +2943,10 @@ let Br = class {
|
|
|
2943
2943
|
sub-document to a larger document, or vice-versa.
|
|
2944
2944
|
*/
|
|
2945
2945
|
static offset(e) {
|
|
2946
|
-
return e == 0 ?
|
|
2946
|
+
return e == 0 ? Ye.empty : new Ye(e < 0 ? [0, -e, 0] : [0, 0, e]);
|
|
2947
2947
|
}
|
|
2948
2948
|
};
|
|
2949
|
-
|
|
2949
|
+
He.empty = new He([]);
|
|
2950
2950
|
const En = /* @__PURE__ */ Object.create(null);
|
|
2951
2951
|
let te = class {
|
|
2952
2952
|
/**
|
|
@@ -2955,7 +2955,7 @@ let te = class {
|
|
|
2955
2955
|
and the new document.
|
|
2956
2956
|
*/
|
|
2957
2957
|
getMap() {
|
|
2958
|
-
return
|
|
2958
|
+
return He.empty;
|
|
2959
2959
|
}
|
|
2960
2960
|
/**
|
|
2961
2961
|
Try to merge this step with another one, to be applied directly
|
|
@@ -3204,7 +3204,7 @@ let it = class Fe extends te {
|
|
|
3204
3204
|
return this.structure && Hn(e, this.from, this.to) ? ie.fail("Structure replace would overwrite content") : ie.fromReplace(e, this.from, this.to, this.slice);
|
|
3205
3205
|
}
|
|
3206
3206
|
getMap() {
|
|
3207
|
-
return new
|
|
3207
|
+
return new He([this.from, this.to - this.from, this.slice.size]);
|
|
3208
3208
|
}
|
|
3209
3209
|
invert(e) {
|
|
3210
3210
|
return new Fe(this.from, this.from + this.slice.size, e.slice(this.from, this.to));
|
|
@@ -3259,7 +3259,7 @@ let Se = class Xt extends te {
|
|
|
3259
3259
|
return n ? ie.fromReplace(e, this.from, this.to, n) : ie.fail("Content does not fit in gap");
|
|
3260
3260
|
}
|
|
3261
3261
|
getMap() {
|
|
3262
|
-
return new
|
|
3262
|
+
return new He([
|
|
3263
3263
|
this.from,
|
|
3264
3264
|
this.gapFrom - this.from,
|
|
3265
3265
|
this.insert,
|
|
@@ -3366,7 +3366,7 @@ function Ie(r, e, t = 1, n) {
|
|
|
3366
3366
|
let l = o.indexAfter(i), a = n && n[0];
|
|
3367
3367
|
return o.node(i).canReplaceWith(l, l, a ? a.type : o.node(i + 1).type);
|
|
3368
3368
|
}
|
|
3369
|
-
function
|
|
3369
|
+
function Ue(r, e) {
|
|
3370
3370
|
let t = r.resolve(e), n = t.index();
|
|
3371
3371
|
return Ao(t.nodeBefore, t.nodeAfter) && t.parent.canReplace(n, n + 1);
|
|
3372
3372
|
}
|
|
@@ -3599,7 +3599,7 @@ let sl = class Yt extends te {
|
|
|
3599
3599
|
return ie.fromReplace(e, this.pos, this.pos + 1, new T(S.from(o), 0, t.isLeaf ? 0 : 1));
|
|
3600
3600
|
}
|
|
3601
3601
|
getMap() {
|
|
3602
|
-
return
|
|
3602
|
+
return He.empty;
|
|
3603
3603
|
}
|
|
3604
3604
|
invert(e) {
|
|
3605
3605
|
return new Yt(this.pos, this.attr, e.nodeAt(this.pos).attrs[this.attr]);
|
|
@@ -3634,7 +3634,7 @@ let ll = class Un extends te {
|
|
|
3634
3634
|
return ie.ok(n);
|
|
3635
3635
|
}
|
|
3636
3636
|
getMap() {
|
|
3637
|
-
return
|
|
3637
|
+
return He.empty;
|
|
3638
3638
|
}
|
|
3639
3639
|
invert(e) {
|
|
3640
3640
|
return new Un(this.attr, e.attrs[this.attr]);
|
|
@@ -3756,11 +3756,11 @@ let F = class {
|
|
|
3756
3756
|
found.
|
|
3757
3757
|
*/
|
|
3758
3758
|
static findFrom(e, t, n = !1) {
|
|
3759
|
-
let o = e.parent.inlineContent ? new H(e) :
|
|
3759
|
+
let o = e.parent.inlineContent ? new H(e) : Ze(e.node(0), e.parent, e.pos, e.index(), t, n);
|
|
3760
3760
|
if (o)
|
|
3761
3761
|
return o;
|
|
3762
3762
|
for (let i = e.depth - 1; i >= 0; i--) {
|
|
3763
|
-
let s = t < 0 ?
|
|
3763
|
+
let s = t < 0 ? Ze(e.node(0), e.node(i), e.before(i + 1), e.index(i), t, n) : Ze(e.node(0), e.node(i), e.after(i + 1), e.index(i) + 1, t, n);
|
|
3764
3764
|
if (s)
|
|
3765
3765
|
return s;
|
|
3766
3766
|
}
|
|
@@ -3781,14 +3781,14 @@ let F = class {
|
|
|
3781
3781
|
exists.
|
|
3782
3782
|
*/
|
|
3783
3783
|
static atStart(e) {
|
|
3784
|
-
return
|
|
3784
|
+
return Ze(e, e, 0, 0, 1) || new Re(e);
|
|
3785
3785
|
}
|
|
3786
3786
|
/**
|
|
3787
3787
|
Find the cursor or leaf node selection closest to the end of the
|
|
3788
3788
|
given document.
|
|
3789
3789
|
*/
|
|
3790
3790
|
static atEnd(e) {
|
|
3791
|
-
return
|
|
3791
|
+
return Ze(e, e, e.content.size, e.childCount, -1) || new Re(e);
|
|
3792
3792
|
}
|
|
3793
3793
|
/**
|
|
3794
3794
|
Deserialize the JSON representation of a selection. Must be
|
|
@@ -4024,7 +4024,7 @@ const ul = {
|
|
|
4024
4024
|
return new Re(r);
|
|
4025
4025
|
}
|
|
4026
4026
|
};
|
|
4027
|
-
function
|
|
4027
|
+
function Ze(r, e, t, n, o, i = !1) {
|
|
4028
4028
|
if (e.inlineContent)
|
|
4029
4029
|
return H.create(r, t);
|
|
4030
4030
|
for (let s = n - (o > 0 ? 0 : 1); o > 0 ? s < e.childCount : s >= 0; s += o) {
|
|
@@ -4033,7 +4033,7 @@ function et(r, e, t, n, o, i = !1) {
|
|
|
4033
4033
|
if (!i && W.isSelectable(l))
|
|
4034
4034
|
return W.create(r, t - (o < 0 ? l.nodeSize : 0));
|
|
4035
4035
|
} else {
|
|
4036
|
-
let a =
|
|
4036
|
+
let a = Ze(r, l, t + o, o < 0 ? l.childCount : 0, o, i);
|
|
4037
4037
|
if (a)
|
|
4038
4038
|
return a;
|
|
4039
4039
|
}
|
|
@@ -4097,7 +4097,7 @@ function Fo(r, e, t) {
|
|
|
4097
4097
|
}
|
|
4098
4098
|
return t;
|
|
4099
4099
|
}
|
|
4100
|
-
let
|
|
4100
|
+
let Ge = class {
|
|
4101
4101
|
/**
|
|
4102
4102
|
Create a plugin.
|
|
4103
4103
|
*/
|
|
@@ -4115,7 +4115,7 @@ const An = /* @__PURE__ */ Object.create(null);
|
|
|
4115
4115
|
function Bo(r) {
|
|
4116
4116
|
return r in An ? r + "$" + ++An[r] : (An[r] = 0, r + "$");
|
|
4117
4117
|
}
|
|
4118
|
-
let
|
|
4118
|
+
let Ke = class {
|
|
4119
4119
|
/**
|
|
4120
4120
|
Create a plugin key.
|
|
4121
4121
|
*/
|
|
@@ -4290,7 +4290,7 @@ function er(r) {
|
|
|
4290
4290
|
const hl = (r, e) => {
|
|
4291
4291
|
let t = r.selection, n = t instanceof W, o;
|
|
4292
4292
|
if (n) {
|
|
4293
|
-
if (t.node.isTextblock || !
|
|
4293
|
+
if (t.node.isTextblock || !Ue(r.doc, t.from))
|
|
4294
4294
|
return !1;
|
|
4295
4295
|
o = t.from;
|
|
4296
4296
|
} else if (o = hn(r.doc, t.from, -1), o == null)
|
|
@@ -4303,7 +4303,7 @@ const hl = (r, e) => {
|
|
|
4303
4303
|
}, pl = (r, e) => {
|
|
4304
4304
|
let t = r.selection, n;
|
|
4305
4305
|
if (t instanceof W) {
|
|
4306
|
-
if (t.node.isTextblock || !
|
|
4306
|
+
if (t.node.isTextblock || !Ue(r.doc, t.to))
|
|
4307
4307
|
return !1;
|
|
4308
4308
|
n = t.to;
|
|
4309
4309
|
} else if (n = hn(r.doc, t.to, 1), n == null)
|
|
@@ -4396,7 +4396,7 @@ const kl = yl(), wl = (r, e) => {
|
|
|
4396
4396
|
};
|
|
4397
4397
|
function xl(r, e, t) {
|
|
4398
4398
|
let n = e.nodeBefore, o = e.nodeAfter, i = e.index();
|
|
4399
|
-
return !n || !o || !n.type.compatibleContent(o.type) ? !1 : !n.content.size && e.parent.canReplace(i - 1, i) ? (t && t(r.tr.delete(e.pos - n.nodeSize, e.pos).scrollIntoView()), !0) : !e.parent.canReplace(i, i + 1) || !(o.isTextblock ||
|
|
4399
|
+
return !n || !o || !n.type.compatibleContent(o.type) ? !1 : !n.content.size && e.parent.canReplace(i - 1, i) ? (t && t(r.tr.delete(e.pos - n.nodeSize, e.pos).scrollIntoView()), !0) : !e.parent.canReplace(i, i + 1) || !(o.isTextblock || Ue(r.doc, e.pos)) ? !1 : (t && t(r.tr.join(e.pos).scrollIntoView()), !0);
|
|
4400
4400
|
}
|
|
4401
4401
|
function Go(r, e, t, n) {
|
|
4402
4402
|
let o = e.nodeBefore, i = e.nodeAfter, s, l, a = o.type.spec.isolating || i.type.spec.isolating;
|
|
@@ -4410,7 +4410,7 @@ function Go(r, e, t, n) {
|
|
|
4410
4410
|
h = S.from(s[v].create(null, h));
|
|
4411
4411
|
h = S.from(o.copy(h));
|
|
4412
4412
|
let g = r.tr.step(new Se(e.pos - 1, d, e.pos, d, new T(h, 1, 0), s.length, !0)), x = g.doc.resolve(d + 2 * s.length);
|
|
4413
|
-
x.nodeAfter && x.nodeAfter.type == o.type &&
|
|
4413
|
+
x.nodeAfter && x.nodeAfter.type == o.type && Ue(g.doc, x.pos) && g.join(x.pos), t(g.scrollIntoView());
|
|
4414
4414
|
}
|
|
4415
4415
|
return !0;
|
|
4416
4416
|
}
|
|
@@ -4544,7 +4544,7 @@ function Il(r, e, t, n) {
|
|
|
4544
4544
|
return !1;
|
|
4545
4545
|
o.lift(n, l);
|
|
4546
4546
|
let a = o.doc.resolve(o.mapping.map(i, -1) - 1);
|
|
4547
|
-
return
|
|
4547
|
+
return Ue(o.doc, a.pos) && a.nodeBefore.type == a.nodeAfter.type && o.join(a.pos), e(o.scrollIntoView()), !0;
|
|
4548
4548
|
}
|
|
4549
4549
|
function Nl(r, e, t) {
|
|
4550
4550
|
let n = r.tr, o = t.parent;
|
|
@@ -4818,8 +4818,8 @@ de.create({
|
|
|
4818
4818
|
},
|
|
4819
4819
|
addProseMirrorPlugins() {
|
|
4820
4820
|
return [
|
|
4821
|
-
new
|
|
4822
|
-
key: new
|
|
4821
|
+
new Ge({
|
|
4822
|
+
key: new Ke("clipboardTextSerializer"),
|
|
4823
4823
|
props: {
|
|
4824
4824
|
clipboardTextSerializer: () => {
|
|
4825
4825
|
const { editor: r } = this, { state: e, schema: t } = r, { doc: n, selection: o } = e, { ranges: i } = o, s = Math.min(...i.map((u) => u.$from.pos)), l = Math.max(...i.map((u) => u.$to.pos)), a = Bl(t);
|
|
@@ -4946,7 +4946,7 @@ const Ql = (r, e = {}) => ({ tr: t, state: n, dispatch: o }) => {
|
|
|
4946
4946
|
function Zo(r) {
|
|
4947
4947
|
return r instanceof H;
|
|
4948
4948
|
}
|
|
4949
|
-
function
|
|
4949
|
+
function De(r = 0, e = 0, t = 0) {
|
|
4950
4950
|
return Math.min(Math.max(r, e), t);
|
|
4951
4951
|
}
|
|
4952
4952
|
function Yl(r, e = null) {
|
|
@@ -4958,7 +4958,7 @@ function Yl(r, e = null) {
|
|
|
4958
4958
|
if (e === "end")
|
|
4959
4959
|
return n;
|
|
4960
4960
|
const o = t.from, i = n.to;
|
|
4961
|
-
return e === "all" ? H.create(r,
|
|
4961
|
+
return e === "all" ? H.create(r, De(0, o, i), De(r.content.size, o, i)) : H.create(r, De(e, o, i), De(e, o, i));
|
|
4962
4962
|
}
|
|
4963
4963
|
function Zl() {
|
|
4964
4964
|
return navigator.platform === "Android" || /android/i.test(navigator.userAgent);
|
|
@@ -5382,13 +5382,13 @@ const _a = (r, e = {}) => ({ tr: t, state: n, dispatch: o }) => {
|
|
|
5382
5382
|
return t.selection.$anchor.sameParent(t.selection.$head) && (s = t.selection.$anchor.parent.attrs), i.isTextblock ? o().command(({ commands: l }) => Wr(i, { ...s, ...e })(t) ? !0 : l.clearNodes()).command(({ state: l }) => Wr(i, { ...s, ...e })(l, n)).run() : (console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.'), !1);
|
|
5383
5383
|
}, Ja = (r) => ({ tr: e, dispatch: t }) => {
|
|
5384
5384
|
if (t) {
|
|
5385
|
-
const { doc: n } = e, o =
|
|
5385
|
+
const { doc: n } = e, o = De(r, 0, n.content.size), i = W.create(n, o);
|
|
5386
5386
|
e.setSelection(i);
|
|
5387
5387
|
}
|
|
5388
5388
|
return !0;
|
|
5389
5389
|
}, Da = (r) => ({ tr: e, dispatch: t }) => {
|
|
5390
5390
|
if (t) {
|
|
5391
|
-
const { doc: n } = e, { from: o, to: i } = typeof r == "number" ? { from: r, to: r } : r, s = H.atStart(n).from, l = H.atEnd(n).to, a =
|
|
5391
|
+
const { doc: n } = e, { from: o, to: i } = typeof r == "number" ? { from: r, to: r } : r, s = H.atStart(n).from, l = H.atEnd(n).to, a = De(o, s, l), c = De(i, s, l), u = H.create(n, a, c);
|
|
5392
5392
|
e.setSelection(u);
|
|
5393
5393
|
}
|
|
5394
5394
|
return !0;
|
|
@@ -5492,7 +5492,7 @@ const La = ({ keepMarks: r = !0 } = {}) => ({ tr: e, state: t, dispatch: n, edit
|
|
|
5492
5492
|
if (n === void 0)
|
|
5493
5493
|
return !0;
|
|
5494
5494
|
const o = r.doc.nodeAt(n);
|
|
5495
|
-
return t.node.type === o?.type &&
|
|
5495
|
+
return t.node.type === o?.type && Ue(r.doc, t.pos) && r.join(t.pos), !0;
|
|
5496
5496
|
}, zn = (r, e) => {
|
|
5497
5497
|
const t = sr((s) => s.type === e)(r.selection);
|
|
5498
5498
|
if (!t)
|
|
@@ -5501,7 +5501,7 @@ const La = ({ keepMarks: r = !0 } = {}) => ({ tr: e, state: t, dispatch: n, edit
|
|
|
5501
5501
|
if (n === void 0)
|
|
5502
5502
|
return !0;
|
|
5503
5503
|
const o = r.doc.nodeAt(n);
|
|
5504
|
-
return t.node.type === o?.type &&
|
|
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
5506
|
const { extensions: f, splittableMarks: y } = o.extensionManager, d = ee(r, s.schema), h = ee(e, s.schema), { selection: g, storedMarks: x } = s, { $from: v, $to: I } = g, A = v.blockRange(I), M = x || g.$to.parentOffset && g.$from.marks();
|
|
5507
5507
|
if (!A)
|
|
@@ -5677,8 +5677,8 @@ de.create({
|
|
|
5677
5677
|
name: "drop",
|
|
5678
5678
|
addProseMirrorPlugins() {
|
|
5679
5679
|
return [
|
|
5680
|
-
new
|
|
5681
|
-
key: new
|
|
5680
|
+
new Ge({
|
|
5681
|
+
key: new Ke("tiptapDrop"),
|
|
5682
5682
|
props: {
|
|
5683
5683
|
handleDrop: (r, e, t, n) => {
|
|
5684
5684
|
this.editor.emit("drop", {
|
|
@@ -5697,8 +5697,8 @@ de.create({
|
|
|
5697
5697
|
name: "editable",
|
|
5698
5698
|
addProseMirrorPlugins() {
|
|
5699
5699
|
return [
|
|
5700
|
-
new
|
|
5701
|
-
key: new
|
|
5700
|
+
new Ge({
|
|
5701
|
+
key: new Ke("editable"),
|
|
5702
5702
|
props: {
|
|
5703
5703
|
editable: () => this.editor.options.editable
|
|
5704
5704
|
}
|
|
@@ -5711,8 +5711,8 @@ de.create({
|
|
|
5711
5711
|
addProseMirrorPlugins() {
|
|
5712
5712
|
const { editor: r } = this;
|
|
5713
5713
|
return [
|
|
5714
|
-
new
|
|
5715
|
-
key: new
|
|
5714
|
+
new Ge({
|
|
5715
|
+
key: new Ke("focusEvents"),
|
|
5716
5716
|
props: {
|
|
5717
5717
|
handleDOMEvents: {
|
|
5718
5718
|
focus: (e, t) => {
|
|
@@ -5785,8 +5785,8 @@ de.create({
|
|
|
5785
5785
|
// to a paragraph if necessary.
|
|
5786
5786
|
// This is an alternative to ProseMirror's `AllSelection`, which doesn’t work well
|
|
5787
5787
|
// with many other commands.
|
|
5788
|
-
new
|
|
5789
|
-
key: new
|
|
5788
|
+
new Ge({
|
|
5789
|
+
key: new Ke("clearDocument"),
|
|
5790
5790
|
appendTransaction: (r, e, t) => {
|
|
5791
5791
|
if (r.some((g) => g.getMeta("composition")))
|
|
5792
5792
|
return;
|
|
@@ -5814,8 +5814,8 @@ de.create({
|
|
|
5814
5814
|
name: "paste",
|
|
5815
5815
|
addProseMirrorPlugins() {
|
|
5816
5816
|
return [
|
|
5817
|
-
new
|
|
5818
|
-
key: new
|
|
5817
|
+
new Ge({
|
|
5818
|
+
key: new Ke("tiptapPaste"),
|
|
5819
5819
|
props: {
|
|
5820
5820
|
handlePaste: (r, e, t) => {
|
|
5821
5821
|
this.editor.emit("paste", {
|
|
@@ -5833,8 +5833,8 @@ de.create({
|
|
|
5833
5833
|
name: "tabindex",
|
|
5834
5834
|
addProseMirrorPlugins() {
|
|
5835
5835
|
return [
|
|
5836
|
-
new
|
|
5837
|
-
key: new
|
|
5836
|
+
new Ge({
|
|
5837
|
+
key: new Ke("tabindex"),
|
|
5838
5838
|
props: {
|
|
5839
5839
|
attributes: () => this.editor.isEditable ? { tabindex: "0" } : {}
|
|
5840
5840
|
}
|
|
@@ -6079,7 +6079,7 @@ const Kr = [
|
|
|
6079
6079
|
const c = String(l);
|
|
6080
6080
|
return c.length > a ? c.slice(0, a) + "…" : c;
|
|
6081
6081
|
}, n = $([]);
|
|
6082
|
-
|
|
6082
|
+
Je(
|
|
6083
6083
|
() => ({ anchors: e.anchors, commentsLen: (e.comments || []).length }),
|
|
6084
6084
|
({ anchors: l, commentsLen: a }) => {
|
|
6085
6085
|
!l || !l.length || a && (!n.value.length || n.value.length < a) && l.length >= a && (n.value = l.slice());
|
|
@@ -6117,7 +6117,7 @@ const Kr = [
|
|
|
6117
6117
|
return l;
|
|
6118
6118
|
});
|
|
6119
6119
|
return (l, a) => (O(), J("div", ac, [
|
|
6120
|
-
(O(!0), J(
|
|
6120
|
+
(O(!0), J(tt, null, xt(s.value, (c) => (O(), J("div", {
|
|
6121
6121
|
key: c.id,
|
|
6122
6122
|
class: "gutter-item-wrapper",
|
|
6123
6123
|
style: Di({ marginTop: `${c.marginTop}px` })
|
|
@@ -6781,7 +6781,7 @@ function lr(r, e, t) {
|
|
|
6781
6781
|
}
|
|
6782
6782
|
return P.fromArray(n);
|
|
6783
6783
|
}
|
|
6784
|
-
class
|
|
6784
|
+
class Pe extends ne {
|
|
6785
6785
|
/**
|
|
6786
6786
|
Create a mark step.
|
|
6787
6787
|
*/
|
|
@@ -6793,14 +6793,14 @@ class Le extends ne {
|
|
|
6793
6793
|
return V.fromReplace(e, this.from, this.to, i);
|
|
6794
6794
|
}
|
|
6795
6795
|
invert() {
|
|
6796
|
-
return new
|
|
6796
|
+
return new Le(this.from, this.to, this.mark);
|
|
6797
6797
|
}
|
|
6798
6798
|
map(e) {
|
|
6799
6799
|
let t = e.mapResult(this.from, 1), n = e.mapResult(this.to, -1);
|
|
6800
|
-
return t.deleted && n.deleted || t.pos >= n.pos ? null : new
|
|
6800
|
+
return t.deleted && n.deleted || t.pos >= n.pos ? null : new Pe(t.pos, n.pos, this.mark);
|
|
6801
6801
|
}
|
|
6802
6802
|
merge(e) {
|
|
6803
|
-
return e instanceof
|
|
6803
|
+
return e instanceof Pe && e.mark.eq(this.mark) && this.from <= e.to && this.to >= e.from ? new Pe(Math.min(this.from, e.from), Math.max(this.to, e.to), this.mark) : null;
|
|
6804
6804
|
}
|
|
6805
6805
|
toJSON() {
|
|
6806
6806
|
return {
|
|
@@ -6816,11 +6816,11 @@ class Le extends ne {
|
|
|
6816
6816
|
static fromJSON(e, t) {
|
|
6817
6817
|
if (typeof t.from != "number" || typeof t.to != "number")
|
|
6818
6818
|
throw new RangeError("Invalid input for AddMarkStep.fromJSON");
|
|
6819
|
-
return new
|
|
6819
|
+
return new Pe(t.from, t.to, e.markFromJSON(t.mark));
|
|
6820
6820
|
}
|
|
6821
6821
|
}
|
|
6822
|
-
ne.jsonID("addMark",
|
|
6823
|
-
class
|
|
6822
|
+
ne.jsonID("addMark", Pe);
|
|
6823
|
+
class Le extends ne {
|
|
6824
6824
|
/**
|
|
6825
6825
|
Create a mark-removing step.
|
|
6826
6826
|
*/
|
|
@@ -6832,14 +6832,14 @@ class qe extends ne {
|
|
|
6832
6832
|
return V.fromReplace(e, this.from, this.to, n);
|
|
6833
6833
|
}
|
|
6834
6834
|
invert() {
|
|
6835
|
-
return new
|
|
6835
|
+
return new Pe(this.from, this.to, this.mark);
|
|
6836
6836
|
}
|
|
6837
6837
|
map(e) {
|
|
6838
6838
|
let t = e.mapResult(this.from, 1), n = e.mapResult(this.to, -1);
|
|
6839
|
-
return t.deleted && n.deleted || t.pos >= n.pos ? null : new
|
|
6839
|
+
return t.deleted && n.deleted || t.pos >= n.pos ? null : new Le(t.pos, n.pos, this.mark);
|
|
6840
6840
|
}
|
|
6841
6841
|
merge(e) {
|
|
6842
|
-
return e instanceof
|
|
6842
|
+
return e instanceof Le && e.mark.eq(this.mark) && this.from <= e.to && this.to >= e.from ? new Le(Math.min(this.from, e.from), Math.max(this.to, e.to), this.mark) : null;
|
|
6843
6843
|
}
|
|
6844
6844
|
toJSON() {
|
|
6845
6845
|
return {
|
|
@@ -6855,11 +6855,11 @@ class qe extends ne {
|
|
|
6855
6855
|
static fromJSON(e, t) {
|
|
6856
6856
|
if (typeof t.from != "number" || typeof t.to != "number")
|
|
6857
6857
|
throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");
|
|
6858
|
-
return new
|
|
6858
|
+
return new Le(t.from, t.to, e.markFromJSON(t.mark));
|
|
6859
6859
|
}
|
|
6860
6860
|
}
|
|
6861
|
-
ne.jsonID("removeMark",
|
|
6862
|
-
class
|
|
6861
|
+
ne.jsonID("removeMark", Le);
|
|
6862
|
+
class qe extends ne {
|
|
6863
6863
|
/**
|
|
6864
6864
|
Create a node mark step.
|
|
6865
6865
|
*/
|
|
@@ -6880,15 +6880,15 @@ class We extends ne {
|
|
|
6880
6880
|
if (n.length == t.marks.length) {
|
|
6881
6881
|
for (let o = 0; o < t.marks.length; o++)
|
|
6882
6882
|
if (!t.marks[o].isInSet(n))
|
|
6883
|
-
return new
|
|
6884
|
-
return new
|
|
6883
|
+
return new qe(this.pos, t.marks[o]);
|
|
6884
|
+
return new qe(this.pos, this.mark);
|
|
6885
6885
|
}
|
|
6886
6886
|
}
|
|
6887
6887
|
return new It(this.pos, this.mark);
|
|
6888
6888
|
}
|
|
6889
6889
|
map(e) {
|
|
6890
6890
|
let t = e.mapResult(this.pos, 1);
|
|
6891
|
-
return t.deletedAfter ? null : new
|
|
6891
|
+
return t.deletedAfter ? null : new qe(t.pos, this.mark);
|
|
6892
6892
|
}
|
|
6893
6893
|
toJSON() {
|
|
6894
6894
|
return { stepType: "addNodeMark", pos: this.pos, mark: this.mark.toJSON() };
|
|
@@ -6899,10 +6899,10 @@ class We extends ne {
|
|
|
6899
6899
|
static fromJSON(e, t) {
|
|
6900
6900
|
if (typeof t.pos != "number")
|
|
6901
6901
|
throw new RangeError("Invalid input for AddNodeMarkStep.fromJSON");
|
|
6902
|
-
return new
|
|
6902
|
+
return new qe(t.pos, e.markFromJSON(t.mark));
|
|
6903
6903
|
}
|
|
6904
6904
|
}
|
|
6905
|
-
ne.jsonID("addNodeMark",
|
|
6905
|
+
ne.jsonID("addNodeMark", qe);
|
|
6906
6906
|
class It extends ne {
|
|
6907
6907
|
/**
|
|
6908
6908
|
Create a mark-removing step.
|
|
@@ -6919,7 +6919,7 @@ class It extends ne {
|
|
|
6919
6919
|
}
|
|
6920
6920
|
invert(e) {
|
|
6921
6921
|
let t = e.nodeAt(this.pos);
|
|
6922
|
-
return !t || !this.mark.isInSet(t.marks) ? this : new
|
|
6922
|
+
return !t || !this.mark.isInSet(t.marks) ? this : new qe(this.pos, this.mark);
|
|
6923
6923
|
}
|
|
6924
6924
|
map(e) {
|
|
6925
6925
|
let t = e.mapResult(this.pos, 1);
|
|
@@ -7238,11 +7238,11 @@ class K {
|
|
|
7238
7238
|
found.
|
|
7239
7239
|
*/
|
|
7240
7240
|
static findFrom(e, t, n = !1) {
|
|
7241
|
-
let o = e.parent.inlineContent ? new xe(e) :
|
|
7241
|
+
let o = e.parent.inlineContent ? new xe(e) : et(e.node(0), e.parent, e.pos, e.index(), t, n);
|
|
7242
7242
|
if (o)
|
|
7243
7243
|
return o;
|
|
7244
7244
|
for (let i = e.depth - 1; i >= 0; i--) {
|
|
7245
|
-
let s = t < 0 ?
|
|
7245
|
+
let s = t < 0 ? et(e.node(0), e.node(i), e.before(i + 1), e.index(i), t, n) : et(e.node(0), e.node(i), e.after(i + 1), e.index(i) + 1, t, n);
|
|
7246
7246
|
if (s)
|
|
7247
7247
|
return s;
|
|
7248
7248
|
}
|
|
@@ -7263,14 +7263,14 @@ class K {
|
|
|
7263
7263
|
exists.
|
|
7264
7264
|
*/
|
|
7265
7265
|
static atStart(e) {
|
|
7266
|
-
return
|
|
7266
|
+
return et(e, e, 0, 0, 1) || new Ne(e);
|
|
7267
7267
|
}
|
|
7268
7268
|
/**
|
|
7269
7269
|
Find the cursor or leaf node selection closest to the end of the
|
|
7270
7270
|
given document.
|
|
7271
7271
|
*/
|
|
7272
7272
|
static atEnd(e) {
|
|
7273
|
-
return
|
|
7273
|
+
return et(e, e, e.content.size, e.childCount, -1) || new Ne(e);
|
|
7274
7274
|
}
|
|
7275
7275
|
/**
|
|
7276
7276
|
Deserialize the JSON representation of a selection. Must be
|
|
@@ -7509,7 +7509,7 @@ const vc = {
|
|
|
7509
7509
|
return new Ne(r);
|
|
7510
7510
|
}
|
|
7511
7511
|
};
|
|
7512
|
-
function
|
|
7512
|
+
function et(r, e, t, n, o, i = !1) {
|
|
7513
7513
|
if (e.inlineContent)
|
|
7514
7514
|
return xe.create(r, t);
|
|
7515
7515
|
for (let s = n - (o > 0 ? 0 : 1); o > 0 ? s < e.childCount : s >= 0; s += o) {
|
|
@@ -7518,7 +7518,7 @@ function tt(r, e, t, n, o, i = !1) {
|
|
|
7518
7518
|
if (!i && ge.isSelectable(l))
|
|
7519
7519
|
return ge.create(r, t - (o < 0 ? l.nodeSize : 0));
|
|
7520
7520
|
} else {
|
|
7521
|
-
let a =
|
|
7521
|
+
let a = et(r, l, t + o, o < 0 ? l.childCount : 0, o, i);
|
|
7522
7522
|
if (a)
|
|
7523
7523
|
return a;
|
|
7524
7524
|
}
|
|
@@ -7719,7 +7719,10 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
7719
7719
|
"stroke-width": "1.5",
|
|
7720
7720
|
"stroke-linecap": "round",
|
|
7721
7721
|
"stroke-linejoin": "round"
|
|
7722
|
-
}, Pc = { class: "umo-custom-huge-btn__text" }, Lc = ["disabled"], qc = { class: "umo-custom-huge-btn__text" }, Wc = {
|
|
7722
|
+
}, Pc = { class: "umo-custom-huge-btn__text" }, Lc = ["disabled"], qc = { class: "umo-custom-huge-btn__text" }, Wc = {
|
|
7723
|
+
key: 0,
|
|
7724
|
+
class: "app-layout__comment-aside"
|
|
7725
|
+
}, Vc = { class: "html-dialog" }, jc = { class: "html-dialog__header" }, Hc = { class: "html-dialog__toolbar" }, Uc = { class: "html-dialog__content" }, Gc = { class: "html-dialog" }, Kc = { class: "html-dialog__header" }, Qc = { class: "html-dialog__toolbar" }, Xc = { class: "html-dialog__content" }, Yc = /* @__PURE__ */ Pi({
|
|
7723
7726
|
__name: "App",
|
|
7724
7727
|
props: {
|
|
7725
7728
|
/**
|
|
@@ -7822,11 +7825,11 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
7822
7825
|
));
|
|
7823
7826
|
}, I = $(null);
|
|
7824
7827
|
let A = null;
|
|
7825
|
-
|
|
7828
|
+
Je(
|
|
7826
7829
|
() => I.value,
|
|
7827
7830
|
() => y(),
|
|
7828
7831
|
{ immediate: !0 }
|
|
7829
|
-
),
|
|
7832
|
+
), Je(
|
|
7830
7833
|
() => l.editable,
|
|
7831
7834
|
() => y(),
|
|
7832
7835
|
{ immediate: !0 }
|
|
@@ -7844,7 +7847,7 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
7844
7847
|
queueDelete: gi,
|
|
7845
7848
|
cancelPendingDelete: yi
|
|
7846
7849
|
} = sc();
|
|
7847
|
-
|
|
7850
|
+
Je(j, (m) => {
|
|
7848
7851
|
a("activeCommentChange", m);
|
|
7849
7852
|
});
|
|
7850
7853
|
const _e = $(null), kn = $([]), ki = () => _e.value, wi = () => _e.value?.querySelector?.(".umo-scrollable-container") || _e.value?.querySelector?.(".umo-scrollable") || _e.value, xi = (m, k) => {
|
|
@@ -8309,7 +8312,7 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8309
8312
|
E instanceof HTMLElement && E.scrollIntoView({ behavior: "smooth", block: "nearest" });
|
|
8310
8313
|
}));
|
|
8311
8314
|
};
|
|
8312
|
-
return
|
|
8315
|
+
return Je(
|
|
8313
8316
|
() => I.value,
|
|
8314
8317
|
() => {
|
|
8315
8318
|
const k = Q()?.view?.dom;
|
|
@@ -8581,46 +8584,46 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8581
8584
|
], 512)
|
|
8582
8585
|
])
|
|
8583
8586
|
]),
|
|
8584
|
-
c.value ? (O(), J(
|
|
8587
|
+
c.value ? (O(), J("div", Wc, [
|
|
8585
8588
|
m.$slots["comment-panel"] ? ji(m.$slots, "comment-panel", {
|
|
8586
8589
|
key: 0,
|
|
8587
|
-
comments:
|
|
8588
|
-
activeCommentId:
|
|
8589
|
-
formatTime:
|
|
8590
|
+
comments: Qe(M),
|
|
8591
|
+
activeCommentId: Qe(j),
|
|
8592
|
+
formatTime: Qe(yn),
|
|
8590
8593
|
activate: kr,
|
|
8591
8594
|
deleteComment: gr,
|
|
8592
8595
|
resolveComment: yr
|
|
8593
8596
|
}, void 0, !0) : (O(), ft(ks, {
|
|
8594
8597
|
key: 1,
|
|
8595
|
-
comments:
|
|
8596
|
-
"active-comment-id":
|
|
8597
|
-
"format-time":
|
|
8598
|
+
comments: Qe(M),
|
|
8599
|
+
"active-comment-id": Qe(j),
|
|
8600
|
+
"format-time": Qe(yn),
|
|
8598
8601
|
onActivate: kr,
|
|
8599
8602
|
onDelete: gr,
|
|
8600
8603
|
onResolve: yr
|
|
8601
8604
|
}, null, 8, ["comments", "active-comment-id", "format-time"]))
|
|
8602
|
-
]
|
|
8605
|
+
])) : Be("", !0),
|
|
8603
8606
|
(O(), ft(Pn, { to: "body" }, [
|
|
8604
8607
|
zt.value ? (O(), J("div", {
|
|
8605
8608
|
key: 0,
|
|
8606
8609
|
class: "html-dialog-mask",
|
|
8607
8610
|
onClick: k[1] || (k[1] = ze((b) => zt.value = !1, ["self"]))
|
|
8608
8611
|
}, [
|
|
8609
|
-
p("div",
|
|
8610
|
-
p("div",
|
|
8612
|
+
p("div", Vc, [
|
|
8613
|
+
p("div", jc, [
|
|
8611
8614
|
k[13] || (k[13] = p("span", { class: "html-dialog__title" }, "导出 HTML", -1)),
|
|
8612
8615
|
p("button", {
|
|
8613
8616
|
class: "html-dialog__close",
|
|
8614
8617
|
onClick: k[0] || (k[0] = (b) => zt.value = !1)
|
|
8615
8618
|
}, "✕")
|
|
8616
8619
|
]),
|
|
8617
|
-
p("div",
|
|
8620
|
+
p("div", Hc, [
|
|
8618
8621
|
p("button", {
|
|
8619
8622
|
class: "html-dialog__copy-btn",
|
|
8620
8623
|
onClick: Ni
|
|
8621
8624
|
}, _($t.value ? "✓ 已复制" : "复制"), 1)
|
|
8622
8625
|
]),
|
|
8623
|
-
p("pre",
|
|
8626
|
+
p("pre", Uc, [
|
|
8624
8627
|
p("code", null, _(vn.value), 1)
|
|
8625
8628
|
])
|
|
8626
8629
|
])
|
|
@@ -8632,21 +8635,21 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8632
8635
|
class: "html-dialog-mask",
|
|
8633
8636
|
onClick: k[3] || (k[3] = ze((b) => Ft.value = !1, ["self"]))
|
|
8634
8637
|
}, [
|
|
8635
|
-
p("div",
|
|
8636
|
-
p("div",
|
|
8638
|
+
p("div", Gc, [
|
|
8639
|
+
p("div", Kc, [
|
|
8637
8640
|
k[14] || (k[14] = p("span", { class: "html-dialog__title" }, "导出 JSON", -1)),
|
|
8638
8641
|
p("button", {
|
|
8639
8642
|
class: "html-dialog__close",
|
|
8640
8643
|
onClick: k[2] || (k[2] = (b) => Ft.value = !1)
|
|
8641
8644
|
}, "✕")
|
|
8642
8645
|
]),
|
|
8643
|
-
p("div",
|
|
8646
|
+
p("div", Qc, [
|
|
8644
8647
|
p("button", {
|
|
8645
8648
|
class: "html-dialog__copy-btn",
|
|
8646
8649
|
onClick: Ri
|
|
8647
8650
|
}, _(Bt.value ? "✓ 已复制" : "复制"), 1)
|
|
8648
8651
|
]),
|
|
8649
|
-
p("pre",
|
|
8652
|
+
p("pre", Xc, [
|
|
8650
8653
|
p("code", null, _(Sn.value), 1)
|
|
8651
8654
|
])
|
|
8652
8655
|
])
|
|
@@ -8662,13 +8665,13 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8662
8665
|
]);
|
|
8663
8666
|
};
|
|
8664
8667
|
}
|
|
8665
|
-
}),
|
|
8668
|
+
}), Zc = /* @__PURE__ */ Ot(Yc, [["__scopeId", "data-v-17559b0a"]]), eu = { class: "complex-comment-panel" }, tu = { class: "complex-comment-panel__header" }, nu = { class: "complex-comment-panel__title" }, ru = { class: "complex-comment-panel__toolbar" }, ou = { class: "complex-comment-panel__risk-toggle" }, iu = {
|
|
8666
8669
|
key: 0,
|
|
8667
8670
|
class: "complex-comment-panel__empty"
|
|
8668
|
-
},
|
|
8671
|
+
}, su = {
|
|
8669
8672
|
class: "complex-comment-panel__tabs",
|
|
8670
8673
|
role: "tablist"
|
|
8671
|
-
},
|
|
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 = { class: "audit-card__point" }, 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 = {
|
|
8672
8675
|
__name: "ComplexCommentPanel",
|
|
8673
8676
|
props: {
|
|
8674
8677
|
items: {
|
|
@@ -8687,12 +8690,12 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8687
8690
|
emits: ["activate", "download"],
|
|
8688
8691
|
setup(r, { emit: e }) {
|
|
8689
8692
|
const t = r, n = e, o = $(!1), i = $(ut);
|
|
8690
|
-
|
|
8693
|
+
Je(
|
|
8691
8694
|
() => t.items,
|
|
8692
8695
|
() => {
|
|
8693
8696
|
i.value = ut;
|
|
8694
8697
|
}
|
|
8695
|
-
),
|
|
8698
|
+
), Je(o, () => {
|
|
8696
8699
|
i.value = ut;
|
|
8697
8700
|
});
|
|
8698
8701
|
const s = ue(() => {
|
|
@@ -8730,16 +8733,16 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8730
8733
|
}, y = (d) => {
|
|
8731
8734
|
n("activate", d);
|
|
8732
8735
|
};
|
|
8733
|
-
return (d, h) => (O(), J("aside",
|
|
8734
|
-
p("div",
|
|
8735
|
-
p("h3",
|
|
8736
|
-
p("div",
|
|
8736
|
+
return (d, h) => (O(), J("aside", eu, [
|
|
8737
|
+
p("div", tu, [
|
|
8738
|
+
p("h3", nu, _(r.title), 1),
|
|
8739
|
+
p("div", ru, [
|
|
8737
8740
|
p("button", {
|
|
8738
8741
|
type: "button",
|
|
8739
8742
|
class: "complex-comment-panel__download",
|
|
8740
8743
|
onClick: h[0] || (h[0] = (g) => n("download"))
|
|
8741
8744
|
}, " 下载 "),
|
|
8742
|
-
p("label",
|
|
8745
|
+
p("label", ou, [
|
|
8743
8746
|
ro(p("input", {
|
|
8744
8747
|
"onUpdate:modelValue": h[1] || (h[1] = (g) => o.value = g),
|
|
8745
8748
|
type: "checkbox"
|
|
@@ -8750,41 +8753,41 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8750
8753
|
])
|
|
8751
8754
|
])
|
|
8752
8755
|
]),
|
|
8753
|
-
r.items.length === 0 ? (O(), J("div",
|
|
8756
|
+
r.items.length === 0 ? (O(), J("div", iu, [...h[3] || (h[3] = [
|
|
8754
8757
|
p("p", null, "暂无审查结果", -1)
|
|
8755
|
-
])])) : (O(), J(
|
|
8756
|
-
p("div",
|
|
8757
|
-
(O(!0), J(
|
|
8758
|
+
])])) : (O(), J(tt, { key: 1 }, [
|
|
8759
|
+
p("div", su, [
|
|
8760
|
+
(O(!0), J(tt, null, xt(l.value, (g) => (O(), J("button", {
|
|
8758
8761
|
key: g.key,
|
|
8759
8762
|
type: "button",
|
|
8760
8763
|
role: "tab",
|
|
8761
8764
|
class: vt(["complex-comment-panel__tab", { "complex-comment-panel__tab--active": i.value === g.key }]),
|
|
8762
8765
|
onClick: (x) => i.value = g.key
|
|
8763
|
-
}, _(g.label) + " (" + _(g.count) + ") ", 11,
|
|
8766
|
+
}, _(g.label) + " (" + _(g.count) + ") ", 11, lu))), 128))
|
|
8764
8767
|
]),
|
|
8765
|
-
p("div",
|
|
8766
|
-
(O(!0), J(
|
|
8768
|
+
p("div", au, [
|
|
8769
|
+
(O(!0), J(tt, null, xt(c.value, (g) => (O(), J("section", {
|
|
8767
8770
|
key: g.category,
|
|
8768
8771
|
class: "complex-comment-panel__section"
|
|
8769
8772
|
}, [
|
|
8770
|
-
p("div",
|
|
8771
|
-
p("span",
|
|
8773
|
+
p("div", cu, [
|
|
8774
|
+
p("span", uu, _(g.category), 1)
|
|
8772
8775
|
]),
|
|
8773
|
-
p("ul",
|
|
8774
|
-
(O(!0), J(
|
|
8776
|
+
p("ul", fu, [
|
|
8777
|
+
(O(!0), J(tt, null, xt(g.rows, (x) => (O(), J("li", {
|
|
8775
8778
|
key: x.id,
|
|
8776
8779
|
class: vt(["audit-card", { "audit-card--active": r.activeCommentId === x.id }]),
|
|
8777
8780
|
onClick: (v) => y(x.id)
|
|
8778
8781
|
}, [
|
|
8779
|
-
p("div",
|
|
8780
|
-
p("span",
|
|
8782
|
+
p("div", hu, [
|
|
8783
|
+
p("span", pu, _(x.reviewPoint || "(无审查点)"), 1),
|
|
8781
8784
|
p("span", {
|
|
8782
8785
|
class: vt(["audit-card__badge", f(x.reviewStatus)])
|
|
8783
8786
|
}, _(u(x.reviewStatus)), 3)
|
|
8784
8787
|
]),
|
|
8785
|
-
p("div",
|
|
8788
|
+
p("div", mu, [
|
|
8786
8789
|
h[5] || (h[5] = p("div", { class: "audit-card__label" }, "原文内容", -1)),
|
|
8787
|
-
p("div",
|
|
8790
|
+
p("div", gu, _(x.originalText || "无原文"), 1),
|
|
8788
8791
|
p("button", {
|
|
8789
8792
|
type: "button",
|
|
8790
8793
|
class: "audit-card__locate",
|
|
@@ -8795,35 +8798,35 @@ const Ec = { class: "app-layout" }, Ic = { class: "editor-wrapper" }, Nc = { cla
|
|
|
8795
8798
|
"aria-hidden": "true"
|
|
8796
8799
|
}, "⌖", -1),
|
|
8797
8800
|
Jn(" 原文定位 ", -1)
|
|
8798
|
-
])], 8,
|
|
8801
|
+
])], 8, yu)
|
|
8799
8802
|
]),
|
|
8800
8803
|
h[7] || (h[7] = p("div", { class: "audit-card__divider" }, null, -1)),
|
|
8801
|
-
p("div",
|
|
8804
|
+
p("div", ku, [
|
|
8802
8805
|
h[6] || (h[6] = p("div", { class: "audit-card__label audit-card__label--strong" }, "审查说明", -1)),
|
|
8803
|
-
p("p",
|
|
8806
|
+
p("p", wu, _(x.auditDescription || "—"), 1)
|
|
8804
8807
|
])
|
|
8805
|
-
], 10,
|
|
8808
|
+
], 10, du))), 128))
|
|
8806
8809
|
])
|
|
8807
8810
|
]))), 128))
|
|
8808
8811
|
])
|
|
8809
8812
|
], 64))
|
|
8810
8813
|
]));
|
|
8811
8814
|
}
|
|
8812
|
-
},
|
|
8813
|
-
function
|
|
8815
|
+
}, Fu = /* @__PURE__ */ Ot(xu, [["__scopeId", "data-v-857048b4"]]);
|
|
8816
|
+
function Bu() {
|
|
8814
8817
|
}
|
|
8815
|
-
const
|
|
8818
|
+
const Ju = {
|
|
8816
8819
|
install(r, e) {
|
|
8817
8820
|
const t = { ...e ?? {} };
|
|
8818
8821
|
for (const n of ["onFileUpload", "onFileDelete", "onSave"])
|
|
8819
8822
|
n in t && typeof t[n] != "function" && delete t[n];
|
|
8820
|
-
r.use(Bi, t), r.component("UmoEditorApp",
|
|
8823
|
+
r.use(Bi, t), r.component("UmoEditorApp", Zc);
|
|
8821
8824
|
}
|
|
8822
8825
|
};
|
|
8823
8826
|
export {
|
|
8824
8827
|
ks as CommentPanel,
|
|
8825
|
-
|
|
8826
|
-
|
|
8827
|
-
|
|
8828
|
-
|
|
8828
|
+
Fu as ComplexCommentPanel,
|
|
8829
|
+
Zc as UmoEditorApp,
|
|
8830
|
+
Ju as UmoEditorAppPlugin,
|
|
8831
|
+
Bu as ensureUmoEditorGlobals
|
|
8829
8832
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.vue.d.ts","sourceRoot":"","sources":["../../src/App.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"App.vue.d.ts","sourceRoot":"","sources":["../../src/App.vue"],"names":[],"mappings":"AAu2DA,OAAO,KAAK,EAAyD,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AA6EjH,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AA4vDjH,QAAA,IAAuB,QAAQ;;;;;;;CAAY,CAAE;AAC7C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AASxD,QAAA,MAAM,UAAU;IAId;;;OAGG;;;;;IAKH;;;OAGG;;;;;IAKH;;OAEG;;;;;IAKH;;;OAGG;;;;;;;;cAjyD0B,OAAO;iBAAW,MAAM;;;cAClB,IAAI;;;YACN,GAAG;aAAO,GAAG;;;;IAqwD9C;;;OAGG;;;;;IAKH;;;OAGG;;;;;IAKH;;OAEG;;;;;IAKH;;;OAGG;;;;;;;;cAjyD0B,OAAO;iBAAW,MAAM;;;cAClB,IAAI;;;YACN,GAAG;aAAO,GAAG;;;;;;;;4EAqyD9C,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommentPanel.vue.d.ts","sourceRoot":"","sources":["../../../src/components/CommentPanel.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CommentPanel.vue.d.ts","sourceRoot":"","sources":["../../../src/components/CommentPanel.vue"],"names":[],"mappings":"wBA0mBqB,OAAO,YAAY;;AAjBxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAgBG"}
|
|
@@ -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":"wBAo0BqB,OAAO,YAAY;;AAjBxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAgBG"}
|