@cocoar/vue-file-explorer-core 2.8.0 → 2.10.0-beta.2

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 CHANGED
@@ -74,7 +74,9 @@ Then bind into `<CoarTree>` and your own tab bar + editor dispatch:
74
74
  </CoarTree>
75
75
  ```
76
76
 
77
- The composable also returns `openTabs`, `activeTab`, `breadcrumbPath`, `loadingNodes`, `savingNodes`, `pathOf`, plus imperative ops `openFile` / `saveTab` / `closeTab` / `pinTab` / `unpinTab` / `reorderTab` / `addFolder` / `addFiles` / `deleteNode` / `setContent` / `refresh`.
77
+ The composable also returns `openTabs`, `activeTab`, `breadcrumbPath`, `loadingNodes`, `savingNodes`, `pathOf`, plus imperative ops `openFile` / `saveTab` / `closeTab` / `pinTab` / `unpinTab` / `reorderTab` / `addFolder` / `addFiles` / `deleteNode` / `move` / `moveNode` / `rename` / `setContent` / `refresh`.
78
+
79
+ `move(id, newParentId, position?)` is the programmatic move (optimistic + rollback) for sources that aren't a tree drag — a "move to folder" select, a grid card dropped on a folder, undo. `loadContent` / `save` / `createFile` are **optional** on the store: omit them for browse-only consumers (no editor tabs) and the composable skips the content/tab machinery + post-upload save.
78
80
 
79
81
  ## Wiring your own backend
80
82
 
@@ -123,22 +123,39 @@ export interface AssetStore<T = unknown> {
123
123
  * - `pdf` / `image` → `string` (URL) OR `Blob`
124
124
  *
125
125
  * Composable caches the result; subsequent opens hit cache until invalidated.
126
+ *
127
+ * **Optional (browse-only mode).** Omit it when the consumer never opens
128
+ * files in editor tabs (e.g. an image library that only edits metadata). The
129
+ * composable then treats `openFile` as a no-op instead of forcing a stub that
130
+ * throws — see also {@link save}.
126
131
  */
127
- loadContent(id: string): Promise<string | Blob>;
132
+ loadContent?(id: string): Promise<string | Blob>;
128
133
  createFolder(parentId: string | null, name: string): Promise<Asset<T>>;
129
134
  /**
130
135
  * Create a new empty file. The editor + language are derived from `name`
131
136
  * via the standard fallback chain (or carried on the returned `Asset` if
132
137
  * the backend wants explicit control).
138
+ *
139
+ * **Optional.** The composable never calls this itself (it uploads via
140
+ * `uploadFile`); it exists for consumers that wire a "new file" action.
141
+ * Browse-only stores can omit it.
133
142
  */
134
- createFile(parentId: string | null, name: string): Promise<Asset<T>>;
143
+ createFile?(parentId: string | null, name: string): Promise<Asset<T>>;
135
144
  /**
136
145
  * Upload an OS File (from drop or `<input type=file>`). Distinct from
137
146
  * `createFile` so backends can pick multipart / signed-URL transports.
138
147
  */
139
148
  uploadFile(parentId: string | null, file: File): Promise<Asset<T>>;
140
- /** Persist new file content. Composable calls this on Ctrl+S. */
141
- save(id: string, content: string | Blob): Promise<void>;
149
+ /**
150
+ * Persist new file content. Composable calls this on Ctrl+S and once after
151
+ * each `uploadFile` to seed the uploaded bytes.
152
+ *
153
+ * **Optional (browse-only mode).** Omit it when uploads already persist their
154
+ * own bytes (multipart `uploadFile`) and the consumer never edits file
155
+ * content. The composable then skips the post-upload save — which previously
156
+ * surfaced a spurious "saving not supported" error toast through `onError`.
157
+ */
158
+ save?(id: string, content: string | Blob): Promise<void>;
142
159
  rename(id: string, newName: string): Promise<void>;
143
160
  delete(id: string): Promise<void>;
144
161
  /**
@@ -161,11 +178,14 @@ export interface AssetStore<T = unknown> {
161
178
  export interface AssetStoreConfig<T = unknown> {
162
179
  loadTree: AssetStore<T>['loadTree'];
163
180
  loadChildren?: AssetStore<T>['loadChildren'];
164
- loadContent: AssetStore<T>['loadContent'];
181
+ /** Optional — omit for browse-only consumers (no editor tabs). See {@link AssetStore.loadContent}. */
182
+ loadContent?: AssetStore<T>['loadContent'];
165
183
  createFolder: AssetStore<T>['createFolder'];
166
- createFile: AssetStore<T>['createFile'];
184
+ /** Optional — the composable never calls this itself. See {@link AssetStore.createFile}. */
185
+ createFile?: AssetStore<T>['createFile'];
167
186
  uploadFile: AssetStore<T>['uploadFile'];
168
- save: AssetStore<T>['save'];
187
+ /** Optional — omit when uploads self-persist and content is never edited. See {@link AssetStore.save}. */
188
+ save?: AssetStore<T>['save'];
169
189
  rename: AssetStore<T>['rename'];
170
190
  delete: AssetStore<T>['delete'];
171
191
  move: AssetStore<T>['move'];
@@ -1 +1 @@
1
- {"version":3,"file":"asset-store.d.ts","sourceRoot":"","sources":["../src/asset-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asset-store.d.ts","sourceRoot":"","sources":["../src/asset-store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-asset-store.d.ts","sourceRoot":"","sources":["../src/create-asset-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAA0B,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAEhG,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAsB,MAAM,eAAe,CAAC;AAI7G,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAgBxF;AAID,MAAM,WAAW,yBAAyB,CAAC,CAAC,GAAG,OAAO;IACpD,iEAAiE;IACjE,WAAW,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,gCAAgC;IAChC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IACzD;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACrC;;;OAGG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IACpE,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;CAChD;AAED,wBAAgB,wBAAwB,CAAC,CAAC,GAAG,OAAO,EAClD,OAAO,GAAE,yBAAyB,CAAC,CAAC,CAAM,GACzC,kBAAkB,CAAC,CAAC,CAAC,CAqVvB"}
1
+ {"version":3,"file":"create-asset-store.d.ts","sourceRoot":"","sources":["../src/create-asset-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAA0B,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAEhG,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAsB,MAAM,eAAe,CAAC;AAI7G,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAiBxF;AAID,MAAM,WAAW,yBAAyB,CAAC,CAAC,GAAG,OAAO;IACpD,iEAAiE;IACjE,WAAW,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,gCAAgC;IAChC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IACzD;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACrC;;;OAGG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IACpE,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;CAChD;AAED,wBAAgB,wBAAwB,CAAC,CAAC,GAAG,OAAO,EAClD,OAAO,GAAE,yBAAyB,CAAC,CAAC,CAAM,GACzC,kBAAkB,CAAC,CAAC,CAAC,CAqVvB"}
package/dist/index.js CHANGED
@@ -3,16 +3,13 @@ import { computed as e, nextTick as t, onScopeDispose as n, ref as r, shallowRef
3
3
  function s(e) {
4
4
  let t = {
5
5
  loadTree: e.loadTree,
6
- loadContent: e.loadContent,
7
6
  createFolder: e.createFolder,
8
- createFile: e.createFile,
9
7
  uploadFile: e.uploadFile,
10
- save: e.save,
11
8
  rename: e.rename,
12
9
  delete: e.delete,
13
10
  move: e.move
14
11
  };
15
- return e.loadChildren && (t.loadChildren = e.loadChildren), t;
12
+ return e.loadChildren && (t.loadChildren = e.loadChildren), e.loadContent && (t.loadContent = e.loadContent), e.createFile && (t.createFile = e.createFile), e.save && (t.save = e.save), t;
16
13
  }
17
14
  function c(t = {}) {
18
15
  let { initialTree: n = [], initialContent: i = {}, latencyMs: o = 0, failureRate: s = 0, idFactory: c = () => crypto.randomUUID(), lazy: l = !1, onConflict: u = "rename" } = t, d = r([...n]), f = r(new Set(l ? n.filter((e) => e.parentId === null).map((e) => e.id) : n.map((e) => e.id))), p = e(() => d.value.filter((e) => f.value.has(e.id))), m = new Map(Object.entries(i));
@@ -352,26 +349,28 @@ function g(s) {
352
349
  ...n,
353
350
  ...t
354
351
  } : n));
355
- }, w = e(() => a(s.sortMode) ?? "folders-first"), T = e(() => w.value === "manual"), E = (e) => e === "manual" ? null : typeof e == "function" ? e : e === "alphabetical" ? (e, t) => e.name.localeCompare(t.name) : (e, t) => {
352
+ }, w = (e, t) => {
353
+ _ || (m.value = m.value.map((n) => n.id === e ? t : n));
354
+ }, T = e(() => a(s.sortMode) ?? "folders-first"), E = e(() => T.value === "manual"), ee = (e) => e === "manual" ? null : typeof e == "function" ? e : e === "alphabetical" ? (e, t) => e.name.localeCompare(t.name) : (e, t) => {
356
355
  let n = Number(t.kind === "folder") - Number(e.kind === "folder");
357
356
  return n === 0 ? e.name.localeCompare(t.name) : n;
358
357
  }, D = (e) => {
359
- let t = v.value.filter((t) => t.parentId === e), n = E(w.value);
358
+ let t = v.value.filter((t) => t.parentId === e), n = ee(T.value);
360
359
  return n ? t.sort(n) : t;
361
- }, ee = e(() => D(null)), O = "loadChildren" in c && typeof c.loadChildren == "function", k = r(/* @__PURE__ */ new Set()), te = (e) => e.id, ne = (e) => {
362
- if (e.kind === "folder" && !(O && !k.value.has(e.id))) return D(e.id);
363
- }, re = (e) => e.name, ie = (e) => e.kind === "folder" && e.hasChildren !== !1, A = s.initialExpandedIds ?? (O ? [] : v.value.filter((e) => e.parentId === null && e.kind === "folder").map((e) => e.id)), j = r(new Set(A)), M = r(null), N = r(/* @__PURE__ */ new Set()), P = r(/* @__PURE__ */ new Set()), F = (e, t, n) => {
360
+ }, O = e(() => D(null)), k = "loadChildren" in c && typeof c.loadChildren == "function", A = r(/* @__PURE__ */ new Set()), te = (e) => e.id, ne = (e) => {
361
+ if (e.kind === "folder" && !(k && !A.value.has(e.id))) return D(e.id);
362
+ }, re = (e) => e.name, j = (e) => e.kind === "folder" && e.hasChildren !== !1, ie = s.initialExpandedIds ?? (k ? [] : v.value.filter((e) => e.parentId === null && e.kind === "folder").map((e) => e.id)), M = r(new Set(ie)), N = r(null), P = r(/* @__PURE__ */ new Set()), F = r(/* @__PURE__ */ new Set()), I = (e, t, n) => {
364
363
  let r = new Set(e.value);
365
364
  n ? r.add(t) : r.delete(t), e.value = r;
366
- }, I = i([]), L = r(null), ae = e(() => I.value.find((e) => e.id === L.value) ?? null), R = (e) => e.content !== e.savedContent, z = e(() => I.value.some(R)), B = (e) => v.value.find((t) => t.id === e) ?? null, oe = e(() => M.value ? B(M.value) : null), se = (e) => {
365
+ }, L = i([]), R = r(null), ae = e(() => L.value.find((e) => e.id === R.value) ?? null), z = (e) => e.content !== e.savedContent, B = e(() => L.value.some(z)), V = (e) => v.value.find((t) => t.id === e) ?? null, oe = e(() => N.value ? V(N.value) : null), se = (e) => {
367
366
  let t = new Set([e]), n = !0;
368
367
  for (; n;) {
369
368
  n = !1;
370
369
  for (let e of v.value) e.parentId && t.has(e.parentId) && !t.has(e.id) && (t.add(e.id), n = !0);
371
370
  }
372
371
  return t;
373
- }, V = (e) => u(e, { getFileMeta: d }), H = (e) => h(e, {
374
- meta: e.kind === "file" ? V(e) : null,
372
+ }, H = (e) => u(e, { getFileMeta: d }), ce = (e) => h(e, {
373
+ meta: e.kind === "file" ? H(e) : null,
375
374
  path: X(e.id)
376
375
  }), U = /* @__PURE__ */ new Set(), W = async (e) => {
377
376
  let t = u({
@@ -392,21 +391,28 @@ function g(s) {
392
391
  content: await e.text(),
393
392
  editor: t.editor
394
393
  };
395
- }, G = async (e, t) => {
394
+ }, le = 0, ue = async (e, t) => {
395
+ let n = `__coar-optimistic-${le++}__`;
396
+ b([{
397
+ id: n,
398
+ name: t,
399
+ kind: "folder",
400
+ parentId: e
401
+ }]), e && (M.value = new Set(M.value).add(e));
396
402
  try {
397
- let n = await c.createFolder(e, t);
398
- return b([n]), e && (j.value = new Set(j.value).add(e)), n;
399
- } catch (n) {
400
- return p("createFolder", n, {
403
+ let r = await c.createFolder(e, t);
404
+ return w(n, r), r;
405
+ } catch (r) {
406
+ return S(new Set([n])), p("createFolder", r, {
401
407
  parentId: e,
402
408
  name: t
403
409
  }), null;
404
410
  }
405
- }, ce = async (e, t) => {
411
+ }, de = async (e, t) => {
406
412
  let n = Array.from(t), r = !1;
407
413
  for (let t of n) {
408
- let n = await W(t);
409
- if (!n) continue;
414
+ let n = null;
415
+ if (c.save && (n = await W(t), !n)) continue;
410
416
  let i;
411
417
  try {
412
418
  i = await c.uploadFile(e, t);
@@ -417,67 +423,65 @@ function g(s) {
417
423
  });
418
424
  continue;
419
425
  }
420
- b([i]), F(P, i.id, !0);
421
- try {
422
- await c.save(i.id, n.content), r = !0;
423
- } catch (e) {
424
- p("save", e, {
425
- id: i.id,
426
- name: i.name
427
- });
428
- } finally {
429
- F(P, i.id, !1);
426
+ if (b([{
427
+ ...i,
428
+ parentId: i.parentId ?? e
429
+ }]), r = !0, c.save && n) {
430
+ I(F, i.id, !0);
431
+ try {
432
+ await c.save(i.id, n.content);
433
+ } catch (e) {
434
+ p("save", e, {
435
+ id: i.id,
436
+ name: i.name
437
+ });
438
+ } finally {
439
+ I(F, i.id, !1);
440
+ }
430
441
  }
431
442
  }
432
- r && e && (j.value = new Set(j.value).add(e));
433
- }, le = async (e) => {
443
+ r && e && (M.value = new Set(M.value).add(e));
444
+ }, fe = async (e) => {
434
445
  let t = se(e.id);
435
446
  for (let e of t) {
436
447
  let t = c._contents?.get(e);
437
448
  typeof t == "string" && U.has(t) && (URL.revokeObjectURL(t), U.delete(t));
438
449
  }
439
- t.size > 0 && (I.value = I.value.filter((e) => !t.has(e.id)), L.value && t.has(L.value) && (L.value = I.value[0]?.id ?? null)), F(P, e.id, !0);
450
+ t.size > 0 && (L.value = L.value.filter((e) => !t.has(e.id)), R.value && t.has(R.value) && (R.value = L.value[0]?.id ?? null)), I(F, e.id, !0);
440
451
  try {
441
- await c.delete(e.id), S(t), O && t.size > 0 && (k.value = new Set([...k.value].filter((e) => !t.has(e))));
452
+ await c.delete(e.id), S(t), k && t.size > 0 && (A.value = new Set([...A.value].filter((e) => !t.has(e))));
442
453
  } catch (t) {
443
454
  p("delete", t, {
444
455
  id: e.id,
445
456
  name: e.name
446
457
  });
447
458
  } finally {
448
- F(P, e.id, !1);
459
+ I(F, e.id, !1);
449
460
  }
450
- }, ue = async (e) => {
451
- let { source: t, target: n, position: r } = e, i = T.value;
452
- F(P, t.id, !0);
461
+ }, G = async (e, t, n) => {
462
+ let r = E.value && n !== void 0;
463
+ I(F, e, !0);
453
464
  try {
454
- if (!n) {
455
- await c.move(t.id, null), C(t.id, { parentId: null });
456
- return;
457
- }
458
- if (r === "inside") {
459
- if (n.kind !== "folder") return;
460
- await c.move(t.id, n.id), C(t.id, { parentId: n.id }), j.value = new Set(j.value).add(n.id);
461
- return;
462
- }
463
- if (!i) {
464
- await c.move(t.id, n.parentId), C(t.id, { parentId: n.parentId });
465
- return;
466
- }
467
- let e = v.value.filter((e) => e.parentId === n.parentId && e.id !== t.id).findIndex((e) => e.id === n.id), a = r === "before" ? e : e + 1;
468
- await c.move(t.id, n.parentId, a), _ || await Q();
469
- } catch (e) {
470
- p("move", e, {
471
- id: t.id,
472
- name: t.name
465
+ await c.move(e, t, r ? n : void 0), C(e, { parentId: t }), t && (M.value = new Set(M.value).add(t)), r && !_ && await Q();
466
+ } catch (t) {
467
+ p("move", t, {
468
+ id: e,
469
+ name: V(e)?.name
473
470
  });
474
471
  } finally {
475
- F(P, t.id, !1);
472
+ I(F, e, !1);
476
473
  }
477
- }, de = async (e, t) => {
478
- let n = B(e);
474
+ }, pe = async (e) => {
475
+ let { source: t, target: n, position: r } = e;
476
+ if (!n) return G(t.id, null);
477
+ if (r === "inside") return n.kind === "folder" ? G(t.id, n.id) : void 0;
478
+ if (!E.value) return G(t.id, n.parentId);
479
+ let i = v.value.filter((e) => e.parentId === n.parentId && e.id !== t.id).findIndex((e) => e.id === n.id), a = r === "before" ? i : i + 1;
480
+ return G(t.id, n.parentId, a);
481
+ }, K = async (e, t) => {
482
+ let n = V(e);
479
483
  if (!(!n || n.name === t)) {
480
- F(P, e, !0);
484
+ I(F, e, !0);
481
485
  try {
482
486
  await c.rename(e, t), C(e, { name: t });
483
487
  } catch (n) {
@@ -487,166 +491,170 @@ function g(s) {
487
491
  });
488
492
  return;
489
493
  } finally {
490
- F(P, e, !1);
494
+ I(F, e, !1);
491
495
  }
492
496
  if (n.kind === "file") {
493
- let r = I.value.findIndex((t) => t.id === e);
497
+ let r = L.value.findIndex((t) => t.id === e);
494
498
  if (r >= 0) {
495
- let e = u(n, { getFileMeta: d }), i = I.value.slice();
499
+ let e = u(n, { getFileMeta: d }), i = L.value.slice();
496
500
  i[r] = {
497
501
  ...i[r],
498
502
  name: t,
499
503
  editor: e?.editor ?? i[r].editor,
500
504
  language: e?.language
501
- }, I.value = i;
505
+ }, L.value = i;
502
506
  }
503
507
  }
504
508
  }
505
- }, K = (e) => {
506
- let t = I.value.findIndex((t) => t.id === e);
507
- if (t < 0 || I.value[t].pinned) return;
508
- let n = I.value.slice();
509
+ }, q = (e) => {
510
+ let t = L.value.findIndex((t) => t.id === e);
511
+ if (t < 0 || L.value[t].pinned) return;
512
+ let n = L.value.slice();
509
513
  n[t] = {
510
514
  ...n[t],
511
515
  pinned: !0
512
- }, I.value = n;
513
- }, fe = (e, t, n) => {
516
+ }, L.value = n;
517
+ }, me = (e, t, n) => {
514
518
  if (e === t) return;
515
- let r = I.value, i = r.findIndex((t) => t.id === e), a = r.findIndex((e) => e.id === t);
519
+ let r = L.value, i = r.findIndex((t) => t.id === e), a = r.findIndex((e) => e.id === t);
516
520
  if (i < 0 || a < 0) return;
517
521
  let o = r.slice(), [s] = o.splice(i, 1), c = i < a ? a - 1 : a, l = n === "before" ? c : c + 1;
518
- o.splice(l, 0, s), I.value = o;
519
- }, pe = (e) => {
520
- let t = I.value.findIndex((t) => t.id === e);
521
- if (t < 0 || !I.value[t].pinned) return;
522
- let n = I.value.filter((t) => t.pinned || t.id === e), r = n.findIndex((t) => t.id === e);
522
+ o.splice(l, 0, s), L.value = o;
523
+ }, he = (e) => {
524
+ let t = L.value.findIndex((t) => t.id === e);
525
+ if (t < 0 || !L.value[t].pinned) return;
526
+ let n = L.value.filter((t) => t.pinned || t.id === e), r = n.findIndex((t) => t.id === e);
523
527
  n[r] = {
524
528
  ...n[r],
525
529
  pinned: !1
526
- }, I.value = n;
527
- }, me = (e, t) => {
528
- let n = I.value.findIndex((t) => t.id === e);
530
+ }, L.value = n;
531
+ }, ge = (e, t) => {
532
+ let n = L.value.findIndex((t) => t.id === e);
529
533
  if (n < 0) return;
530
- let r = I.value.slice(), i = !r[n].pinned, a = t !== r[n].savedContent;
534
+ let r = L.value.slice(), i = !r[n].pinned, a = t !== r[n].savedContent;
531
535
  r[n] = {
532
536
  ...r[n],
533
537
  content: t,
534
538
  pinned: i && a ? !0 : r[n].pinned
535
- }, I.value = r;
536
- }, q = async (e, t = { pinned: !1 }) => {
537
- let n = I.value.findIndex((t) => t.id === e.id);
538
- if (n >= 0) {
539
- t.pinned && !I.value[n].pinned && K(e.id), L.value = e.id;
539
+ }, L.value = r;
540
+ }, J = async (e, t = { pinned: !1 }) => {
541
+ let n = c.loadContent;
542
+ if (!n) return;
543
+ let r = L.value.findIndex((t) => t.id === e.id);
544
+ if (r >= 0) {
545
+ t.pinned && !L.value[r].pinned && q(e.id), R.value = e.id;
540
546
  return;
541
547
  }
542
- let r = u(e, { getFileMeta: d });
543
- if (!r) {
548
+ let i = u(e, { getFileMeta: d });
549
+ if (!i) {
544
550
  console.warn(`[file-explorer] No editor available for ${e.name}`);
545
551
  return;
546
552
  }
547
- let i = {
553
+ let a = {
548
554
  id: e.id,
549
555
  name: e.name,
550
- editor: r.editor,
551
- language: r.language,
556
+ editor: i.editor,
557
+ language: i.language,
552
558
  content: "",
553
559
  savedContent: "",
554
560
  pinned: t.pinned
555
561
  };
556
- if (t.pinned) I.value = [...I.value, i];
562
+ if (t.pinned) L.value = [...L.value, a];
557
563
  else {
558
- let e = I.value.findIndex((e) => !e.pinned), t = I.value.slice();
559
- e >= 0 ? t.splice(e, 1, i) : t.push(i), I.value = t;
564
+ let e = L.value.findIndex((e) => !e.pinned), t = L.value.slice();
565
+ e >= 0 ? t.splice(e, 1, a) : t.push(a), L.value = t;
560
566
  }
561
- L.value = e.id;
562
- let a;
563
- F(N, e.id, !0);
567
+ R.value = e.id;
568
+ let o;
569
+ I(P, e.id, !0);
564
570
  try {
565
- a = await c.loadContent(e.id);
571
+ o = await n(e.id);
566
572
  } catch (t) {
567
573
  p("loadContent", t, {
568
574
  id: e.id,
569
575
  name: e.name
570
- }), I.value = I.value.filter((t) => t.id !== e.id), L.value === e.id && (L.value = I.value[I.value.length - 1]?.id ?? null);
576
+ }), L.value = L.value.filter((t) => t.id !== e.id), R.value === e.id && (R.value = L.value[L.value.length - 1]?.id ?? null);
571
577
  return;
572
578
  } finally {
573
- F(N, e.id, !1);
579
+ I(P, e.id, !1);
574
580
  }
575
- let o = typeof a == "string" ? a : "", s = I.value.findIndex((t) => t.id === e.id);
576
- if (s >= 0) {
577
- let e = I.value.slice();
578
- e[s] = {
579
- ...e[s],
580
- content: o,
581
- savedContent: o
582
- }, I.value = e;
581
+ let s = typeof o == "string" ? o : "", l = L.value.findIndex((t) => t.id === e.id);
582
+ if (l >= 0) {
583
+ let e = L.value.slice();
584
+ e[l] = {
585
+ ...e[l],
586
+ content: s,
587
+ savedContent: s
588
+ }, L.value = e;
583
589
  }
584
- }, he = (e) => {
585
- e.kind === "file" && q(e, { pinned: !0 });
586
- }, J = async (e) => {
587
- let t = I.value.findIndex((t) => t.id === e);
590
+ }, _e = (e) => {
591
+ e.kind === "file" && J(e, { pinned: !0 });
592
+ }, Y = async (e) => {
593
+ let t = L.value.findIndex((t) => t.id === e);
588
594
  if (t < 0) return !1;
589
- let n = I.value[t];
590
- if (!R(n)) return !0;
591
- F(P, e, !0);
595
+ let n = L.value[t];
596
+ if (!z(n)) return !0;
597
+ let r = c.save;
598
+ if (!r) return !1;
599
+ I(F, e, !0);
592
600
  try {
593
- await c.save(n.id, n.content);
601
+ await r(n.id, n.content);
594
602
  } catch (t) {
595
603
  return p("save", t, {
596
604
  id: e,
597
605
  name: n.name
598
606
  }), !1;
599
607
  } finally {
600
- F(P, e, !1);
608
+ I(F, e, !1);
601
609
  }
602
- let r = I.value.slice();
603
- return r[t] = {
610
+ let i = L.value.slice();
611
+ return i[t] = {
604
612
  ...n,
605
613
  savedContent: n.content
606
- }, I.value = r, !0;
607
- }, ge = async () => {
608
- L.value && await J(L.value);
609
- }, _e = (e) => {
610
- let t = I.value.findIndex((t) => t.id === e);
611
- if (t < 0 || P.value.has(e)) return;
612
- let n = I.value[t];
613
- if (R(n) && !f(`Discard unsaved changes to "${n.name}"?`)) return;
614
- let r = I.value.filter((t) => t.id !== e);
615
- I.value = r, L.value === e && (L.value = r[t]?.id ?? r[t - 1]?.id ?? null);
616
- }, ve = (e) => {
617
- let t = I.value.filter((t) => t.id !== e && R(t));
618
- if (t.length > 0 && !f(`Close ${I.value.length - 1 - t.length} other tabs? ${t.length} unsaved tab(s) will be kept open.`)) return;
614
+ }, L.value = i, !0;
615
+ }, ve = async () => {
616
+ R.value && await Y(R.value);
617
+ }, ye = (e) => {
618
+ let t = L.value.findIndex((t) => t.id === e);
619
+ if (t < 0 || F.value.has(e)) return;
620
+ let n = L.value[t];
621
+ if (z(n) && !f(`Discard unsaved changes to "${n.name}"?`)) return;
622
+ let r = L.value.filter((t) => t.id !== e);
623
+ L.value = r, R.value === e && (R.value = r[t]?.id ?? r[t - 1]?.id ?? null);
624
+ }, be = (e) => {
625
+ let t = L.value.filter((t) => t.id !== e && z(t));
626
+ if (t.length > 0 && !f(`Close ${L.value.length - 1 - t.length} other tabs? ${t.length} unsaved tab(s) will be kept open.`)) return;
619
627
  let n = new Set([e, ...t.map((e) => e.id)]);
620
- I.value = I.value.filter((e) => n.has(e.id)), L.value = e;
621
- }, Y = (e) => {
622
- let t = I.value.findIndex((t) => t.id === e);
628
+ L.value = L.value.filter((e) => n.has(e.id)), R.value = e;
629
+ }, xe = (e) => {
630
+ let t = L.value.findIndex((t) => t.id === e);
623
631
  if (t < 0) return;
624
- let n = I.value.slice(t + 1), r = n.filter(R);
625
- r.length > 0 && !f(`Close ${n.length} tab(s)? ${r.length} have unsaved changes.`) || (I.value = I.value.slice(0, t + 1), L.value && !I.value.some((e) => e.id === L.value) && (L.value = e));
626
- }, ye = () => {
627
- let e = I.value.filter(R);
628
- e.length > 0 && !f(`Close all ${I.value.length} tabs? ${e.length} have unsaved changes.`) || (I.value = [], L.value = null);
629
- }, be = (e, n) => {
630
- let r = new Set(j.value), i = B(e)?.parentId ?? null;
631
- for (; i;) r.add(i), i = B(i)?.parentId ?? null;
632
- j.value = r, t(() => {
633
- M.value = e, n?.(e);
632
+ let n = L.value.slice(t + 1), r = n.filter(z);
633
+ r.length > 0 && !f(`Close ${n.length} tab(s)? ${r.length} have unsaved changes.`) || (L.value = L.value.slice(0, t + 1), R.value && !L.value.some((e) => e.id === R.value) && (R.value = e));
634
+ }, Se = () => {
635
+ let e = L.value.filter(z);
636
+ e.length > 0 && !f(`Close all ${L.value.length} tabs? ${e.length} have unsaved changes.`) || (L.value = [], R.value = null);
637
+ }, Ce = (e, n) => {
638
+ let r = new Set(M.value), i = V(e)?.parentId ?? null;
639
+ for (; i;) r.add(i), i = V(i)?.parentId ?? null;
640
+ M.value = r, t(() => {
641
+ N.value = e, n?.(e);
634
642
  });
635
643
  };
636
644
  function X(e) {
637
- let t = [], n = B(e);
638
- for (; n;) t.unshift(n.name), n = n.parentId ? B(n.parentId) : null;
645
+ let t = [], n = V(e);
646
+ for (; n;) t.unshift(n.name), n = n.parentId ? V(n.parentId) : null;
639
647
  return t;
640
648
  }
641
- let xe = e(() => L.value ? X(L.value) : []);
642
- o(M, (e) => {
649
+ let we = e(() => R.value ? X(R.value) : []);
650
+ o(N, (e) => {
643
651
  if (!e) return;
644
- let t = B(e);
645
- t && t.kind === "file" && q(t, { pinned: !1 });
652
+ let t = V(e);
653
+ t && t.kind === "file" && J(t, { pinned: !1 });
646
654
  });
647
- let Se = O ? async (e) => {
655
+ let Te = k ? async (e) => {
648
656
  try {
649
- b(await c.loadChildren(e.id)), k.value = new Set(k.value).add(e.id);
657
+ b(await c.loadChildren(e.id)), A.value = new Set(A.value).add(e.id);
650
658
  } catch (t) {
651
659
  throw p("loadChildren", t, { id: e.id }), t;
652
660
  }
@@ -655,9 +663,9 @@ function g(s) {
655
663
  y.value = !Z;
656
664
  try {
657
665
  let e = await c.loadTree();
658
- if (x(e), !Z && (Z = !0, s.initialExpandedIds === void 0 && !O)) {
666
+ if (x(e), !Z && (Z = !0, s.initialExpandedIds === void 0 && !k)) {
659
667
  let t = e.filter((e) => e.parentId === null && e.kind === "folder").map((e) => e.id);
660
- t.length > 0 && (j.value = new Set([...j.value, ...t]));
668
+ t.length > 0 && (M.value = new Set([...M.value, ...t]));
661
669
  }
662
670
  } catch (e) {
663
671
  p("loadTree", e, {});
@@ -665,18 +673,18 @@ function g(s) {
665
673
  y.value = !1;
666
674
  }
667
675
  }
668
- }, Ce = async (e) => {
676
+ }, Ee = async (e) => {
669
677
  if (!_) {
670
678
  if (e == null) return Q();
671
- if (O) {
672
- F(N, e, !0);
679
+ if (k) {
680
+ I(P, e, !0);
673
681
  try {
674
682
  let t = await c.loadChildren(e);
675
- m.value = [...m.value.filter((t) => t.parentId !== e), ...t], k.value = new Set(k.value).add(e);
683
+ m.value = [...m.value.filter((t) => t.parentId !== e), ...t], A.value = new Set(A.value).add(e);
676
684
  } catch (t) {
677
685
  p("loadChildren", t, { id: e });
678
686
  } finally {
679
- F(N, e, !1);
687
+ I(P, e, !1);
680
688
  }
681
689
  return;
682
690
  }
@@ -685,7 +693,7 @@ function g(s) {
685
693
  };
686
694
  Q();
687
695
  let $ = (e) => {
688
- z.value && (e.preventDefault(), e.returnValue = "");
696
+ B.value && (e.preventDefault(), e.returnValue = "");
689
697
  };
690
698
  return window.addEventListener("beforeunload", $), n(() => {
691
699
  window.removeEventListener("beforeunload", $);
@@ -693,47 +701,48 @@ function g(s) {
693
701
  U.clear();
694
702
  }), {
695
703
  assets: v,
696
- rootNodes: ee,
697
- selectedId: M,
704
+ rootNodes: O,
705
+ selectedId: N,
698
706
  selectedAsset: oe,
699
- expanded: j,
707
+ expanded: M,
700
708
  getId: te,
701
709
  getChildren: ne,
702
710
  getLabel: re,
703
- isExpandable: ie,
704
- loadChildren: Se,
705
- reorderable: T,
711
+ isExpandable: j,
712
+ loadChildren: Te,
713
+ reorderable: E,
706
714
  loading: y,
707
- loadingNodes: N,
708
- savingNodes: P,
709
- openTabs: I,
710
- activeId: L,
715
+ loadingNodes: P,
716
+ savingNodes: F,
717
+ openTabs: L,
718
+ activeId: R,
711
719
  activeTab: ae,
712
- anyDirty: z,
713
- isDirty: R,
714
- setContent: me,
715
- addFolder: G,
716
- addFiles: ce,
717
- deleteNode: le,
718
- moveNode: ue,
719
- rename: de,
720
- refresh: Ce,
721
- openFile: q,
722
- activateNode: he,
723
- saveTab: J,
724
- saveActive: ge,
725
- closeTab: _e,
726
- closeOthers: ve,
727
- closeToRight: Y,
728
- closeAll: ye,
729
- pinTab: K,
730
- unpinTab: pe,
731
- reorderTab: fe,
732
- revealInTree: be,
733
- breadcrumbPath: xe,
720
+ anyDirty: B,
721
+ isDirty: z,
722
+ setContent: ge,
723
+ addFolder: ue,
724
+ addFiles: de,
725
+ deleteNode: fe,
726
+ move: G,
727
+ moveNode: pe,
728
+ rename: K,
729
+ refresh: Ee,
730
+ openFile: J,
731
+ activateNode: _e,
732
+ saveTab: Y,
733
+ saveActive: ve,
734
+ closeTab: ye,
735
+ closeOthers: be,
736
+ closeToRight: xe,
737
+ closeAll: Se,
738
+ pinTab: q,
739
+ unpinTab: he,
740
+ reorderTab: me,
741
+ revealInTree: Ce,
742
+ breadcrumbPath: we,
734
743
  pathOf: X,
735
- fileMeta: V,
736
- describeAsset: H
744
+ fileMeta: H,
745
+ describeAsset: ce
737
746
  };
738
747
  }
739
748
  //#endregion
@@ -100,7 +100,15 @@ export interface UseFileExplorerReturn<T = unknown> {
100
100
  addFolder: (parentId: string | null, name: string) => Promise<Asset<T> | null>;
101
101
  addFiles: (parentId: string | null, files: FileList | readonly File[]) => Promise<void>;
102
102
  deleteNode: (asset: Asset<T>) => Promise<void>;
103
- /** Translates CoarTree's drop event → `store.move(id, parentId, position?)`. */
103
+ /**
104
+ * Programmatic move (optimistic + rollback) for sources that AREN'T a tree
105
+ * drag — a "move to folder" select, a grid card dropped on a folder, undo,
106
+ * etc. `position` (index within `newParentId`'s children) is honored only in
107
+ * `'manual'` sort mode, silently dropped otherwise. `newParentId === null`
108
+ * moves to the root.
109
+ */
110
+ move: (id: string, newParentId: string | null, position?: number) => Promise<void>;
111
+ /** Translates CoarTree's drop event → `move(...)`. */
104
112
  moveNode: (e: CoarTreeNodeMoveEvent<Asset<T>>) => Promise<void>;
105
113
  rename: (id: string, newName: string) => Promise<void>;
106
114
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"use-file-explorer.d.ts","sourceRoot":"","sources":["../src/use-file-explorer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-file-explorer.d.ts","sourceRoot":"","sources":["../src/use-file-explorer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocoar/vue-file-explorer-core",
3
- "version": "2.8.0",
3
+ "version": "2.10.0-beta.2",
4
4
  "description": "VSCode-style file/asset explorer for Vue 3 — composable + types over a pluggable AssetStore<T> backend.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -37,8 +37,8 @@
37
37
  "typecheck": "vue-tsc --noEmit"
38
38
  },
39
39
  "peerDependencies": {
40
- "@cocoar/vue-script-editor": "2.8.0",
41
- "@cocoar/vue-ui": "2.8.0",
40
+ "@cocoar/vue-script-editor": "2.10.0-beta.2",
41
+ "@cocoar/vue-ui": "2.10.0-beta.2",
42
42
  "vue": "^3.5.0"
43
43
  },
44
44
  "peerDependenciesMeta": {