fish-dock-plugin-filemgr 0.0.0-stage → 1.0.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/LICENSE +32 -0
- package/README.md +117 -3
- package/bin/fish-dock-filemgr.mjs +151 -0
- package/dist/filemgr/README.md +62 -0
- package/dist/filemgr/bridge.js +53 -0
- package/dist/filemgr/plugin.json +46 -0
- package/dist/filemgr/plugins/filemgr/FolderPicker.ps1 +260 -0
- package/dist/filemgr/plugins/filemgr/backend.mjs +448 -0
- package/dist/filemgr/plugins/filemgr/clip.ps1 +40 -0
- package/dist/filemgr/plugins/filemgr/dock.css +4 -0
- package/dist/filemgr/plugins/filemgr/filemgr.css +271 -0
- package/dist/filemgr/plugins/filemgr/page.css +218 -0
- package/dist/filemgr/plugins/filemgr/page.html +168 -0
- package/dist/filemgr/plugins/filemgr/page.js +2042 -0
- package/dist/filemgr/plugins/filemgr/pick-files.ps1 +33 -0
- package/dist/filemgr/plugins/filemgr/pick-folder.ps1 +34 -0
- package/dist/filemgr/plugins/filemgr/preview.mjs +456 -0
- package/dist/filemgr/plugins/filemgr/sdk.mjs +123 -0
- package/dist/filemgr/plugins/filemgr/stash.css +67 -0
- package/dist/filemgr/plugins/filemgr/stash.mjs +409 -0
- package/dist/jassdingk.filemgr.fish-plugin +0 -0
- package/package.json +44 -4
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="zh-CN">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
6
|
+
<link rel="stylesheet" href="dock.css">
|
|
7
|
+
<link rel="stylesheet" href="page.css">
|
|
8
|
+
<link rel="stylesheet" href="stash.css">
|
|
9
|
+
<link rel="stylesheet" href="filemgr.css">
|
|
10
|
+
<title>文件管理</title>
|
|
11
|
+
</head>
|
|
12
|
+
<body data-layout="double">
|
|
13
|
+
<main class="fm">
|
|
14
|
+
<header class="fm-head">
|
|
15
|
+
<div class="identity">
|
|
16
|
+
<h1 id="title">文件管理</h1>
|
|
17
|
+
<span id="file-meta" class="fm-meta" role="status"></span>
|
|
18
|
+
<span id="state" role="status">正在加载…</span>
|
|
19
|
+
</div>
|
|
20
|
+
</header>
|
|
21
|
+
|
|
22
|
+
<p id="error" role="alert"></p>
|
|
23
|
+
|
|
24
|
+
<div class="fm-body">
|
|
25
|
+
<!-- ============ 左:文件暂存(中转站) ============ -->
|
|
26
|
+
<section id="stash-col" aria-label="文件暂存">
|
|
27
|
+
<h2 class="fm-col-title">文件暂存</h2>
|
|
28
|
+
<nav class="toolbar stash-toolbar" aria-label="暂存操作">
|
|
29
|
+
<button id="btn-copy-path" title="复制选中项的完整路径">复制路径</button>
|
|
30
|
+
<button id="btn-copy-file" title="把选中项复制为文件(可粘贴到资源管理器)">复制为文件</button>
|
|
31
|
+
<button id="btn-remove" title="从暂存移除选中项">移除</button>
|
|
32
|
+
<button id="btn-select-all" title="全选 / 取消全选">全选</button>
|
|
33
|
+
</nav>
|
|
34
|
+
|
|
35
|
+
<!-- 暂存区主体:分组标签 + 可折叠分组列表 + 拖入目标 -->
|
|
36
|
+
<section id="stash" aria-label="暂存区">
|
|
37
|
+
<!-- 暂存区顶部的分组标签栏:新建组按钮 + 可收起/展开的分组标签 -->
|
|
38
|
+
<section id="groupbar" aria-label="分组">
|
|
39
|
+
<div class="group-ops">
|
|
40
|
+
<button id="btn-group-new" class="ghost" title="在暂存区新建分组标签">+ 新建组</button>
|
|
41
|
+
<input id="group-new-input" class="group-new-input" type="text" placeholder="分组名,回车确认"
|
|
42
|
+
maxlength="40" hidden autocomplete="off" spellcheck="false" aria-label="新分组名称" />
|
|
43
|
+
<button id="btn-group-new-ok" class="ghost" title="确认新建分组" hidden>确定</button>
|
|
44
|
+
<!-- 删除分组不再放独立按钮:直接用分组标签右侧的 ×(stash-tag-del)。 -->
|
|
45
|
+
<label class="move-label">移动到组
|
|
46
|
+
<select id="move-to">
|
|
47
|
+
<option value="">(未分组)</option>
|
|
48
|
+
</select>
|
|
49
|
+
</label>
|
|
50
|
+
</div>
|
|
51
|
+
</section>
|
|
52
|
+
|
|
53
|
+
<!-- 分组标签 + 折叠列表都在这里 -->
|
|
54
|
+
<div id="list" role="listbox" aria-multiselectable="true" aria-label="暂存的文件"></div>
|
|
55
|
+
<div id="empty" class="empty" hidden>
|
|
56
|
+
<p class="empty-icon">📥</p>
|
|
57
|
+
<p>暂存区是空的。</p>
|
|
58
|
+
<p class="note">从资源管理器把文件拖进来,或点上方「添加文件」。</p>
|
|
59
|
+
</div>
|
|
60
|
+
<div id="drop-overlay" hidden><span>松开即可加入暂存</span></div>
|
|
61
|
+
</section>
|
|
62
|
+
|
|
63
|
+
<p id="foot" class="note"></p>
|
|
64
|
+
</section>
|
|
65
|
+
|
|
66
|
+
<!-- 外层分隔条:拖动改变暂存栏宽度 -->
|
|
67
|
+
<div id="fmsplit" role="separator" aria-orientation="vertical" aria-label="拖动调整暂存栏与预览区宽度"
|
|
68
|
+
aria-valuemin="200" aria-valuemax="640" tabindex="0"
|
|
69
|
+
title="拖动调整左右宽度,双击恢复默认"></div>
|
|
70
|
+
|
|
71
|
+
<!-- ============ 右:文件预览(浏览 + 预览) ============ -->
|
|
72
|
+
<div id="preview-col">
|
|
73
|
+
<nav class="toolbar preview-toolbar" aria-label="浏览操作">
|
|
74
|
+
<button id="open" class="primary" title="打开文件夹">打开文件夹</button>
|
|
75
|
+
<button id="up" title="上一级">上一级</button>
|
|
76
|
+
<button id="refresh" title="刷新">刷新</button>
|
|
77
|
+
<button id="fav-open" title="常用文件夹" class="ghost">★</button>
|
|
78
|
+
<button id="fav-pin-btn" title="固定当前文件夹" class="ghost" hidden>📌</button>
|
|
79
|
+
<!-- 浮层必须放在 .preview-toolbar 里面:它是 position:relative 的定位祖先,
|
|
80
|
+
放到 nav 外面会以 #preview-col 为基准、top:100% 直接掉到整个预览列下面看不见。 -->
|
|
81
|
+
<div id="fav-pop" class="fav-pop" hidden>
|
|
82
|
+
<div id="fav-pinned" class="fav-section" hidden>
|
|
83
|
+
<div class="fav-label">固定</div>
|
|
84
|
+
</div>
|
|
85
|
+
<div id="fav-recent" class="fav-section">
|
|
86
|
+
<div class="fav-label">最近</div>
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
</nav>
|
|
90
|
+
|
|
91
|
+
<section id="jump" hidden>
|
|
92
|
+
<h2>手动输入路径</h2>
|
|
93
|
+
<form id="jump-form">
|
|
94
|
+
<label>文件夹绝对路径
|
|
95
|
+
<input id="jump-input" placeholder="F:\AI REP" autocomplete="off" spellcheck="false">
|
|
96
|
+
</label>
|
|
97
|
+
<div class="actions">
|
|
98
|
+
<button type="submit" class="primary">打开</button>
|
|
99
|
+
<button type="button" id="jump-cancel">取消</button>
|
|
100
|
+
</div>
|
|
101
|
+
</form>
|
|
102
|
+
<p class="note">想挑文件夹直接点顶栏的「打开文件夹」,会弹出 Windows 系统自己的选择窗口。</p>
|
|
103
|
+
</section>
|
|
104
|
+
|
|
105
|
+
<div class="workspace">
|
|
106
|
+
<aside id="side">
|
|
107
|
+
<section id="browse" aria-label="文件夹">
|
|
108
|
+
<div id="browse-crumbs" class="crumbs"></div>
|
|
109
|
+
<div id="browse-tools" class="browse-tools">
|
|
110
|
+
<button id="browse-hidden" class="ghost tiny" type="button"
|
|
111
|
+
title="显示或隐藏以 . 开头的文件、node_modules 等">显示隐藏</button>
|
|
112
|
+
</div>
|
|
113
|
+
<div id="browse-head" class="browse-head" role="row">
|
|
114
|
+
<span aria-hidden="true"></span><span aria-hidden="true"></span>
|
|
115
|
+
<button type="button" role="columnheader" data-sort="name">名称</button>
|
|
116
|
+
<button type="button" role="columnheader" data-sort="type">类型</button>
|
|
117
|
+
<button type="button" role="columnheader" data-sort="size">大小</button>
|
|
118
|
+
<button type="button" role="columnheader" data-sort="mtime">修改时间</button>
|
|
119
|
+
</div>
|
|
120
|
+
<div id="browse-list" class="filelist" aria-multiselectable="true"></div>
|
|
121
|
+
<div id="browse-foot" class="browse-foot">
|
|
122
|
+
<button id="browse-up" class="ghost" type="button">← 上一级</button>
|
|
123
|
+
<button id="browse-refresh" class="ghost" type="button">刷新</button>
|
|
124
|
+
</div>
|
|
125
|
+
</section>
|
|
126
|
+
|
|
127
|
+
<section id="loc" aria-label="位置">
|
|
128
|
+
<h2>位置</h2>
|
|
129
|
+
<nav id="roots" aria-label="根目录"></nav>
|
|
130
|
+
<button id="pick-native" class="ghost">+ 添加文件夹…</button>
|
|
131
|
+
<h2 id="recent-title">最近</h2>
|
|
132
|
+
<nav id="recent" aria-label="最近打开"></nav>
|
|
133
|
+
<button id="recent-clear" class="ghost">清空最近</button>
|
|
134
|
+
<p id="path-line" class="note" title=""></p>
|
|
135
|
+
</section>
|
|
136
|
+
</aside>
|
|
137
|
+
<div id="split" role="separator" aria-orientation="horizontal" aria-label="拖动调整上下两栏高度"
|
|
138
|
+
aria-valuemin="140" aria-valuemax="600" tabindex="0"
|
|
139
|
+
title="拖动调整上下高度,双击恢复默认"></div>
|
|
140
|
+
<section id="stage">
|
|
141
|
+
<div id="crumbs" class="crumbs"></div>
|
|
142
|
+
<div id="view"><p role="status">正在读取…</p></div>
|
|
143
|
+
</section>
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
</main>
|
|
148
|
+
<!-- 框选矩形:position:fixed 跟随视口坐标,由 page.js 的 wireBrowseSelect() 控制显隐 -->
|
|
149
|
+
<div id="rubber" aria-hidden="true"></div>
|
|
150
|
+
<div id="dirpick" class="dirpick" hidden role="dialog" aria-modal="true" aria-label="选择文件夹">
|
|
151
|
+
<div class="dirpick-card">
|
|
152
|
+
<header class="dirpick-head">
|
|
153
|
+
<span id="dirpick-title">选择文件夹</span>
|
|
154
|
+
<button id="dirpick-close" class="ghost tiny" type="button" title="关闭">✕</button>
|
|
155
|
+
</header>
|
|
156
|
+
<div id="dirpick-crumbs" class="crumbs"></div>
|
|
157
|
+
<div id="dirpick-list" class="filelist dirpick-list" role="listbox" aria-label="子文件夹"></div>
|
|
158
|
+
<p id="dirpick-note" class="note"></p>
|
|
159
|
+
<footer class="dirpick-foot">
|
|
160
|
+
<button id="dirpick-up" class="ghost" type="button">← 上一级</button>
|
|
161
|
+
<input id="dirpick-path" class="dirpick-path" type="text" placeholder="也可直接粘贴完整路径" autocomplete="off" spellcheck="false">
|
|
162
|
+
<button id="dirpick-ok" class="primary" type="button">选择此文件夹</button>
|
|
163
|
+
</footer>
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
<script src="page.js"></script>
|
|
167
|
+
</body>
|
|
168
|
+
</html>
|