@lyhue1991/dsh-soup 0.5.3 → 0.5.4
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/lib/client.bundle.js +126 -1
- package/lib/client.js +136 -1
- package/package.json +1 -1
package/lib/client.bundle.js
CHANGED
|
@@ -30797,7 +30797,7 @@
|
|
|
30797
30797
|
goalTag.textContent = GOAL_CSS;
|
|
30798
30798
|
document.head.appendChild(goalTag);
|
|
30799
30799
|
}
|
|
30800
|
-
var FILEVIEW_CSS = '.dfv-root{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--dsw-specific-sidebar-fill);color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-family);user-select:text;-webkit-user-select:text;}.dfv-header{position:sticky;top:0;z-index:2;flex:none;background:var(--dsw-specific-sidebar-fill);}.dfv-tabbar{display:flex;align-items:center;gap:2px;flex:none;overflow-x:auto;padding:6px 10px 0;border-bottom:1px solid var(--dsw-alias-border-l1);scrollbar-width:none;}.dfv-tabbar::-webkit-scrollbar{display:none;}.dfv-tab{display:inline-flex;align-items:center;gap:5px;padding:5px 8px 5px 10px;border:none;border-radius:8px 8px 0 0;background:transparent;color:var(--dsw-alias-label-secondary);font-size:12px;line-height:1.4;cursor:pointer;white-space:nowrap;max-width:220px;}.dfv-tab:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);}.dfv-tab.active{background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);box-shadow:inset 0 -2px 0 var(--dsw-alias-state-business-primary);}.dfv-tab-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.dfv-close{flex:none;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:none;border-radius:4px;background:transparent;color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:1;cursor:pointer;padding:0;}.dfv-close:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);}.dfv-body{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--dsw-alias-bg-layer-1);}.dfv-toolbar{display:flex;align-items:center;gap:8px;flex:none;padding:6px 12px;border-bottom:1px solid var(--dsw-alias-border-l1);font-size:11px;color:var(--dsw-alias-label-secondary);}.dfv-toolbar-path{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left;unicode-bidi:plaintext;font-family:var(--ds-font-family-code);}.dfv-btn{flex:none;display:inline-flex;align-items:center;gap:5px;height:26px;box-sizing:border-box;background:transparent;border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);font-size:12px;line-height:1;padding:0 10px;border-radius:7px;cursor:pointer;}.dfv-btn:hover{background:var(--dsw-alias-interactive-bg-hover);}.dfv-btn svg{width:14px;height:14px;display:block;flex:none;}.dfv-btn:disabled{opacity:.45;cursor:default;}.dfv-btn-primary{border-color:var(--dsw-alias-state-business-primary);color:var(--dsw-alias-state-business-primary);}.dfv-status{flex:none;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-state-warning-primary);}.dfv-save-error{flex:none;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-state-error-primary);}.dfv-saved{color:var(--dsw-alias-state-success-primary);}.dfv-cm-editor{--dsh-soup-code-cursor:#1f2328;--dsh-soup-code-plain:#1f2328;--dsh-soup-code-comment:#57606a;--dsh-soup-code-keyword:#cf3476;--dsh-soup-code-string:#116329;--dsh-soup-code-number:#953800;--dsh-soup-code-type:#0969da;--dsh-soup-code-variable:#1f2328;--dsh-soup-code-function:#8250df;--dsh-soup-code-property:#0550ae;--dsh-soup-code-punctuation:#57606a;--dsh-soup-code-invalid:#cf222e;--dsh-soup-json-property:#0550ae;--dsh-soup-json-string:#116329;--dsh-soup-json-number:#953800;--dsh-soup-json-literal:#8250df;--dsh-soup-json-punctuation:#57606a;flex:1;min-height:0;min-width:0;overflow:hidden;background:var(--dsw-alias-bg-layer-1);}body[data-ds-dark-theme] .dfv-cm-editor{--dsh-soup-code-cursor:#f9fafb;--dsh-soup-code-plain:#f9fafb;--dsh-soup-code-comment:#7d8590;--dsh-soup-code-keyword:#faa2c1;--dsh-soup-code-string:#8ce99a;--dsh-soup-code-number:#ffa94d;--dsh-soup-code-type:#4dabf7;--dsh-soup-code-variable:#f9fafb;--dsh-soup-code-function:#b197fc;--dsh-soup-code-property:#82aaff;--dsh-soup-code-punctuation:#ced4da;--dsh-soup-code-invalid:#ff6b6b;--dsh-soup-json-property:#82aaff;--dsh-soup-json-string:#9ece8f;--dsh-soup-json-number:#e0a96d;--dsh-soup-json-literal:#c792ea;--dsh-soup-json-punctuation:#ced4da;}.dfv-cm-editor .cm-editor{height:100%;color:var(--dsh-soup-code-plain);background:transparent;font:12.5px/1.55 var(--ds-font-family-code);}.dfv-cm-editor .cm-scroller{overflow:auto;font:inherit;}.dfv-cm-editor .cm-content{padding:10px 14px;min-height:calc(100% - 20px);caret-color:var(--dsh-soup-code-cursor);}.dfv-cm-editor .cm-cursor{border-left-color:var(--dsh-soup-code-cursor)!important;}.dfv-cm-editor .cm-line{padding:0;}.dfv-cm-editor .cm-gutters{border-right:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-caption);font:12.5px/1.55 var(--ds-font-family-code);}.dfv-cm-editor .cm-gutterElement{box-sizing:content-box;padding:0 8px 0 12px!important;min-width:0!important;}.dfv-cm-editor .cm-activeLine,.dfv-cm-editor .cm-activeLineGutter{background:transparent;}.dfv-cm-editor .cm-selectionBackground{background:var(--dsw-alias-state-business-primary-hover);}.dfv-cm-editor .cm-focused{outline:none;}.dfv-editor{flex:1;min-height:0;width:100%;box-sizing:border-box;margin:0;padding:10px 14px;border:none;outline:none;resize:none;overflow:auto;background:transparent;color:var(--dsh-soup-code-plain);caret-color:var(--dsh-soup-code-cursor);font:12.5px/1.55 var(--ds-font-family-code);letter-spacing:normal;text-align:left;text-indent:0;text-transform:none;direction:ltr;white-space:pre;overflow-wrap:normal;word-break:normal;tab-size:2;}.dfv-editor::selection{background:var(--dsw-alias-state-business-primary-hover);}.dfv-dirty{flex:none;width:7px;height:7px;border-radius:999px;background:var(--dsw-alias-state-warning-primary);}.dfv-error{padding:8px 14px;font-size:12px;color:var(--dsw-alias-state-error-primary);flex:none;}.dfv-muted{padding:24px 14px;font-size:13px;color:var(--dsw-alias-label-tertiary);text-align:center;}.dfv-cap{padding:5px 14px;font-size:11px;color:var(--dsw-alias-label-caption);border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;}.dfv-code{flex:1;min-height:0;width:100%;box-sizing:border-box;margin:0;padding:10px 14px;overflow:auto;background:transparent;color:var(--dsw-alias-label-primary);font-family:var(--ds-font-family-code);font-size:12.5px;line-height:1.55;white-space:pre;tab-size:2;user-select:text;}.dfv-code-wrap{flex:1;min-height:0;overflow:auto;padding:8px 10px;}.dfv-code-lines{flex:1;min-height:0;display:flex;overflow:auto;}.dfv-code-gutter{position:sticky;left:0;z-index:1;flex:none;padding:10px 8px 10px 12px;box-sizing:border-box;text-align:right;color:var(--dsw-alias-label-caption);font-family:var(--ds-font-family-code);font-size:12.5px;line-height:1.55;user-select:none;background:var(--dsw-alias-bg-layer-1);border-right:1px solid var(--dsw-alias-border-l1);}.dfv-code-main{flex:1;min-width:0;}.dfv-code-main .dfv-code{overflow:visible;width:auto;}.dfv-code-main .md-code-block{margin:0;border-radius:0;background:transparent;}.dfv-code-main .md-code-block>div:first-child{display:none!important;}.dfv-code-main .md-code-block pre{padding:10px 14px!important;margin:0!important;font:12.5px/1.55 var(--ds-font-family-code)!important;background:transparent!important;border-radius:0!important;white-space:pre!important;word-break:normal!important;}.dfv-nb{flex:1;min-height:0;overflow:auto;background:var(--dsw-alias-bg-base);}.dfv-nb-cell{display:flex;border-bottom:1px solid var(--dsw-alias-border-l1);}.dfv-nb-gutter{flex:none;width:44px;padding:8px 6px;text-align:right;font-family:var(--ds-font-family-code);font-size:11px;color:var(--dsw-alias-label-caption);border-right:1px solid var(--dsw-alias-border-l1);user-select:none;background:var(--dsw-specific-sidebar-fill);}.dfv-nb-cellbody{flex:1;min-width:0;padding:4px 0;}.dfv-nb-cellbody .md-code-block,.dfv-nb-cellbody .dfv-code{margin:4px 10px;border-radius:8px;overflow:hidden;}.dfv-nb-cellbody .dfv-code-lines{border-radius:8px;overflow:hidden;}.dfv-nb-cellbody .dfv-code-gutter{padding:8px 6px 8px 10px;font-size:12px;}.dfv-nb-cell.dfv-nb-markdown .dfv-md-wrap{padding:2px 14px;}.dfv-nb-raw{color:var(--dsw-alias-label-secondary);}.dfv-nb-outputs{border-top:1px dashed var(--dsw-alias-border-l1);padding:6px 10px;display:flex;flex-direction:column;gap:8px;}.dfv-nb-out{margin:0;padding:6px 8px;font-family:var(--ds-font-family-code);font-size:12px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);border-radius:6px;max-height:320px;overflow:auto;}.dfv-nb-out-err{color:var(--dsw-alias-state-error-primary);}.dfv-nb-error{border:1px solid var(--dsw-alias-state-error-primary);border-radius:8px;overflow:hidden;}.dfv-nb-error-head{padding:5px 10px;font-family:var(--ds-font-family-code);font-size:12px;font-weight:600;color:#fff;background:var(--dsw-alias-state-error-primary);}.dfv-nb-trace{margin:0;padding:8px 10px;font-family:var(--ds-font-family-code);font-size:11.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--dsw-alias-state-error-primary);background:var(--dsw-alias-bg-layer-1);max-height:260px;overflow:auto;}.dfv-nb-img{max-width:100%;height:auto;border-radius:6px;}.dfv-nb-html{width:100%;height:240px;border:1px solid var(--dsw-alias-border-l1);border-radius:6px;background:#fff;}.dfv-md-wrap{flex:1;min-height:0;overflow:auto;background:var(--dsw-alias-bg-base);}.dfv-md{padding:6px 18px 16px;font-size:13px;line-height:1.65;color:var(--dsw-alias-label-primary);}.dfv-frame{flex:1;min-height:0;width:100%;border:none;background:#fff;}.dfv-image-wrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto;}.dfv-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:var(--dsw-shadow-lv2);}.dfv-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--dsw-alias-label-tertiary);font-size:13px;}.dfv-json .dfv-tok-key{color:#82aaff;}.dfv-json .dfv-tok-str{color:#9ece8f;}.dfv-json .dfv-tok-num{color:#e0a96d;}.dfv-json .dfv-tok-bool,.dfv-json .dfv-tok-null{color:#c792ea;}.dfv-table-wrap{flex:1;min-height:0;overflow:auto;}.dfv-table{border-collapse:collapse;font-size:12px;font-family:var(--ds-font-family-code);}.dfv-th{position:sticky;top:0;z-index:1;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);font-weight:600;text-align:left;padding:5px 10px;border-bottom:1px solid var(--dsw-alias-border-l2);border-right:1px solid var(--dsw-alias-border-l1);white-space:nowrap;}.dfv-td{padding:4px 10px;border-bottom:1px solid var(--dsw-alias-border-l1);border-right:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-primary);white-space:pre-wrap;overflow-wrap:anywhere;max-width:360px;}.dfv-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--dsw-alias-bg-mask-1,rgba(0,0,0,.24));backdrop-filter:var(--dsw-mask-blur,blur(2px));}.dfv-overlay-panel{display:flex;flex-direction:column;width:800px;height:min(800px,calc(100vh - 48px));max-width:calc(100vw - 48px);border-radius:24px;overflow:hidden;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv3);user-select:text;-webkit-user-select:text;}.dfv-overlay-panel.dfv-overlay-max{width:100vw;height:100vh;max-width:none;border-radius:0;border:none;}.dfv-overlay-close{flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:6px;background:transparent;color:var(--dsw-alias-label-secondary);font-size:14px;line-height:1;cursor:pointer;padding:0;}.dfv-overlay-close:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);}[data-dsh-soup-preview="1"] [data-composer-seat]{display:none !important;}[data-dsh-soup-preview="1"] .wSkVaW_composerSeat{display:none !important;}[data-dsh-soup-preview="1"] .FJxK0a_root{display:none !important;}';
|
|
30800
|
+
var FILEVIEW_CSS = '.dfv-root{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--dsw-specific-sidebar-fill);color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-family);user-select:text;-webkit-user-select:text;}.dfv-header{position:sticky;top:0;z-index:2;flex:none;background:var(--dsw-specific-sidebar-fill);}.dfv-tabbar{display:flex;align-items:center;gap:2px;flex:none;overflow-x:auto;padding:6px 10px 0;border-bottom:1px solid var(--dsw-alias-border-l1);scrollbar-width:none;}.dfv-tabbar::-webkit-scrollbar{display:none;}.dfv-tab{display:inline-flex;align-items:center;gap:5px;padding:5px 8px 5px 10px;border:none;border-radius:8px 8px 0 0;background:transparent;color:var(--dsw-alias-label-secondary);font-size:12px;line-height:1.4;cursor:pointer;white-space:nowrap;max-width:220px;}.dfv-tab:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);}.dfv-tab.active{background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);box-shadow:inset 0 -2px 0 var(--dsw-alias-state-business-primary);}.dfv-tab-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.dfv-close{flex:none;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:none;border-radius:4px;background:transparent;color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:1;cursor:pointer;padding:0;}.dfv-close:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);}.dfv-body{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--dsw-alias-bg-layer-1);}.dfv-toolbar{display:flex;align-items:center;gap:8px;flex:none;padding:6px 12px;border-bottom:1px solid var(--dsw-alias-border-l1);font-size:11px;color:var(--dsw-alias-label-secondary);}.dfv-toolbar-path{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left;unicode-bidi:plaintext;font-family:var(--ds-font-family-code);}.dfv-btn{flex:none;display:inline-flex;align-items:center;gap:5px;height:26px;box-sizing:border-box;background:transparent;border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);font-size:12px;line-height:1;padding:0 10px;border-radius:7px;cursor:pointer;}.dfv-btn:hover{background:var(--dsw-alias-interactive-bg-hover);}.dfv-btn svg{width:14px;height:14px;display:block;flex:none;}.dfv-btn:disabled{opacity:.45;cursor:default;}.dfv-btn-primary{border-color:var(--dsw-alias-state-business-primary);color:var(--dsw-alias-state-business-primary);}.dfv-status{flex:none;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-state-warning-primary);}.dfv-save-error{flex:none;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-state-error-primary);}.dfv-saved{color:var(--dsw-alias-state-success-primary);}.dfv-cm-editor{--dsh-soup-code-cursor:#1f2328;--dsh-soup-code-plain:#1f2328;--dsh-soup-code-comment:#57606a;--dsh-soup-code-keyword:#cf3476;--dsh-soup-code-string:#116329;--dsh-soup-code-number:#953800;--dsh-soup-code-type:#0969da;--dsh-soup-code-variable:#1f2328;--dsh-soup-code-function:#8250df;--dsh-soup-code-property:#0550ae;--dsh-soup-code-punctuation:#57606a;--dsh-soup-code-invalid:#cf222e;--dsh-soup-json-property:#0550ae;--dsh-soup-json-string:#116329;--dsh-soup-json-number:#953800;--dsh-soup-json-literal:#8250df;--dsh-soup-json-punctuation:#57606a;flex:1;min-height:0;min-width:0;overflow:hidden;background:var(--dsw-alias-bg-layer-1);}body[data-ds-dark-theme] .dfv-cm-editor{--dsh-soup-code-cursor:#f9fafb;--dsh-soup-code-plain:#f9fafb;--dsh-soup-code-comment:#7d8590;--dsh-soup-code-keyword:#faa2c1;--dsh-soup-code-string:#8ce99a;--dsh-soup-code-number:#ffa94d;--dsh-soup-code-type:#4dabf7;--dsh-soup-code-variable:#f9fafb;--dsh-soup-code-function:#b197fc;--dsh-soup-code-property:#82aaff;--dsh-soup-code-punctuation:#ced4da;--dsh-soup-code-invalid:#ff6b6b;--dsh-soup-json-property:#82aaff;--dsh-soup-json-string:#9ece8f;--dsh-soup-json-number:#e0a96d;--dsh-soup-json-literal:#c792ea;--dsh-soup-json-punctuation:#ced4da;}.dfv-cm-editor .cm-editor{height:100%;color:var(--dsh-soup-code-plain);background:transparent;font:12.5px/1.55 var(--ds-font-family-code);}.dfv-cm-editor .cm-scroller{overflow:auto;font:inherit;}.dfv-cm-editor .cm-content{padding:10px 14px;min-height:calc(100% - 20px);caret-color:var(--dsh-soup-code-cursor);}.dfv-cm-editor .cm-cursor{border-left-color:var(--dsh-soup-code-cursor)!important;}.dfv-cm-editor .cm-line{padding:0;}.dfv-cm-editor .cm-gutters{border-right:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-caption);font:12.5px/1.55 var(--ds-font-family-code);}.dfv-cm-editor .cm-gutterElement{box-sizing:content-box;padding:0 8px 0 12px!important;min-width:0!important;}.dfv-cm-editor .cm-activeLine,.dfv-cm-editor .cm-activeLineGutter{background:transparent;}.dfv-cm-editor .cm-selectionBackground{background:var(--dsw-alias-state-business-primary-hover);}.dfv-cm-editor .cm-focused{outline:none;}.dfv-editor{flex:1;min-height:0;width:100%;box-sizing:border-box;margin:0;padding:10px 14px;border:none;outline:none;resize:none;overflow:auto;background:transparent;color:var(--dsh-soup-code-plain);caret-color:var(--dsh-soup-code-cursor);font:12.5px/1.55 var(--ds-font-family-code);letter-spacing:normal;text-align:left;text-indent:0;text-transform:none;direction:ltr;white-space:pre;overflow-wrap:normal;word-break:normal;tab-size:2;}.dfv-editor::selection{background:var(--dsw-alias-state-business-primary-hover);}.dfv-dirty{flex:none;width:7px;height:7px;border-radius:999px;background:var(--dsw-alias-state-warning-primary);}.dfv-error{padding:8px 14px;font-size:12px;color:var(--dsw-alias-state-error-primary);flex:none;}.dfv-muted{padding:24px 14px;font-size:13px;color:var(--dsw-alias-label-tertiary);text-align:center;}.dfv-cap{padding:5px 14px;font-size:11px;color:var(--dsw-alias-label-caption);border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;}.dfv-code{flex:1;min-height:0;width:100%;box-sizing:border-box;margin:0;padding:10px 14px;overflow:auto;background:transparent;color:var(--dsw-alias-label-primary);font-family:var(--ds-font-family-code);font-size:12.5px;line-height:1.55;white-space:pre;tab-size:2;user-select:text;}.dfv-code-wrap{flex:1;min-height:0;overflow:auto;padding:8px 10px;}.dfv-code-lines{flex:1;min-height:0;display:flex;overflow:auto;}.dfv-code-gutter{position:sticky;left:0;z-index:1;flex:none;padding:10px 8px 10px 12px;box-sizing:border-box;text-align:right;color:var(--dsw-alias-label-caption);font-family:var(--ds-font-family-code);font-size:12.5px;line-height:1.55;user-select:none;background:var(--dsw-alias-bg-layer-1);border-right:1px solid var(--dsw-alias-border-l1);}.dfv-code-main{flex:1;min-width:0;}.dfv-code-main .dfv-code{overflow:visible;width:auto;}.dfv-code-main .md-code-block{margin:0;border-radius:0;background:transparent;}.dfv-code-main .md-code-block>div:first-child{display:none!important;}.dfv-code-main .md-code-block pre{padding:10px 14px!important;margin:0!important;font:12.5px/1.55 var(--ds-font-family-code)!important;background:transparent!important;border-radius:0!important;white-space:pre!important;word-break:normal!important;}.dfv-nb{flex:1;min-height:0;overflow:auto;background:var(--dsw-alias-bg-base);}.dfv-nb-cell{display:flex;border-bottom:1px solid var(--dsw-alias-border-l1);}.dfv-nb-gutter{flex:none;width:44px;padding:8px 6px;text-align:right;font-family:var(--ds-font-family-code);font-size:11px;color:var(--dsw-alias-label-caption);border-right:1px solid var(--dsw-alias-border-l1);user-select:none;background:var(--dsw-specific-sidebar-fill);}.dfv-nb-cellbody{flex:1;min-width:0;padding:4px 0;}.dfv-nb-cellbody .md-code-block,.dfv-nb-cellbody .dfv-code{margin:4px 10px;border-radius:8px;overflow:hidden;}.dfv-nb-cellbody .dfv-code-lines{border-radius:8px;overflow:hidden;}.dfv-nb-cellbody .dfv-code-gutter{padding:8px 6px 8px 10px;font-size:12px;}.dfv-nb-cell.dfv-nb-markdown .dfv-md-wrap{padding:2px 14px;}.dfv-nb-raw{color:var(--dsw-alias-label-secondary);}.dfv-nb-outputs{border-top:1px dashed var(--dsw-alias-border-l1);padding:6px 10px;display:flex;flex-direction:column;gap:8px;}.dfv-nb-out{margin:0;padding:6px 8px;font-family:var(--ds-font-family-code);font-size:12px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);border-radius:6px;max-height:320px;overflow:auto;}.dfv-nb-out-err{color:var(--dsw-alias-state-error-primary);}.dfv-nb-error{border:1px solid var(--dsw-alias-state-error-primary);border-radius:8px;overflow:hidden;}.dfv-nb-error-head{padding:5px 10px;font-family:var(--ds-font-family-code);font-size:12px;font-weight:600;color:#fff;background:var(--dsw-alias-state-error-primary);}.dfv-nb-trace{margin:0;padding:8px 10px;font-family:var(--ds-font-family-code);font-size:11.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--dsw-alias-state-error-primary);background:var(--dsw-alias-bg-layer-1);max-height:260px;overflow:auto;}.dfv-nb-img{max-width:100%;height:auto;border-radius:6px;}.dfv-nb-html{width:100%;height:240px;border:1px solid var(--dsw-alias-border-l1);border-radius:6px;background:#fff;}.dfv-md-wrap{flex:1;min-height:0;overflow:auto;background:var(--dsw-alias-bg-base);}.dfv-md{padding:6px 18px 16px;font-size:13px;line-height:1.65;color:var(--dsw-alias-label-primary);}.dfv-frame{flex:1;min-height:0;width:100%;border:none;background:#fff;}.dfv-image-wrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto;}.dfv-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:var(--dsw-shadow-lv2);}.dfv-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--dsw-alias-label-tertiary);font-size:13px;}.dfv-json .dfv-tok-key{color:#82aaff;}.dfv-json .dfv-tok-str{color:#9ece8f;}.dfv-json .dfv-tok-num{color:#e0a96d;}.dfv-json .dfv-tok-bool,.dfv-json .dfv-tok-null{color:#c792ea;}.dfv-table-wrap{flex:1;min-height:0;overflow:auto;}.dfv-table{border-collapse:collapse;font-size:12px;font-family:var(--ds-font-family-code);}.dfv-th{position:sticky;top:0;z-index:1;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);font-weight:600;text-align:left;padding:5px 10px;border-bottom:1px solid var(--dsw-alias-border-l2);border-right:1px solid var(--dsw-alias-border-l1);white-space:nowrap;}.dfv-td{padding:4px 10px;border-bottom:1px solid var(--dsw-alias-border-l1);border-right:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-primary);white-space:pre-wrap;overflow-wrap:anywhere;max-width:360px;}.dfv-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--dsw-alias-bg-mask-1,rgba(0,0,0,.24));backdrop-filter:var(--dsw-mask-blur,blur(2px));}.dfv-overlay-panel{display:flex;flex-direction:column;width:800px;height:min(800px,calc(100vh - 48px));max-width:calc(100vw - 48px);border-radius:24px;overflow:hidden;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv3);user-select:text;-webkit-user-select:text;}.dfv-overlay-panel.dfv-overlay-max{width:100vw;height:100vh;max-width:none;border-radius:0;border:none;}.dfv-overlay-close{flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:6px;background:transparent;color:var(--dsw-alias-label-secondary);font-size:14px;line-height:1;cursor:pointer;padding:0;}.dfv-overlay-close:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);}[data-dsh-soup-preview="1"] [data-composer-seat]{display:none !important;}[data-dsh-soup-preview="1"] .wSkVaW_composerSeat{display:none !important;}[data-dsh-soup-preview="1"] .FJxK0a_root{display:none !important;}[data-dsh-soup-preview="1"] [data-width-handle]{display:none !important;}[data-dsh-soup-preview="1"] .wSkVaW_widthHandle{display:none !important;}body.dsh-soup-preview-active [data-width-handle]{display:none !important;pointer-events:none !important;}body.dsh-soup-preview-active .wSkVaW_widthHandle{display:none !important;pointer-events:none !important;}';
|
|
30801
30801
|
if (typeof document !== "undefined" && document.querySelector('style[data-plugin-css="@lyhue1991/dsh-soup/fileview.css"]') === null) {
|
|
30802
30802
|
var fileviewTag = document.createElement("style");
|
|
30803
30803
|
fileviewTag.dataset.plugin = "@lyhue1991/dsh-soup";
|
|
@@ -32699,6 +32699,62 @@
|
|
|
32699
32699
|
}
|
|
32700
32700
|
setFiles({ list: state.files.list.slice(), active: path });
|
|
32701
32701
|
}
|
|
32702
|
+
var FILE_ADDRESS_PREFIX = "dsh-resource://file/";
|
|
32703
|
+
function decodeSegmentSafe(segment) {
|
|
32704
|
+
try {
|
|
32705
|
+
return decodeURIComponent(segment);
|
|
32706
|
+
} catch (e) {
|
|
32707
|
+
return null;
|
|
32708
|
+
}
|
|
32709
|
+
}
|
|
32710
|
+
function parseFileAddress(address) {
|
|
32711
|
+
if (typeof address !== "string" || address.indexOf(FILE_ADDRESS_PREFIX) !== 0) return null;
|
|
32712
|
+
var end = address.search(/[?#]/);
|
|
32713
|
+
var body = address.slice(FILE_ADDRESS_PREFIX.length, end === -1 ? void 0 : end);
|
|
32714
|
+
var parts = body.split("/");
|
|
32715
|
+
if (parts[0] === "session") {
|
|
32716
|
+
var sessionId = decodeSegmentSafe(parts[1] || "");
|
|
32717
|
+
if (!sessionId) return null;
|
|
32718
|
+
var segments = [];
|
|
32719
|
+
for (var i = 2; i < parts.length; i++) {
|
|
32720
|
+
var seg = decodeSegmentSafe(parts[i]);
|
|
32721
|
+
if (seg === null) return null;
|
|
32722
|
+
segments.push(seg);
|
|
32723
|
+
}
|
|
32724
|
+
if (!segments.length) return null;
|
|
32725
|
+
return { scope: "session", sessionId, path: segments.join("/") };
|
|
32726
|
+
}
|
|
32727
|
+
if (parts[0] === "absolute") {
|
|
32728
|
+
var absolute = [];
|
|
32729
|
+
for (var j = 1; j < parts.length; j++) {
|
|
32730
|
+
var abs = decodeSegmentSafe(parts[j]);
|
|
32731
|
+
if (abs === null) return null;
|
|
32732
|
+
absolute.push(abs);
|
|
32733
|
+
}
|
|
32734
|
+
if (!absolute.length) return null;
|
|
32735
|
+
return { scope: "absolute", path: "/" + absolute.join("/") };
|
|
32736
|
+
}
|
|
32737
|
+
return null;
|
|
32738
|
+
}
|
|
32739
|
+
function fileAddressMatches(address, sessionIdHint) {
|
|
32740
|
+
var parsed = parseFileAddress(address);
|
|
32741
|
+
if (!parsed) return false;
|
|
32742
|
+
if (parsed.scope === "session" && (sessionIdHint || parsed.sessionId) !== activeSessionId) return false;
|
|
32743
|
+
return true;
|
|
32744
|
+
}
|
|
32745
|
+
async function openFileAddressInSoup(address, sessionIdHint) {
|
|
32746
|
+
var parsed = parseFileAddress(address);
|
|
32747
|
+
if (!parsed) return false;
|
|
32748
|
+
var sid = sessionIdHint || parsed.sessionId;
|
|
32749
|
+
if (parsed.scope === "session" && sid !== activeSessionId) return false;
|
|
32750
|
+
var target = parsed.path;
|
|
32751
|
+
if (parsed.scope === "session" && target.charAt(0) !== "/") {
|
|
32752
|
+
var cwd = state.cwd || await defaultCwd(parsed.sessionId);
|
|
32753
|
+
if (cwd) target = String(cwd).replace(/\/+$/, "") + "/" + target;
|
|
32754
|
+
}
|
|
32755
|
+
openFileInTab(target);
|
|
32756
|
+
return true;
|
|
32757
|
+
}
|
|
32702
32758
|
async function reloadFile(path) {
|
|
32703
32759
|
var entry = findFileEntry(path);
|
|
32704
32760
|
if (!entry) return;
|
|
@@ -33668,6 +33724,7 @@
|
|
|
33668
33724
|
React.useEffect(function() {
|
|
33669
33725
|
var observer = null;
|
|
33670
33726
|
var marked = null;
|
|
33727
|
+
document.body.classList.add("dsh-soup-preview-active");
|
|
33671
33728
|
function apply2() {
|
|
33672
33729
|
var el = rootRef.current;
|
|
33673
33730
|
if (!el) return;
|
|
@@ -33689,6 +33746,7 @@
|
|
|
33689
33746
|
return function() {
|
|
33690
33747
|
if (observer) observer.disconnect();
|
|
33691
33748
|
if (marked) marked.removeAttribute("data-dsh-soup-preview");
|
|
33749
|
+
document.body.classList.remove("dsh-soup-preview-active");
|
|
33692
33750
|
marked = null;
|
|
33693
33751
|
};
|
|
33694
33752
|
}, []);
|
|
@@ -34253,6 +34311,73 @@
|
|
|
34253
34311
|
document.removeEventListener("click", onOfficialExpand, true);
|
|
34254
34312
|
});
|
|
34255
34313
|
}
|
|
34314
|
+
var bridgePatched = false;
|
|
34315
|
+
function resolveSidebarRight() {
|
|
34316
|
+
try {
|
|
34317
|
+
if (ctx.sidebarRight) return ctx.sidebarRight;
|
|
34318
|
+
} catch (e) {
|
|
34319
|
+
}
|
|
34320
|
+
try {
|
|
34321
|
+
if (typeof ctx.get === "function") {
|
|
34322
|
+
var viaGet = ctx.get("sidebarRight", false);
|
|
34323
|
+
if (viaGet) return viaGet;
|
|
34324
|
+
}
|
|
34325
|
+
} catch (e) {
|
|
34326
|
+
}
|
|
34327
|
+
try {
|
|
34328
|
+
if (ctx.reflect && typeof ctx.reflect.get === "function") {
|
|
34329
|
+
var viaReflect = ctx.reflect.get("sidebarRight", false);
|
|
34330
|
+
if (viaReflect) return viaReflect;
|
|
34331
|
+
}
|
|
34332
|
+
} catch (e) {
|
|
34333
|
+
}
|
|
34334
|
+
return null;
|
|
34335
|
+
}
|
|
34336
|
+
function patchSidebarRightBridge() {
|
|
34337
|
+
if (bridgePatched) return true;
|
|
34338
|
+
var service = resolveSidebarRight();
|
|
34339
|
+
if (!service || typeof service.openResource !== "function") return false;
|
|
34340
|
+
if (!service.__dshSoupFileBridge) {
|
|
34341
|
+
var origResource = service.openResource;
|
|
34342
|
+
var origResourceIn = service.openResourceIn;
|
|
34343
|
+
service.openResource = function(address, options) {
|
|
34344
|
+
if (fileAddressMatches(address, null)) {
|
|
34345
|
+
openFileAddressInSoup(address, null);
|
|
34346
|
+
return;
|
|
34347
|
+
}
|
|
34348
|
+
return origResource.call(service, address, options);
|
|
34349
|
+
};
|
|
34350
|
+
if (typeof origResourceIn === "function") {
|
|
34351
|
+
service.openResourceIn = function(sessionId, address, options) {
|
|
34352
|
+
if (fileAddressMatches(address, sessionId)) {
|
|
34353
|
+
openFileAddressInSoup(address, sessionId);
|
|
34354
|
+
return;
|
|
34355
|
+
}
|
|
34356
|
+
return origResourceIn.call(service, sessionId, address, options);
|
|
34357
|
+
};
|
|
34358
|
+
}
|
|
34359
|
+
try {
|
|
34360
|
+
Object.defineProperty(service, "__dshSoupFileBridge", { value: true });
|
|
34361
|
+
} catch (e) {
|
|
34362
|
+
service.__dshSoupFileBridge = true;
|
|
34363
|
+
}
|
|
34364
|
+
}
|
|
34365
|
+
bridgePatched = true;
|
|
34366
|
+
try {
|
|
34367
|
+
if (typeof window !== "undefined") window.__DSH_SOUP_FILE_BRIDGE = true;
|
|
34368
|
+
} catch (e) {
|
|
34369
|
+
}
|
|
34370
|
+
return true;
|
|
34371
|
+
}
|
|
34372
|
+
patchSidebarRightBridge();
|
|
34373
|
+
var bridgeTries = 0;
|
|
34374
|
+
var bridgeTimer = setInterval(function() {
|
|
34375
|
+
bridgeTries += 1;
|
|
34376
|
+
if (patchSidebarRightBridge() || bridgeTries >= 10) clearInterval(bridgeTimer);
|
|
34377
|
+
}, 1e3);
|
|
34378
|
+
disposers.push(function() {
|
|
34379
|
+
clearInterval(bridgeTimer);
|
|
34380
|
+
});
|
|
34256
34381
|
if (ctx.locale && typeof ctx.locale.register === "function") {
|
|
34257
34382
|
ctx.effect(function() {
|
|
34258
34383
|
return ctx.locale.register(NS, DICT);
|
package/lib/client.js
CHANGED
|
@@ -285,7 +285,17 @@ window.__ModuleLoader__.load({
|
|
|
285
285
|
// 优先用稳定选择器;旧 hash 规则保留以兼容更老的宿主版本。
|
|
286
286
|
'[data-dsh-soup-preview="1"] [data-composer-seat]{display:none !important;}' +
|
|
287
287
|
'[data-dsh-soup-preview="1"] .wSkVaW_composerSeat{display:none !important;}' +
|
|
288
|
-
'[data-dsh-soup-preview="1"] .FJxK0a_root{display:none !important;}'
|
|
288
|
+
'[data-dsh-soup-preview="1"] .FJxK0a_root{display:none !important;}' +
|
|
289
|
+
// 宿主会话文本宽度调整手柄(DSH 0.1.5-rc 起带稳定属性 data-width-handle,
|
|
290
|
+
// left/right 各一个;旧版 hash 类名兜底)。它是给对话正文调宽用的,
|
|
291
|
+
// 预览页里没有对应内容,悬停边缘时不应出现。
|
|
292
|
+
'[data-dsh-soup-preview="1"] [data-width-handle]{display:none !important;}' +
|
|
293
|
+
'[data-dsh-soup-preview="1"] .wSkVaW_widthHandle{display:none !important;}' +
|
|
294
|
+
// Desktop 版的宽度手柄在部分版本中是会话根的相邻节点而非其后代,
|
|
295
|
+
// 上面的作用域选择器覆盖不到。FilesView 存活时会在 body 上设置该状态,
|
|
296
|
+
// 以稳定属性为主全局禁用手柄和它的 hover 指示线。
|
|
297
|
+
'body.dsh-soup-preview-active [data-width-handle]{display:none !important;pointer-events:none !important;}' +
|
|
298
|
+
'body.dsh-soup-preview-active .wSkVaW_widthHandle{display:none !important;pointer-events:none !important;}'
|
|
289
299
|
if (typeof document !== 'undefined' && document.querySelector('style[data-plugin-css="@lyhue1991/dsh-soup/fileview.css"]') === null) {
|
|
290
300
|
var fileviewTag = document.createElement('style')
|
|
291
301
|
fileviewTag.dataset.plugin = '@lyhue1991/dsh-soup'
|
|
@@ -295,6 +305,9 @@ window.__ModuleLoader__.load({
|
|
|
295
305
|
}
|
|
296
306
|
|
|
297
307
|
/** 需要的客户端服务:slots、layout、timer、sessions、locale(i18n 词典)+ remote.goals(goal 动作动词)。 */
|
|
308
|
+
// 注意:sidebarRight 不能进 inject——DSH Desktop (0.1.5-rc.2) 宿主里该服务
|
|
309
|
+
// 永远不就绪,可选注入也会让插件一直 pending("waiting for service"),
|
|
310
|
+
// 被 desktop 判为阻挡启动。桥接改为运行时轮询解析(见 resolveSidebarRight)。
|
|
298
311
|
var inject = ['slots', 'layout', 'timer', 'sessions', 'locale', 'remote', 'remote.goals']
|
|
299
312
|
|
|
300
313
|
// ------------------------------------------------------------------
|
|
@@ -2009,6 +2022,75 @@ window.__ModuleLoader__.load({
|
|
|
2009
2022
|
setFiles({ list: state.files.list.slice(), active: path })
|
|
2010
2023
|
}
|
|
2011
2024
|
|
|
2025
|
+
// ------------------------------------------------------------------
|
|
2026
|
+
// 官方 file 地址桥接:dsh-soup 遮蔽 rightbar 槽位后,官方 SidebarRight
|
|
2027
|
+
// 面板组件永不挂载,会话里的文件产物卡片 / 内联文件链接调用
|
|
2028
|
+
// ctx.sidebarRight.openResource('dsh-resource://file/…') 会抛
|
|
2029
|
+
// "sidebarRight: no session surface is mounted"。这里把 file 地址解析
|
|
2030
|
+
// 回路径,转投 dsh-soup 自己的预览 tab(openFileInTab)。
|
|
2031
|
+
// ------------------------------------------------------------------
|
|
2032
|
+
var FILE_ADDRESS_PREFIX = 'dsh-resource://file/'
|
|
2033
|
+
|
|
2034
|
+
function decodeSegmentSafe(segment) {
|
|
2035
|
+
try { return decodeURIComponent(segment) } catch (e) { return null }
|
|
2036
|
+
}
|
|
2037
|
+
|
|
2038
|
+
/** 解析官方 file 地址;非 file 地址或编码非法返回 null(与 workspace-path 同规则)。 */
|
|
2039
|
+
function parseFileAddress(address) {
|
|
2040
|
+
if (typeof address !== 'string' || address.indexOf(FILE_ADDRESS_PREFIX) !== 0) return null
|
|
2041
|
+
var end = address.search(/[?#]/)
|
|
2042
|
+
var body = address.slice(FILE_ADDRESS_PREFIX.length, end === -1 ? undefined : end)
|
|
2043
|
+
var parts = body.split('/')
|
|
2044
|
+
if (parts[0] === 'session') {
|
|
2045
|
+
var sessionId = decodeSegmentSafe(parts[1] || '')
|
|
2046
|
+
if (!sessionId) return null
|
|
2047
|
+
var segments = []
|
|
2048
|
+
for (var i = 2; i < parts.length; i++) {
|
|
2049
|
+
var seg = decodeSegmentSafe(parts[i])
|
|
2050
|
+
if (seg === null) return null
|
|
2051
|
+
segments.push(seg)
|
|
2052
|
+
}
|
|
2053
|
+
if (!segments.length) return null
|
|
2054
|
+
return { scope: 'session', sessionId: sessionId, path: segments.join('/') }
|
|
2055
|
+
}
|
|
2056
|
+
if (parts[0] === 'absolute') {
|
|
2057
|
+
var absolute = []
|
|
2058
|
+
for (var j = 1; j < parts.length; j++) {
|
|
2059
|
+
var abs = decodeSegmentSafe(parts[j])
|
|
2060
|
+
if (abs === null) return null
|
|
2061
|
+
absolute.push(abs)
|
|
2062
|
+
}
|
|
2063
|
+
if (!absolute.length) return null
|
|
2064
|
+
return { scope: 'absolute', path: '/' + absolute.join('/') }
|
|
2065
|
+
}
|
|
2066
|
+
return null
|
|
2067
|
+
}
|
|
2068
|
+
|
|
2069
|
+
/** 同步判断:该 file 地址是否应由 dsh-soup 接住(当前会话或绝对路径)。 */
|
|
2070
|
+
function fileAddressMatches(address, sessionIdHint) {
|
|
2071
|
+
var parsed = parseFileAddress(address)
|
|
2072
|
+
if (!parsed) return false
|
|
2073
|
+
if (parsed.scope === 'session' && (sessionIdHint || parsed.sessionId) !== activeSessionId) return false
|
|
2074
|
+
return true
|
|
2075
|
+
}
|
|
2076
|
+
|
|
2077
|
+
/** file 地址 → dsh-soup 预览。session 作用域的路径相对会话 cwd,
|
|
2078
|
+
* 必须先解析成绝对路径再读——宿主 read 对相对路径按服务进程 cwd
|
|
2079
|
+
* (桌面端为 launch-root)解析,直接透传会 ENOENT。 */
|
|
2080
|
+
async function openFileAddressInSoup(address, sessionIdHint) {
|
|
2081
|
+
var parsed = parseFileAddress(address)
|
|
2082
|
+
if (!parsed) return false
|
|
2083
|
+
var sid = sessionIdHint || parsed.sessionId
|
|
2084
|
+
if (parsed.scope === 'session' && sid !== activeSessionId) return false
|
|
2085
|
+
var target = parsed.path
|
|
2086
|
+
if (parsed.scope === 'session' && target.charAt(0) !== '/') {
|
|
2087
|
+
var cwd = state.cwd || await defaultCwd(parsed.sessionId)
|
|
2088
|
+
if (cwd) target = String(cwd).replace(/\/+$/, '') + '/' + target
|
|
2089
|
+
}
|
|
2090
|
+
openFileInTab(target)
|
|
2091
|
+
return true
|
|
2092
|
+
}
|
|
2093
|
+
|
|
2012
2094
|
async function reloadFile(path) {
|
|
2013
2095
|
var entry = findFileEntry(path)
|
|
2014
2096
|
if (!entry) return
|
|
@@ -2957,6 +3039,7 @@ window.__ModuleLoader__.load({
|
|
|
2957
3039
|
React.useEffect(function () {
|
|
2958
3040
|
var observer = null
|
|
2959
3041
|
var marked = null
|
|
3042
|
+
document.body.classList.add('dsh-soup-preview-active')
|
|
2960
3043
|
function apply() {
|
|
2961
3044
|
var el = rootRef.current
|
|
2962
3045
|
if (!el) return
|
|
@@ -2976,6 +3059,7 @@ window.__ModuleLoader__.load({
|
|
|
2976
3059
|
return function () {
|
|
2977
3060
|
if (observer) observer.disconnect()
|
|
2978
3061
|
if (marked) marked.removeAttribute('data-dsh-soup-preview')
|
|
3062
|
+
document.body.classList.remove('dsh-soup-preview-active')
|
|
2979
3063
|
marked = null
|
|
2980
3064
|
}
|
|
2981
3065
|
}, [])
|
|
@@ -3505,6 +3589,57 @@ window.__ModuleLoader__.load({
|
|
|
3505
3589
|
document.addEventListener('click', onOfficialExpand, true)
|
|
3506
3590
|
disposers.push(function () { document.removeEventListener('click', onOfficialExpand, true) })
|
|
3507
3591
|
}
|
|
3592
|
+
// 官方产物链接桥接:包装 sidebarRight 服务(见 parseFileAddress 处注释)。
|
|
3593
|
+
// 优先走可选注入的 ctx.sidebarRight(框架保证就绪),并保留
|
|
3594
|
+
// ctx.get / ctx.reflect.get 多条解析路径与短轮询兜底。
|
|
3595
|
+
var bridgePatched = false
|
|
3596
|
+
function resolveSidebarRight() {
|
|
3597
|
+
try { if (ctx.sidebarRight) return ctx.sidebarRight } catch (e) {}
|
|
3598
|
+
try {
|
|
3599
|
+
if (typeof ctx.get === 'function') {
|
|
3600
|
+
var viaGet = ctx.get('sidebarRight', false)
|
|
3601
|
+
if (viaGet) return viaGet
|
|
3602
|
+
}
|
|
3603
|
+
} catch (e) {}
|
|
3604
|
+
try {
|
|
3605
|
+
if (ctx.reflect && typeof ctx.reflect.get === 'function') {
|
|
3606
|
+
var viaReflect = ctx.reflect.get('sidebarRight', false)
|
|
3607
|
+
if (viaReflect) return viaReflect
|
|
3608
|
+
}
|
|
3609
|
+
} catch (e) {}
|
|
3610
|
+
return null
|
|
3611
|
+
}
|
|
3612
|
+
function patchSidebarRightBridge() {
|
|
3613
|
+
if (bridgePatched) return true
|
|
3614
|
+
var service = resolveSidebarRight()
|
|
3615
|
+
if (!service || typeof service.openResource !== 'function') return false
|
|
3616
|
+
if (!service.__dshSoupFileBridge) {
|
|
3617
|
+
var origResource = service.openResource
|
|
3618
|
+
var origResourceIn = service.openResourceIn
|
|
3619
|
+
service.openResource = function (address, options) {
|
|
3620
|
+
if (fileAddressMatches(address, null)) { openFileAddressInSoup(address, null); return }
|
|
3621
|
+
return origResource.call(service, address, options)
|
|
3622
|
+
}
|
|
3623
|
+
if (typeof origResourceIn === 'function') {
|
|
3624
|
+
service.openResourceIn = function (sessionId, address, options) {
|
|
3625
|
+
if (fileAddressMatches(address, sessionId)) { openFileAddressInSoup(address, sessionId); return }
|
|
3626
|
+
return origResourceIn.call(service, sessionId, address, options)
|
|
3627
|
+
}
|
|
3628
|
+
}
|
|
3629
|
+
try { Object.defineProperty(service, '__dshSoupFileBridge', { value: true }) }
|
|
3630
|
+
catch (e) { service.__dshSoupFileBridge = true }
|
|
3631
|
+
}
|
|
3632
|
+
bridgePatched = true
|
|
3633
|
+
try { if (typeof window !== 'undefined') window.__DSH_SOUP_FILE_BRIDGE = true } catch (e) {}
|
|
3634
|
+
return true
|
|
3635
|
+
}
|
|
3636
|
+
patchSidebarRightBridge()
|
|
3637
|
+
var bridgeTries = 0
|
|
3638
|
+
var bridgeTimer = setInterval(function () {
|
|
3639
|
+
bridgeTries += 1
|
|
3640
|
+
if (patchSidebarRightBridge() || bridgeTries >= 10) clearInterval(bridgeTimer)
|
|
3641
|
+
}, 1000)
|
|
3642
|
+
disposers.push(function () { clearInterval(bridgeTimer) })
|
|
3508
3643
|
// i18n:注册双语词典;模块级 T 供组件外回调(菜单/错误横幅)取当前语言文案。
|
|
3509
3644
|
if (ctx.locale && typeof ctx.locale.register === 'function') {
|
|
3510
3645
|
ctx.effect(function () { return ctx.locale.register(NS, DICT) }, 'dsh-soup: dictionaries')
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lyhue1991/dsh-soup",
|
|
3
3
|
"description": "DSH 项目资源管理器:右侧 details 列文件树(并列网格、宽度对齐宿主 details 合同 300-520px),有 Session log 时在其右侧、空白新会话在输入框上方右端提供 📁 切换按钮;支持多选、双击展开/打开、右键菜单(打开/系统打开/重命名/废纸篓/新建/复制路径)、拖拽移动、上传。文件「打开」在会话区新增「文件」标签页(原生 conversation.view,与对话/轨迹同级):文本可编辑 ⌘S 保存、图片预览、二进制提示。附带模型吞吐徽标:输入框正上方显示「正在等待模型...」与彩色 t/s 徽标(数据来自 llm/stream 真实流)。附带 GoalBar 多行展示:把原生单行截断 GoalBar 放开为多行完整显示,编辑用 textarea,工具与数据仍走原生 goal。",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.4",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"scripts": {
|