@tutti-os/workspace-file-manager 0.0.197 → 0.0.199
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/README.md +15 -6
- package/dist/{chunk-KKKQGRC5.js → chunk-EI4ICYY4.js} +1 -35
- package/dist/chunk-EI4ICYY4.js.map +1 -0
- package/dist/{chunk-P4SNEQWG.js → chunk-TNFCNCZV.js} +14 -322
- package/dist/chunk-TNFCNCZV.js.map +1 -0
- package/dist/i18n/index.d.ts +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/{index-C3AgiOLN.d.ts → index-D0k_jjaw.d.ts} +0 -17
- package/dist/index.d.ts +69 -50
- package/dist/index.js +198 -829
- package/dist/index.js.map +1 -1
- package/dist/services/index.d.ts +3 -3
- package/dist/services/index.js +46 -6
- package/dist/services/index.js.map +1 -1
- package/dist/{workspaceFileManagerLocations-RmwpZYaa.d.ts → workspaceFileManagerLocations-BwRMCnUY.d.ts} +5 -77
- package/package.json +4 -4
- package/dist/chunk-KKKQGRC5.js.map +0 -1
- package/dist/chunk-P4SNEQWG.js.map +0 -1
package/dist/services/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { c as WorkspaceFileEntry,
|
|
2
|
-
export { C as CreateWorkspaceFileManagerSessionInput, W as WorkspaceFileActivationTarget, a as WorkspaceFileDirectoryListing, b as WorkspaceFileDirectoryLocation, d as WorkspaceFileEntryKind, e as WorkspaceFileExternalLocation, f as
|
|
3
|
-
export { W as WorkspaceFileManagerI18nKey, a as WorkspaceFileManagerI18nRuntime, c as createWorkspaceFileManagerI18nRuntime, r as resolveRevealInFolderLabel, w as workspaceFileManagerI18nNamespace, b as workspaceFileManagerI18nResources } from '../index-
|
|
1
|
+
import { c as WorkspaceFileEntry, u as WorkspaceFileOpenWithApplication } from '../workspaceFileManagerLocations-BwRMCnUY.js';
|
|
2
|
+
export { C as CreateWorkspaceFileManagerSessionInput, W as WorkspaceFileActivationTarget, a as WorkspaceFileDirectoryListing, b as WorkspaceFileDirectoryLocation, d as WorkspaceFileEntryKind, e as WorkspaceFileExternalLocation, f as WorkspaceFileLocation, g as WorkspaceFileLocationKind, h as WorkspaceFileLocationSection, i as WorkspaceFileManagerCapabilities, j as WorkspaceFileManagerFileActivationRequest, k as WorkspaceFileManagerFileDefaultOpener, l as WorkspaceFileManagerHost, m as WorkspaceFileManagerHostFallbackAction, n as WorkspaceFileManagerHostFallbackActionKind, o as WorkspaceFileManagerHostFileActivationResult, p as WorkspaceFileManagerMutationErrorMessage, q as WorkspaceFileManagerPersistedState, r as WorkspaceFileManagerService, s as WorkspaceFileManagerSession, t as WorkspaceFileManagerState, v as WorkspaceFilePreviewKind, w as WorkspaceFilePreviewState, x as WorkspaceFileRecentLocation, y as WorkspaceFileSearchEntry, z as WorkspaceFileSearchResult, A as createWorkspaceFileManagerService, B as findWorkspaceFileLocationById, D as flattenWorkspaceFileLocations, E as isWorkspaceFileExternalLocation, F as isWorkspaceFileRecentLocation, G as resolveWorkspaceFileLocationDefaultId } from '../workspaceFileManagerLocations-BwRMCnUY.js';
|
|
3
|
+
export { W as WorkspaceFileManagerI18nKey, a as WorkspaceFileManagerI18nRuntime, c as createWorkspaceFileManagerI18nRuntime, r as resolveRevealInFolderLabel, w as workspaceFileManagerI18nNamespace, b as workspaceFileManagerI18nResources } from '../index-D0k_jjaw.js';
|
|
4
4
|
import '@tutti-os/workspace-file-preview';
|
|
5
5
|
import '@tutti-os/ui-i18n-runtime';
|
|
6
6
|
|
package/dist/services/index.js
CHANGED
|
@@ -4,27 +4,67 @@ import {
|
|
|
4
4
|
findWorkspaceFileLocationById,
|
|
5
5
|
flattenWorkspaceFileLocations,
|
|
6
6
|
isWorkspaceApplicationBundle,
|
|
7
|
-
isWorkspaceFileBrowserOpenable,
|
|
8
7
|
isWorkspaceFileExternalLocation,
|
|
9
8
|
isWorkspaceFileRecentLocation,
|
|
10
9
|
resolveWorkspaceFileDefaultApplicationIconExtension,
|
|
11
10
|
resolveWorkspaceFileEntryIconCacheKey,
|
|
12
11
|
resolveWorkspaceFileLocationDefaultId,
|
|
13
12
|
resolveWorkspaceFileOpenWithCacheKey,
|
|
14
|
-
shouldFilterVideoPlayersForOpenWith,
|
|
15
13
|
shouldResolveWorkspaceFileEntryIcon,
|
|
16
14
|
shouldUseWorkspaceFileArchiveIcon,
|
|
17
15
|
shouldUseWorkspaceFileExtensionDocumentIcon,
|
|
18
16
|
sortWorkspaceFileEntriesForArrangeMode,
|
|
19
|
-
workspaceFileName
|
|
20
|
-
|
|
21
|
-
} from "../chunk-P4SNEQWG.js";
|
|
17
|
+
workspaceFileName
|
|
18
|
+
} from "../chunk-TNFCNCZV.js";
|
|
22
19
|
import {
|
|
23
20
|
createWorkspaceFileManagerI18nRuntime,
|
|
24
21
|
resolveRevealInFolderLabel,
|
|
25
22
|
workspaceFileManagerI18nNamespace,
|
|
26
23
|
workspaceFileManagerI18nResources
|
|
27
|
-
} from "../chunk-
|
|
24
|
+
} from "../chunk-EI4ICYY4.js";
|
|
25
|
+
|
|
26
|
+
// src/services/internal/model/openWithPolicy.ts
|
|
27
|
+
import {
|
|
28
|
+
classifyWorkspaceFilePreviewKind,
|
|
29
|
+
isTextDegradablePreviewKind,
|
|
30
|
+
isWorkspaceFileBrowserHtmlExtension,
|
|
31
|
+
isWorkspaceFileImageExtension,
|
|
32
|
+
resolveWorkspaceFileExtension,
|
|
33
|
+
resolveWorkspaceFileVisualKind,
|
|
34
|
+
workspaceFileBrowserVideoExtensions
|
|
35
|
+
} from "@tutti-os/workspace-file-preview";
|
|
36
|
+
var workspaceFileVideoHandlerCollisionExtensions = /* @__PURE__ */ new Set(["ts"]);
|
|
37
|
+
function isWorkspaceFileBrowserOpenable(entry) {
|
|
38
|
+
if (entry.kind !== "file") {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
const extension = resolveWorkspaceFileExtension(
|
|
42
|
+
entry.path || entry.name || ""
|
|
43
|
+
);
|
|
44
|
+
if (extension === "pdf" || isWorkspaceFileBrowserHtmlExtension(extension) || isWorkspaceFileImageExtension(extension) || workspaceFileBrowserVideoExtensions.has(extension)) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
return isTextDegradablePreviewKind(classifyWorkspaceFilePreviewKind(entry));
|
|
48
|
+
}
|
|
49
|
+
function shouldFilterVideoPlayersForOpenWith(entry) {
|
|
50
|
+
if (entry.kind !== "file") {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
const visualKind = resolveWorkspaceFileVisualKind(entry);
|
|
54
|
+
if (visualKind === "video") {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
const extension = resolveWorkspaceFileExtension(
|
|
58
|
+
entry.path || entry.name || ""
|
|
59
|
+
);
|
|
60
|
+
if (workspaceFileVideoHandlerCollisionExtensions.has(extension)) {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
if (visualKind === "code" || visualKind === "markdown") {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
return isTextDegradablePreviewKind(classifyWorkspaceFilePreviewKind(entry));
|
|
67
|
+
}
|
|
28
68
|
export {
|
|
29
69
|
WorkspaceFileOpenWithApplicationsCache,
|
|
30
70
|
createWorkspaceFileManagerI18nRuntime,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/services/internal/model/openWithPolicy.ts"],"sourcesContent":["/**\n * Open / open-with / browser-activation advisories.\n *\n * These helpers live on the file-manager host edge, not in\n * `@tutti-os/workspace-file-preview` (see that package CONTRACT.md).\n */\n\nimport {\n classifyWorkspaceFilePreviewKind,\n isTextDegradablePreviewKind,\n isWorkspaceFileBrowserHtmlExtension,\n isWorkspaceFileImageExtension,\n resolveWorkspaceFileExtension,\n resolveWorkspaceFileVisualKind,\n workspaceFileBrowserVideoExtensions\n} from \"@tutti-os/workspace-file-preview\";\n\nexport interface WorkspaceFileOpenWithEntry {\n kind: string;\n name?: string;\n path: string;\n}\n\n/**\n * Extensions where macOS Launch Services may register video handlers even when\n * the workspace file is source code (UTI / uniform type collisions).\n */\nexport const workspaceFileVideoHandlerCollisionExtensions = new Set([\"ts\"]);\n\nexport function isWorkspaceFileBrowserOpenable(\n entry: WorkspaceFileOpenWithEntry\n): boolean {\n if (entry.kind !== \"file\") {\n return false;\n }\n\n const extension = resolveWorkspaceFileExtension(\n entry.path || entry.name || \"\"\n );\n if (\n extension === \"pdf\" ||\n isWorkspaceFileBrowserHtmlExtension(extension) ||\n isWorkspaceFileImageExtension(extension) ||\n workspaceFileBrowserVideoExtensions.has(extension)\n ) {\n return true;\n }\n\n return isTextDegradablePreviewKind(classifyWorkspaceFilePreviewKind(entry));\n}\n\nexport function shouldFilterVideoPlayersForOpenWith(\n entry: WorkspaceFileOpenWithEntry\n): boolean {\n if (entry.kind !== \"file\") {\n return false;\n }\n\n const visualKind = resolveWorkspaceFileVisualKind(entry);\n if (visualKind === \"video\") {\n return false;\n }\n\n const extension = resolveWorkspaceFileExtension(\n entry.path || entry.name || \"\"\n );\n if (workspaceFileVideoHandlerCollisionExtensions.has(extension)) {\n return true;\n }\n\n if (visualKind === \"code\" || visualKind === \"markdown\") {\n return true;\n }\n\n return isTextDegradablePreviewKind(classifyWorkspaceFilePreviewKind(entry));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAYA,IAAM,+CAA+C,oBAAI,IAAI,CAAC,IAAI,CAAC;AAEnE,SAAS,+BACd,OACS;AACT,MAAI,MAAM,SAAS,QAAQ;AACzB,WAAO;AAAA,EACT;AAEA,QAAM,YAAY;AAAA,IAChB,MAAM,QAAQ,MAAM,QAAQ;AAAA,EAC9B;AACA,MACE,cAAc,SACd,oCAAoC,SAAS,KAC7C,8BAA8B,SAAS,KACvC,oCAAoC,IAAI,SAAS,GACjD;AACA,WAAO;AAAA,EACT;AAEA,SAAO,4BAA4B,iCAAiC,KAAK,CAAC;AAC5E;AAEO,SAAS,oCACd,OACS;AACT,MAAI,MAAM,SAAS,QAAQ;AACzB,WAAO;AAAA,EACT;AAEA,QAAM,aAAa,+BAA+B,KAAK;AACvD,MAAI,eAAe,SAAS;AAC1B,WAAO;AAAA,EACT;AAEA,QAAM,YAAY;AAAA,IAChB,MAAM,QAAQ,MAAM,QAAQ;AAAA,EAC9B;AACA,MAAI,6CAA6C,IAAI,SAAS,GAAG;AAC/D,WAAO;AAAA,EACT;AAEA,MAAI,eAAe,UAAU,eAAe,YAAY;AACtD,WAAO;AAAA,EACT;AAEA,SAAO,4BAA4B,iCAAiC,KAAK,CAAC;AAC5E;","names":[]}
|
|
@@ -1,38 +1,6 @@
|
|
|
1
|
-
import { a as WorkspaceFileManagerI18nRuntime } from './index-
|
|
1
|
+
import { a as WorkspaceFileManagerI18nRuntime } from './index-D0k_jjaw.js';
|
|
2
2
|
import { WorkspaceFilePreviewTarget, WorkspaceFilePreviewKind as WorkspaceFilePreviewKind$1 } from '@tutti-os/workspace-file-preview';
|
|
3
3
|
|
|
4
|
-
type WorkspaceFileManagerHostActionMessageStatus = "cancelled" | "completed" | "started";
|
|
5
|
-
interface WorkspaceFileManagerHostActionMessage {
|
|
6
|
-
actionKind: "export" | "import";
|
|
7
|
-
entry?: WorkspaceFileEntry | null;
|
|
8
|
-
message: string;
|
|
9
|
-
status: WorkspaceFileManagerHostActionMessageStatus;
|
|
10
|
-
}
|
|
11
|
-
interface WorkspaceFileManagerHostImportResult {
|
|
12
|
-
cancelledMessage?: string | null;
|
|
13
|
-
completedMessage?: string | null;
|
|
14
|
-
startedMessage?: string | null;
|
|
15
|
-
summary?: WorkspaceFileImportSummary | null;
|
|
16
|
-
message?: string | null;
|
|
17
|
-
supported: boolean;
|
|
18
|
-
title?: string | null;
|
|
19
|
-
importConflict?: WorkspaceFileManagerHostImportConflict | null;
|
|
20
|
-
}
|
|
21
|
-
interface WorkspaceFileManagerHostExportResult {
|
|
22
|
-
cancelledMessage?: string | null;
|
|
23
|
-
completedMessage?: string | null;
|
|
24
|
-
message?: string | null;
|
|
25
|
-
startedMessage?: string | null;
|
|
26
|
-
supported: boolean;
|
|
27
|
-
title?: string | null;
|
|
28
|
-
importConflict?: null;
|
|
29
|
-
}
|
|
30
|
-
type WorkspaceFileManagerHostActionResult = WorkspaceFileManagerHostExportResult | WorkspaceFileManagerHostImportResult;
|
|
31
|
-
interface WorkspaceFileManagerHostImportConflict {
|
|
32
|
-
conflicts: WorkspaceFileImportConflict[];
|
|
33
|
-
summary?: WorkspaceFileImportSummary | null;
|
|
34
|
-
onConfirm?: () => Promise<WorkspaceFileManagerHostImportResult | void>;
|
|
35
|
-
}
|
|
36
4
|
interface WorkspaceFileManagerFileActivationRequest {
|
|
37
5
|
entry: WorkspaceFileEntry;
|
|
38
6
|
target: WorkspaceFileActivationTarget | null;
|
|
@@ -57,7 +25,6 @@ type WorkspaceFileManagerHostFileActivationResult = {
|
|
|
57
25
|
|
|
58
26
|
type WorkspaceFileEntryKind = "file" | "directory" | "unknown";
|
|
59
27
|
type WorkspaceFileSearchMatchTarget = "basename" | "path";
|
|
60
|
-
type WorkspaceFileImportConflictKind = "replaceable" | "type_mismatch";
|
|
61
28
|
type WorkspaceFilePreviewKind = WorkspaceFilePreviewKind$1;
|
|
62
29
|
type WorkspaceFileLocationKind = "directory" | "external" | "recent";
|
|
63
30
|
type WorkspaceFileManagerFileDefaultOpener = "appBrowser" | "defaultBrowser" | "fileViewer" | "system";
|
|
@@ -173,24 +140,6 @@ interface WorkspaceFileRecentLocation {
|
|
|
173
140
|
kind: "recent";
|
|
174
141
|
label: string;
|
|
175
142
|
}
|
|
176
|
-
interface WorkspaceFileImportConflict {
|
|
177
|
-
conflictKind: WorkspaceFileImportConflictKind;
|
|
178
|
-
destinationKind: WorkspaceFileEntryKind;
|
|
179
|
-
destinationPath: string;
|
|
180
|
-
name: string;
|
|
181
|
-
sourcePath: string;
|
|
182
|
-
}
|
|
183
|
-
type WorkspaceFileImportSummaryReason = "ignored" | "symlink" | "system_metadata";
|
|
184
|
-
interface WorkspaceFileImportSummaryReasonCount {
|
|
185
|
-
count: number;
|
|
186
|
-
reason: WorkspaceFileImportSummaryReason;
|
|
187
|
-
}
|
|
188
|
-
interface WorkspaceFileImportSummary {
|
|
189
|
-
filteredCount?: number;
|
|
190
|
-
ignoredCount?: number;
|
|
191
|
-
reasonBreakdown?: WorkspaceFileImportSummaryReasonCount[];
|
|
192
|
-
selectedCount?: number;
|
|
193
|
-
}
|
|
194
143
|
interface WorkspaceFileManagerPersistedState {
|
|
195
144
|
currentDirectoryPath: string;
|
|
196
145
|
navigationBackStack: string[];
|
|
@@ -214,9 +163,6 @@ interface WorkspaceFileManagerCapabilities {
|
|
|
214
163
|
canCreateDirectory: boolean;
|
|
215
164
|
canCreateFile: boolean;
|
|
216
165
|
canDelete: boolean;
|
|
217
|
-
canExport: boolean;
|
|
218
|
-
canImportFromDrop: boolean;
|
|
219
|
-
canImportFromPicker: boolean;
|
|
220
166
|
canMove: boolean;
|
|
221
167
|
canOpenInAppBrowser: boolean;
|
|
222
168
|
canOpenInDefaultBrowser: boolean;
|
|
@@ -226,7 +172,7 @@ interface WorkspaceFileManagerCapabilities {
|
|
|
226
172
|
canRename: boolean;
|
|
227
173
|
canSearch: boolean;
|
|
228
174
|
}
|
|
229
|
-
type WorkspaceFileManagerBusyAction = "create" | "delete" | "
|
|
175
|
+
type WorkspaceFileManagerBusyAction = "create" | "delete" | "move" | "rename" | "view";
|
|
230
176
|
interface WorkspaceFileManagerCreateDialogState {
|
|
231
177
|
errorMessage: string | null;
|
|
232
178
|
kind: "directory" | "file";
|
|
@@ -244,7 +190,7 @@ interface WorkspaceFileManagerContextMenuState {
|
|
|
244
190
|
interface WorkspaceFileManagerUnsupportedDialogState {
|
|
245
191
|
actions?: WorkspaceFileManagerHostFallbackAction[] | null;
|
|
246
192
|
entryPath?: string | null;
|
|
247
|
-
kind: "
|
|
193
|
+
kind: "view";
|
|
248
194
|
message?: string | null;
|
|
249
195
|
title?: string | null;
|
|
250
196
|
}
|
|
@@ -259,7 +205,6 @@ interface WorkspaceFileManagerState {
|
|
|
259
205
|
directoryExpansionByPath: Record<string, WorkspaceFileDirectoryExpansionState>;
|
|
260
206
|
inlineRenameEntryPath: string | null;
|
|
261
207
|
inlineRenameValidation: WorkspaceFileManagerInlineRenameValidation | null;
|
|
262
|
-
dragDepth: number;
|
|
263
208
|
entries: WorkspaceFileEntry[];
|
|
264
209
|
error: string | null;
|
|
265
210
|
expandedDirectoryPaths: Record<string, boolean>;
|
|
@@ -278,7 +223,6 @@ interface WorkspaceFileManagerState {
|
|
|
278
223
|
selectedLocationId: string | null;
|
|
279
224
|
selectedPath: string | null;
|
|
280
225
|
unsupportedDialog: WorkspaceFileManagerUnsupportedDialogState | null;
|
|
281
|
-
importConflictDialog: WorkspaceFileManagerHostImportConflict | null;
|
|
282
226
|
workspaceID: string;
|
|
283
227
|
}
|
|
284
228
|
|
|
@@ -359,15 +303,8 @@ interface WorkspaceFileManagerHost {
|
|
|
359
303
|
workspaceID: string;
|
|
360
304
|
}): Promise<void>;
|
|
361
305
|
activateFile?(request: WorkspaceFileManagerFileActivationRequest, workspaceID: string): Promise<WorkspaceFileManagerHostFileActivationResult>;
|
|
362
|
-
exportEntry?(input: {
|
|
363
|
-
entry: WorkspaceFileEntry;
|
|
364
|
-
workspaceID: string;
|
|
365
|
-
}): Promise<WorkspaceFileManagerHostExportResult>;
|
|
366
306
|
readPreviewFile?(workspaceID: string, path: string): Promise<Uint8Array | ArrayBuffer>;
|
|
367
307
|
resolveErrorMessage?(error: unknown, overrides?: Record<string, string>): string;
|
|
368
|
-
resolveDroppedPaths?(dataTransfer: Pick<DataTransfer, "files" | "items">): string[];
|
|
369
|
-
importFiles?(workspaceID: string, targetDirectoryPath: string): Promise<WorkspaceFileManagerHostActionResult>;
|
|
370
|
-
importPaths?(workspaceID: string, targetDirectoryPath: string, sourcePaths: string[]): Promise<WorkspaceFileManagerHostActionResult>;
|
|
371
308
|
}
|
|
372
309
|
interface CreateWorkspaceFileManagerSessionInput {
|
|
373
310
|
i18n: WorkspaceFileManagerI18nRuntime;
|
|
@@ -375,7 +312,6 @@ interface CreateWorkspaceFileManagerSessionInput {
|
|
|
375
312
|
initialDirectoryPath?: string;
|
|
376
313
|
defaultLocationId?: string | null;
|
|
377
314
|
locationSections?: WorkspaceFileLocationSection[];
|
|
378
|
-
onHostActionMessage?: (message: WorkspaceFileManagerHostActionMessage) => void;
|
|
379
315
|
onMutationErrorMessage?: (message: WorkspaceFileManagerMutationErrorMessage) => boolean | void;
|
|
380
316
|
persistedState?: WorkspaceFileManagerPersistedState | null;
|
|
381
317
|
persistence?: {
|
|
@@ -388,7 +324,7 @@ interface CreateWorkspaceFileManagerSessionInput {
|
|
|
388
324
|
|
|
389
325
|
interface WorkspaceFileManagerCommands {
|
|
390
326
|
applyRevealIntent(intent: {
|
|
391
|
-
mode?: "
|
|
327
|
+
mode?: "select" | "open";
|
|
392
328
|
path: string;
|
|
393
329
|
requestID: string;
|
|
394
330
|
} | null): Promise<void>;
|
|
@@ -398,22 +334,18 @@ interface WorkspaceFileManagerCommands {
|
|
|
398
334
|
cancelInlineRename(): void;
|
|
399
335
|
closeTransientUi(): void;
|
|
400
336
|
closeUnsupportedDialog(): void;
|
|
401
|
-
closeImportConflictDialog(): void;
|
|
402
337
|
confirmCreateDialog(): Promise<void>;
|
|
403
338
|
confirmDeleteDialog(): Promise<void>;
|
|
404
339
|
clearInlineRenameValidation(): void;
|
|
405
340
|
confirmInlineRename(newName: string): Promise<boolean>;
|
|
406
341
|
copyToClipboard(entry: WorkspaceFileEntry): Promise<void>;
|
|
407
|
-
confirmImportConflict(): Promise<void>;
|
|
408
342
|
createDirectory(path: string): Promise<void>;
|
|
409
343
|
createFile(path: string): Promise<void>;
|
|
410
344
|
deleteSelected(): Promise<void>;
|
|
411
|
-
decrementDragDepth(): void;
|
|
412
345
|
goBack(): Promise<void>;
|
|
413
346
|
goForward(): Promise<void>;
|
|
414
347
|
getPersistedState(): WorkspaceFileManagerPersistedState;
|
|
415
348
|
handleActivationFallbackAction(action: WorkspaceFileManagerHostFallbackAction): Promise<void>;
|
|
416
|
-
incrementDragDepth(): void;
|
|
417
349
|
initialize(): Promise<void>;
|
|
418
350
|
loadDirectory(path?: string): Promise<void>;
|
|
419
351
|
openContextMenu(input: WorkspaceFileManagerContextMenuState): void;
|
|
@@ -432,13 +364,9 @@ interface WorkspaceFileManagerCommands {
|
|
|
432
364
|
openFileInSystemDefault(entry: WorkspaceFileEntry): Promise<void>;
|
|
433
365
|
openFileWithOtherApplication(entry: WorkspaceFileEntry): Promise<void>;
|
|
434
366
|
revealEntry(entry: WorkspaceFileEntry): Promise<void>;
|
|
435
|
-
exportEntry(entry: WorkspaceFileEntry): Promise<WorkspaceFileManagerHostActionResult>;
|
|
436
|
-
importDroppedFiles(dataTransfer: Pick<DataTransfer, "files" | "items">, targetDirectoryPath: string): Promise<WorkspaceFileManagerHostActionResult>;
|
|
437
|
-
importFiles(targetDirectoryPath: string): Promise<WorkspaceFileManagerHostActionResult>;
|
|
438
367
|
moveEntry(entry: WorkspaceFileEntry, targetDirectoryPath: string): Promise<void>;
|
|
439
368
|
refresh(): Promise<void>;
|
|
440
369
|
revealPath(path: string): Promise<void>;
|
|
441
|
-
resetDragDepth(): void;
|
|
442
370
|
search(query: string): Promise<void>;
|
|
443
371
|
select(path: string | null): void;
|
|
444
372
|
selectLocation(locationId: string): Promise<void>;
|
|
@@ -472,4 +400,4 @@ declare function resolveWorkspaceFileLocationDefaultId(input: {
|
|
|
472
400
|
declare function isWorkspaceFileRecentLocation(location: WorkspaceFileLocation | null | undefined): boolean;
|
|
473
401
|
declare function isWorkspaceFileExternalLocation(location: WorkspaceFileLocation | null | undefined): boolean;
|
|
474
402
|
|
|
475
|
-
export {
|
|
403
|
+
export { createWorkspaceFileManagerService as A, findWorkspaceFileLocationById as B, type CreateWorkspaceFileManagerSessionInput as C, flattenWorkspaceFileLocations as D, isWorkspaceFileExternalLocation as E, isWorkspaceFileRecentLocation as F, resolveWorkspaceFileLocationDefaultId as G, type WorkspaceFileActivationTarget as W, type WorkspaceFileDirectoryListing as a, type WorkspaceFileDirectoryLocation as b, type WorkspaceFileEntry as c, type WorkspaceFileEntryKind as d, type WorkspaceFileExternalLocation as e, type WorkspaceFileLocation as f, type WorkspaceFileLocationKind as g, type WorkspaceFileLocationSection as h, type WorkspaceFileManagerCapabilities as i, type WorkspaceFileManagerFileActivationRequest as j, type WorkspaceFileManagerFileDefaultOpener as k, type WorkspaceFileManagerHost as l, type WorkspaceFileManagerHostFallbackAction as m, type WorkspaceFileManagerHostFallbackActionKind as n, type WorkspaceFileManagerHostFileActivationResult as o, type WorkspaceFileManagerMutationErrorMessage as p, type WorkspaceFileManagerPersistedState as q, type WorkspaceFileManagerService as r, type WorkspaceFileManagerSession as s, type WorkspaceFileManagerState as t, type WorkspaceFileOpenWithApplication as u, type WorkspaceFilePreviewKind as v, type WorkspaceFilePreviewState as w, type WorkspaceFileRecentLocation as x, type WorkspaceFileSearchEntry as y, type WorkspaceFileSearchResult as z };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tutti-os/workspace-file-manager",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.199",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
"directory": "packages/workspace/file-manager"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@tutti-os/ui-i18n-runtime": "0.0.
|
|
32
|
-
"@tutti-os/ui-system": "0.0.
|
|
33
|
-
"@tutti-os/workspace-file-preview": "0.0.
|
|
31
|
+
"@tutti-os/ui-i18n-runtime": "0.0.199",
|
|
32
|
+
"@tutti-os/ui-system": "0.0.199",
|
|
33
|
+
"@tutti-os/workspace-file-preview": "0.0.199"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/node": "^24.0.1",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/i18n/workspaceFileManagerI18n.ts"],"sourcesContent":["import {\n createScopedLocaleObjectsI18nModuleManifest,\n createScopedI18nRuntime,\n type I18nDictionary,\n type I18nRuntime\n} from \"@tutti-os/ui-i18n-runtime\";\n\ntype WorkspaceFileManagerI18nLocale = \"en\" | \"zh-CN\";\nexport const workspaceFileManagerI18nNamespace = \"workspaceFileManager\";\nexport const tuttiI18nModule = createScopedLocaleObjectsI18nModuleManifest({\n localeObjectByLocale: {\n en: \"workspaceFileManagerEn\",\n \"zh-CN\": \"workspaceFileManagerZhCN\"\n },\n name: \"workspace-file-manager\",\n namespace: \"workspaceFileManager\",\n sourceRoot: \"packages/workspace/file-manager/src\"\n});\n\nconst workspaceFileManagerEn = {\n backLabel: \"Back\",\n arrangeApplicationLabel: \"Application\",\n arrangeCreatedLabel: \"Created\",\n arrangeDateAddedLabel: \"Date Added\",\n arrangeKindLabel: \"Kind\",\n arrangeLastOpenedLabel: \"Last Opened\",\n arrangeMenuLabel: \"Arrange\",\n arrangeNoneLabel: \"None\",\n breadcrumbRootLabel: \"workspace\",\n cancelLabel: \"Cancel\",\n closeLabel: \"Close\",\n copyLabel: \"Copy\",\n copyPathLabel: \"Copy path\",\n copyPathSuccessTitle: \"Path copied\",\n copySuccessTitle: \"Copied to clipboard\",\n createActionLabel: \"Create\",\n createDirectoryLabel: \"New folder\",\n createDirectoryPlaceholder: \"Folder name\",\n createFileLabel: \"New file\",\n createFilePlaceholder: \"File name\",\n createNameInvalid: \"Use a valid name without path separators\",\n createNameRequired: \"Enter a name to continue\",\n clearSearchLabel: \"Clear search\",\n deleteConfirmDescription: \"Delete {{name}} from this workspace?\",\n deleteLabel: \"Delete\",\n deletingLabel: \"Deleting...\",\n downloadFailedTitle: \"Download failed\",\n downloadLabel: \"Download\",\n dropToImportLabel: \"Drop files here to import to the current folder\",\n emptyDirectory: \"No visible files in this folder\",\n collapseFolderLabel: \"Collapse folder\",\n expandFolderLabel: \"Expand folder\",\n forwardLabel: \"Forward\",\n loading: \"Loading\",\n modifiedLabel: \"Modified\",\n nameLabel: \"Name\",\n noSearchResults: \"No files matched your search\",\n openFailedTitle: \"Open failed\",\n openLabel: \"Open\",\n openInAppBrowserLabel: \"Tutti built-in browser\",\n openInDefaultBrowserLabel: \"Default Browser\",\n openInFileViewerLabel: \"File viewer\",\n openWithLabel: \"Open With\",\n openWithLoadingLabel: \"Loading apps...\",\n openWithOtherLabel: \"Other...\",\n openWithOtherPickerPrompt: \"Choose an application to open this file:\",\n revealInFileExplorerLabel: \"Reveal in File Explorer\",\n revealInFileManagerLabel: \"Reveal in File Manager\",\n revealInFinderLabel: \"Reveal in Finder\",\n unknownErrorMessage: \"Something went wrong. Please try again.\",\n previewBinary:\n \"This file looks binary, so the preview stays read-only for now.\",\n previewDecodeFailed:\n \"We couldn't decode this file as UTF-8 text for preview.\",\n previewDirectoryLabel: \"Folder\",\n previewEmptyLabel: \"Select a file or folder to view details\",\n previewFileTooLarge:\n \"This file is larger than {{maxSize}}, so inline preview is disabled.\",\n previewLoadingLabel: \"Loading preview...\",\n previewTooLarge:\n \"This text file is larger than {{maxSize}}, so inline preview is disabled.\",\n previewUnavailableDownloadBody:\n \"Download {{name}} to open it in another environment.\",\n previewUnavailableOpenBody: \"Open {{name}} in your local app instead.\",\n previewUnavailableTitle: \"Can't preview this file\",\n previewUnsupported: \"Inline preview isn't available for this file type yet.\",\n revealFailedTitle: \"Could not reveal in file manager\",\n renameActionLabel: \"Rename\",\n renameLabel: \"Rename\",\n renamePlaceholder: \"New name\",\n refreshLabel: \"Refresh\",\n resizeLocationsSidebar: \"Resize locations sidebar\",\n resizePreviewPanel: \"Resize file details panel\",\n retryLabel: \"Retry\",\n searchPlaceholder: \"Search files\",\n searchResultsLabel: \"Search results\",\n sizeLabel: \"Size\",\n unsupportedImportBody:\n \"Importing local files into the workspace is not wired up in this desktop build yet.\",\n unsupportedImportTitle: \"Import not available yet\",\n unsupportedViewBody:\n \"Opening {{name}} from the file manager is not supported in this desktop build yet.\",\n unsupportedViewTitle: \"Open not available yet\",\n importConflictDescription:\n \"{{count}} file from this import already exists in this folder tree. Replace it?\",\n importConflictReplaceLabel: \"Replace files\",\n importConflictReviewLabel: \"Existing path\",\n importConflictSummaryFiltered: \"Filtered: {{count}}\",\n importConflictSummaryIgnored: \"Ignored: {{count}}\",\n importConflictSummaryReasonIgnored: \"Ignored by rules: {{count}}\",\n importConflictSummaryReasonSymlink: \"Skipped symlinks: {{count}}\",\n importConflictSummaryReasonSystemMetadata:\n \"Skipped system metadata: {{count}}\",\n importConflictSummarySelected: \"Selected: {{count}}\",\n importConflictTitle: \"Replace existing file?\",\n importFailedTitle: \"Import failed\",\n importLabel: \"Import\",\n importTypeConflictDescription:\n \"{{count}} import path conflicts with an existing file or folder using an incompatible type. Resolve it before retrying.\",\n importTypeConflictTitle: \"Import path conflict\",\n layoutIconViewLabel: \"Icon view\",\n layoutIconViewTooltipLabel: \"Icon mode\",\n layoutListViewLabel: \"List view\",\n layoutListViewTooltipLabel: \"List mode\"\n} as const satisfies I18nDictionary;\n\nconst workspaceFileManagerZhCN = {\n backLabel: \"后退\",\n arrangeApplicationLabel: \"应用程序\",\n arrangeCreatedLabel: \"创建日期\",\n arrangeDateAddedLabel: \"添加日期\",\n arrangeKindLabel: \"种类\",\n arrangeLastOpenedLabel: \"上次打开日期\",\n arrangeMenuLabel: \"排列方式\",\n arrangeNoneLabel: \"无\",\n breadcrumbRootLabel: \"工作区\",\n cancelLabel: \"取消\",\n closeLabel: \"关闭\",\n copyLabel: \"复制\",\n copyPathLabel: \"复制路径\",\n copyPathSuccessTitle: \"复制成功\",\n copySuccessTitle: \"已复制到剪贴板\",\n createActionLabel: \"创建\",\n createDirectoryLabel: \"新建文件夹\",\n createDirectoryPlaceholder: \"文件夹名称\",\n createFileLabel: \"新建文件\",\n createFilePlaceholder: \"文件名称\",\n createNameInvalid: \"请输入有效名称,且不要包含路径分隔符\",\n createNameRequired: \"请输入名称后再继续\",\n clearSearchLabel: \"清空搜索\",\n deleteConfirmDescription: \"要从这个工作区删除 {{name}} 吗?\",\n deleteLabel: \"删除\",\n deletingLabel: \"删除中...\",\n downloadFailedTitle: \"下载失败\",\n downloadLabel: \"下载\",\n dropToImportLabel: \"将文件拖到这里以导入到当前文件夹\",\n emptyDirectory: \"这个文件夹里没有可见文件\",\n collapseFolderLabel: \"收起文件夹\",\n expandFolderLabel: \"展开文件夹\",\n forwardLabel: \"前进\",\n loading: \"加载中\",\n modifiedLabel: \"修改时间\",\n nameLabel: \"名称\",\n noSearchResults: \"没有匹配的文件\",\n openFailedTitle: \"打开失败\",\n openLabel: \"打开\",\n openInAppBrowserLabel: \"Tutti 内置的浏览器\",\n openInDefaultBrowserLabel: \"默认浏览器\",\n openInFileViewerLabel: \"文件查看器\",\n openWithLabel: \"打开方式\",\n openWithLoadingLabel: \"正在加载应用...\",\n openWithOtherLabel: \"其他...\",\n openWithOtherPickerPrompt: \"选择用来打开此文件的应用程序:\",\n revealInFileExplorerLabel: \"在文件资源管理器中显示\",\n revealInFileManagerLabel: \"在文件管理器中显示\",\n revealInFinderLabel: \"在 Finder 中显示\",\n unknownErrorMessage: \"出了点问题,请稍后再试。\",\n previewBinary: \"这个文件更像二进制内容,当前先保持只读占位。\",\n previewDecodeFailed: \"暂时无法按 UTF-8 文本解码这个文件。\",\n previewDirectoryLabel: \"文件夹\",\n previewEmptyLabel: \"选择文件或文件夹查看详情\",\n previewFileTooLarge: \"这个文件超过了 {{maxSize}},暂时不做内联预览。\",\n previewLoadingLabel: \"正在加载预览...\",\n previewTooLarge: \"这个文本文件超过了 {{maxSize}},暂时不做内联预览。\",\n previewUnavailableDownloadBody: \"下载 {{name}} 后再在其他环境中打开。\",\n previewUnavailableOpenBody: \"改为在本地应用中打开 {{name}}。\",\n previewUnavailableTitle: \"这个文件暂时无法预览\",\n previewUnsupported: \"这种文件类型暂时还不支持内联预览。\",\n revealFailedTitle: \"无法在文件管理器中显示\",\n renameActionLabel: \"重命名\",\n renameLabel: \"重命名\",\n renamePlaceholder: \"新名称\",\n refreshLabel: \"刷新\",\n resizeLocationsSidebar: \"调整位置侧栏宽度\",\n resizePreviewPanel: \"调整文件详情面板宽度\",\n retryLabel: \"重试\",\n searchPlaceholder: \"搜索文件\",\n searchResultsLabel: \"搜索结果\",\n sizeLabel: \"大小\",\n unsupportedImportBody:\n \"这个桌面版本暂时还没有把本地文件导入到工作区的链路接通。\",\n unsupportedImportTitle: \"暂不支持导入\",\n unsupportedViewBody:\n \"这个桌面版本暂时还不支持直接从文件管理器打开 {{name}}。\",\n unsupportedViewTitle: \"暂不支持打开\",\n importConflictDescription:\n \"这次导入里有 {{count}} 个文件在当前目录树中已经存在。要替换吗?\",\n importConflictReplaceLabel: \"替换文件\",\n importConflictReviewLabel: \"现有路径\",\n importConflictSummaryFiltered: \"已过滤:{{count}}\",\n importConflictSummaryIgnored: \"已忽略:{{count}}\",\n importConflictSummaryReasonIgnored: \"规则忽略:{{count}}\",\n importConflictSummaryReasonSymlink: \"已跳过符号链接:{{count}}\",\n importConflictSummaryReasonSystemMetadata: \"已跳过系统元数据:{{count}}\",\n importConflictSummarySelected: \"已选择:{{count}}\",\n importConflictTitle: \"替换已有文件?\",\n importFailedTitle: \"导入失败\",\n importLabel: \"导入\",\n importTypeConflictDescription:\n \"这次导入里有 {{count}} 个路径与现有文件或文件夹的类型不兼容。请先处理后再重试。\",\n importTypeConflictTitle: \"导入路径冲突\",\n layoutIconViewLabel: \"图标\",\n layoutIconViewTooltipLabel: \"图标模式\",\n layoutListViewLabel: \"列表\",\n layoutListViewTooltipLabel: \"列表模式\"\n} as const satisfies I18nDictionary;\n\nexport type WorkspaceFileManagerI18nKey = keyof typeof workspaceFileManagerEn;\n\nexport type WorkspaceFileManagerI18nRuntime =\n I18nRuntime<WorkspaceFileManagerI18nKey>;\n\nconst workspaceFileManagerDefaults: Record<\n WorkspaceFileManagerI18nLocale,\n I18nDictionary\n> = {\n en: workspaceFileManagerEn,\n \"zh-CN\": workspaceFileManagerZhCN\n};\n\nexport const workspaceFileManagerI18nResources: Record<\n WorkspaceFileManagerI18nLocale,\n I18nDictionary\n> = {\n en: {\n [workspaceFileManagerI18nNamespace]: workspaceFileManagerDefaults.en\n },\n \"zh-CN\": {\n [workspaceFileManagerI18nNamespace]: workspaceFileManagerDefaults[\"zh-CN\"]\n }\n};\n\nexport function createWorkspaceFileManagerI18nRuntime(\n runtime: I18nRuntime<string>\n): WorkspaceFileManagerI18nRuntime {\n return createScopedI18nRuntime<WorkspaceFileManagerI18nKey>(\n runtime,\n workspaceFileManagerI18nNamespace\n );\n}\n\nexport function resolveRevealInFolderLabel(\n copy: WorkspaceFileManagerI18nRuntime,\n platform: NodeJS.Platform\n): string {\n if (platform === \"darwin\") {\n return copy.t(\"revealInFinderLabel\");\n }\n if (platform === \"win32\") {\n return copy.t(\"revealInFileExplorerLabel\");\n }\n return copy.t(\"revealInFileManagerLabel\");\n}\n"],"mappings":"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","names":[]}
|