@epam/ai-dial-chat-hooks 1.2.7 → 1.2.9

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.
Files changed (62) hide show
  1. package/api-error/api-error.js +2 -2
  2. package/api-transport/create-unauthorized-middleware.js +4 -1
  3. package/attachment/useAttachmentAction/useAttachmentAction.js +5 -8
  4. package/catalog/map-entity-details-to-catalog.js +1 -1
  5. package/catalog/map-skill-to-catalog-item.js +1 -5
  6. package/catalog/useFavoriteEntitiesState/useFavoriteEntitiesState.js +1 -1
  7. package/catalog/usePublishFolders/usePublishFolders.js +1 -1
  8. package/catalog/useSkillItemDetails.js +3 -3
  9. package/conversation/conversation-transfer/import-conversation.js +7 -8
  10. package/conversation/conversation-transfer/progress.js +1 -1
  11. package/conversation/conversation-transfer/zip-export.js +1 -7
  12. package/conversation/conversation-transfer/zip-import.js +1 -1
  13. package/conversation/create-chat-stream-api.js +1 -5
  14. package/conversation/useAttachmentUpload/useAttachmentUpload.js +4 -1
  15. package/conversation/useConversationExport/useConversationExport.js +11 -12
  16. package/conversation/useConversationHandlers/message-utils.js +2 -2
  17. package/conversation/useConversationHandlers/useConversationHandlers.js +2 -2
  18. package/conversation/useConversationImport/useConversationImport.js +24 -24
  19. package/conversation/useConversationScroll/useConversationScroll.js +2 -6
  20. package/conversation/useConversationStream/conversation-path.js +2 -2
  21. package/conversation/useConversationStream/frame-scheduler.js +17 -17
  22. package/conversation/useConversationStream/generation-resume.js +11 -21
  23. package/conversation/useConversationStream/useConversationStream.js +39 -60
  24. package/conversation/useMessageSelectionReply/useMessageSelectionReply.js +4 -10
  25. package/conversation-overlay.js +1 -2
  26. package/conversation-sources.js +1 -2
  27. package/file-manager-canvas.js +1 -2
  28. package/files/attachment-types.js +1 -1
  29. package/files/create-upload-file-with-progress.js +5 -12
  30. package/files/dial-file-manager-mapping.util.js +3 -3
  31. package/files/dial-file-to-attachment.js +3 -3
  32. package/files/source-content.js +1 -1
  33. package/files/useDialFileListing/useDialFileListing.js +45 -58
  34. package/files/useDialFileManagerSections/useDialFileManagerSections.js +53 -69
  35. package/files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.js +1 -1
  36. package/files/useDialFileMetadata/useDialFileMetadata.js +3 -3
  37. package/files/useDialFileUploadBatch/useDialFileUploadBatch.js +1 -1
  38. package/files/useFileAttachmentPicker/useFileAttachmentPicker.js +2 -2
  39. package/mcp-apps/useMcpAppTools/useMcpAppTools.js +3 -6
  40. package/oauth/authorize-url.js +1 -1
  41. package/oauth/handshake.js +3 -10
  42. package/oauth/useOAuthCallbackCompletion/useOAuthCallbackCompletion.js +2 -5
  43. package/oauth/useToolsetLogin/useToolsetLogin.js +2 -1
  44. package/package.json +16 -16
  45. package/scheduled-task/scheduled-task-description.js +1 -1
  46. package/scheduled-task/scheduled-task-trigger.js +1 -1
  47. package/scheduled-task/use-scheduled-task-runs.js +6 -18
  48. package/scheduled-task/use-scheduled-tasks.js +1 -1
  49. package/scroll-anchoring.js +1 -2
  50. package/shared/application-schema.js +3 -3
  51. package/shared/cron-day-of-month.js +10 -10
  52. package/shared/locale.js +2 -2
  53. package/skill/skill-file-batch-validation.js +18 -17
  54. package/skill/skill-types.js +1 -1
  55. package/skill/skill.js +12 -15
  56. package/skill/useSkillArchiveImport/useSkillArchiveImport.js +1 -7
  57. package/skill/useSkillEditorSubmit.js +1 -5
  58. package/skills-state.js +1 -2
  59. package/source-content.js +1 -2
  60. package/usage/useUsageLimitBanner/useUsageLimitBanner.js +1 -1
  61. package/usage/useUsageLimitBannerDismissal/useUsageLimitBannerDismissal.js +1 -1
  62. package/usePageFileDrag/usePageFileDrag.js +3 -3
