@epam/ai-dial-chat-hooks 1.2.0-rc.1 → 1.3.0-dev.10
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/file-manager.d.ts +4 -2
- package/file-manager.js +25 -25
- package/files/dial-file-manager.model.js +7 -3
- package/files/useDialFileListing/useDialFileListing.js +2 -2
- package/files/useDialFileManager/useDialFileManager.js +146 -140
- package/files/useDialFileMutations/useDialFileMutations.js +206 -204
- package/index.d.ts +4 -2
- package/index.js +43 -43
- package/package.json +15 -15
package/file-manager.d.ts
CHANGED
|
@@ -75,9 +75,11 @@ export declare const buildFromCache: (cache: Map<string, ListFilesItemDto[]>, li
|
|
|
75
75
|
*/
|
|
76
76
|
export declare const buildSharedItemVirtualPath: (relativePath: string, rootLabel: string, isFolder: boolean) => string;
|
|
77
77
|
|
|
78
|
-
export declare const
|
|
78
|
+
export declare const COLUMNS_MY_FILES: FileManagerColumnKey[];
|
|
79
79
|
|
|
80
|
-
export declare const
|
|
80
|
+
export declare const COLUMNS_ORGANIZATION: FileManagerColumnKey[];
|
|
81
|
+
|
|
82
|
+
export declare const COLUMNS_SHARED: FileManagerColumnKey[];
|
|
81
83
|
|
|
82
84
|
export declare interface CopyMoveResult {
|
|
83
85
|
success?: boolean;
|
package/file-manager.js
CHANGED
|
@@ -3,28 +3,28 @@ import { isDialFileAcceptType as r, mimeTypesToAttachmentExtensionLabels as i, m
|
|
|
3
3
|
import { sanitizeFileName as s, splitFileNameExtension as c, trimFileNameToByteLimit as l } from "./files/file-name.js";
|
|
4
4
|
import { DialFilesApiUploadMode as u } from "./files/dial-files-api.js";
|
|
5
5
|
import { FileManagerNotificationReason as d, FileNameValidationErrorReason as f, FileOperationKind as p } from "./files/dial-file-manager.types.js";
|
|
6
|
-
import {
|
|
7
|
-
import { buildSharedItemVirtualPath as
|
|
8
|
-
import { resolveDialFileApiPath as
|
|
9
|
-
import { prepareCopyItems as
|
|
10
|
-
import { buildFromCache as
|
|
11
|
-
import { createFilesApiClient as
|
|
12
|
-
import { createUploadFileWithProgress as
|
|
13
|
-
import { openAnnotationAttachment as
|
|
14
|
-
import { getUrlFileName as
|
|
15
|
-
import { annotationToDisplayAttachment as
|
|
16
|
-
import { dialFileToAttachment as
|
|
17
|
-
import { DownloadDestinationType as
|
|
18
|
-
import { prepareDownloadDestination as
|
|
19
|
-
import { deriveActionProfile as
|
|
20
|
-
import { useDialFileListing as
|
|
21
|
-
import { useDialFileMetadata as
|
|
22
|
-
import { useDialFileMutations as
|
|
23
|
-
import { useDialFileSharing as
|
|
24
|
-
import { useDialFileUploadBatch as
|
|
25
|
-
import { useDialFileManager as
|
|
26
|
-
import { useDialFileManagerSections as
|
|
27
|
-
import { useDialFileManagerTabConfig as
|
|
28
|
-
import { useFileAttachmentPicker as
|
|
29
|
-
import { useGridEditingScroll as
|
|
30
|
-
export { m as
|
|
6
|
+
import { COLUMNS_MY_FILES as m, COLUMNS_ORGANIZATION as h, COLUMNS_SHARED as g, CORE_PERMISSION_MAP as _, DATE_OPTIONS as v, DIAL_FILE_MANAGER_SECTION_TABS as y, PATH_SEPARATOR_REGEXP as b, RESERVED_MARKER_NAME as x, UPLOAD_CONCURRENCY as S } from "./files/dial-file-manager.model.js";
|
|
7
|
+
import { buildSharedItemVirtualPath as C, dialCorePathToRelative as w, findDialFileByPath as T, findFolderByVirtualPath as E, formatOperationFolderName as D, getVirtualPathName as O, hasDialFileWritePermission as k, hasForbiddenNameSymbols as A, hasSamePaths as j, isCopyMoveDuplicateAllowed as M, isShareActionsAllowed as N, normalizeVirtualPath as P, parseNewFolderVirtualPath as F, resolveOwnerCoords as I, resolveSectionByPath as L, unionPathSets as R, withRoutableRootLabels as z } from "./files/dial-file-manager-path.util.js";
|
|
8
|
+
import { resolveDialFileApiPath as B, virtualPathToApiPath as V } from "./files/resolve-dial-file-api-path.js";
|
|
9
|
+
import { prepareCopyItems as H, prepareMoveRenameItems as U } from "./files/dial-file-manager-copy-move.util.js";
|
|
10
|
+
import { buildFromCache as W, fetchByTab as G, fetchForSearch as K, findFirstSuccessfulCopyMoveItem as q, mapCorePermissions as J, mapFileMetadataToDialFile as Y, mapSearchItem as X, mergeCreatedFolderIntoCache as Z, updateEntry as Q } from "./files/dial-file-manager-mapping.util.js";
|
|
11
|
+
import { createFilesApiClient as $ } from "./files/create-files-api.js";
|
|
12
|
+
import { createUploadFileWithProgress as ee } from "./files/create-upload-file-with-progress.js";
|
|
13
|
+
import { openAnnotationAttachment as te } from "./files/annotation.js";
|
|
14
|
+
import { getUrlFileName as ne, isExternalSourcePreviewable as re, resolveExternalSourceContentType as ie } from "./files/source-content.js";
|
|
15
|
+
import { annotationToDisplayAttachment as ae, attachmentDtoToDisplayAttachment as oe, attachmentDtosToDisplayAttachments as se } from "./files/attachment-dto-to-display.js";
|
|
16
|
+
import { dialFileToAttachment as ce, dialFilesToAttachments as le, dialFolderPathToAttachment as ue } from "./files/dial-file-to-attachment.js";
|
|
17
|
+
import { DownloadDestinationType as de } from "./files/download-destination.js";
|
|
18
|
+
import { prepareDownloadDestination as fe } from "./files/prepare-download-destination.js";
|
|
19
|
+
import { deriveActionProfile as pe } from "./files/file-manager-variant.js";
|
|
20
|
+
import { useDialFileListing as me } from "./files/useDialFileListing/useDialFileListing.js";
|
|
21
|
+
import { useDialFileMetadata as he } from "./files/useDialFileMetadata/useDialFileMetadata.js";
|
|
22
|
+
import { useDialFileMutations as ge } from "./files/useDialFileMutations/useDialFileMutations.js";
|
|
23
|
+
import { useDialFileSharing as _e } from "./files/useDialFileSharing/useDialFileSharing.js";
|
|
24
|
+
import { useDialFileUploadBatch as ve } from "./files/useDialFileUploadBatch/useDialFileUploadBatch.js";
|
|
25
|
+
import { useDialFileManager as ye } from "./files/useDialFileManager/useDialFileManager.js";
|
|
26
|
+
import { useDialFileManagerSections as be } from "./files/useDialFileManagerSections/useDialFileManagerSections.js";
|
|
27
|
+
import { useDialFileManagerTabConfig as xe } from "./files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.js";
|
|
28
|
+
import { useFileAttachmentPicker as Se } from "./files/useFileAttachmentPicker/useFileAttachmentPicker.js";
|
|
29
|
+
import { useGridEditingScroll as Ce } from "@epam/ai-dial-chat-shared";
|
|
30
|
+
export { m as COLUMNS_MY_FILES, h as COLUMNS_ORGANIZATION, g as COLUMNS_SHARED, _ as CORE_PERMISSION_MAP, v as DATE_OPTIONS, y as DIAL_FILE_MANAGER_SECTION_TABS, u as DialFilesApiUploadMode, de as DownloadDestinationType, d as FileManagerNotificationReason, f as FileNameValidationErrorReason, p as FileOperationKind, b as PATH_SEPARATOR_REGEXP, x as RESERVED_MARKER_NAME, S as UPLOAD_CONCURRENCY, ae as annotationToDisplayAttachment, oe as attachmentDtoToDisplayAttachment, se as attachmentDtosToDisplayAttachments, W as buildFromCache, C as buildSharedItemVirtualPath, $ as createFilesApiClient, ee as createUploadFileWithProgress, pe as deriveActionProfile, w as dialCorePathToRelative, ce as dialFileToAttachment, le as dialFilesToAttachments, ue as dialFolderPathToAttachment, G as fetchByTab, K as fetchForSearch, T as findDialFileByPath, q as findFirstSuccessfulCopyMoveItem, E as findFolderByVirtualPath, D as formatOperationFolderName, ne as getUrlFileName, O as getVirtualPathName, k as hasDialFileWritePermission, A as hasForbiddenNameSymbols, j as hasSamePaths, M as isCopyMoveDuplicateAllowed, r as isDialFileAcceptType, e as isDialFileId, re as isExternalSourcePreviewable, N as isShareActionsAllowed, J as mapCorePermissions, Y as mapFileMetadataToDialFile, X as mapSearchItem, Z as mergeCreatedFolderIntoCache, i as mimeTypesToAttachmentExtensionLabels, a as mimeTypesToDialFileAcceptTypes, o as mimeTypesToFileAccept, P as normalizeVirtualPath, te as openAnnotationAttachment, F as parseNewFolderVirtualPath, H as prepareCopyItems, fe as prepareDownloadDestination, U as prepareMoveRenameItems, B as resolveDialFileApiPath, t as resolveDialFileBucketAndPath, ie as resolveExternalSourceContentType, I as resolveOwnerCoords, n as resolveRelativeDialFilePath, L as resolveSectionByPath, s as sanitizeFileName, c as splitFileNameExtension, l as trimFileNameToByteLimit, R as unionPathSets, Q as updateEntry, me as useDialFileListing, ye as useDialFileManager, be as useDialFileManagerSections, xe as useDialFileManagerTabConfig, he as useDialFileMetadata, ge as useDialFileMutations, _e as useDialFileSharing, ve as useDialFileUploadBatch, Se as useFileAttachmentPicker, Ce as useGridEditingScroll, V as virtualPathToApiPath, z as withRoutableRootLabels };
|
|
@@ -14,19 +14,23 @@ var i = 3, a = e, o = /[/\\]/, s = {
|
|
|
14
14
|
r.Size,
|
|
15
15
|
r.Actions
|
|
16
16
|
], l = [
|
|
17
|
+
r.Name,
|
|
18
|
+
r.Author,
|
|
19
|
+
r.Actions
|
|
20
|
+
], u = [
|
|
17
21
|
r.Name,
|
|
18
22
|
r.UpdatedAt,
|
|
19
23
|
r.Size,
|
|
20
24
|
r.Author,
|
|
21
25
|
r.Actions
|
|
22
|
-
],
|
|
26
|
+
], d = {
|
|
23
27
|
READ: n.READ,
|
|
24
28
|
WRITE: n.WRITE,
|
|
25
29
|
SHARE: n.SHARE
|
|
26
|
-
},
|
|
30
|
+
}, f = [
|
|
27
31
|
t.MyFiles,
|
|
28
32
|
t.Shared,
|
|
29
33
|
t.Organization
|
|
30
34
|
];
|
|
31
35
|
//#endregion
|
|
32
|
-
export { c as
|
|
36
|
+
export { c as COLUMNS_MY_FILES, u as COLUMNS_ORGANIZATION, l as COLUMNS_SHARED, d as CORE_PERMISSION_MAP, s as DATE_OPTIONS, f as DIAL_FILE_MANAGER_SECTION_TABS, o as PATH_SEPARATOR_REGEXP, a as RESERVED_MARKER_NAME, i as UPLOAD_CONCURRENCY };
|
|
@@ -27,11 +27,11 @@ var _ = ({ filesApi: _, bucket: v, rootLabel: y, activeTab: b, onNotification: x
|
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
29
|
let t = !1;
|
|
30
|
-
return A(!0), j(null), s(_, b, v, C, L.current).then(({ items: e, permissions:
|
|
30
|
+
return A(!0), j(null), s(_, b, v, C, L.current).then(({ items: e, permissions: n }) => {
|
|
31
31
|
t || (E((t) => {
|
|
32
32
|
let n = new Map(t);
|
|
33
33
|
return n.set(C, e), n;
|
|
34
|
-
}), k((e) => new Map(e).set(C,
|
|
34
|
+
}), k((e) => new Map(e).set(C, n)), b === g.Shared && C === "" && (F(e.map((e) => e.nodeType === m.Folder ? `/${y}/${e.name}/` : `/${y}/${e.name}`)), L.current = new Map(e.map((e) => [e.name, {
|
|
35
35
|
bucket: e.bucket ?? "",
|
|
36
36
|
dialCorePath: e.path
|
|
37
37
|
}]))));
|
|
@@ -1,150 +1,156 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { hasDialFileWritePermission as
|
|
3
|
-
import { deriveActionProfile as
|
|
4
|
-
import { useDialFileListing as
|
|
5
|
-
import { useDialFileMetadata as
|
|
6
|
-
import { useDialFileMutations as
|
|
7
|
-
import { useDialFileSharing as
|
|
8
|
-
import { useDialFileUploadBatch as
|
|
9
|
-
import { DialFileManagerActionProfile as
|
|
10
|
-
import { useCallback as
|
|
11
|
-
import { DialFileManagerActions as
|
|
1
|
+
import { COLUMNS_MY_FILES as e, COLUMNS_ORGANIZATION as t, COLUMNS_SHARED as n, DATE_OPTIONS as r } from "../dial-file-manager.model.js";
|
|
2
|
+
import { hasDialFileWritePermission as i, isCopyMoveDuplicateAllowed as a, isShareActionsAllowed as o } from "../dial-file-manager-path.util.js";
|
|
3
|
+
import { deriveActionProfile as s } from "../file-manager-variant.js";
|
|
4
|
+
import { useDialFileListing as c } from "../useDialFileListing/useDialFileListing.js";
|
|
5
|
+
import { useDialFileMetadata as l } from "../useDialFileMetadata/useDialFileMetadata.js";
|
|
6
|
+
import { useDialFileMutations as u } from "../useDialFileMutations/useDialFileMutations.js";
|
|
7
|
+
import { useDialFileSharing as d } from "../useDialFileSharing/useDialFileSharing.js";
|
|
8
|
+
import { useDialFileUploadBatch as f } from "../useDialFileUploadBatch/useDialFileUploadBatch.js";
|
|
9
|
+
import { DialFileManagerActionProfile as p, DialFileManagerVariant as m, isUploadInProgress as h } from "@epam/ai-dial-chat-shared";
|
|
10
|
+
import { useCallback as g, useMemo as _ } from "react";
|
|
11
|
+
import { DialFileManagerActions as v, DialFileManagerTabs as y } from "@epam/ai-dial-react-file-manager";
|
|
12
12
|
//#region src/files/useDialFileManager/useDialFileManager.ts
|
|
13
|
-
var
|
|
14
|
-
let
|
|
15
|
-
filesApi:
|
|
16
|
-
bucket:
|
|
17
|
-
rootLabel:
|
|
18
|
-
activeTab:
|
|
19
|
-
onNotification:
|
|
20
|
-
isActive:
|
|
21
|
-
sessionKey:
|
|
22
|
-
}),
|
|
23
|
-
filesApi:
|
|
24
|
-
bucket:
|
|
25
|
-
rootLabel:
|
|
26
|
-
activeTab:
|
|
27
|
-
cache:
|
|
28
|
-
sharedRootMetaRef:
|
|
29
|
-
invalidateFolders:
|
|
30
|
-
bumpRetry:
|
|
31
|
-
onNotification:
|
|
32
|
-
}), R = l({
|
|
33
|
-
filesApi: y,
|
|
34
|
-
bucket: b,
|
|
35
|
-
rootLabel: x,
|
|
36
|
-
activeTab: S,
|
|
37
|
-
folderPath: I.folderPath,
|
|
38
|
-
currentFolder: I.currentFolder,
|
|
39
|
-
sharedRootMetaRef: I.sharedRootMetaRef,
|
|
40
|
-
listingPermissionsCache: I.listingPermissionsCache,
|
|
41
|
-
invalidateFolders: I.invalidateFolders,
|
|
42
|
-
bumpRetry: I.bumpRetry,
|
|
43
|
-
mergeCreatedFolder: I.mergeCreatedFolder,
|
|
44
|
-
setFolderPath: I.setFolderPath,
|
|
45
|
-
onNotification: T,
|
|
46
|
-
onOperationSuccess: E,
|
|
47
|
-
downloadDestination: N,
|
|
48
|
-
forbiddenSymbolsRegExp: D
|
|
13
|
+
var b = ({ filesApi: b, bucket: x, rootLabel: S = "My files", activeTab: C = y.MyFiles, isActive: w, sessionKey: T, onNotification: E, onOperationSuccess: D, forbiddenSymbolsRegExp: O, variant: k = m.Attach, actionProfile: A, labels: j, locale: M, disabledNewButtonTooltip: N, downloadDestination: P, buildValidationErrorMessage: F }) => {
|
|
14
|
+
let I = A ?? s(k), L = c({
|
|
15
|
+
filesApi: b,
|
|
16
|
+
bucket: x,
|
|
17
|
+
rootLabel: S,
|
|
18
|
+
activeTab: C,
|
|
19
|
+
onNotification: E,
|
|
20
|
+
isActive: w,
|
|
21
|
+
sessionKey: T
|
|
22
|
+
}), R = f({
|
|
23
|
+
filesApi: b,
|
|
24
|
+
bucket: x,
|
|
25
|
+
rootLabel: S,
|
|
26
|
+
activeTab: C,
|
|
27
|
+
cache: L.cache,
|
|
28
|
+
sharedRootMetaRef: L.sharedRootMetaRef,
|
|
29
|
+
invalidateFolders: L.invalidateFolders,
|
|
30
|
+
bumpRetry: L.bumpRetry,
|
|
31
|
+
onNotification: E
|
|
49
32
|
}), z = u({
|
|
50
|
-
filesApi:
|
|
51
|
-
bucket:
|
|
52
|
-
rootLabel:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
33
|
+
filesApi: b,
|
|
34
|
+
bucket: x,
|
|
35
|
+
rootLabel: S,
|
|
36
|
+
activeTab: C,
|
|
37
|
+
folderPath: L.folderPath,
|
|
38
|
+
currentFolder: L.currentFolder,
|
|
39
|
+
sharedRootMetaRef: L.sharedRootMetaRef,
|
|
40
|
+
listingPermissionsCache: L.listingPermissionsCache,
|
|
41
|
+
invalidateFolders: L.invalidateFolders,
|
|
42
|
+
bumpRetry: L.bumpRetry,
|
|
43
|
+
mergeCreatedFolder: L.mergeCreatedFolder,
|
|
44
|
+
setFolderPath: L.setFolderPath,
|
|
45
|
+
onNotification: E,
|
|
46
|
+
onOperationSuccess: D,
|
|
47
|
+
downloadDestination: P,
|
|
48
|
+
forbiddenSymbolsRegExp: O
|
|
49
|
+
}), B = d({
|
|
50
|
+
filesApi: b,
|
|
51
|
+
bucket: x,
|
|
52
|
+
rootLabel: S,
|
|
53
|
+
bumpRetry: L.bumpRetry,
|
|
54
|
+
onNotification: E
|
|
55
|
+
}), V = l({
|
|
56
|
+
filesApi: b,
|
|
57
|
+
bucket: x,
|
|
58
|
+
rootLabel: S,
|
|
59
|
+
onNotification: E
|
|
60
|
+
}), H = i(L.currentFolder), U = _(() => C === y.Organization || C === y.Shared && L.folderPath === "" ? !1 : H, [
|
|
61
|
+
C,
|
|
62
|
+
L.folderPath,
|
|
63
|
+
H
|
|
64
|
+
]), W = _(() => {
|
|
65
|
+
switch (C) {
|
|
66
|
+
case y.Shared: return n;
|
|
67
|
+
case y.Organization: return t;
|
|
68
|
+
default: return e;
|
|
69
|
+
}
|
|
70
|
+
}, [C]), G = _(() => {
|
|
65
71
|
let e = {}, t = (t) => {
|
|
66
|
-
let n =
|
|
72
|
+
let n = j[t];
|
|
67
73
|
n != null && (e[t] = n);
|
|
68
74
|
};
|
|
69
|
-
return t(
|
|
75
|
+
return t(v.Download), C === y.MyFiles ? (t(v.Delete), U && (t(v.Rename), a(I) && (t(v.Copy), t(v.Move), t(v.Duplicate))), o(I) && t(v.RemoveAccess)) : C === y.Shared && o(I) && t(v.Unshare), I === p.Full && t(v.Info), e;
|
|
70
76
|
}, [
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
]),
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
]),
|
|
86
|
-
let n =
|
|
87
|
-
return n ?
|
|
88
|
-
}, [
|
|
89
|
-
let n =
|
|
90
|
-
return n ?
|
|
91
|
-
}, [
|
|
77
|
+
C,
|
|
78
|
+
U,
|
|
79
|
+
I,
|
|
80
|
+
j
|
|
81
|
+
]), K = _(() => z.isCreatingFolder || z.isDownloading || z.isDeleting || z.isRenaming || z.isCopying || z.isMoving || B.isUnsharing || B.isRemovingAccess || h(R.uploadBatchState), [
|
|
82
|
+
z.isCreatingFolder,
|
|
83
|
+
z.isDownloading,
|
|
84
|
+
z.isDeleting,
|
|
85
|
+
z.isRenaming,
|
|
86
|
+
z.isCopying,
|
|
87
|
+
z.isMoving,
|
|
88
|
+
B.isUnsharing,
|
|
89
|
+
B.isRemovingAccess,
|
|
90
|
+
R.uploadBatchState
|
|
91
|
+
]), q = g((e, t) => {
|
|
92
|
+
let n = z.onCreateFolderValidate(e, t);
|
|
93
|
+
return n ? F(n) : null;
|
|
94
|
+
}, [z, F]), J = g((e, t) => {
|
|
95
|
+
let n = z.onRenameValidate(e, t);
|
|
96
|
+
return n ? F(n, t) : null;
|
|
97
|
+
}, [z, F]);
|
|
92
98
|
return {
|
|
93
|
-
items:
|
|
94
|
-
isLoading:
|
|
95
|
-
error:
|
|
96
|
-
path:
|
|
97
|
-
onPathChange:
|
|
98
|
-
retry:
|
|
99
|
-
onSearchFiles:
|
|
100
|
-
isSearching:
|
|
101
|
-
searchResults:
|
|
102
|
-
clearSearchResults:
|
|
103
|
-
expandedPaths:
|
|
104
|
-
loadedPaths:
|
|
105
|
-
onExpandedPathsChange:
|
|
106
|
-
onFolderPopupPathChange:
|
|
107
|
-
folderPopupLoadingPaths:
|
|
108
|
-
onUploadFiles:
|
|
109
|
-
onUploadArchive:
|
|
110
|
-
onValidateUpload:
|
|
111
|
-
uploadBatchState:
|
|
112
|
-
cancelUpload:
|
|
113
|
-
cancelUploadFile:
|
|
114
|
-
clearUploadBatch:
|
|
115
|
-
onCreateFolder:
|
|
116
|
-
onCreateFolderValidate:
|
|
117
|
-
isCreatingFolder:
|
|
118
|
-
onDownloadFiles:
|
|
119
|
-
isDownloading:
|
|
120
|
-
onDeleteFiles:
|
|
121
|
-
isDeleting:
|
|
122
|
-
onRenameValidate:
|
|
123
|
-
onMoveToFiles:
|
|
124
|
-
isRenaming:
|
|
125
|
-
onCopyFiles:
|
|
126
|
-
isCopying:
|
|
127
|
-
isMoving:
|
|
128
|
-
cancelCopyMove:
|
|
129
|
-
uploadEnabled:
|
|
130
|
-
isNewButtonDisabled: !
|
|
131
|
-
disabledNewButtonTooltip:
|
|
132
|
-
visibleColumns:
|
|
133
|
-
dateLocale:
|
|
134
|
-
dateOptions:
|
|
135
|
-
actionLabels:
|
|
136
|
-
sharedWithMeIds:
|
|
137
|
-
sharedByMePaths:
|
|
138
|
-
onUnshareFiles:
|
|
139
|
-
isUnsharing:
|
|
140
|
-
onRemoveFilesAccess:
|
|
141
|
-
isRemovingAccess:
|
|
142
|
-
fileMetadata:
|
|
143
|
-
isFileMetadataLoading:
|
|
144
|
-
onGetInfo:
|
|
145
|
-
clearMetadata:
|
|
146
|
-
isAnyOperationInProgress:
|
|
99
|
+
items: L.items,
|
|
100
|
+
isLoading: L.isLoading,
|
|
101
|
+
error: L.error,
|
|
102
|
+
path: L.path,
|
|
103
|
+
onPathChange: L.onPathChange,
|
|
104
|
+
retry: L.retry,
|
|
105
|
+
onSearchFiles: L.onSearchFiles,
|
|
106
|
+
isSearching: L.isSearching,
|
|
107
|
+
searchResults: L.searchResults,
|
|
108
|
+
clearSearchResults: L.clearSearchResults,
|
|
109
|
+
expandedPaths: L.expandedPaths,
|
|
110
|
+
loadedPaths: L.loadedPaths,
|
|
111
|
+
onExpandedPathsChange: L.onExpandedPathsChange,
|
|
112
|
+
onFolderPopupPathChange: L.onFolderPopupPathChange,
|
|
113
|
+
folderPopupLoadingPaths: L.folderPopupLoadingPaths,
|
|
114
|
+
onUploadFiles: R.onUploadFiles,
|
|
115
|
+
onUploadArchive: R.onUploadArchive,
|
|
116
|
+
onValidateUpload: R.onValidateUpload,
|
|
117
|
+
uploadBatchState: R.uploadBatchState,
|
|
118
|
+
cancelUpload: R.cancelUpload,
|
|
119
|
+
cancelUploadFile: R.cancelUploadFile,
|
|
120
|
+
clearUploadBatch: R.clearUploadBatch,
|
|
121
|
+
onCreateFolder: z.onCreateFolder,
|
|
122
|
+
onCreateFolderValidate: q,
|
|
123
|
+
isCreatingFolder: z.isCreatingFolder,
|
|
124
|
+
onDownloadFiles: z.onDownloadFiles,
|
|
125
|
+
isDownloading: z.isDownloading,
|
|
126
|
+
onDeleteFiles: z.onDeleteFiles,
|
|
127
|
+
isDeleting: z.isDeleting,
|
|
128
|
+
onRenameValidate: J,
|
|
129
|
+
onMoveToFiles: z.onMoveToFiles,
|
|
130
|
+
isRenaming: z.isRenaming,
|
|
131
|
+
onCopyFiles: z.onCopyFiles,
|
|
132
|
+
isCopying: z.isCopying,
|
|
133
|
+
isMoving: z.isMoving,
|
|
134
|
+
cancelCopyMove: z.cancelCopyMove,
|
|
135
|
+
uploadEnabled: U,
|
|
136
|
+
isNewButtonDisabled: !U,
|
|
137
|
+
disabledNewButtonTooltip: N,
|
|
138
|
+
visibleColumns: W,
|
|
139
|
+
dateLocale: M,
|
|
140
|
+
dateOptions: r,
|
|
141
|
+
actionLabels: G,
|
|
142
|
+
sharedWithMeIds: L.sharedWithMeIds,
|
|
143
|
+
sharedByMePaths: L.sharedByMePaths,
|
|
144
|
+
onUnshareFiles: B.onUnshareFiles,
|
|
145
|
+
isUnsharing: B.isUnsharing,
|
|
146
|
+
onRemoveFilesAccess: B.onRemoveFilesAccess,
|
|
147
|
+
isRemovingAccess: B.isRemovingAccess,
|
|
148
|
+
fileMetadata: V.fileMetadata,
|
|
149
|
+
isFileMetadataLoading: V.isFileMetadataLoading,
|
|
150
|
+
onGetInfo: V.onGetInfo,
|
|
151
|
+
clearMetadata: V.clearMetadata,
|
|
152
|
+
isAnyOperationInProgress: K
|
|
147
153
|
};
|
|
148
154
|
};
|
|
149
155
|
//#endregion
|
|
150
|
-
export {
|
|
156
|
+
export { b as useDialFileManager };
|
|
@@ -1,280 +1,282 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
1
|
+
import { splitFileNameExtension as e } from "../file-name.js";
|
|
2
|
+
import { FileManagerNotificationReason as t, FileNameValidationErrorReason as n, FileOperationKind as r } from "../dial-file-manager.types.js";
|
|
3
|
+
import { RESERVED_MARKER_NAME as i } from "../dial-file-manager.model.js";
|
|
4
|
+
import { formatOperationFolderName as a, getVirtualPathName as o, hasForbiddenNameSymbols as s, parseNewFolderVirtualPath as c, resolveOwnerCoords as l } from "../dial-file-manager-path.util.js";
|
|
5
|
+
import { resolveDialFileApiPath as u, virtualPathToApiPath as d } from "../resolve-dial-file-api-path.js";
|
|
6
|
+
import { prepareCopyItems as f, prepareMoveRenameItems as p } from "../dial-file-manager-copy-move.util.js";
|
|
7
|
+
import { findFirstSuccessfulCopyMoveItem as m } from "../dial-file-manager-mapping.util.js";
|
|
8
|
+
import { DownloadDestinationType as h } from "../download-destination.js";
|
|
9
|
+
import { getParentFolderPath as g } from "@epam/ai-dial-chat-shared";
|
|
10
|
+
import { useCallback as _, useRef as v, useState as y } from "react";
|
|
11
|
+
import { ArchiveItemDtoNodeTypeEnum as b, CopyItemDtoNodeTypeEnum as x, DeleteItemDtoNodeTypeEnum as S, MoveItemDtoNodeTypeEnum as ee, RenameItemDtoNodeTypeEnum as C } from "@epam/ai-dial-chat-api-client";
|
|
12
|
+
import { NOT_ALLOWED_SYMBOLS as te, NotificationVariant as w } from "@epam/ai-dial-ui-kit";
|
|
13
|
+
import { DialFileManagerTabs as T, DialFileNodeType as E } from "@epam/ai-dial-react-file-manager";
|
|
13
14
|
//#region src/files/useDialFileMutations/useDialFileMutations.ts
|
|
14
|
-
var
|
|
15
|
-
let [ne,
|
|
16
|
-
let
|
|
17
|
-
if (!e || e.trim() === "")
|
|
18
|
-
else if (
|
|
19
|
-
reason:
|
|
20
|
-
symbols:
|
|
15
|
+
var D = ({ filesApi: D, bucket: O, rootLabel: k, activeTab: A, folderPath: j, currentFolder: M, sharedRootMetaRef: N, listingPermissionsCache: P, invalidateFolders: F, bumpRetry: I, mergeCreatedFolder: L, setFolderPath: R, onNotification: z, onOperationSuccess: B, downloadDestination: V, forbiddenSymbolsRegExp: H }) => {
|
|
16
|
+
let [ne, U] = y(!1), [re, W] = y(!1), [ie, G] = y(!1), [K, q] = y(!1), [J, Y] = y(!1), [X, ae] = y(!1), Z = v(null), Q = v(null), $ = _((e, t) => {
|
|
17
|
+
let r = null;
|
|
18
|
+
if (!e || e.trim() === "") r = { reason: n.Empty };
|
|
19
|
+
else if (s(e, H)) r = {
|
|
20
|
+
reason: n.ForbiddenSymbols,
|
|
21
|
+
symbols: te
|
|
21
22
|
};
|
|
22
|
-
else if (e ===
|
|
23
|
-
else if (e.length > 255)
|
|
24
|
-
reason:
|
|
23
|
+
else if (e === i) r = { reason: n.ReservedName };
|
|
24
|
+
else if (e.length > 255) r = {
|
|
25
|
+
reason: n.TooLong,
|
|
25
26
|
maxLength: 255
|
|
26
27
|
};
|
|
27
28
|
else {
|
|
28
|
-
let
|
|
29
|
-
o && (
|
|
30
|
-
reason:
|
|
29
|
+
let i = t.items ?? [], a = e.toLowerCase(), o = i.find((e) => e.name.toLowerCase() === a);
|
|
30
|
+
o && (r = {
|
|
31
|
+
reason: n.DuplicateName,
|
|
31
32
|
existingName: o.name
|
|
32
33
|
});
|
|
33
34
|
}
|
|
34
|
-
return Q.current =
|
|
35
|
-
}, [
|
|
36
|
-
let { parentVirtualPath: a, name: o } =
|
|
37
|
-
id:
|
|
38
|
-
path:
|
|
35
|
+
return Q.current = r, r;
|
|
36
|
+
}, [H]), oe = _(async (e, n, i) => {
|
|
37
|
+
let { parentVirtualPath: a, name: o } = c(n, k), s = d(a, k), u = M && j === s ? M : {
|
|
38
|
+
id: s,
|
|
39
|
+
path: s,
|
|
39
40
|
name: a.split("/").filter(Boolean).pop() ?? "",
|
|
40
|
-
folderId:
|
|
41
|
-
nodeType:
|
|
41
|
+
folderId: s,
|
|
42
|
+
nodeType: E.FOLDER,
|
|
42
43
|
items: []
|
|
43
44
|
}, f = Q.current;
|
|
44
|
-
if (Q.current = null, $(o,
|
|
45
|
-
|
|
46
|
-
let { bucket: p, path: m } =
|
|
47
|
-
bucket:
|
|
48
|
-
path:
|
|
45
|
+
if (Q.current = null, $(o, u) || f) return;
|
|
46
|
+
U(!0);
|
|
47
|
+
let { bucket: p, path: m } = A === T.Shared ? l(s, N.current, O) : {
|
|
48
|
+
bucket: O,
|
|
49
|
+
path: s
|
|
49
50
|
};
|
|
50
51
|
try {
|
|
51
|
-
|
|
52
|
+
L(s, await D.createFolder({
|
|
52
53
|
bucket: p,
|
|
53
54
|
parentPath: m,
|
|
54
55
|
name: o
|
|
55
|
-
}),
|
|
56
|
-
kind:
|
|
56
|
+
}), P.get(s)), I(), B?.({
|
|
57
|
+
kind: r.FolderCreated,
|
|
57
58
|
name: o
|
|
58
59
|
});
|
|
59
60
|
} catch {
|
|
60
|
-
|
|
61
|
-
variant:
|
|
62
|
-
reason:
|
|
61
|
+
z?.({
|
|
62
|
+
variant: w.Error,
|
|
63
|
+
reason: t.FolderCreateFailed
|
|
63
64
|
});
|
|
64
65
|
} finally {
|
|
65
|
-
|
|
66
|
+
U(!1);
|
|
66
67
|
}
|
|
67
68
|
}, [
|
|
68
|
-
|
|
69
|
+
A,
|
|
70
|
+
O,
|
|
71
|
+
M,
|
|
69
72
|
D,
|
|
70
73
|
j,
|
|
71
|
-
E,
|
|
72
|
-
A,
|
|
73
74
|
$,
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
k,
|
|
76
|
+
P,
|
|
77
|
+
L,
|
|
76
78
|
I,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
]), oe = g((t) => {
|
|
79
|
+
B,
|
|
80
|
+
N,
|
|
81
|
+
z
|
|
82
|
+
]), se = _((e) => {
|
|
82
83
|
(async () => {
|
|
83
|
-
|
|
84
|
+
W(!0);
|
|
84
85
|
try {
|
|
85
|
-
let
|
|
86
|
-
if (
|
|
87
|
-
if (
|
|
88
|
-
let
|
|
89
|
-
if (!
|
|
90
|
-
let i =
|
|
86
|
+
let t = e.length === 1 ? e[0].nodeType === E.ITEM ? e[0].name : `${e[0].name}.zip` : "files.zip", n = await V.resolveDestination(t, e.length === 1 && e[0].nodeType === E.ITEM ? e[0].contentType ?? "application/octet-stream" : "application/zip");
|
|
87
|
+
if (n.type === h.Cancelled) return;
|
|
88
|
+
if (e.length === 1 && e[0].nodeType === E.ITEM) {
|
|
89
|
+
let t = e[0];
|
|
90
|
+
if (!t.bucket) throw Error("File is missing bucket");
|
|
91
|
+
let i = u(t, t.bucket, k), a = await D.downloadFile(t.bucket, i);
|
|
91
92
|
if (!a.ok) throw Error(`Download failed with status ${a.status}`);
|
|
92
|
-
let o = await
|
|
93
|
-
|
|
94
|
-
kind:
|
|
93
|
+
let o = await V.triggerDownload(a, t.name, n);
|
|
94
|
+
B?.({
|
|
95
|
+
kind: r.FileDownloaded,
|
|
95
96
|
name: o,
|
|
96
97
|
count: 1
|
|
97
98
|
});
|
|
98
99
|
} else {
|
|
99
|
-
let i =
|
|
100
|
-
bucket: e.bucket ??
|
|
101
|
-
path:
|
|
100
|
+
let i = e.map((e) => ({
|
|
101
|
+
bucket: e.bucket ?? O,
|
|
102
|
+
path: u(e, e.bucket ?? O, k),
|
|
102
103
|
name: e.name,
|
|
103
|
-
nodeType: e.nodeType ===
|
|
104
|
-
})), a = await
|
|
104
|
+
nodeType: e.nodeType === E.FOLDER ? b.Folder : b.Item
|
|
105
|
+
})), a = await D.downloadArchive(i);
|
|
105
106
|
if (!a.ok) throw Error(`Download failed with status ${a.status}`);
|
|
106
|
-
let o = await
|
|
107
|
-
|
|
108
|
-
kind:
|
|
107
|
+
let o = await V.triggerDownload(a, t, n);
|
|
108
|
+
e.length === 1 ? B?.({
|
|
109
|
+
kind: r.FileDownloaded,
|
|
109
110
|
name: o
|
|
110
|
-
}) :
|
|
111
|
-
kind:
|
|
112
|
-
count:
|
|
111
|
+
}) : B?.({
|
|
112
|
+
kind: r.FilesDownloaded,
|
|
113
|
+
count: e.length
|
|
113
114
|
});
|
|
114
115
|
}
|
|
115
116
|
} catch {
|
|
116
|
-
|
|
117
|
-
variant:
|
|
118
|
-
reason:
|
|
117
|
+
z?.({
|
|
118
|
+
variant: w.Error,
|
|
119
|
+
reason: e.length === 1 ? t.DownloadFileFailed : t.DownloadFilesFailed
|
|
119
120
|
});
|
|
120
121
|
} finally {
|
|
121
|
-
|
|
122
|
+
W(!1);
|
|
122
123
|
}
|
|
123
124
|
})();
|
|
124
125
|
}, [
|
|
125
|
-
D,
|
|
126
126
|
O,
|
|
127
|
+
k,
|
|
128
|
+
B,
|
|
127
129
|
z,
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
let t = e.nodeType === T.FOLDER, n = u(e.sourceUrl, O), i = t ? n : n.replace(/\/$/, "");
|
|
130
|
+
D,
|
|
131
|
+
V
|
|
132
|
+
]), ce = _((e, n) => {
|
|
133
|
+
e.length !== 0 && (async () => {
|
|
134
|
+
G(!0);
|
|
135
|
+
let r = [], i = e.map((e) => {
|
|
136
|
+
let t = e.nodeType === E.FOLDER, n = d(e.sourceUrl, k), i = t ? n : n.replace(/\/$/, "");
|
|
136
137
|
t && i !== "" && r.push(i.endsWith("/") ? i : `${i}/`);
|
|
137
|
-
let
|
|
138
|
-
bucket:
|
|
138
|
+
let a = o(e.sourceUrl, i), { bucket: s, path: c } = A === T.Shared ? l(i, N.current, O) : {
|
|
139
|
+
bucket: O,
|
|
139
140
|
path: i
|
|
140
141
|
};
|
|
141
142
|
return {
|
|
142
143
|
bucket: s,
|
|
143
|
-
path:
|
|
144
|
-
name:
|
|
145
|
-
nodeType: t ?
|
|
144
|
+
path: c,
|
|
145
|
+
name: a,
|
|
146
|
+
nodeType: t ? S.Folder : S.Item
|
|
146
147
|
};
|
|
147
148
|
});
|
|
148
149
|
try {
|
|
149
|
-
let { results:
|
|
150
|
-
if (o > 0 &&
|
|
151
|
-
variant:
|
|
152
|
-
reason:
|
|
150
|
+
let { results: e } = await D.deleteFiles(i), r = e.filter((e) => !e.success), a = r.length, o = e.length - a, s = e.find((e) => e.success), c = i.find((e) => e.path === s?.path) ?? i[0];
|
|
151
|
+
if (o > 0 && z?.({
|
|
152
|
+
variant: w.Success,
|
|
153
|
+
reason: t.FilesDeleted,
|
|
153
154
|
count: o,
|
|
154
155
|
name: c?.name,
|
|
155
|
-
folder: n ||
|
|
156
|
+
folder: n || k
|
|
156
157
|
}), a > 0) {
|
|
157
|
-
let
|
|
158
|
-
|
|
159
|
-
variant:
|
|
160
|
-
reason:
|
|
161
|
-
names:
|
|
158
|
+
let e = r.slice(0, 3).map((e) => i.find((t) => t.path === e.path)?.name ?? e.path), n = a - e.length;
|
|
159
|
+
z?.({
|
|
160
|
+
variant: w.Error,
|
|
161
|
+
reason: t.FilesDeletePartiallyFailed,
|
|
162
|
+
names: e,
|
|
162
163
|
restCount: n
|
|
163
164
|
});
|
|
164
165
|
}
|
|
165
166
|
} catch {
|
|
166
|
-
|
|
167
|
-
variant:
|
|
168
|
-
reason:
|
|
167
|
+
z?.({
|
|
168
|
+
variant: w.Error,
|
|
169
|
+
reason: t.DeleteFailed
|
|
169
170
|
});
|
|
170
171
|
}
|
|
171
|
-
|
|
172
|
-
if (e.nodeType ===
|
|
172
|
+
F([...new Set(i.map((e) => {
|
|
173
|
+
if (e.nodeType === S.Folder) return e.path.endsWith("/") ? e.path : `${e.path}/`;
|
|
173
174
|
let t = e.path.lastIndexOf("/");
|
|
174
175
|
return t > 0 ? e.path.slice(0, t + 1) : "";
|
|
175
176
|
}))]);
|
|
176
|
-
let
|
|
177
|
-
|
|
177
|
+
let a = r.filter((e) => j.startsWith(e)).reduce((e, t) => e == null || t.length < e.length ? t : e, void 0);
|
|
178
|
+
a != null && R(g(a)), I(), G(!1);
|
|
178
179
|
})();
|
|
179
180
|
}, [
|
|
181
|
+
A,
|
|
182
|
+
O,
|
|
180
183
|
k,
|
|
184
|
+
j,
|
|
185
|
+
z,
|
|
181
186
|
D,
|
|
182
|
-
|
|
183
|
-
A,
|
|
184
|
-
R,
|
|
185
|
-
E,
|
|
186
|
-
M,
|
|
187
|
-
P,
|
|
187
|
+
N,
|
|
188
188
|
F,
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
if (
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
189
|
+
I,
|
|
190
|
+
R
|
|
191
|
+
]), le = _((t, r) => {
|
|
192
|
+
if (!t || t.trim() === "") return { reason: n.Empty };
|
|
193
|
+
let a = r.nodeType === E.ITEM ? e(r.name).extension : "";
|
|
194
|
+
if (t === i || a !== "" && t === `${i}${a}`) return { reason: n.ReservedName };
|
|
195
|
+
if (s(t, H)) return {
|
|
196
|
+
reason: n.ForbiddenSymbols,
|
|
197
|
+
symbols: te
|
|
196
198
|
};
|
|
197
|
-
if (
|
|
198
|
-
reason:
|
|
199
|
+
if (t.length > 255) return {
|
|
200
|
+
reason: n.TooLong,
|
|
199
201
|
maxLength: 255
|
|
200
202
|
};
|
|
201
|
-
let
|
|
202
|
-
return
|
|
203
|
-
reason:
|
|
204
|
-
existingName:
|
|
203
|
+
let o = M?.items ?? [], c = t.toLowerCase(), l = o.find((e) => e.path !== r.path && e.name.toLowerCase() === c);
|
|
204
|
+
return l ? {
|
|
205
|
+
reason: n.DuplicateName,
|
|
206
|
+
existingName: l.name
|
|
205
207
|
} : null;
|
|
206
|
-
}, [
|
|
207
|
-
if (
|
|
208
|
-
let
|
|
209
|
-
Z.current =
|
|
210
|
-
|
|
211
|
-
let o =
|
|
208
|
+
}, [H, M]), ue = _((e, n) => {
|
|
209
|
+
if (e.length === 0 || J || X) return;
|
|
210
|
+
let i = new AbortController();
|
|
211
|
+
Z.current = i, (async () => {
|
|
212
|
+
Y(!0);
|
|
213
|
+
let o = f(e, O, k), s = o.map(({ dto: e }) => e);
|
|
212
214
|
try {
|
|
213
|
-
let { results:
|
|
215
|
+
let { results: e } = await D.copyFiles(s, i.signal), c = e.filter((e) => !e.success).length, l = e.length - c;
|
|
214
216
|
if (l > 0) {
|
|
215
|
-
let
|
|
216
|
-
c =
|
|
217
|
+
let t = m(o, e), i = s.every((e) => g(e.sourcePath) === g(e.destinationPath)), c;
|
|
218
|
+
c = i ? l === 1 ? r.FileDuplicated : r.FilesDuplicated : l === 1 ? r.FileCopied : r.FilesCopied, B?.({
|
|
217
219
|
kind: c,
|
|
218
|
-
name:
|
|
220
|
+
name: t?.destinationName,
|
|
219
221
|
count: l,
|
|
220
|
-
isFolder:
|
|
221
|
-
destinationFolderName:
|
|
222
|
+
isFolder: t?.dto.nodeType === x.Folder,
|
|
223
|
+
destinationFolderName: a(n, k)
|
|
222
224
|
});
|
|
223
225
|
}
|
|
224
|
-
c > 0 && c <
|
|
225
|
-
variant:
|
|
226
|
-
reason:
|
|
226
|
+
c > 0 && c < e.length ? z?.({
|
|
227
|
+
variant: w.Error,
|
|
228
|
+
reason: t.CopyPartiallyFailed,
|
|
227
229
|
count: c
|
|
228
|
-
}) : c ===
|
|
229
|
-
variant:
|
|
230
|
-
reason:
|
|
230
|
+
}) : c === e.length && z?.({
|
|
231
|
+
variant: w.Error,
|
|
232
|
+
reason: t.CopyFailed
|
|
231
233
|
});
|
|
232
234
|
} catch {
|
|
233
|
-
|
|
234
|
-
variant:
|
|
235
|
-
reason:
|
|
235
|
+
i.signal.aborted || z?.({
|
|
236
|
+
variant: w.Error,
|
|
237
|
+
reason: t.CopyFailed
|
|
236
238
|
});
|
|
237
239
|
} finally {
|
|
238
|
-
|
|
240
|
+
F([...new Set(s.flatMap((e) => [g(e.sourcePath), g(e.destinationPath)]))]), I(), Y(!1), Z.current = null;
|
|
239
241
|
}
|
|
240
242
|
})();
|
|
241
243
|
}, [
|
|
242
|
-
D,
|
|
243
244
|
O,
|
|
244
|
-
|
|
245
|
+
k,
|
|
245
246
|
z,
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
F
|
|
251
|
-
|
|
247
|
+
B,
|
|
248
|
+
D,
|
|
249
|
+
J,
|
|
250
|
+
X,
|
|
251
|
+
F,
|
|
252
|
+
I
|
|
253
|
+
]), de = _(() => {
|
|
252
254
|
Z.current?.abort();
|
|
253
255
|
}, []);
|
|
254
256
|
return {
|
|
255
257
|
isCreatingFolder: ne,
|
|
256
258
|
isDownloading: re,
|
|
257
259
|
isDeleting: ie,
|
|
258
|
-
isRenaming:
|
|
259
|
-
isCopying:
|
|
260
|
-
isMoving:
|
|
261
|
-
onCreateFolder:
|
|
260
|
+
isRenaming: K,
|
|
261
|
+
isCopying: J,
|
|
262
|
+
isMoving: X,
|
|
263
|
+
onCreateFolder: oe,
|
|
262
264
|
onCreateFolderValidate: $,
|
|
263
|
-
onDownloadFiles:
|
|
264
|
-
onDeleteFiles:
|
|
265
|
-
onRenameValidate:
|
|
266
|
-
onMoveToFiles:
|
|
267
|
-
if (
|
|
268
|
-
let { renameDtos: s, preparedMoveItems: c } =
|
|
265
|
+
onDownloadFiles: se,
|
|
266
|
+
onDeleteFiles: ce,
|
|
267
|
+
onRenameValidate: le,
|
|
268
|
+
onMoveToFiles: _((e, n, i) => {
|
|
269
|
+
if (e.length === 0 || J || X || K) return;
|
|
270
|
+
let { renameDtos: s, preparedMoveItems: c } = p(e, O, k), l = c.map(({ dto: e }) => e), u = new AbortController();
|
|
269
271
|
l.length > 0 && (Z.current = u), (async () => {
|
|
270
|
-
s.length > 0 &&
|
|
271
|
-
let [
|
|
272
|
+
s.length > 0 && q(!0), l.length > 0 && ae(!0);
|
|
273
|
+
let [e, n] = await Promise.all([(async () => {
|
|
272
274
|
if (s.length === 0) return {
|
|
273
275
|
results: [],
|
|
274
276
|
threw: !1
|
|
275
277
|
};
|
|
276
278
|
try {
|
|
277
|
-
let { results: e } = await
|
|
279
|
+
let { results: e } = await D.renameFiles(s);
|
|
278
280
|
return {
|
|
279
281
|
results: e,
|
|
280
282
|
threw: !1
|
|
@@ -292,7 +294,7 @@ var E = ({ filesApi: E, bucket: D, rootLabel: O, activeTab: k, folderPath: A, cu
|
|
|
292
294
|
aborted: !1
|
|
293
295
|
};
|
|
294
296
|
try {
|
|
295
|
-
let { results: e } = await
|
|
297
|
+
let { results: e } = await D.moveFiles(l, u.signal);
|
|
296
298
|
return {
|
|
297
299
|
results: e,
|
|
298
300
|
threw: !1,
|
|
@@ -305,60 +307,60 @@ var E = ({ filesApi: E, bucket: D, rootLabel: O, activeTab: k, folderPath: A, cu
|
|
|
305
307
|
aborted: u.signal.aborted
|
|
306
308
|
};
|
|
307
309
|
}
|
|
308
|
-
})()]), d =
|
|
310
|
+
})()]), d = e.threw ? s.length : e.results.filter((e) => !e.success).length, f = n.threw && n.aborted, p = f ? 0 : l.length, h = f ? 0 : n.threw ? l.length : n.results.filter((e) => !e.success).length, _ = n.threw ? 0 : n.results.filter((e) => e.success).length, v = s.length + p, y = d + h, b = h > 0;
|
|
309
311
|
if (_ > 0) {
|
|
310
|
-
let e =
|
|
311
|
-
|
|
312
|
-
kind: _ === 1 ?
|
|
312
|
+
let e = m(c, n.results);
|
|
313
|
+
B?.({
|
|
314
|
+
kind: _ === 1 ? r.FileMoved : r.FilesMoved,
|
|
313
315
|
name: e?.destinationName,
|
|
314
316
|
count: _,
|
|
315
317
|
isFolder: e?.dto.nodeType === ee.Folder,
|
|
316
|
-
destinationFolderName: i
|
|
318
|
+
destinationFolderName: a(i, k)
|
|
317
319
|
});
|
|
318
320
|
}
|
|
319
321
|
if (s.length === 1 && d === 0) {
|
|
320
322
|
let [e] = s;
|
|
321
|
-
|
|
322
|
-
kind:
|
|
323
|
-
name:
|
|
324
|
-
isFolder: e.nodeType ===
|
|
323
|
+
B?.({
|
|
324
|
+
kind: r.FileRenamed,
|
|
325
|
+
name: o(e.destinationPath, e.destinationPath),
|
|
326
|
+
isFolder: e.nodeType === C.Folder
|
|
325
327
|
});
|
|
326
328
|
}
|
|
327
|
-
y > 0 && (y === v ?
|
|
328
|
-
variant:
|
|
329
|
-
reason: b ?
|
|
330
|
-
}) :
|
|
331
|
-
variant:
|
|
332
|
-
reason: b ?
|
|
329
|
+
y > 0 && (y === v ? z?.({
|
|
330
|
+
variant: w.Error,
|
|
331
|
+
reason: b ? t.MoveFailed : t.RenameFailed
|
|
332
|
+
}) : z?.({
|
|
333
|
+
variant: w.Error,
|
|
334
|
+
reason: b ? t.MovePartiallyFailed : t.RenamePartiallyFailed,
|
|
333
335
|
count: y
|
|
334
336
|
}));
|
|
335
|
-
let x = s.find((
|
|
337
|
+
let x = s.find((t) => t.nodeType === C.Folder && e.results.some((e) => e.success && e.sourcePath === t.sourcePath));
|
|
336
338
|
if (x != null) {
|
|
337
339
|
let e = x.sourcePath.endsWith("/") ? x.sourcePath : `${x.sourcePath}/`;
|
|
338
|
-
if (
|
|
340
|
+
if (j === e || j.startsWith(e)) {
|
|
339
341
|
let t = x.destinationPath.endsWith("/") ? x.destinationPath : `${x.destinationPath}/`;
|
|
340
|
-
|
|
342
|
+
R(j.replace(e, t));
|
|
341
343
|
}
|
|
342
344
|
}
|
|
343
|
-
|
|
345
|
+
F([...new Set([...s, ...l].flatMap((e) => [g(e.sourcePath), g(e.destinationPath)]))]), I(), q(!1), ae(!1), l.length > 0 && (Z.current = null);
|
|
344
346
|
})();
|
|
345
347
|
}, [
|
|
346
|
-
D,
|
|
347
348
|
O,
|
|
348
|
-
|
|
349
|
+
k,
|
|
350
|
+
j,
|
|
351
|
+
B,
|
|
349
352
|
z,
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
G,
|
|
355
|
-
P,
|
|
353
|
+
D,
|
|
354
|
+
J,
|
|
355
|
+
X,
|
|
356
|
+
K,
|
|
356
357
|
F,
|
|
357
|
-
|
|
358
|
+
I,
|
|
359
|
+
R
|
|
358
360
|
]),
|
|
359
|
-
onCopyFiles:
|
|
360
|
-
cancelCopyMove:
|
|
361
|
+
onCopyFiles: ue,
|
|
362
|
+
cancelCopyMove: de
|
|
361
363
|
};
|
|
362
364
|
};
|
|
363
365
|
//#endregion
|
|
364
|
-
export {
|
|
366
|
+
export { D as useDialFileMutations };
|
package/index.d.ts
CHANGED
|
@@ -817,9 +817,11 @@ declare interface CodeCanvasContent {
|
|
|
817
817
|
language?: string;
|
|
818
818
|
}
|
|
819
819
|
|
|
820
|
-
export declare const
|
|
820
|
+
export declare const COLUMNS_MY_FILES: FileManagerColumnKey[];
|
|
821
821
|
|
|
822
|
-
export declare const
|
|
822
|
+
export declare const COLUMNS_ORGANIZATION: FileManagerColumnKey[];
|
|
823
|
+
|
|
824
|
+
export declare const COLUMNS_SHARED: FileManagerColumnKey[];
|
|
823
825
|
|
|
824
826
|
/**
|
|
825
827
|
* Composes the "Add locale" popup's entries into the write-payload shape:
|
package/index.js
CHANGED
|
@@ -105,46 +105,46 @@ import { useConversationStream as ni } from "./conversation/useConversationStrea
|
|
|
105
105
|
import { useConversationSources as ri } from "./conversation-sources/useConversationSources/useConversationSources.js";
|
|
106
106
|
import { DialFilesApiUploadMode as ii } from "./files/dial-files-api.js";
|
|
107
107
|
import { FileManagerNotificationReason as ai, FileNameValidationErrorReason as oi, FileOperationKind as si } from "./files/dial-file-manager.types.js";
|
|
108
|
-
import {
|
|
109
|
-
import { buildSharedItemVirtualPath as
|
|
110
|
-
import { resolveDialFileApiPath as
|
|
111
|
-
import { prepareCopyItems as
|
|
112
|
-
import { buildFromCache as
|
|
113
|
-
import { createFilesApiClient as
|
|
114
|
-
import { createUploadFileWithProgress as
|
|
115
|
-
import { openAnnotationAttachment as
|
|
116
|
-
import { annotationToOoxmlCanvasContent as
|
|
117
|
-
import { getUrlFileName as
|
|
118
|
-
import { annotationToDisplayAttachment as
|
|
119
|
-
import { dialFileToAttachment as
|
|
120
|
-
import { DownloadDestinationType as
|
|
121
|
-
import { prepareDownloadDestination as
|
|
122
|
-
import { deriveActionProfile as
|
|
123
|
-
import { useDialFileListing as
|
|
124
|
-
import { useDialFileMetadata as
|
|
125
|
-
import { useDialFileMutations as
|
|
126
|
-
import { useDialFileSharing as
|
|
127
|
-
import { useDialFileUploadBatch as
|
|
128
|
-
import { useDialFileManager as
|
|
129
|
-
import { useDialFileManagerSections as
|
|
130
|
-
import { useDialFileManagerTabConfig as
|
|
131
|
-
import { useFileAttachmentPicker as
|
|
132
|
-
import { getBrowserTimezone as
|
|
133
|
-
import { isValidAbsoluteUrl as
|
|
134
|
-
import { buildExternalServiceScopeId as
|
|
135
|
-
import { useChatSettingsFormConfig as
|
|
136
|
-
import { usePageFileDrag as
|
|
137
|
-
import { useViewportWidth as
|
|
138
|
-
import { usePanelMaxWidth as
|
|
139
|
-
import { useShareLink as
|
|
140
|
-
import { useToolsMenu as
|
|
141
|
-
import { USAGE_DATA_I18N_KEYS as
|
|
142
|
-
import { USAGE_MODEL_LIMITS_I18N_KEYS as
|
|
143
|
-
import { useUsageData as
|
|
144
|
-
import { McpAppResourceFetchError as
|
|
145
|
-
import { useMcpAppTools as
|
|
146
|
-
import { useMcpAppHostContext as
|
|
147
|
-
import { useMcpAppHostAdapter as
|
|
148
|
-
import { useOpenMcpAppCanvas as
|
|
149
|
-
import { useGridEditingScroll as
|
|
150
|
-
export { x as AttachmentValidationErrorReason, Pr as AudioTranscriptionError, Fr as AudioTranscriptionErrorReason, B as AuthenticationType, ci as COLUMNS_WITHOUT_AUTHOR, li as COLUMNS_WITH_AUTHOR, ui as CORE_PERMISSION_MAP, Ct as CatalogPrimaryActionType, T as ConversationExportMode, E as ConversationTransferErrorCode, D as ConversationTransferWarningCode, di as DATE_OPTIONS, he as DEFAULT_ENTITY_DETAILS_LABELS, en as DEFAULT_GENERATION_CONFLICT_MESSAGE, tn as DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE, Lr as DEFAULT_MAX_ARCHIVE_BYTES, nn as DEFAULT_STREAM_IDLE_TIMEOUT_MS, fi as DIAL_FILE_MANAGER_SECTION_TABS, ii as DialFilesApiUploadMode, ya as DownloadDestinationType, k as EXPORT_APP_NAME, O as ExportFileNameKind, Kt as FavoriteEntityType, ai as FileManagerNotificationReason, oi as FileNameValidationErrorReason, si as FileOperationKind, rn as GenerationConflictError, an as GenerationPersistenceError, Xa as McpAppResourceFetchError, ct as McpResourceKind, W as OAuthResourceKind, pi as PATH_SEPARATOR_REGEXP, Fn as PROMPT_CONTENT_MAX_LENGTH, In as PROMPT_COUNTER_ANNOUNCE_THRESHOLD, Ln as PROMPT_DESCRIPTION_MAX_LENGTH, Rn as PROMPT_NAME_MAX_LENGTH, Je as PUBLIC_SKILL_BUCKET, zn as PromptFieldError, Ce as PromptSource, mi as RESERVED_MARKER_NAME, br as RecipientsCountStatus, Oe as SKILL_FILE_UPLOAD_MAX_BYTES, ke as SKILL_FOLDER_MARKER, Ye as SKILL_LISTING_MAX_PAGES, Xe as SKILL_LISTING_PAGE_SIZE, Ae as SKILL_MANIFEST_FILE, Ze as SKILL_MANIFEST_MAX_BYTES, je as SKILL_TEXT_FIELD_MAX_LENGTHS, Me as SKILL_UPLOAD_MAX_FILES, Ne as SKILL_UPLOAD_MAX_TOTAL_BYTES, qn as ScheduledTaskTriggerDescriptionKind, hr as SkillArchiveImportErrorKind, gr as SkillArchiveImportStatus, _r as SkillArchiveSelectionRejectionReason, cr as SkillEditorLoadState, fr as SkillPreviewErrorKind, Qe as SkillSource, on as StreamInterruptedError, sn as StreamUpstreamError, G as TOOLSET_REDIRECT_STATE_KEY, K as ToolsetAuthStatus, q as ToolsetAuthTypes, J as ToolsetCredentialsLevel, Vt as ToolsetLoginOutcomeType, Y as ToolsetOAuthCallbackQuery, X as ToolsetOAuthChannelControlType, Z as ToolsetOAuthFailureReason, Q as ToolsetOAuthInitiationResultType, $ as ToolsetOAuthResultType, hi as UPLOAD_CONCURRENCY, Wa as USAGE_DATA_I18N_KEYS, Ka as USAGE_MODEL_LIMITS_I18N_KEYS, Kn as UnsupportedTriggerReason, ee as WithLogin, pa as annotationToDisplayAttachment, Yi as annotationToOoxmlCanvasContent, Xi as annotationToPdfCanvasContent, Yn as apSchedulerDayToJsDay, se as appendLocaleCode, $r as applyChunkToMessages, ma as attachmentDtoToDisplayAttachment, ha as attachmentDtosToDisplayAttachments, zr as attachmentToDto, Br as attachmentsToDtos, ce as buildAdditionalLocaleOptions, Yt as buildAnnouncementSignature, lt as buildApplicationMcpUrl, N as buildChatCompletionsUrl, ut as buildConnectApi, P as buildDeploymentConnectApi, Fa as buildExternalServiceScopeId, Li as buildFromCache, Mn as buildPromptExportEnvelope, Nn as buildPromptExportFileName, Te as buildPromptOverview, Bn as buildPromptPath, V as buildResetFields, F as buildResponsesUrl, gi as buildSharedItemVirtualPath, et as buildSkillContentTree, Pe as buildSkillFilesPayload, Fe as buildSkillManifest, Ie as buildSkillManifestForSubmit, Le as buildSkillManifestFromFrontmatter, tt as buildSkillOverview, It as buildToolsetAuthorizeUrl, dt as buildToolsetMcpUrl, vr as classifySkillArchiveImportError, Zi as clearAttachmentCache, le as composeLocalePayload, cn as createChatStreamApi, i as createCsrfMiddleware, gn as createDeploymentChangedMessage, Ki as createFilesApiClient, Za as createMcpAppsApiClient, Vr as createMessagePair, j as createPublishApiClient, nr as createScheduledTasksApiClient, a as createUnauthorizedMiddleware, qi as createUploadFileWithProgress, I as decodeDeploymentId, te as decodeToolsetId, ue as decomposeLocalizedFields, xa as deriveActionProfile, vt as deriveAvailableTabIds, Sr as deriveConversationRowActionState, yt as deriveFavoriteItems, Jn as describeScheduledTaskTrigger, _i as dialCorePathToRelative, ga as dialFileToAttachment, _a as dialFilesToAttachments, va as dialFolderPathToAttachment, m as downloadAttachment, Mt as emitToolsetLoginSuccess, L as encodeDeploymentId, ne as encodeToolsetId, Ri as fetchByTab, zi as fetchForSearch, bt as filterCatalogItemsBySelector, xt as filterHiddenOwnedItems, R as findDeploymentByIdOrReference, fn as findDeploymentForConversationId, vi as findDialFileByPath, Bi as findFirstSuccessfulCopyMoveItem, yi as findFolderByVirtualPath, un as formatAppVersion, pe as formatCalendarDate, C as formatDateYM, w as formatDateYMD, bi as formatOperationFolderName, A as formatQuotedNameList, e as getApiErrorDetails, t as getApiErrorMessage, n as getApiErrorStatus, ja as getBrowserTimezone, Yr as getConversationPath, Er as getConversationSource, Ia as getExternalServiceFallbackName, _n as getFormSchemaToolSyncKey, vn as getLastDeploymentId, yn as getLastUserMessageToolConfiguration, bn as getLatestToolConfiguration, pn as getModelIdCandidatesFromConversationId, mn as getModelIdFromConversationId, pt as getPublicCatalogEntityFolderPath, En as getQuickAppConversationStarters, Vn as getRemainingCharacters, Tt as getRunnerSchemas, Re as getSkillFieldLengthViolations, Kr as getStarterConversationText, qr as getStarterDisplayText, kn as getStarterPopulateText, Jr as getStarterSubmitText, An as getStartersFromSchema, hn as getTimeOfDayGreeting, xn as getToolConfigurationFromFormSchema, Pt as getToolsetOAuthChannelName, Lt as getToolsetRedirectUri, ua as getUrlFileName, xi as getVirtualPathName, Hr as hasActiveToolConfig, Xt as hasAnnouncementContent, Qi as hasAttachmentTextSource, Si as hasDialFileWritePermission, Ci as hasForbiddenNameSymbols, wi as hasSamePaths, Zt as hasStructuredAnnouncement, o as includesIgnoreCase, Rt as initiateOAuthLogin, Ur as isAnswerIncomplete, ti as isAwaitingGenerationResume, r as isConversationNotFoundError, Ti as isCopyMoveDuplicateAllowed, Et as isCustomAppSchema, _ as isDialFileAcceptType, d as isDialFileId, h as isDownloadableAttachment, da as isExternalSourcePreviewable, Wr as isMessageChanged, Sn as isMessageStreaming, Ee as isOrganisationPromptItem, mt as isPublicCatalogEntityId, re as isPublicToolsetId, Dt as isQuickAppSchema, Ei as isShareActionsAllowed, ze as isSkillFolderMarkerPath, Ma as isValidAbsoluteUrl, Na as isValidFeaturesData, Be as isValidSkillRelativePath, Xn as jsDayToApSchedulerDay, Vi as mapCorePermissions, ge as mapDeploymentDetailsDtoToEntityDetails, U as mapDeploymentLimitsDtoToCatalogLimits, H as mapDeploymentLimitsToInput, ye as mapDeploymentToCatalogItem, be as mapDeploymentToolsetCredentials, _e as mapEntityDetailsToCatalogDetails, Hi as mapFileMetadataToDialFile, Zn as mapFormValuesToCreateBody, Qn as mapFormValuesToUpdateBody, qa as mapOverallCostLimitsToPeriodStatuses, De as mapPromptToCatalogItem, ht as mapPublishConversationResultDto, gt as mapPublishHistoryEntryDto, $n as mapScheduledTaskDtoToFormValues, Ui as mapSearchItem, nt as mapSkillToCatalogItem, Dn as mapStages, ve as mapToolsetCredentials, xe as mapToolsetToCatalogItem, Ga as mapUsageDataToDashboard, Ja as mapUserUsageToModelLimits, Wi as mergeCreatedFolderIntoCache, ir as mergeRunsById, ei as mergeStages, Cn as messageHasStages, v as mimeTypesToAttachmentExtensionLabels, y as mimeTypesToDialFileAcceptTypes, b as mimeTypesToFileAccept, Ve as nameFromPath, zt as navigateToolsetOAuthPopup, z as normalizeDeploymentId, wn as normalizeResponseFormat, He as normalizeSkillName, ie as normalizeToolsetId, Di as normalizeVirtualPath, Ji as openAnnotationAttachment, Bt as openToolsetOAuthPopup, me as padTwoDigits, La as parseExternalServiceUrl, Pa as parseFeaturesData, Oi as parseNewFolderVirtualPath, we as parsePromptResourceUrl, Ue as parseSkillManifest, kt as parseSkillManifestDocument, $e as parseSkillResourceUrl, Fi as prepareCopyItems, ba as prepareDownloadDestination, Ii as prepareMoveRenameItems, er as prepareScheduledTaskCreateBody, tr as prepareScheduledTaskUpdateBody, rt as readSkillFileBytes, it as readSkillFilePreviewBytes, at as readSkillManifest, St as reconcileFilterTopics, $i as referenceAttachmentToPdfCanvasContent, wt as resolveCatalogPrimaryAction, ea as resolveCodeCanvasContent, Se as resolveDeploymentFolder, Ni as resolveDialFileApiPath, f as resolveDialFileBucketAndPath, fa as resolveExternalSourceContentType, ta as resolveGroupedVisualizerCanvasContent, na as resolveHtmlCanvasContent, ra as resolveImageCanvasContent, ia as resolveJsonCanvasContent, de as resolveLocalizedText, aa as resolveMarkdownCanvasContent, ft as resolveMcpResourceKind, oa as resolveOoxmlCanvasContent, ki as resolveOwnerCoords, sa as resolvePdfCanvasContent, p as resolveRelativeDialFilePath, Ai as resolveSectionByPath, ot as resolveSkillFileDownloadPath, st as resolveSkillManifestFileId, ca as resolveTextCanvasContent, ae as resolveToolsetCredentialsLevel, la as resolveVisualizerCanvasContent, s as safeDecodeURI, c as safeDecodeURIComponent, Qt as sanitizeAnnouncementHtml, $t as sanitizeAnnouncementMessageHtml, Ar as sanitizeFileName, dn as sanitizeFooterHtml, oe as selectToolsetAuthStatus, Pn as serializePromptExport, Gr as shouldRerunGenerationOnEdit, ln as shouldWatchForDisplayNameUpdate, We as skillFileBytesToBlob, sr as skillFileToAttachment, Ge as skillFolderMarkerParent, jr as splitFileNameExtension, Ke as startsWithFrontmatterBlock, l as stripSurroundingSlashes, u as stripTrailingSlashes, Nt as subscribeToolsetLoginSuccess, fe as toBaseLocale, Tn as toOverlayMessages, _t as toPublishEntityType, M as toPublishRuleDto, On as toStage, Mr as trimFileNameToByteLimit, ji as unionPathSets, qe as unpackSkillArchive, Gi as updateEntry, Cr as useActiveConversationSync, Wt as useApplicationCredentials, wr as useAsyncConfirmDialog, g as useAttachmentAction, Nr as useAttachmentUpload, S as useAttachmentValidation, Ot as useCatalogEditNavigation, jt as useCatalogItemDetails, Ut as useCatalogToolsetCredentials, Ra as useChatSettingsFormConfig, Rr as useConversationExport, Xr as useConversationHandlers, Zr as useConversationImport, Tr as useConversationLookupMaps, Dr as useConversationPanelItems, Qr as useConversationScroll, ri as useConversationSources, ni as useConversationStream, Sa as useDialFileListing, Da as useDialFileManager, Oa as useDialFileManagerSections, ka as useDialFileManagerTabConfig, Ca as useDialFileMetadata, wa as useDialFileMutations, Ta as useDialFileSharing, Ea as useDialFileUploadBatch, qt as useFavoriteEntitiesState, Aa as useFileAttachmentPicker, no as useGridEditingScroll, Or as useImportFilePicker, eo as useMcpAppHostAdapter, $a as useMcpAppHostContext, Qa as useMcpAppTools, kr as useMessageSelectionReply, jn as useOAuthCallbackCompletion, to as useOpenMcpAppCanvas, za as usePageFileDrag, Va as usePanelMaxWidth, Gn as usePromptsState, Jt as usePublishFolders, ar as useScheduledTaskRuns, rr as useScheduledTasks, Ha as useShareLink, xr as useShareRecipientsCount, yr as useSkillArchiveImport, Gt as useSkillDetailsPanelData, lr as useSkillEditorLoad, ur as useSkillEditorSubmit, dr as useSkillFileActions, pr as useSkillFilePreview, At as useSkillItemDetails, mr as useSkillsState, Ua as useToolsMenu, Ht as useToolsetLogin, Ir as useTranscribeAudio, Ya as useUsageData, Ba as useViewportWidth, Hn as validatePromptContent, Un as validatePromptDescription, Wn as validatePromptName, or as validateSkillFileBatch, Pi as virtualPathToApiPath, Ft as waitForToolsetOAuthResult, Mi as withRoutableRootLabels };
|
|
108
|
+
import { COLUMNS_MY_FILES as ci, COLUMNS_ORGANIZATION as li, COLUMNS_SHARED as ui, CORE_PERMISSION_MAP as di, DATE_OPTIONS as fi, DIAL_FILE_MANAGER_SECTION_TABS as pi, PATH_SEPARATOR_REGEXP as mi, RESERVED_MARKER_NAME as hi, UPLOAD_CONCURRENCY as gi } from "./files/dial-file-manager.model.js";
|
|
109
|
+
import { buildSharedItemVirtualPath as _i, dialCorePathToRelative as vi, findDialFileByPath as yi, findFolderByVirtualPath as bi, formatOperationFolderName as xi, getVirtualPathName as Si, hasDialFileWritePermission as Ci, hasForbiddenNameSymbols as wi, hasSamePaths as Ti, isCopyMoveDuplicateAllowed as Ei, isShareActionsAllowed as Di, normalizeVirtualPath as Oi, parseNewFolderVirtualPath as ki, resolveOwnerCoords as Ai, resolveSectionByPath as ji, unionPathSets as Mi, withRoutableRootLabels as Ni } from "./files/dial-file-manager-path.util.js";
|
|
110
|
+
import { resolveDialFileApiPath as Pi, virtualPathToApiPath as Fi } from "./files/resolve-dial-file-api-path.js";
|
|
111
|
+
import { prepareCopyItems as Ii, prepareMoveRenameItems as Li } from "./files/dial-file-manager-copy-move.util.js";
|
|
112
|
+
import { buildFromCache as Ri, fetchByTab as zi, fetchForSearch as Bi, findFirstSuccessfulCopyMoveItem as Vi, mapCorePermissions as Hi, mapFileMetadataToDialFile as Ui, mapSearchItem as Wi, mergeCreatedFolderIntoCache as Gi, updateEntry as Ki } from "./files/dial-file-manager-mapping.util.js";
|
|
113
|
+
import { createFilesApiClient as qi } from "./files/create-files-api.js";
|
|
114
|
+
import { createUploadFileWithProgress as Ji } from "./files/create-upload-file-with-progress.js";
|
|
115
|
+
import { openAnnotationAttachment as Yi } from "./files/annotation.js";
|
|
116
|
+
import { annotationToOoxmlCanvasContent as Xi, annotationToPdfCanvasContent as Zi, clearAttachmentCache as Qi, hasAttachmentTextSource as $i, referenceAttachmentToPdfCanvasContent as ea, resolveCodeCanvasContent as ta, resolveGroupedVisualizerCanvasContent as na, resolveHtmlCanvasContent as ra, resolveImageCanvasContent as ia, resolveJsonCanvasContent as aa, resolveMarkdownCanvasContent as oa, resolveOoxmlCanvasContent as sa, resolvePdfCanvasContent as ca, resolveTextCanvasContent as la, resolveVisualizerCanvasContent as ua } from "./files/attachment-canvas.js";
|
|
117
|
+
import { getUrlFileName as da, isExternalSourcePreviewable as fa, resolveExternalSourceContentType as pa } from "./files/source-content.js";
|
|
118
|
+
import { annotationToDisplayAttachment as ma, attachmentDtoToDisplayAttachment as ha, attachmentDtosToDisplayAttachments as ga } from "./files/attachment-dto-to-display.js";
|
|
119
|
+
import { dialFileToAttachment as _a, dialFilesToAttachments as va, dialFolderPathToAttachment as ya } from "./files/dial-file-to-attachment.js";
|
|
120
|
+
import { DownloadDestinationType as ba } from "./files/download-destination.js";
|
|
121
|
+
import { prepareDownloadDestination as xa } from "./files/prepare-download-destination.js";
|
|
122
|
+
import { deriveActionProfile as Sa } from "./files/file-manager-variant.js";
|
|
123
|
+
import { useDialFileListing as Ca } from "./files/useDialFileListing/useDialFileListing.js";
|
|
124
|
+
import { useDialFileMetadata as wa } from "./files/useDialFileMetadata/useDialFileMetadata.js";
|
|
125
|
+
import { useDialFileMutations as Ta } from "./files/useDialFileMutations/useDialFileMutations.js";
|
|
126
|
+
import { useDialFileSharing as Ea } from "./files/useDialFileSharing/useDialFileSharing.js";
|
|
127
|
+
import { useDialFileUploadBatch as Da } from "./files/useDialFileUploadBatch/useDialFileUploadBatch.js";
|
|
128
|
+
import { useDialFileManager as Oa } from "./files/useDialFileManager/useDialFileManager.js";
|
|
129
|
+
import { useDialFileManagerSections as ka } from "./files/useDialFileManagerSections/useDialFileManagerSections.js";
|
|
130
|
+
import { useDialFileManagerTabConfig as Aa } from "./files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.js";
|
|
131
|
+
import { useFileAttachmentPicker as ja } from "./files/useFileAttachmentPicker/useFileAttachmentPicker.js";
|
|
132
|
+
import { getBrowserTimezone as Ma } from "./shared/browser-timezone.js";
|
|
133
|
+
import { isValidAbsoluteUrl as Na, isValidFeaturesData as Pa, parseFeaturesData as Fa } from "./shared/custom-apps.js";
|
|
134
|
+
import { buildExternalServiceScopeId as Ia, getExternalServiceFallbackName as La, parseExternalServiceUrl as Ra } from "./shared/external-services.js";
|
|
135
|
+
import { useChatSettingsFormConfig as za } from "./useChatSettingsFormConfig/useChatSettingsFormConfig.js";
|
|
136
|
+
import { usePageFileDrag as Ba } from "./usePageFileDrag/usePageFileDrag.js";
|
|
137
|
+
import { useViewportWidth as Va } from "./useViewportWidth/useViewportWidth.js";
|
|
138
|
+
import { usePanelMaxWidth as Ha } from "./usePanelMaxWidth/usePanelMaxWidth.js";
|
|
139
|
+
import { useShareLink as Ua } from "./useShareLink/useShareLink.js";
|
|
140
|
+
import { useToolsMenu as Wa } from "./useToolsMenu/useToolsMenu.js";
|
|
141
|
+
import { USAGE_DATA_I18N_KEYS as Ga, mapUsageDataToDashboard as Ka } from "./usage/map-usage-data-to-dashboard.js";
|
|
142
|
+
import { USAGE_MODEL_LIMITS_I18N_KEYS as qa, mapOverallCostLimitsToPeriodStatuses as Ja, mapUserUsageToModelLimits as Ya } from "./usage/map-user-usage-to-model-limits.js";
|
|
143
|
+
import { useUsageData as Xa } from "./usage/useUsageData/useUsageData.js";
|
|
144
|
+
import { McpAppResourceFetchError as Za, createMcpAppsApiClient as Qa } from "./mcp-apps/mcp-apps-api-client.js";
|
|
145
|
+
import { useMcpAppTools as $a } from "./mcp-apps/useMcpAppTools/useMcpAppTools.js";
|
|
146
|
+
import { useMcpAppHostContext as eo } from "./mcp-apps/useMcpAppHostContext/useMcpAppHostContext.js";
|
|
147
|
+
import { useMcpAppHostAdapter as to } from "./mcp-apps/useMcpAppHostAdapter/useMcpAppHostAdapter.js";
|
|
148
|
+
import { useOpenMcpAppCanvas as no } from "./mcp-apps/useOpenMcpAppCanvas/useOpenMcpAppCanvas.js";
|
|
149
|
+
import { useGridEditingScroll as ro } from "@epam/ai-dial-chat-shared";
|
|
150
|
+
export { x as AttachmentValidationErrorReason, Pr as AudioTranscriptionError, Fr as AudioTranscriptionErrorReason, B as AuthenticationType, ci as COLUMNS_MY_FILES, li as COLUMNS_ORGANIZATION, ui as COLUMNS_SHARED, di as CORE_PERMISSION_MAP, Ct as CatalogPrimaryActionType, T as ConversationExportMode, E as ConversationTransferErrorCode, D as ConversationTransferWarningCode, fi as DATE_OPTIONS, he as DEFAULT_ENTITY_DETAILS_LABELS, en as DEFAULT_GENERATION_CONFLICT_MESSAGE, tn as DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE, Lr as DEFAULT_MAX_ARCHIVE_BYTES, nn as DEFAULT_STREAM_IDLE_TIMEOUT_MS, pi as DIAL_FILE_MANAGER_SECTION_TABS, ii as DialFilesApiUploadMode, ba as DownloadDestinationType, k as EXPORT_APP_NAME, O as ExportFileNameKind, Kt as FavoriteEntityType, ai as FileManagerNotificationReason, oi as FileNameValidationErrorReason, si as FileOperationKind, rn as GenerationConflictError, an as GenerationPersistenceError, Za as McpAppResourceFetchError, ct as McpResourceKind, W as OAuthResourceKind, mi as PATH_SEPARATOR_REGEXP, Fn as PROMPT_CONTENT_MAX_LENGTH, In as PROMPT_COUNTER_ANNOUNCE_THRESHOLD, Ln as PROMPT_DESCRIPTION_MAX_LENGTH, Rn as PROMPT_NAME_MAX_LENGTH, Je as PUBLIC_SKILL_BUCKET, zn as PromptFieldError, Ce as PromptSource, hi as RESERVED_MARKER_NAME, br as RecipientsCountStatus, Oe as SKILL_FILE_UPLOAD_MAX_BYTES, ke as SKILL_FOLDER_MARKER, Ye as SKILL_LISTING_MAX_PAGES, Xe as SKILL_LISTING_PAGE_SIZE, Ae as SKILL_MANIFEST_FILE, Ze as SKILL_MANIFEST_MAX_BYTES, je as SKILL_TEXT_FIELD_MAX_LENGTHS, Me as SKILL_UPLOAD_MAX_FILES, Ne as SKILL_UPLOAD_MAX_TOTAL_BYTES, qn as ScheduledTaskTriggerDescriptionKind, hr as SkillArchiveImportErrorKind, gr as SkillArchiveImportStatus, _r as SkillArchiveSelectionRejectionReason, cr as SkillEditorLoadState, fr as SkillPreviewErrorKind, Qe as SkillSource, on as StreamInterruptedError, sn as StreamUpstreamError, G as TOOLSET_REDIRECT_STATE_KEY, K as ToolsetAuthStatus, q as ToolsetAuthTypes, J as ToolsetCredentialsLevel, Vt as ToolsetLoginOutcomeType, Y as ToolsetOAuthCallbackQuery, X as ToolsetOAuthChannelControlType, Z as ToolsetOAuthFailureReason, Q as ToolsetOAuthInitiationResultType, $ as ToolsetOAuthResultType, gi as UPLOAD_CONCURRENCY, Ga as USAGE_DATA_I18N_KEYS, qa as USAGE_MODEL_LIMITS_I18N_KEYS, Kn as UnsupportedTriggerReason, ee as WithLogin, ma as annotationToDisplayAttachment, Xi as annotationToOoxmlCanvasContent, Zi as annotationToPdfCanvasContent, Yn as apSchedulerDayToJsDay, se as appendLocaleCode, $r as applyChunkToMessages, ha as attachmentDtoToDisplayAttachment, ga as attachmentDtosToDisplayAttachments, zr as attachmentToDto, Br as attachmentsToDtos, ce as buildAdditionalLocaleOptions, Yt as buildAnnouncementSignature, lt as buildApplicationMcpUrl, N as buildChatCompletionsUrl, ut as buildConnectApi, P as buildDeploymentConnectApi, Ia as buildExternalServiceScopeId, Ri as buildFromCache, Mn as buildPromptExportEnvelope, Nn as buildPromptExportFileName, Te as buildPromptOverview, Bn as buildPromptPath, V as buildResetFields, F as buildResponsesUrl, _i as buildSharedItemVirtualPath, et as buildSkillContentTree, Pe as buildSkillFilesPayload, Fe as buildSkillManifest, Ie as buildSkillManifestForSubmit, Le as buildSkillManifestFromFrontmatter, tt as buildSkillOverview, It as buildToolsetAuthorizeUrl, dt as buildToolsetMcpUrl, vr as classifySkillArchiveImportError, Qi as clearAttachmentCache, le as composeLocalePayload, cn as createChatStreamApi, i as createCsrfMiddleware, gn as createDeploymentChangedMessage, qi as createFilesApiClient, Qa as createMcpAppsApiClient, Vr as createMessagePair, j as createPublishApiClient, nr as createScheduledTasksApiClient, a as createUnauthorizedMiddleware, Ji as createUploadFileWithProgress, I as decodeDeploymentId, te as decodeToolsetId, ue as decomposeLocalizedFields, Sa as deriveActionProfile, vt as deriveAvailableTabIds, Sr as deriveConversationRowActionState, yt as deriveFavoriteItems, Jn as describeScheduledTaskTrigger, vi as dialCorePathToRelative, _a as dialFileToAttachment, va as dialFilesToAttachments, ya as dialFolderPathToAttachment, m as downloadAttachment, Mt as emitToolsetLoginSuccess, L as encodeDeploymentId, ne as encodeToolsetId, zi as fetchByTab, Bi as fetchForSearch, bt as filterCatalogItemsBySelector, xt as filterHiddenOwnedItems, R as findDeploymentByIdOrReference, fn as findDeploymentForConversationId, yi as findDialFileByPath, Vi as findFirstSuccessfulCopyMoveItem, bi as findFolderByVirtualPath, un as formatAppVersion, pe as formatCalendarDate, C as formatDateYM, w as formatDateYMD, xi as formatOperationFolderName, A as formatQuotedNameList, e as getApiErrorDetails, t as getApiErrorMessage, n as getApiErrorStatus, Ma as getBrowserTimezone, Yr as getConversationPath, Er as getConversationSource, La as getExternalServiceFallbackName, _n as getFormSchemaToolSyncKey, vn as getLastDeploymentId, yn as getLastUserMessageToolConfiguration, bn as getLatestToolConfiguration, pn as getModelIdCandidatesFromConversationId, mn as getModelIdFromConversationId, pt as getPublicCatalogEntityFolderPath, En as getQuickAppConversationStarters, Vn as getRemainingCharacters, Tt as getRunnerSchemas, Re as getSkillFieldLengthViolations, Kr as getStarterConversationText, qr as getStarterDisplayText, kn as getStarterPopulateText, Jr as getStarterSubmitText, An as getStartersFromSchema, hn as getTimeOfDayGreeting, xn as getToolConfigurationFromFormSchema, Pt as getToolsetOAuthChannelName, Lt as getToolsetRedirectUri, da as getUrlFileName, Si as getVirtualPathName, Hr as hasActiveToolConfig, Xt as hasAnnouncementContent, $i as hasAttachmentTextSource, Ci as hasDialFileWritePermission, wi as hasForbiddenNameSymbols, Ti as hasSamePaths, Zt as hasStructuredAnnouncement, o as includesIgnoreCase, Rt as initiateOAuthLogin, Ur as isAnswerIncomplete, ti as isAwaitingGenerationResume, r as isConversationNotFoundError, Ei as isCopyMoveDuplicateAllowed, Et as isCustomAppSchema, _ as isDialFileAcceptType, d as isDialFileId, h as isDownloadableAttachment, fa as isExternalSourcePreviewable, Wr as isMessageChanged, Sn as isMessageStreaming, Ee as isOrganisationPromptItem, mt as isPublicCatalogEntityId, re as isPublicToolsetId, Dt as isQuickAppSchema, Di as isShareActionsAllowed, ze as isSkillFolderMarkerPath, Na as isValidAbsoluteUrl, Pa as isValidFeaturesData, Be as isValidSkillRelativePath, Xn as jsDayToApSchedulerDay, Hi as mapCorePermissions, ge as mapDeploymentDetailsDtoToEntityDetails, U as mapDeploymentLimitsDtoToCatalogLimits, H as mapDeploymentLimitsToInput, ye as mapDeploymentToCatalogItem, be as mapDeploymentToolsetCredentials, _e as mapEntityDetailsToCatalogDetails, Ui as mapFileMetadataToDialFile, Zn as mapFormValuesToCreateBody, Qn as mapFormValuesToUpdateBody, Ja as mapOverallCostLimitsToPeriodStatuses, De as mapPromptToCatalogItem, ht as mapPublishConversationResultDto, gt as mapPublishHistoryEntryDto, $n as mapScheduledTaskDtoToFormValues, Wi as mapSearchItem, nt as mapSkillToCatalogItem, Dn as mapStages, ve as mapToolsetCredentials, xe as mapToolsetToCatalogItem, Ka as mapUsageDataToDashboard, Ya as mapUserUsageToModelLimits, Gi as mergeCreatedFolderIntoCache, ir as mergeRunsById, ei as mergeStages, Cn as messageHasStages, v as mimeTypesToAttachmentExtensionLabels, y as mimeTypesToDialFileAcceptTypes, b as mimeTypesToFileAccept, Ve as nameFromPath, zt as navigateToolsetOAuthPopup, z as normalizeDeploymentId, wn as normalizeResponseFormat, He as normalizeSkillName, ie as normalizeToolsetId, Oi as normalizeVirtualPath, Yi as openAnnotationAttachment, Bt as openToolsetOAuthPopup, me as padTwoDigits, Ra as parseExternalServiceUrl, Fa as parseFeaturesData, ki as parseNewFolderVirtualPath, we as parsePromptResourceUrl, Ue as parseSkillManifest, kt as parseSkillManifestDocument, $e as parseSkillResourceUrl, Ii as prepareCopyItems, xa as prepareDownloadDestination, Li as prepareMoveRenameItems, er as prepareScheduledTaskCreateBody, tr as prepareScheduledTaskUpdateBody, rt as readSkillFileBytes, it as readSkillFilePreviewBytes, at as readSkillManifest, St as reconcileFilterTopics, ea as referenceAttachmentToPdfCanvasContent, wt as resolveCatalogPrimaryAction, ta as resolveCodeCanvasContent, Se as resolveDeploymentFolder, Pi as resolveDialFileApiPath, f as resolveDialFileBucketAndPath, pa as resolveExternalSourceContentType, na as resolveGroupedVisualizerCanvasContent, ra as resolveHtmlCanvasContent, ia as resolveImageCanvasContent, aa as resolveJsonCanvasContent, de as resolveLocalizedText, oa as resolveMarkdownCanvasContent, ft as resolveMcpResourceKind, sa as resolveOoxmlCanvasContent, Ai as resolveOwnerCoords, ca as resolvePdfCanvasContent, p as resolveRelativeDialFilePath, ji as resolveSectionByPath, ot as resolveSkillFileDownloadPath, st as resolveSkillManifestFileId, la as resolveTextCanvasContent, ae as resolveToolsetCredentialsLevel, ua as resolveVisualizerCanvasContent, s as safeDecodeURI, c as safeDecodeURIComponent, Qt as sanitizeAnnouncementHtml, $t as sanitizeAnnouncementMessageHtml, Ar as sanitizeFileName, dn as sanitizeFooterHtml, oe as selectToolsetAuthStatus, Pn as serializePromptExport, Gr as shouldRerunGenerationOnEdit, ln as shouldWatchForDisplayNameUpdate, We as skillFileBytesToBlob, sr as skillFileToAttachment, Ge as skillFolderMarkerParent, jr as splitFileNameExtension, Ke as startsWithFrontmatterBlock, l as stripSurroundingSlashes, u as stripTrailingSlashes, Nt as subscribeToolsetLoginSuccess, fe as toBaseLocale, Tn as toOverlayMessages, _t as toPublishEntityType, M as toPublishRuleDto, On as toStage, Mr as trimFileNameToByteLimit, Mi as unionPathSets, qe as unpackSkillArchive, Ki as updateEntry, Cr as useActiveConversationSync, Wt as useApplicationCredentials, wr as useAsyncConfirmDialog, g as useAttachmentAction, Nr as useAttachmentUpload, S as useAttachmentValidation, Ot as useCatalogEditNavigation, jt as useCatalogItemDetails, Ut as useCatalogToolsetCredentials, za as useChatSettingsFormConfig, Rr as useConversationExport, Xr as useConversationHandlers, Zr as useConversationImport, Tr as useConversationLookupMaps, Dr as useConversationPanelItems, Qr as useConversationScroll, ri as useConversationSources, ni as useConversationStream, Ca as useDialFileListing, Oa as useDialFileManager, ka as useDialFileManagerSections, Aa as useDialFileManagerTabConfig, wa as useDialFileMetadata, Ta as useDialFileMutations, Ea as useDialFileSharing, Da as useDialFileUploadBatch, qt as useFavoriteEntitiesState, ja as useFileAttachmentPicker, ro as useGridEditingScroll, Or as useImportFilePicker, to as useMcpAppHostAdapter, eo as useMcpAppHostContext, $a as useMcpAppTools, kr as useMessageSelectionReply, jn as useOAuthCallbackCompletion, no as useOpenMcpAppCanvas, Ba as usePageFileDrag, Ha as usePanelMaxWidth, Gn as usePromptsState, Jt as usePublishFolders, ar as useScheduledTaskRuns, rr as useScheduledTasks, Ua as useShareLink, xr as useShareRecipientsCount, yr as useSkillArchiveImport, Gt as useSkillDetailsPanelData, lr as useSkillEditorLoad, ur as useSkillEditorSubmit, dr as useSkillFileActions, pr as useSkillFilePreview, At as useSkillItemDetails, mr as useSkillsState, Wa as useToolsMenu, Ht as useToolsetLogin, Ir as useTranscribeAudio, Xa as useUsageData, Va as useViewportWidth, Hn as validatePromptContent, Un as validatePromptDescription, Wn as validatePromptName, or as validateSkillFileBatch, Fi as virtualPathToApiPath, Ft as waitForToolsetOAuthResult, Ni as withRoutableRootLabels };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epam/ai-dial-chat-hooks",
|
|
3
3
|
"description": "Framework-level React hooks extracted from AI DIAL Chat for building custom chat interfaces",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.3.0-dev.10",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./index.js",
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
}
|
|
112
112
|
},
|
|
113
113
|
"dependencies": {
|
|
114
|
-
"@epam/ai-dial-chat-api-client": "1.
|
|
114
|
+
"@epam/ai-dial-chat-api-client": "1.3.0-dev.10",
|
|
115
115
|
"dompurify": "3.4.16",
|
|
116
116
|
"fflate": "^0.8.3",
|
|
117
117
|
"lru-cache": "^10.4.3",
|
|
@@ -120,21 +120,21 @@
|
|
|
120
120
|
},
|
|
121
121
|
"peerDependencies": {
|
|
122
122
|
"react": "^19.2.8",
|
|
123
|
-
"@epam/ai-dial-attachment-canvas": "1.
|
|
124
|
-
"@epam/ai-dial-attachment-input": "1.
|
|
125
|
-
"@epam/ai-dial-catalog": "1.
|
|
126
|
-
"@epam/ai-dial-chat-overlay": "1.
|
|
127
|
-
"@epam/ai-dial-chat-shared": "1.
|
|
128
|
-
"@epam/ai-dial-mcp-apps": "1.
|
|
129
|
-
"@epam/ai-dial-publish-panel": "1.
|
|
130
|
-
"@epam/ai-dial-quotations": "1.
|
|
123
|
+
"@epam/ai-dial-attachment-canvas": "1.3.0-dev.10",
|
|
124
|
+
"@epam/ai-dial-attachment-input": "1.3.0-dev.10",
|
|
125
|
+
"@epam/ai-dial-catalog": "1.3.0-dev.10",
|
|
126
|
+
"@epam/ai-dial-chat-overlay": "1.3.0-dev.10",
|
|
127
|
+
"@epam/ai-dial-chat-shared": "1.3.0-dev.10",
|
|
128
|
+
"@epam/ai-dial-mcp-apps": "1.3.0-dev.10",
|
|
129
|
+
"@epam/ai-dial-publish-panel": "1.3.0-dev.10",
|
|
130
|
+
"@epam/ai-dial-quotations": "1.3.0-dev.10",
|
|
131
131
|
"@epam/ai-dial-react-file-manager": "^0.3.0",
|
|
132
|
-
"@epam/ai-dial-scheduled-tasks": "1.
|
|
133
|
-
"@epam/ai-dial-share": "1.
|
|
134
|
-
"@epam/ai-dial-skill-editor": "1.
|
|
135
|
-
"@epam/ai-dial-source-panel": "1.
|
|
132
|
+
"@epam/ai-dial-scheduled-tasks": "1.3.0-dev.10",
|
|
133
|
+
"@epam/ai-dial-share": "1.3.0-dev.10",
|
|
134
|
+
"@epam/ai-dial-skill-editor": "1.3.0-dev.10",
|
|
135
|
+
"@epam/ai-dial-source-panel": "1.3.0-dev.10",
|
|
136
136
|
"@epam/ai-dial-ui-kit": "^0.15.0",
|
|
137
|
-
"@epam/ai-dial-usage-dashboard": "1.
|
|
137
|
+
"@epam/ai-dial-usage-dashboard": "1.3.0-dev.10",
|
|
138
138
|
"@modelcontextprotocol/sdk": "^1.32.1",
|
|
139
139
|
"@epam/pdf-highlighter-kit": "^0.0.19",
|
|
140
140
|
"@mcp-ui/client": "^7.1.1"
|