@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.
Files changed (34) hide show
  1. package/dist/lib/file-browser/file-browser-demo.component.d.ts +10 -0
  2. package/dist/lib/file-browser/file-browser-demo.component.d.ts.map +1 -0
  3. package/dist/lib/file-browser/file-browser-demo.component.js +39 -0
  4. package/dist/lib/file-browser/file-browser-demo.component.js.map +1 -0
  5. package/dist/lib/file-browser/file-browser-resource.component.d.ts +30 -0
  6. package/dist/lib/file-browser/file-browser-resource.component.d.ts.map +1 -0
  7. package/dist/lib/file-browser/file-browser-resource.component.js +82 -0
  8. package/dist/lib/file-browser/file-browser-resource.component.js.map +1 -0
  9. package/dist/lib/file-browser/file-browser.component.d.ts +69 -0
  10. package/dist/lib/file-browser/file-browser.component.d.ts.map +1 -0
  11. package/dist/lib/file-browser/file-browser.component.js +132 -0
  12. package/dist/lib/file-browser/file-browser.component.js.map +1 -0
  13. package/dist/lib/file-browser/file-grid.component.d.ts +429 -0
  14. package/dist/lib/file-browser/file-grid.component.d.ts.map +1 -0
  15. package/dist/lib/file-browser/file-grid.component.js +2394 -0
  16. package/dist/lib/file-browser/file-grid.component.js.map +1 -0
  17. package/dist/lib/file-browser/folder-tree.component.d.ts +115 -0
  18. package/dist/lib/file-browser/folder-tree.component.d.ts.map +1 -0
  19. package/dist/lib/file-browser/folder-tree.component.js +364 -0
  20. package/dist/lib/file-browser/folder-tree.component.js.map +1 -0
  21. package/dist/lib/file-browser/storage-providers-list.component.d.ts +59 -0
  22. package/dist/lib/file-browser/storage-providers-list.component.d.ts.map +1 -0
  23. package/dist/lib/file-browser/storage-providers-list.component.js +235 -0
  24. package/dist/lib/file-browser/storage-providers-list.component.js.map +1 -0
  25. package/dist/lib/file-upload/file-upload.d.ts +19 -19
  26. package/dist/lib/module.d.ts +25 -18
  27. package/dist/lib/module.d.ts.map +1 -1
  28. package/dist/lib/module.js +44 -4
  29. package/dist/lib/module.js.map +1 -1
  30. package/dist/public-api.d.ts +3 -0
  31. package/dist/public-api.d.ts.map +1 -1
  32. package/dist/public-api.js +6 -0
  33. package/dist/public-api.js.map +1 -1
  34. 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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"}