@@ -40,7 +40,7 @@ var se = 2e4, ce = 401, le = (e, t, n) => e instanceof i ? n : e instanceof r ?
40
40
  }, []), he = f(async () => {
41
41
  if (!o) return;
42
42
  let e = z.current.get(s(o));
43
- if (!(!e || !e.isCurrent() || H.current.has(e))) {
43
+ if (e && e.isCurrent() && !H.current.has(e)) {
44
44
  H.current.add(e), U(new Set(H.current));
45
45
  try {
46
46
  await e.retry();
@@ -110,7 +110,7 @@ var se = 2e4, ce = 401, le = (e, t, n) => e instanceof i ? n : e instanceof r ?
110
110
  }, j = () => {
111
111
  if (w()) return;
112
112
  let e = I.current.get(h);
113
- !e || e.generationId !== m || (e.message = {
113
+ e && e.generationId === m && (e.message = {
114
114
  ...e.message,
115
115
  streamErrorMessage: T
116
116
  }, O.current?.(new i()), q(h) && v((t) => {
@@ -120,11 +120,8 @@ var se = 2e4, ce = 401, le = (e, t, n) => e instanceof i ? n : e instanceof r ?
120
120
  }));
121
121
  }, M = I.current.get(h), N = () => R.current && !w() && I.current.get(h) === M, z = async () => {
122
122
  if (N()) {
123
- if (!q(h)) {
124
- M && I.current.delete(h);
125
- return;
126
- }
127
- try {
123
+ if (!q(h)) M && I.current.delete(h);
124
+ else try {
128
125
  let n = await b.getConversation(e(t));
129
126
  if (!N()) return;
130
127
  if (W(h), !q(h)) {
@@ -153,57 +150,39 @@ var se = 2e4, ce = 401, le = (e, t, n) => e instanceof i ? n : e instanceof r ?
153
150
  let n = c([t.message], 0, e);
154
151
  n && (t.message = n[0]);
155
152
  }
156
- if (q(h)) {
157
- if (fe.current && t?.generationId === m) {
158
- k.schedule(h, () => {
159
- let e = I.current.get(h);
160
- if (w() || !q(h) || e?.generationId !== m) return;
161
- let t = { ...e };
162
- v((e) => {
163
- if (!e) return e;
164
- let n = l(e, t);
165
- return y.current = n, n;
166
- });
167
- });
168
- return;
169
- }
170
- v((t) => {
171
- if (!t) return t;
172
- let n = I.current.get(h), r;
173
- if (n?.generationId === m) r = l(t, n);
174
- else {
175
- let n = c(t.messages, o, e);
176
- if (!n) return t;
177
- r = {
178
- ...t,
179
- messages: n
180
- };
181
- }
182
- return y.current = r, r;
153
+ q(h) && (fe.current && t?.generationId === m ? k.schedule(h, () => {
154
+ let e = I.current.get(h);
155
+ if (w() || !q(h) || e?.generationId !== m) return;
156
+ let t = { ...e };
157
+ v((e) => {
158
+ if (!e) return e;
159
+ let n = l(e, t);
160
+ return y.current = n, n;
183
161
  });
184
- }
162
+ }) : v((t) => {
163
+ if (!t) return t;
164
+ let n = I.current.get(h), r;
165
+ if (n?.generationId === m) r = l(t, n);
166
+ else {
167
+ let n = c(t.messages, o, e);
168
+ if (!n) return t;
169
+ r = {
170
+ ...t,
171
+ messages: n
172
+ };
173
+ }
174
+ return y.current = r, r;
175
+ }));
185
176
  },
186
177
  onComplete: async () => {
187
178
  k.flush(h), A(), L.current.has(m) ? L.current.delete(m) : w() || C?.notifyGenerationEnd?.(), await z();
188
179
  },
189
180
  onError: (e) => {
190
- if (k.flush(h), O.current?.(e), e instanceof a && !w()) {
191
- he(e);
192
- return;
193
- }
194
- if (e instanceof r && oe.resumeOnConflict && !w()) {
195
- K(e);
196
- return;
197
- }
198
- V(e);
181
+ k.flush(h), O.current?.(e), e instanceof a && !w() ? he(e) : e instanceof r && oe.resumeOnConflict && !w() ? K(e) : V(e);
199
182
  }
200
183
  }, V = (e) => {
201
184
  let t = I.current.get(h), n = t?.generationId === m ? t : void 0;
202
- if (n && !(e instanceof i) && I.current.delete(h), A(), n && b.saveConversation && e instanceof i && e.status === ce) {
203
- me(e, n, b.saveConversation.bind(b));
204
- return;
205
- }
206
- H(e, n);
185
+ n && !(e instanceof i) && I.current.delete(h), A(), n && b.saveConversation && e instanceof i && e.status === ce ? me(e, n, b.saveConversation.bind(b)) : H(e, n);
207
186
  }, H = (e, t) => {
208
187
  if (t && e instanceof i && (t.message = {
209
188
  ...t.message,
@@ -239,9 +218,13 @@ var se = 2e4, ce = 401, le = (e, t, n) => e instanceof i ? n : e instanceof r ?
239
218
  }, U = () => {
240
219
  A(), L.current.has(m) ? L.current.delete(m) : w() || C?.notifyGenerationEnd?.();
241
220
  }, he = async (n) => {
242
- F.current.add(h), ge(await te(() => b.getConversation(e(t)), w), n, !1);
221
+ F.current.add(h);
222
+ let r = await te(() => b.getConversation(e(t)), w);
223
+ ge(r, n, !1);
243
224
  }, K = async (n) => {
244
- P.current.get(h) === m && X(h, !1), F.current.add(h), ge(await te(() => b.getConversation(e(t)), w, (e) => e.messages.length === o && e.messages.at(-1)?.role === ie.User), n, !0);
225
+ P.current.get(h) === m && X(h, !1), F.current.add(h);
226
+ let r = await te(() => b.getConversation(e(t)), w, (e) => e.messages.length === o && e.messages.at(-1)?.role === ie.User);
227
+ ge(r, n, !0);
245
228
  }, ge = (e, n, r) => {
246
229
  if (w()) {
247
230
  A();
@@ -253,15 +236,11 @@ var se = 2e4, ce = 401, le = (e, t, n) => e instanceof i ? n : e instanceof r ?
253
236
  return;
254
237
  }
255
238
  let c = I.current.get(h), l = c?.generationId === m ? c : void 0;
256
- if (d(e)) {
257
- Q(t, e, {
258
- seedMessage: a ? l?.message : void 0,
259
- skipDedupe: !0,
260
- onSettled: U
261
- });
262
- return;
263
- }
264
- F.current.delete(h), l && I.current.delete(h), q(h) && (v(e), y.current = e), U();
239
+ d(e) ? Q(t, e, {
240
+ seedMessage: a ? l?.message : void 0,
241
+ skipDedupe: !0,
242
+ onSettled: U
243
+ }) : (F.current.delete(h), l && I.current.delete(h), q(h) && (v(e), y.current = e), U());
265
244
  };
266
245
  (async () => {
267
246
  try {
@@ -112,16 +112,10 @@ var o = "button,input,textarea,select,iframe,[role=\"button\"],[contenteditable=
112
112
  "End",
113
113
  "PageUp",
114
114
  "PageDown"
115
- ].includes(e.key) || (e.ctrlKey || e.metaKey) && e.key.toLowerCase() === "a")) {
116
- r = !0, O(), _.current = null;
117
- return;
118
- }
119
- if (g.current) {
120
- if (e.key === "Escape") {
121
- O();
122
- return;
123
- }
124
- if (e.key === "Tab" && !e.shiftKey && !h.current?.contains(document.activeElement)) {
115
+ ].includes(e.key) || (e.ctrlKey || e.metaKey) && e.key.toLowerCase() === "a")) r = !0, O(), _.current = null;
116
+ else if (g.current) {
117
+ if (e.key === "Escape") O();
118
+ else if (e.key === "Tab" && !e.shiftKey && !h.current?.contains(document.activeElement)) {
125
119
  let t = h.current?.querySelector("button");
126
120
  t && (e.preventDefault(), t.focus());
127
121
  }
@@ -1,2 +1 @@
1
- import { toOverlayMessages as e } from "./conversation/overlay-messages.js";
2
- export { e as toOverlayMessages };
1
+ export { toOverlayMessages } from "./conversation/overlay-messages.js";
@@ -1,2 +1 @@
1
- import { useConversationSources as e } from "./conversation-sources/useConversationSources/useConversationSources.js";
2
- export { e as useConversationSources };
1
+ export { useConversationSources } from "./conversation-sources/useConversationSources/useConversationSources.js";
@@ -1,2 +1 @@
1
- import { annotationToOoxmlCanvasContent as e, annotationToPdfCanvasContent as t, clearAttachmentCache as n, hasAttachmentTextSource as r, referenceAttachmentToPdfCanvasContent as i, resolveCodeCanvasContent as a, resolveGroupedVisualizerCanvasContent as o, resolveHtmlCanvasContent as s, resolveImageCanvasContent as c, resolveJsonCanvasContent as l, resolveMarkdownCanvasContent as u, resolveOoxmlCanvasContent as d, resolvePdfCanvasContent as f, resolveTextCanvasContent as p, resolveVisualizerCanvasContent as m } from "./files/attachment-canvas.js";
2
- export { e as annotationToOoxmlCanvasContent, t as annotationToPdfCanvasContent, n as clearAttachmentCache, r as hasAttachmentTextSource, i as referenceAttachmentToPdfCanvasContent, a as resolveCodeCanvasContent, o as resolveGroupedVisualizerCanvasContent, s as resolveHtmlCanvasContent, c as resolveImageCanvasContent, l as resolveJsonCanvasContent, u as resolveMarkdownCanvasContent, d as resolveOoxmlCanvasContent, f as resolvePdfCanvasContent, p as resolveTextCanvasContent, m as resolveVisualizerCanvasContent };
1
+ export { annotationToOoxmlCanvasContent, annotationToPdfCanvasContent, clearAttachmentCache, hasAttachmentTextSource, referenceAttachmentToPdfCanvasContent, resolveCodeCanvasContent, resolveGroupedVisualizerCanvasContent, resolveHtmlCanvasContent, resolveImageCanvasContent, resolveJsonCanvasContent, resolveMarkdownCanvasContent, resolveOoxmlCanvasContent, resolvePdfCanvasContent, resolveTextCanvasContent, resolveVisualizerCanvasContent } from "./files/attachment-canvas.js";
@@ -5,7 +5,7 @@ var n = "*/*", r = (e) => e.startsWith(".") || e.includes("/"), i = (t) => {
5
5
  if (t != null) return t.map((t) => t === "*" ? n : t.startsWith(".") ? t : e(t)).filter(r);
6
6
  }, a = (e) => {
7
7
  let t = i(e);
8
- if (!(t == null || t.length === 0) && !t.some((e) => e === n)) return t.join(",");
8
+ if (t != null && t.length !== 0 && !t.some((e) => e === n)) return t.join(",");
9
9
  }, o = (n) => n.map((n) => {
10
10
  if (n.endsWith("/*")) return n;
11
11
  let r = e(n), i = t(r);
@@ -11,19 +11,12 @@ var e = (e) => {
11
11
  !s || !e.lengthComputable || e.total <= 0 || s(Math.min(100, Math.round(e.loaded / e.total * 100)));
12
12
  }), d.addEventListener("load", () => {
13
13
  let n = d.getResponseHeader("x-csrf-token");
14
- if (n && e.setCsrfToken(n), d.status >= 200 && d.status < 300) {
15
- try {
16
- l(JSON.parse(d.responseText));
17
- } catch {
18
- u(/* @__PURE__ */ Error("Upload response was not valid JSON"));
19
- }
20
- return;
21
- }
22
- if (d.status === 401) {
23
- e.notifyUnauthorized(t), u(e.createUnauthorizedError(t));
24
- return;
14
+ if (n && e.setCsrfToken(n), d.status >= 200 && d.status < 300) try {
15
+ l(JSON.parse(d.responseText));
16
+ } catch {
17
+ u(/* @__PURE__ */ Error("Upload response was not valid JSON"));
25
18
  }
26
- u(/* @__PURE__ */ Error(`Upload failed with status ${d.status}`));
19
+ else d.status === 401 ? (e.notifyUnauthorized(t), u(e.createUnauthorizedError(t))) : u(/* @__PURE__ */ Error(`Upload failed with status ${d.status}`));
27
20
  }), d.addEventListener("error", () => {
28
21
  u(/* @__PURE__ */ Error("Upload failed"));
29
22
  }), d.addEventListener("abort", () => {
@@ -111,13 +111,13 @@ var o = (t) => {
111
111
  });
112
112
  return { items: s };
113
113
  }, p = (e, i, o) => {
114
- let s = e.nodeType === r.Folder, c = e.name, l = e.bucket ?? i, u = n(e.url ?? e.path ?? "", l).replace(/\/$/, ""), d = u.lastIndexOf("/"), f = t(d > 0 ? u.slice(0, d) : "", o, !1), p = s ? `${f}/${c}/` : `${f}/${c}`;
114
+ let s = e.nodeType === r.Folder, c = e.name, l = e.bucket ?? i, u = e.url ?? e.path ?? "", d = n(u, l).replace(/\/$/, ""), f = d.lastIndexOf("/"), p = f > 0 ? d.slice(0, f) : "", m = t(p, o, !1), h = s ? `${m}/${c}/` : `${m}/${c}`;
115
115
  return {
116
116
  id: e.path,
117
117
  name: c,
118
- path: p,
118
+ path: h,
119
119
  url: e.url,
120
- parentPath: f,
120
+ parentPath: m,
121
121
  nodeType: s ? a.FOLDER : a.ITEM,
122
122
  folderId: e.folderId,
123
123
  bucket: l,
@@ -22,15 +22,15 @@ var a = (e, n) => {
22
22
  ...u == null ? {} : { previewUrl: u }
23
23
  };
24
24
  }, s = (e, t, n) => e.map((e) => o(e, t, n)).filter((e) => e != null), c = (t) => {
25
- let i = e(t.replace(/\/$/, "").split("/").filter(Boolean).pop() ?? "");
25
+ let i = t.replace(/\/$/, "").split("/").filter(Boolean).pop() ?? "", a = e(i);
26
26
  return {
27
27
  id: t,
28
- name: i,
28
+ name: a,
29
29
  contentType: "application/octet-stream",
30
30
  type: n.File,
31
31
  status: r.Idle,
32
32
  url: t,
33
- file: new File([], i)
33
+ file: new File([], a)
34
34
  };
35
35
  };
36
36
  //#endregion
@@ -4,7 +4,7 @@ var e = {
4
4
  xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
5
5
  pptx: "application/vnd.openxmlformats-officedocument.presentationml.presentation",
6
6
  csv: "text/csv"
7
- }, t = new Set(/* @__PURE__ */ "txt.md.markdown.json.jsonl.ndjson.xml.csv.tsv.yaml.yml.toml.ini.conf.cfg.css.scss.sass.less.js.jsx.ts.tsx.mjs.cjs.mts.cts.py.rb.go.rs.java.kt.swift.c.h.cpp.cs.sh.bash.zsh.fish.ps1.log.env.gitignore.dockerfile.makefile.sql".split(".")), n = new Set(["html", "htm"]), r = "pdf", i = "application/pdf", a = (e) => e.split(/[?#]/)[0], o = (e) => {
7
+ }, t = /* @__PURE__ */ new Set(/* @__PURE__ */ "txt.md.markdown.json.jsonl.ndjson.xml.csv.tsv.yaml.yml.toml.ini.conf.cfg.css.scss.sass.less.js.jsx.ts.tsx.mjs.cjs.mts.cts.py.rb.go.rs.java.kt.swift.c.h.cpp.cs.sh.bash.zsh.fish.ps1.log.env.gitignore.dockerfile.makefile.sql".split(".")), n = /* @__PURE__ */ new Set(["html", "htm"]), r = "pdf", i = "application/pdf", a = (e) => e.split(/[?#]/)[0], o = (e) => {
8
8
  let t = e.lastIndexOf(".");
9
9
  return t === -1 ? "" : e.slice(t + 1).toLowerCase();
10
10
  }, s = (e) => {
@@ -36,13 +36,7 @@ var _ = ({ filesApi: _, bucket: v, rootLabel: y, activeTab: b, onNotification: x
36
36
  dialCorePath: e.path
37
37
  }]))));
38
38
  }).catch((n) => {
39
- if (!t) {
40
- if (C !== "" && e(n) === 404) {
41
- w(ie(C));
42
- return;
43
- }
44
- j("dialFileManager.error");
45
- }
39
+ t || (C !== "" && e(n) === 404 ? w(ie(C)) : j("dialFileManager.error"));
46
40
  }).finally(() => {
47
41
  t || A(!1);
48
42
  }), () => {
@@ -63,7 +57,10 @@ var _ = ({ filesApi: _, bucket: v, rootLabel: y, activeTab: b, onNotification: x
63
57
  }
64
58
  let e = !1;
65
59
  return _.listSharedByMe(v).then((t) => {
66
- e || I(new Set(t.items.map((e) => n(r(e.path, v), y, e.nodeType === m.Folder))));
60
+ e || I(new Set(t.items.map((e) => {
61
+ let t = r(e.path, v);
62
+ return n(t, y, e.nodeType === m.Folder);
63
+ })));
67
64
  }).catch(() => {
68
65
  e || I(/* @__PURE__ */ new Set());
69
66
  }), () => {
@@ -155,38 +152,32 @@ var _ = ({ filesApi: _, bucket: v, rootLabel: y, activeTab: b, onNotification: x
155
152
  }, [y]), be = l((e) => {
156
153
  if (!S) return;
157
154
  let n = e == null ? "" : o(e, y), r = e ?? `/${y}`;
158
- if (J((e) => {
155
+ J((e) => {
159
156
  if (e.has(r)) return e;
160
157
  let t = new Set(e);
161
158
  return t.add(r), t;
162
- }), !D.current.has(n)) {
163
- if (H.current.has(n)) {
164
- K((e) => {
159
+ }), !D.current.has(n) && (H.current.has(n) ? K((e) => {
160
+ let t = new Set(e);
161
+ return t.add(r), t;
162
+ }) : (H.current.add(n), K((e) => {
163
+ let t = new Set(e);
164
+ return t.add(r), t;
165
+ }), (async () => {
166
+ try {
167
+ let { items: e, permissions: t } = await s(_, b, v, n, L.current);
168
+ E((t) => new Map(t).set(n, e)), t != null && k((e) => new Map(e).set(n, t)), U.current.delete(n);
169
+ } catch {
170
+ x?.({
171
+ variant: h.Error,
172
+ reason: t.FolderLoadFailed
173
+ });
174
+ } finally {
175
+ H.current.delete(n), K((e) => {
165
176
  let t = new Set(e);
166
- return t.add(r), t;
177
+ return t.delete(r), t;
167
178
  });
168
- return;
169
179
  }
170
- H.current.add(n), K((e) => {
171
- let t = new Set(e);
172
- return t.add(r), t;
173
- }), (async () => {
174
- try {
175
- let { items: e, permissions: t } = await s(_, b, v, n, L.current);
176
- E((t) => new Map(t).set(n, e)), t != null && k((e) => new Map(e).set(n, t)), U.current.delete(n);
177
- } catch {
178
- x?.({
179
- variant: h.Error,
180
- reason: t.FolderLoadFailed
181
- });
182
- } finally {
183
- H.current.delete(n), K((e) => {
184
- let t = new Set(e);
185
- return t.delete(r), t;
186
- });
187
- }
188
- })();
189
- }
180
+ })()));
190
181
  }, [
191
182
  b,
192
183
  v,
@@ -195,7 +186,7 @@ var _ = ({ filesApi: _, bucket: v, rootLabel: y, activeTab: b, onNotification: x
195
186
  x,
196
187
  y
197
188
  ]), xe = d(() => {
198
- let e = /* @__PURE__ */ new Set(), t = new Set([...W, ...q]);
189
+ let e = /* @__PURE__ */ new Set(), t = /* @__PURE__ */ new Set([...W, ...q]);
199
190
  for (let n of t) {
200
191
  let t = o(n, y);
201
192
  T.has(t) && e.add(n);
@@ -242,32 +233,28 @@ var _ = ({ filesApi: _, bucket: v, rootLabel: y, activeTab: b, onNotification: x
242
233
  ]), Ce = l(() => {
243
234
  B.current != null && (clearTimeout(B.current), B.current = null), V.current?.(), V.current = null, z(null), R(!1);
244
235
  }, []), we = l((e, t) => {
245
- if (S) {
246
- if (B.current != null && (clearTimeout(B.current), B.current = null), V.current?.(), V.current = null, !t.trim()) {
247
- z(null), R(!1);
236
+ S && (B.current != null && (clearTimeout(B.current), B.current = null), V.current?.(), V.current = null, t.trim() ? B.current = setTimeout(() => {
237
+ if (B.current = null, b === g.Shared && C === "") {
238
+ V.current?.(), V.current = null, R(!0);
239
+ let e = T.get("") ?? [];
240
+ z(e.map((e) => c(e, e.bucket ?? v, y))), R(!1);
248
241
  return;
249
242
  }
250
- B.current = setTimeout(() => {
251
- if (B.current = null, b === g.Shared && C === "") {
252
- V.current?.(), V.current = null, R(!0), z((T.get("") ?? []).map((e) => c(e, e.bucket ?? v, y))), R(!1);
253
- return;
243
+ let e = !1;
244
+ V.current = () => {
245
+ e = !0;
246
+ }, R(!0), (async () => {
247
+ try {
248
+ let { items: t } = await te(_, b, v, C, L.current);
249
+ if (e) return;
250
+ z(t.map((e) => c(e, e.bucket ?? v, y)));
251
+ } catch {
252
+ e || z([]);
253
+ } finally {
254
+ e || R(!1);
254
255
  }
255
- let e = !1;
256
- V.current = () => {
257
- e = !0;
258
- }, R(!0), (async () => {
259
- try {
260
- let { items: t } = await te(_, b, v, C, L.current);
261
- if (e) return;
262
- z(t.map((e) => c(e, e.bucket ?? v, y)));
263
- } catch {
264
- e || z([]);
265
- } finally {
266
- e || R(!1);
267
- }
268
- })();
269
- }, 300);
270
- }
256
+ })();
257
+ }, 300) : (z(null), R(!1)));
271
258
  }, [
272
259
  b,
273
260
  v,
@@ -16,139 +16,123 @@ var l = ({ activeTab: l, sections: u, ...d }) => {
16
16
  isActive: t != null && (p || l === e),
17
17
  sessionKey: l
18
18
  };
19
- }, h = a(m(c.MyFiles)), g = a(m(c.Shared)), ie = a(m(c.Organization)), _ = (e) => {
19
+ }, h = a(m(c.MyFiles)), ie = a(m(c.Shared)), ae = a(m(c.Organization)), g = (e) => {
20
20
  switch (e) {
21
21
  case c.MyFiles: return h;
22
- case c.Shared: return g;
23
- case c.Organization: return ie;
22
+ case c.Shared: return ie;
23
+ case c.Organization: return ae;
24
24
  default: throw Error(`Not a file-manager section tab: ${e}`);
25
25
  }
26
- }, [v, y] = o(null), [b, x] = o(null), [S, C] = o(l);
27
- S !== l && (C(l), y(null), x(null));
28
- let w = (e) => f.some((t) => t.tab === e), ae = f[0]?.tab ?? c.MyFiles, T = v != null && w(v) ? v : ae, oe = b != null && w(b) ? b : T, E = (e) => e == null ? void 0 : r(e, f)?.tab, D = (e) => _(E(e) ?? T), O = (e, t) => {
26
+ }, [_, v] = o(null), [y, b] = o(null), [x, S] = o(l);
27
+ x !== l && (S(l), v(null), b(null));
28
+ let C = (e) => f.some((t) => t.tab === e), oe = f[0]?.tab ?? c.MyFiles, w = _ != null && C(_) ? _ : oe, T = y != null && C(y) ? y : w, E = (e) => e == null ? void 0 : r(e, f)?.tab, D = (e) => g(E(e) ?? w), O = (e, t) => {
29
29
  let n = /* @__PURE__ */ new Map();
30
30
  return e.forEach((e) => {
31
- let r = E(t(e)) ?? T;
31
+ let r = E(t(e)) ?? w;
32
32
  n.set(r, [...n.get(r) ?? [], e]);
33
33
  }), [...n];
34
- }, { onNotification: k } = d, A = re(/* @__PURE__ */ new Set());
34
+ }, { onNotification: k } = d, A = re(/* @__PURE__ */ new Set()), j = f.map(({ tab: e }) => `${e}:${g(e).error ?? ""}`).join("|");
35
35
  te(() => {
36
36
  let t = A.current;
37
- if (!p) {
38
- t.clear();
39
- return;
40
- }
41
- f.forEach(({ tab: n }) => {
42
- if (_(n).error == null) {
43
- t.delete(n);
44
- return;
45
- }
46
- t.has(n) || (t.add(n), n !== T && k?.({
37
+ p ? f.forEach(({ tab: n }) => {
38
+ g(n).error == null ? t.delete(n) : t.has(n) || (t.add(n), n !== w && k?.({
47
39
  variant: s.Error,
48
40
  reason: e.FolderLoadFailed
49
41
  }));
50
- });
42
+ }) : t.clear();
51
43
  }, [
52
- f.map(({ tab: e }) => `${e}:${_(e).error ?? ""}`).join("|"),
44
+ j,
53
45
  p,
54
- T,
46
+ w,
55
47
  k
56
48
  ]);
57
- let j = () => {
49
+ let M = () => {
58
50
  k?.({
59
51
  variant: s.Warning,
60
52
  reason: e.CrossSectionTransferUnsupported
61
53
  });
62
- }, M = (e, t) => {
54
+ }, N = (e, t) => {
63
55
  let n = new Set(e.map(E));
64
56
  if (n.size !== 1) return;
65
57
  let [r] = n;
66
58
  if (r != null) return (t ? E(t) : r) === r ? r : void 0;
67
- }, N = (e) => {
59
+ }, P = (e) => {
68
60
  if (e == null) {
69
- _(T).onPathChange();
61
+ g(w).onPathChange();
70
62
  return;
71
63
  }
72
64
  let t = E(e);
73
- t != null && (y(t), _(t).onPathChange(e));
74
- }, P = (e) => {
65
+ t != null && (v(t), g(t).onPathChange(e));
66
+ }, F = (e) => {
75
67
  f.forEach(({ tab: t }) => {
76
- let r = _(t), i = new Set([...e].filter((e) => E(e) === t));
68
+ let r = g(t), i = new Set([...e].filter((e) => E(e) === t));
77
69
  n(i, r.expandedPaths) || r.onExpandedPathsChange(i);
78
70
  });
79
- }, F = (e) => D(e).onFolderPopupPathChange(e), I = (e, t) => D(t).onUploadFiles(e, t), L = (e, t, n) => D(n).onUploadArchive(e, t, n), R = (e, t, n) => D(n).onValidateUpload(e, t, n), z = (e, t, n) => D(t).onCreateFolder(e, t, n), B = (e, t) => D(t.path).onCreateFolderValidate(e, t), V = (e) => O(e, (e) => e.path).forEach(([e, t]) => _(e).onDownloadFiles(t)), H = (e, t) => {
71
+ }, I = (e) => D(e).onFolderPopupPathChange(e), L = (e, t) => D(t).onUploadFiles(e, t), R = (e, t, n) => D(n).onUploadArchive(e, t, n), z = (e, t, n) => D(n).onValidateUpload(e, t, n), B = (e, t, n) => D(t).onCreateFolder(e, t, n), V = (e, t) => D(t.path).onCreateFolderValidate(e, t), H = (e) => O(e, (e) => e.path).forEach(([e, t]) => g(e).onDownloadFiles(t)), U = (e, t) => {
80
72
  let n = E(t);
81
- O(e, (e) => e.sourceUrl ?? t).forEach(([e, r]) => _(e).onDeleteFiles(r, e === n ? t : ""));
82
- }, U = (e, t) => D(t.path).onRenameValidate(e, t), W = (e) => O(e, (e) => e.path).forEach(([e, t]) => _(e).onUnshareFiles(t)), G = (e) => O(e, (e) => e.path).forEach(([e, t]) => _(e).onRemoveFilesAccess(t)), K = (e) => {
83
- let t = E(e.path) ?? T;
84
- x(t), _(t).onGetInfo(e);
85
- }, q = (e, t) => {
73
+ O(e, (e) => e.sourceUrl ?? t).forEach(([e, r]) => g(e).onDeleteFiles(r, e === n ? t : ""));
74
+ }, W = (e, t) => D(t.path).onRenameValidate(e, t), G = (e) => O(e, (e) => e.path).forEach(([e, t]) => g(e).onUnshareFiles(t)), K = (e) => O(e, (e) => e.path).forEach(([e, t]) => g(e).onRemoveFilesAccess(t)), q = (e) => {
75
+ let t = E(e.path) ?? w;
76
+ b(t), g(t).onGetInfo(e);
77
+ }, se = (e, t) => {
86
78
  if (e.length === 0) return;
87
- let n = M(e.map((e) => e.sourceUrl), t);
88
- if (n == null) {
89
- j();
90
- return;
91
- }
92
- _(n).onCopyFiles(e, t);
93
- }, se = (e, t, n) => {
79
+ let n = N(e.map((e) => e.sourceUrl), t);
80
+ n == null ? M() : g(n).onCopyFiles(e, t);
81
+ }, ce = (e, t, n) => {
94
82
  if (e.length === 0) return;
95
- let r = M(e.map((e) => e.sourceUrl ?? t), n);
96
- if (r == null) {
97
- j();
98
- return;
99
- }
100
- _(r).onMoveToFiles(e, t, n);
101
- }, ce = () => f.forEach(({ tab: e }) => _(e).cancelCopyMove());
83
+ let r = N(e.map((e) => e.sourceUrl ?? t), n);
84
+ r == null ? M() : g(r).onMoveToFiles(e, t, n);
85
+ }, le = () => f.forEach(({ tab: e }) => g(e).cancelCopyMove());
102
86
  if (!p) {
103
87
  let e = t.includes(l) ? l : c.MyFiles;
104
88
  return {
105
- ..._(e),
89
+ ...g(e),
106
90
  sectionTab: e
107
91
  };
108
92
  }
109
- let J = f.map(({ tab: e }) => _(e)), Y = _(T), X = _(oe), Z = [Y, ...J].find((e) => e.uploadBatchState != null) ?? Y, Q = (e) => J.some(e), $ = J.map((e) => e.sharedWithMeIds).filter((e) => e != null), le = new Set(f.filter(({ tab: e }) => e !== T && _(e).isLoading).map(({ tab: e }) => _(e).path));
93
+ let J = f.map(({ tab: e }) => g(e)), Y = g(w), X = g(T), Z = [Y, ...J].find((e) => e.uploadBatchState != null) ?? Y, Q = (e) => J.some(e), $ = J.map((e) => e.sharedWithMeIds).filter((e) => e != null), ue = new Set(f.filter(({ tab: e }) => e !== w && g(e).isLoading).map(({ tab: e }) => g(e).path));
110
94
  return {
111
95
  ...Y,
112
96
  items: J.map((e) => e.items[0]).filter((e) => e != null),
113
- onPathChange: N,
97
+ onPathChange: P,
114
98
  expandedPaths: i(J.map((e) => e.expandedPaths)),
115
99
  loadedPaths: i(J.map((e) => e.loadedPaths)),
116
- onExpandedPathsChange: P,
117
- onFolderPopupPathChange: F,
118
- folderPopupLoadingPaths: i([...J.map((e) => e.folderPopupLoadingPaths), le]),
119
- onUploadFiles: I,
120
- onUploadArchive: L,
121
- onValidateUpload: R,
100
+ onExpandedPathsChange: F,
101
+ onFolderPopupPathChange: I,
102
+ folderPopupLoadingPaths: i([...J.map((e) => e.folderPopupLoadingPaths), ue]),
103
+ onUploadFiles: L,
104
+ onUploadArchive: R,
105
+ onValidateUpload: z,
122
106
  uploadBatchState: Z.uploadBatchState,
123
107
  cancelUpload: Z.cancelUpload,
124
108
  cancelUploadFile: Z.cancelUploadFile,
125
109
  clearUploadBatch: Z.clearUploadBatch,
126
- onCreateFolder: z,
127
- onCreateFolderValidate: B,
110
+ onCreateFolder: B,
111
+ onCreateFolderValidate: V,
128
112
  isCreatingFolder: Q((e) => e.isCreatingFolder),
129
- onDownloadFiles: V,
113
+ onDownloadFiles: H,
130
114
  isDownloading: Q((e) => e.isDownloading),
131
- onDeleteFiles: H,
115
+ onDeleteFiles: U,
132
116
  isDeleting: Q((e) => e.isDeleting),
133
- onRenameValidate: U,
134
- onMoveToFiles: se,
117
+ onRenameValidate: W,
118
+ onMoveToFiles: ce,
135
119
  isRenaming: Q((e) => e.isRenaming),
136
- onCopyFiles: q,
120
+ onCopyFiles: se,
137
121
  isCopying: Q((e) => e.isCopying),
138
122
  isMoving: Q((e) => e.isMoving),
139
- cancelCopyMove: ce,
123
+ cancelCopyMove: le,
140
124
  sharedWithMeIds: $.length > 0 ? $.flat() : void 0,
141
125
  sharedByMePaths: i(J.map((e) => e.sharedByMePaths)),
142
- onUnshareFiles: W,
126
+ onUnshareFiles: G,
143
127
  isUnsharing: Q((e) => e.isUnsharing),
144
- onRemoveFilesAccess: G,
128
+ onRemoveFilesAccess: K,
145
129
  isRemovingAccess: Q((e) => e.isRemovingAccess),
146
130
  fileMetadata: X.fileMetadata,
147
131
  isFileMetadataLoading: X.isFileMetadataLoading,
148
- onGetInfo: K,
132
+ onGetInfo: q,
149
133
  clearMetadata: X.clearMetadata,
150
134
  isAnyOperationInProgress: Q((e) => e.isAnyOperationInProgress),
151
- sectionTab: T
135
+ sectionTab: w
152
136
  };
153
137
  };
154
138
  //#endregion
@@ -10,7 +10,7 @@ var a = [
10
10
  ], o = 2, s = (s, c, l, u) => {
11
11
  let d = t((t) => {
12
12
  let n = (e) => u == null || u.includes(e);
13
- return n(t) ? t === i.All ? e.filter((e) => n(e)).length >= o : !0 : !1;
13
+ return n(t) ? t !== i.All || e.filter((e) => n(e)).length >= o : !1;
14
14
  }, [u]), f = r(() => l?.filter((e) => d(e.value)), [l, d]);
15
15
  return n(() => {
16
16
  d(s) || c(a.find((e) => d(e)) ?? i.MyFiles);
@@ -13,11 +13,11 @@ var o = ({ filesApi: o, bucket: s, rootLabel: c, onNotification: l }) => {
13
13
  (async () => {
14
14
  p(!0);
15
15
  try {
16
- let e = r.bucket ?? s, i = t(r, e, c);
17
- d(n(await o.getFileMetadata({
16
+ let e = r.bucket ?? s, i = t(r, e, c), a = await o.getFileMetadata({
18
17
  bucket: e,
19
18
  path: i
20
- }), r));
19
+ });
20
+ d(n(a, r));
21
21
  } catch {
22
22
  l?.({
23
23
  variant: a.Error,
@@ -18,7 +18,7 @@ var f = 5, p = (e) => e.error ? `${e.path} (${e.error})` : e.path, m = (e) => {
18
18
  };
19
19
  }, h = (e, t) => `${e}${t}/`, g = (e) => /\.zip$/i.test(e), _ = (e) => {
20
20
  let [t] = e;
21
- if (!(e.length !== 1 || t == null)) return g(t.fileContent.name) && !g(t.name) ? t : void 0;
21
+ if (e.length === 1 && t != null) return g(t.fileContent.name) && !g(t.name) ? t : void 0;
22
22
  }, v = 0, y = () => (v += 1, `${Date.now()}-${v}`), b = (e, t) => ({
23
23
  files: [...e?.files ?? [], ...t],
24
24
  isOpen: !0