@memberjunction/ng-file-storage 3.1.0 → 3.2.0
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/dist/lib/file-browser/file-browser-demo.component.d.ts +10 -0
- package/dist/lib/file-browser/file-browser-demo.component.d.ts.map +1 -0
- package/dist/lib/file-browser/file-browser-demo.component.js +39 -0
- package/dist/lib/file-browser/file-browser-demo.component.js.map +1 -0
- package/dist/lib/file-browser/file-browser-resource.component.d.ts +30 -0
- package/dist/lib/file-browser/file-browser-resource.component.d.ts.map +1 -0
- package/dist/lib/file-browser/file-browser-resource.component.js +82 -0
- package/dist/lib/file-browser/file-browser-resource.component.js.map +1 -0
- package/dist/lib/file-browser/file-browser.component.d.ts +69 -0
- package/dist/lib/file-browser/file-browser.component.d.ts.map +1 -0
- package/dist/lib/file-browser/file-browser.component.js +132 -0
- package/dist/lib/file-browser/file-browser.component.js.map +1 -0
- package/dist/lib/file-browser/file-grid.component.d.ts +429 -0
- package/dist/lib/file-browser/file-grid.component.d.ts.map +1 -0
- package/dist/lib/file-browser/file-grid.component.js +2394 -0
- package/dist/lib/file-browser/file-grid.component.js.map +1 -0
- package/dist/lib/file-browser/folder-tree.component.d.ts +115 -0
- package/dist/lib/file-browser/folder-tree.component.d.ts.map +1 -0
- package/dist/lib/file-browser/folder-tree.component.js +364 -0
- package/dist/lib/file-browser/folder-tree.component.js.map +1 -0
- package/dist/lib/file-browser/storage-providers-list.component.d.ts +59 -0
- package/dist/lib/file-browser/storage-providers-list.component.d.ts.map +1 -0
- package/dist/lib/file-browser/storage-providers-list.component.js +235 -0
- package/dist/lib/file-browser/storage-providers-list.component.js.map +1 -0
- package/dist/lib/file-upload/file-upload.d.ts +19 -19
- package/dist/lib/module.d.ts +25 -18
- package/dist/lib/module.d.ts.map +1 -1
- package/dist/lib/module.js +44 -4
- package/dist/lib/module.js.map +1 -1
- package/dist/public-api.d.ts +3 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +6 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +9 -8
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
import { EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { StorageAccountWithProvider } from '@memberjunction/core-entities';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Represents a file or folder item in the grid
|
|
6
|
+
*/
|
|
7
|
+
export interface FileGridItem {
|
|
8
|
+
key: string;
|
|
9
|
+
name: string;
|
|
10
|
+
type: 'file' | 'folder';
|
|
11
|
+
size: number;
|
|
12
|
+
lastModified: Date;
|
|
13
|
+
contentType?: string;
|
|
14
|
+
etag?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Result from a single provider's search
|
|
18
|
+
*/
|
|
19
|
+
export interface FileSearchResultItem {
|
|
20
|
+
path: string;
|
|
21
|
+
name: string;
|
|
22
|
+
size: number;
|
|
23
|
+
contentType: string;
|
|
24
|
+
lastModified: string;
|
|
25
|
+
relevance?: number;
|
|
26
|
+
excerpt?: string;
|
|
27
|
+
matchInFilename?: boolean;
|
|
28
|
+
objectId?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Search results from a single account
|
|
32
|
+
*/
|
|
33
|
+
export interface AccountSearchResult {
|
|
34
|
+
accountID: string;
|
|
35
|
+
accountName: string;
|
|
36
|
+
success: boolean;
|
|
37
|
+
errorMessage?: string;
|
|
38
|
+
results: FileSearchResultItem[];
|
|
39
|
+
totalMatches?: number;
|
|
40
|
+
hasMore: boolean;
|
|
41
|
+
nextPageToken?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Aggregated search results from multiple accounts
|
|
45
|
+
*/
|
|
46
|
+
export interface MultiProviderSearchResult {
|
|
47
|
+
accountResults: AccountSearchResult[];
|
|
48
|
+
totalResultsReturned: number;
|
|
49
|
+
successfulAccounts: number;
|
|
50
|
+
failedAccounts: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Displays files and folders in a grid/list view.
|
|
54
|
+
* Shows file metadata like name, size, type, and last modified date.
|
|
55
|
+
* Supports file selection and navigation to folders.
|
|
56
|
+
*/
|
|
57
|
+
export declare class FileGridComponent implements OnInit, OnChanges {
|
|
58
|
+
/**
|
|
59
|
+
* The storage account to list files from (includes provider details)
|
|
60
|
+
*/
|
|
61
|
+
account: StorageAccountWithProvider | null;
|
|
62
|
+
/**
|
|
63
|
+
* The current folder path to display
|
|
64
|
+
*/
|
|
65
|
+
folderPath: string;
|
|
66
|
+
/**
|
|
67
|
+
* Emits when a folder is double-clicked for navigation
|
|
68
|
+
*/
|
|
69
|
+
folderNavigate: EventEmitter<string>;
|
|
70
|
+
/**
|
|
71
|
+
* Emits when the folder structure has changed (e.g., new folder created)
|
|
72
|
+
* This signals that the folder tree should refresh
|
|
73
|
+
*/
|
|
74
|
+
folderStructureChanged: EventEmitter<void>;
|
|
75
|
+
/**
|
|
76
|
+
* List of files and folders in the current directory
|
|
77
|
+
*/
|
|
78
|
+
items: FileGridItem[];
|
|
79
|
+
/**
|
|
80
|
+
* Currently selected item keys in the grid (Kendo stores keys, not full objects)
|
|
81
|
+
*/
|
|
82
|
+
selectedItems: string[];
|
|
83
|
+
/**
|
|
84
|
+
* Loading state indicator
|
|
85
|
+
*/
|
|
86
|
+
isLoading: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Error message if loading fails
|
|
89
|
+
*/
|
|
90
|
+
errorMessage: string | null;
|
|
91
|
+
/**
|
|
92
|
+
* View mode: 'grid' or 'list'
|
|
93
|
+
*/
|
|
94
|
+
viewMode: 'grid' | 'list';
|
|
95
|
+
/**
|
|
96
|
+
* Sort configuration for the grid
|
|
97
|
+
*/
|
|
98
|
+
sort: Array<{
|
|
99
|
+
field: string;
|
|
100
|
+
dir?: 'asc' | 'desc';
|
|
101
|
+
}>;
|
|
102
|
+
/**
|
|
103
|
+
* Search query for filtering files/folders
|
|
104
|
+
*/
|
|
105
|
+
searchQuery: string;
|
|
106
|
+
/**
|
|
107
|
+
* File type filter ('all', 'files', 'folders')
|
|
108
|
+
*/
|
|
109
|
+
fileTypeFilter: 'all' | 'files' | 'folders';
|
|
110
|
+
/**
|
|
111
|
+
* Filtered list of items based on search and filter criteria
|
|
112
|
+
*/
|
|
113
|
+
filteredItems: FileGridItem[];
|
|
114
|
+
/**
|
|
115
|
+
* Drag-and-drop state
|
|
116
|
+
*/
|
|
117
|
+
isDragging: boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Upload progress state
|
|
120
|
+
*/
|
|
121
|
+
isUploading: boolean;
|
|
122
|
+
uploadProgress: number;
|
|
123
|
+
uploadingFileName: string;
|
|
124
|
+
/**
|
|
125
|
+
* New folder dialog state
|
|
126
|
+
*/
|
|
127
|
+
showNewFolderDialog: boolean;
|
|
128
|
+
newFolderName: string;
|
|
129
|
+
isCreatingFolder: boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Delete confirmation dialog state
|
|
132
|
+
*/
|
|
133
|
+
showDeleteDialog: boolean;
|
|
134
|
+
itemToDelete: FileGridItem | null;
|
|
135
|
+
isDeleting: boolean;
|
|
136
|
+
/**
|
|
137
|
+
* Rename dialog state
|
|
138
|
+
*/
|
|
139
|
+
showRenameDialog: boolean;
|
|
140
|
+
itemToRename: FileGridItem | null;
|
|
141
|
+
newItemName: string;
|
|
142
|
+
isRenaming: boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Copy dialog state
|
|
145
|
+
*/
|
|
146
|
+
showCopyDialog: boolean;
|
|
147
|
+
itemToCopy: FileGridItem | null;
|
|
148
|
+
copyDestinationPath: string;
|
|
149
|
+
isCopying: boolean;
|
|
150
|
+
/**
|
|
151
|
+
* Move dialog state
|
|
152
|
+
*/
|
|
153
|
+
showMoveDialog: boolean;
|
|
154
|
+
itemToMove: FileGridItem | null;
|
|
155
|
+
moveDestinationPath: string;
|
|
156
|
+
isMoving: boolean;
|
|
157
|
+
/**
|
|
158
|
+
* Copy to provider dialog state
|
|
159
|
+
*/
|
|
160
|
+
showCopyToProviderDialog: boolean;
|
|
161
|
+
itemToCopyToProvider: FileGridItem | null;
|
|
162
|
+
availableAccounts: StorageAccountWithProvider[];
|
|
163
|
+
selectedDestinationAccounts: Set<string>;
|
|
164
|
+
copyToAccountDestinationPath: string;
|
|
165
|
+
isCopyingToAccount: boolean;
|
|
166
|
+
copyToAccountProgress: {
|
|
167
|
+
current: number;
|
|
168
|
+
total: number;
|
|
169
|
+
currentAccount: string;
|
|
170
|
+
} | null;
|
|
171
|
+
/**
|
|
172
|
+
* Multi-provider search state
|
|
173
|
+
*/
|
|
174
|
+
isMultiProviderSearchMode: boolean;
|
|
175
|
+
multiProviderSearchQuery: string;
|
|
176
|
+
selectedSearchProviders: Set<string>;
|
|
177
|
+
isSearching: boolean;
|
|
178
|
+
multiProviderSearchResults: MultiProviderSearchResult | null;
|
|
179
|
+
/**
|
|
180
|
+
* GraphQL client for file storage operations
|
|
181
|
+
*/
|
|
182
|
+
private storageClient;
|
|
183
|
+
constructor();
|
|
184
|
+
ngOnInit(): void;
|
|
185
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
186
|
+
/**
|
|
187
|
+
* Loads files and folders from the current path
|
|
188
|
+
*/
|
|
189
|
+
private loadItems;
|
|
190
|
+
/**
|
|
191
|
+
* Applies search and filter criteria to the items list
|
|
192
|
+
*/
|
|
193
|
+
private applyFilters;
|
|
194
|
+
/**
|
|
195
|
+
* Handles search query changes
|
|
196
|
+
*/
|
|
197
|
+
onSearchChange(query: string): void;
|
|
198
|
+
/**
|
|
199
|
+
* Clears the search query
|
|
200
|
+
*/
|
|
201
|
+
clearSearch(): void;
|
|
202
|
+
/**
|
|
203
|
+
* Handles file type filter changes
|
|
204
|
+
*/
|
|
205
|
+
onFileTypeFilterChange(filterType: 'all' | 'files' | 'folders'): void;
|
|
206
|
+
/**
|
|
207
|
+
* Formats a file size in bytes to a human-readable string
|
|
208
|
+
*/
|
|
209
|
+
formatFileSize(bytes: number): string;
|
|
210
|
+
/**
|
|
211
|
+
* Formats a date to a readable string
|
|
212
|
+
*/
|
|
213
|
+
formatDate(date: Date): string;
|
|
214
|
+
/**
|
|
215
|
+
* Gets the icon class for a file or folder
|
|
216
|
+
*/
|
|
217
|
+
getItemIcon(item: FileGridItem): string;
|
|
218
|
+
/**
|
|
219
|
+
* Handles item selection change (not used - Kendo handles selection internally)
|
|
220
|
+
*/
|
|
221
|
+
onSelectionChange(selectedKeys: string[]): void;
|
|
222
|
+
/**
|
|
223
|
+
* Handles tile click in grid view for selection
|
|
224
|
+
*/
|
|
225
|
+
onTileClick(item: FileGridItem, event: MouseEvent): void;
|
|
226
|
+
/**
|
|
227
|
+
* Handles double-click on an item
|
|
228
|
+
* For folders, navigate into them. For files, open/download them.
|
|
229
|
+
*/
|
|
230
|
+
onItemDoubleClick(item: FileGridItem): void;
|
|
231
|
+
/**
|
|
232
|
+
* Downloads a file by creating a pre-authenticated download URL
|
|
233
|
+
*/
|
|
234
|
+
private downloadFile;
|
|
235
|
+
/**
|
|
236
|
+
* Toggles between grid and list view
|
|
237
|
+
*/
|
|
238
|
+
toggleViewMode(): void;
|
|
239
|
+
/**
|
|
240
|
+
* Refreshes the current directory
|
|
241
|
+
*/
|
|
242
|
+
refresh(): void;
|
|
243
|
+
/**
|
|
244
|
+
* Navigates up to the parent directory
|
|
245
|
+
*/
|
|
246
|
+
navigateUp(): void;
|
|
247
|
+
/**
|
|
248
|
+
* Checks if we can navigate up (not at root)
|
|
249
|
+
*/
|
|
250
|
+
canNavigateUp(): boolean;
|
|
251
|
+
/**
|
|
252
|
+
* Handles sort change event from the grid
|
|
253
|
+
*/
|
|
254
|
+
onSortChange(sort: Array<{
|
|
255
|
+
field: string;
|
|
256
|
+
dir?: 'asc' | 'desc';
|
|
257
|
+
}>): void;
|
|
258
|
+
/**
|
|
259
|
+
* Gets a human-readable file type based on extension
|
|
260
|
+
*/
|
|
261
|
+
getFileType(item: FileGridItem): string;
|
|
262
|
+
/**
|
|
263
|
+
* Handles upload button click - triggers file input
|
|
264
|
+
*/
|
|
265
|
+
onUploadClick(): void;
|
|
266
|
+
/**
|
|
267
|
+
* Handles drag enter event
|
|
268
|
+
*/
|
|
269
|
+
onDragEnter(event: DragEvent): void;
|
|
270
|
+
/**
|
|
271
|
+
* Handles drag over event
|
|
272
|
+
*/
|
|
273
|
+
onDragOver(event: DragEvent): void;
|
|
274
|
+
/**
|
|
275
|
+
* Handles drag leave event
|
|
276
|
+
*/
|
|
277
|
+
onDragLeave(event: DragEvent): void;
|
|
278
|
+
/**
|
|
279
|
+
* Handles drop event
|
|
280
|
+
*/
|
|
281
|
+
onDrop(event: DragEvent): void;
|
|
282
|
+
/**
|
|
283
|
+
* Uploads multiple files to the current folder
|
|
284
|
+
*/
|
|
285
|
+
private uploadFiles;
|
|
286
|
+
/**
|
|
287
|
+
* Uploads a single file
|
|
288
|
+
*/
|
|
289
|
+
private uploadSingleFile;
|
|
290
|
+
/**
|
|
291
|
+
* Uploads file to the pre-authenticated URL with progress tracking
|
|
292
|
+
*/
|
|
293
|
+
private uploadFileToUrl;
|
|
294
|
+
/**
|
|
295
|
+
* Opens the new folder dialog
|
|
296
|
+
*/
|
|
297
|
+
onNewFolderClick(): void;
|
|
298
|
+
/**
|
|
299
|
+
* Closes the new folder dialog
|
|
300
|
+
*/
|
|
301
|
+
onCancelNewFolder(): void;
|
|
302
|
+
/**
|
|
303
|
+
* Creates a new folder in the current directory
|
|
304
|
+
*/
|
|
305
|
+
onCreateFolder(): Promise<void>;
|
|
306
|
+
/**
|
|
307
|
+
* Opens the delete confirmation dialog for the selected items
|
|
308
|
+
*/
|
|
309
|
+
onDeleteClick(): void;
|
|
310
|
+
/**
|
|
311
|
+
* Closes the delete confirmation dialog
|
|
312
|
+
*/
|
|
313
|
+
onCancelDelete(): void;
|
|
314
|
+
/**
|
|
315
|
+
* Deletes the selected item after confirmation
|
|
316
|
+
*/
|
|
317
|
+
onConfirmDelete(): Promise<void>;
|
|
318
|
+
/**
|
|
319
|
+
* Opens the rename dialog for the selected item
|
|
320
|
+
*/
|
|
321
|
+
onRenameClick(): void;
|
|
322
|
+
/**
|
|
323
|
+
* Closes the rename dialog
|
|
324
|
+
*/
|
|
325
|
+
onCancelRename(): void;
|
|
326
|
+
/**
|
|
327
|
+
* Renames the selected item after confirmation
|
|
328
|
+
*/
|
|
329
|
+
onConfirmRename(): Promise<void>;
|
|
330
|
+
/**
|
|
331
|
+
* Downloads the selected file
|
|
332
|
+
*/
|
|
333
|
+
onDownloadClick(): Promise<void>;
|
|
334
|
+
/**
|
|
335
|
+
* Opens the copy dialog for the selected item
|
|
336
|
+
*/
|
|
337
|
+
onCopyClick(): void;
|
|
338
|
+
/**
|
|
339
|
+
* Cancels the copy operation
|
|
340
|
+
*/
|
|
341
|
+
onCancelCopy(): void;
|
|
342
|
+
/**
|
|
343
|
+
* Confirms and executes the copy operation
|
|
344
|
+
*/
|
|
345
|
+
onConfirmCopy(): Promise<void>;
|
|
346
|
+
/**
|
|
347
|
+
* Opens the move dialog for the selected item
|
|
348
|
+
*/
|
|
349
|
+
onMoveClick(): void;
|
|
350
|
+
/**
|
|
351
|
+
* Cancels the move operation
|
|
352
|
+
*/
|
|
353
|
+
onCancelMove(): void;
|
|
354
|
+
/**
|
|
355
|
+
* Confirms and executes the move operation
|
|
356
|
+
*/
|
|
357
|
+
onConfirmMove(): Promise<void>;
|
|
358
|
+
/**
|
|
359
|
+
* Constructs the full path for an item
|
|
360
|
+
*/
|
|
361
|
+
private constructItemPath;
|
|
362
|
+
/**
|
|
363
|
+
* Gets the currently selected item (if exactly one is selected)
|
|
364
|
+
*/
|
|
365
|
+
getSelectedItem(): FileGridItem | null;
|
|
366
|
+
/**
|
|
367
|
+
* Opens the copy to account dialog
|
|
368
|
+
*/
|
|
369
|
+
onCopyToAccountClick(): Promise<void>;
|
|
370
|
+
/**
|
|
371
|
+
* Cancels the copy to account dialog
|
|
372
|
+
*/
|
|
373
|
+
onCancelCopyToAccount(): void;
|
|
374
|
+
/**
|
|
375
|
+
* Toggles selection of a destination account for copying
|
|
376
|
+
*/
|
|
377
|
+
toggleDestinationAccount(accountId: string): void;
|
|
378
|
+
/**
|
|
379
|
+
* Checks if an account is selected as a destination
|
|
380
|
+
*/
|
|
381
|
+
isDestinationAccountSelected(accountId: string): boolean;
|
|
382
|
+
/**
|
|
383
|
+
* Executes the cross-account copy to multiple selected accounts
|
|
384
|
+
*/
|
|
385
|
+
onConfirmCopyToAccount(): Promise<void>;
|
|
386
|
+
/**
|
|
387
|
+
* Toggles multi-account search mode
|
|
388
|
+
*/
|
|
389
|
+
toggleMultiAccountSearchMode(): void;
|
|
390
|
+
/**
|
|
391
|
+
* Loads available accounts for search selection
|
|
392
|
+
*/
|
|
393
|
+
private loadAvailableAccountsForSearch;
|
|
394
|
+
/**
|
|
395
|
+
* Toggles account selection for search
|
|
396
|
+
*/
|
|
397
|
+
toggleSearchAccount(accountID: string): void;
|
|
398
|
+
/**
|
|
399
|
+
* Checks if an account is selected for search
|
|
400
|
+
*/
|
|
401
|
+
isAccountSelectedForSearch(accountID: string): boolean;
|
|
402
|
+
/**
|
|
403
|
+
* Checks if an account's provider supports search
|
|
404
|
+
*/
|
|
405
|
+
accountSupportsSearch(accountWithProvider: StorageAccountWithProvider): boolean;
|
|
406
|
+
/**
|
|
407
|
+
* Executes multi-account search
|
|
408
|
+
*/
|
|
409
|
+
executeMultiAccountSearch(): Promise<void>;
|
|
410
|
+
/**
|
|
411
|
+
* Clears multi-provider search results
|
|
412
|
+
*/
|
|
413
|
+
clearMultiProviderSearch(): void;
|
|
414
|
+
/**
|
|
415
|
+
* Gets icon for a search result based on content type
|
|
416
|
+
*/
|
|
417
|
+
getSearchResultIcon(result: FileSearchResultItem): string;
|
|
418
|
+
/**
|
|
419
|
+
* Formats file size for search results
|
|
420
|
+
*/
|
|
421
|
+
formatSearchResultSize(bytes: number): string;
|
|
422
|
+
/**
|
|
423
|
+
* Formats date for search results
|
|
424
|
+
*/
|
|
425
|
+
formatSearchResultDate(dateStr: string): string;
|
|
426
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FileGridComponent, never>;
|
|
427
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FileGridComponent, "mj-file-grid", never, { "account": { "alias": "account"; "required": false; }; "folderPath": { "alias": "folderPath"; "required": false; }; }, { "folderNavigate": "folderNavigate"; "folderStructureChanged": "folderStructureChanged"; }, never, never, false, never>;
|
|
428
|
+
}
|
|
429
|
+
//# sourceMappingURL=file-grid.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-grid.component.d.ts","sourceRoot":"","sources":["../../../src/lib/file-browser/file-grid.component.ts"],"names":[],"mappings":"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"}
|