@xcanwin/manyoyo 6.2.14 → 6.2.15
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/web/frontend/app.css
CHANGED
|
@@ -1218,7 +1218,7 @@ body.workspace-switcher-open .workspace-switcher-panel {
|
|
|
1218
1218
|
align-items: flex-start;
|
|
1219
1219
|
justify-content: space-between;
|
|
1220
1220
|
gap: 12px;
|
|
1221
|
-
flex-wrap:
|
|
1221
|
+
flex-wrap: nowrap;
|
|
1222
1222
|
padding: 10px 12px;
|
|
1223
1223
|
border-bottom: 1px solid var(--line);
|
|
1224
1224
|
background: rgba(255, 251, 244, 0.96);
|
|
@@ -1240,6 +1240,11 @@ body.workspace-switcher-open .workspace-switcher-panel {
|
|
|
1240
1240
|
margin-left: auto;
|
|
1241
1241
|
}
|
|
1242
1242
|
|
|
1243
|
+
.files-back-btn {
|
|
1244
|
+
display: none;
|
|
1245
|
+
flex-shrink: 0;
|
|
1246
|
+
}
|
|
1247
|
+
|
|
1243
1248
|
.files-preview-title {
|
|
1244
1249
|
font-family: var(--font-display);
|
|
1245
1250
|
font-size: 14px;
|
|
@@ -2162,7 +2167,7 @@ body.composer-options-open .composer-options-panel {
|
|
|
2162
2167
|
|
|
2163
2168
|
.files-layout {
|
|
2164
2169
|
grid-template-columns: minmax(0, 1fr);
|
|
2165
|
-
grid-template-rows: minmax(
|
|
2170
|
+
grid-template-rows: minmax(0, 1fr);
|
|
2166
2171
|
}
|
|
2167
2172
|
|
|
2168
2173
|
.files-sidebar {
|
|
@@ -2170,6 +2175,41 @@ body.composer-options-open .composer-options-panel {
|
|
|
2170
2175
|
border-bottom: 1px solid var(--line);
|
|
2171
2176
|
}
|
|
2172
2177
|
|
|
2178
|
+
.files-browser[data-mobile-pane="list"] .files-preview {
|
|
2179
|
+
display: none;
|
|
2180
|
+
}
|
|
2181
|
+
|
|
2182
|
+
.files-browser[data-mobile-pane="preview"] .files-sidebar {
|
|
2183
|
+
display: none;
|
|
2184
|
+
}
|
|
2185
|
+
|
|
2186
|
+
.files-browser[data-mobile-pane="preview"] .files-toolbar {
|
|
2187
|
+
display: none;
|
|
2188
|
+
}
|
|
2189
|
+
|
|
2190
|
+
.files-browser[data-mobile-pane="preview"] .files-back-btn {
|
|
2191
|
+
display: inline-flex;
|
|
2192
|
+
order: 1;
|
|
2193
|
+
}
|
|
2194
|
+
|
|
2195
|
+
.files-preview-head {
|
|
2196
|
+
flex-wrap: wrap;
|
|
2197
|
+
align-items: center;
|
|
2198
|
+
}
|
|
2199
|
+
|
|
2200
|
+
.files-preview-actions {
|
|
2201
|
+
order: 2;
|
|
2202
|
+
}
|
|
2203
|
+
|
|
2204
|
+
.files-preview-head-main {
|
|
2205
|
+
order: 3;
|
|
2206
|
+
flex-basis: 100%;
|
|
2207
|
+
}
|
|
2208
|
+
|
|
2209
|
+
.files-preview-meta {
|
|
2210
|
+
display: none;
|
|
2211
|
+
}
|
|
2212
|
+
|
|
2173
2213
|
.composer-inner {
|
|
2174
2214
|
align-items: stretch;
|
|
2175
2215
|
}
|
|
@@ -107,6 +107,7 @@
|
|
|
107
107
|
</aside>
|
|
108
108
|
<section class="files-preview">
|
|
109
109
|
<header class="files-preview-head">
|
|
110
|
+
<button type="button" class="secondary files-back-btn" data-action="back-to-list">← 返回列表</button>
|
|
110
111
|
<div class="files-preview-head-main">
|
|
111
112
|
<div class="files-preview-title" data-role="preview-title">未选择文件</div>
|
|
112
113
|
<div class="files-preview-meta" data-role="preview-meta">请选择左侧文件或目录</div>
|
|
@@ -128,10 +129,12 @@
|
|
|
128
129
|
const previewTitleNode = root.querySelector('[data-role="preview-title"]');
|
|
129
130
|
const previewMetaNode = root.querySelector('[data-role="preview-meta"]');
|
|
130
131
|
const previewBodyNode = root.querySelector('[data-role="preview-body"]');
|
|
132
|
+
const filesBrowserNode = root.querySelector('.files-browser');
|
|
131
133
|
const visitBtn = root.querySelector('[data-action="visit"]');
|
|
132
134
|
const mkdirBtn = root.querySelector('[data-action="mkdir"]');
|
|
133
135
|
const saveBtn = root.querySelector('[data-action="save"]');
|
|
134
136
|
const toggleMarkdownViewBtn = root.querySelector('[data-action="toggle-markdown-view"]');
|
|
137
|
+
const backToListBtn = root.querySelector('[data-action="back-to-list"]');
|
|
135
138
|
|
|
136
139
|
const state = {
|
|
137
140
|
visible: false,
|
|
@@ -155,9 +158,17 @@
|
|
|
155
158
|
editorHost: null,
|
|
156
159
|
previewReadOnly: true,
|
|
157
160
|
previewDirty: false,
|
|
158
|
-
markdownViewMode: 'rendered'
|
|
161
|
+
markdownViewMode: 'rendered',
|
|
162
|
+
mobileActivePane: 'list'
|
|
159
163
|
};
|
|
160
164
|
|
|
165
|
+
function setMobilePane(pane) {
|
|
166
|
+
state.mobileActivePane = pane === 'preview' ? 'preview' : 'list';
|
|
167
|
+
if (filesBrowserNode) {
|
|
168
|
+
filesBrowserNode.setAttribute('data-mobile-pane', state.mobileActivePane);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
161
172
|
function setStatus(text) {
|
|
162
173
|
if (statusNode) {
|
|
163
174
|
statusNode.textContent = String(text || '').trim() || '就绪';
|
|
@@ -359,12 +370,14 @@
|
|
|
359
370
|
listNode.innerHTML = '';
|
|
360
371
|
|
|
361
372
|
if (!state.sessionName) {
|
|
373
|
+
setMobilePane('list');
|
|
362
374
|
listNode.innerHTML = '<div class="files-empty">请选择左侧会话后再浏览容器文件。</div>';
|
|
363
375
|
renderPreviewEmpty('未选择会话', '请选择左侧会话后再浏览容器文件。');
|
|
364
376
|
setStatus('未选择会话');
|
|
365
377
|
return;
|
|
366
378
|
}
|
|
367
379
|
if (state.historyOnly) {
|
|
380
|
+
setMobilePane('list');
|
|
368
381
|
listNode.innerHTML = '<div class="files-empty">当前会话只有历史记录,没有可访问的运行中容器。</div>';
|
|
369
382
|
renderPreviewEmpty('容器不可用', '当前会话只有历史记录,没有可访问的运行中容器。');
|
|
370
383
|
setStatus('容器不可用');
|
|
@@ -429,6 +442,7 @@
|
|
|
429
442
|
state.pathDraft = pathText;
|
|
430
443
|
state.selectedPath = '';
|
|
431
444
|
state.selectedEntry = null;
|
|
445
|
+
setMobilePane('list');
|
|
432
446
|
renderList();
|
|
433
447
|
try {
|
|
434
448
|
const payload = await api('/api/sessions/' + encodeURIComponent(state.sessionName) + '/fs/list?path=' + encodeURIComponent(pathText));
|
|
@@ -474,6 +488,7 @@
|
|
|
474
488
|
state.selectedPath = pathText;
|
|
475
489
|
state.selectedEntry = selectedEntry;
|
|
476
490
|
state.markdownViewMode = 'rendered';
|
|
491
|
+
setMobilePane('preview');
|
|
477
492
|
renderList();
|
|
478
493
|
renderPreviewEmpty(pathText, '正在读取文件内容...');
|
|
479
494
|
try {
|
|
@@ -609,6 +624,7 @@
|
|
|
609
624
|
state.entries = [];
|
|
610
625
|
state.selectedPath = '';
|
|
611
626
|
state.selectedEntry = null;
|
|
627
|
+
setMobilePane('list');
|
|
612
628
|
renderPreviewEmpty('未选择文件', '请选择左侧文件进行预览。');
|
|
613
629
|
} else if (containerPathChanged) {
|
|
614
630
|
state.containerPath = nextContainerPath;
|
|
@@ -668,6 +684,13 @@
|
|
|
668
684
|
});
|
|
669
685
|
}
|
|
670
686
|
|
|
687
|
+
if (backToListBtn) {
|
|
688
|
+
backToListBtn.addEventListener('click', function () {
|
|
689
|
+
setMobilePane('list');
|
|
690
|
+
});
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
setMobilePane('list');
|
|
671
694
|
renderList();
|
|
672
695
|
|
|
673
696
|
return {
|